Changeset 1360


Ignore:
Timestamp:
05/23/11 12:47:49 (13 years ago)
Author:
twagoo
Message:

FactoryDBImpl:
-getOrCreateUser made synchronized
-renamed getCompRegForUser to getNEWCompRegForUser
-single member instance of public registry

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ComponentRegistry/trunk/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/impl/database/ComponentRegistryFactoryDbImpl.java

    r1357 r1360  
    3232    @Autowired
    3333    private UserDao userDao;
     34    private ComponentRegistry publicComponentRegistry = null;
    3435
    3536    @Override
    3637    public List<ComponentRegistry> getAllUserRegistries() {
    3738        // TODO: this probably could use some caching
    38 
    3939        try {
    4040            List<User> users = userDao.getAllUsers();
    4141            List<ComponentRegistry> registries = new ArrayList<ComponentRegistry>();
    4242            for (User user : users) {
    43                 ComponentRegistryDbImpl registry = componentRegistryBeanFactory.getNewComponentRegistry();
    44                 registry.setUserId(user.getId());
    45                 registries.add(registry);
     43                registries.add(getNewComponentRegistryForUser(user.getId()));
    4644            }
    4745            return registries;
     
    6058                try {
    6159                    User user = getOrCreateUser(principalName, credentials.getDisplayName());
    62                     result = getComponentRegistryForUser(user.getId());
     60                    result = getNewComponentRegistryForUser(user.getId());
    6361                } catch (DataAccessException ex) {
    6462                    LOG.error("Could not retrieve or create user", ex);
     
    8179            if (user != null) {
    8280                if (configuration.isAdminUser(adminPrincipal)) {
    83                     result = getComponentRegistryForUser(user.getId());
     81                    result = getNewComponentRegistryForUser(user.getId());
    8482                } else {
    8583                    LOG.info(adminPrincipal.getName() + " not found in list of " + configuration.getAdminUsersArray().length);
     
    9694    @Override
    9795    public ComponentRegistry getPublicRegistry() {
    98         return getComponentRegistryForUser(null);
     96        if (publicComponentRegistry == null) {
     97            publicComponentRegistry = getNewComponentRegistryForUser(null);
     98        }
     99        return publicComponentRegistry;
    99100    }
    100101
    101     private ComponentRegistry getComponentRegistryForUser(Number userId) {
     102    private ComponentRegistry getNewComponentRegistryForUser(Number userId) {
    102103        ComponentRegistryDbImpl componentRegistry = componentRegistryBeanFactory.getNewComponentRegistry();
    103104        componentRegistry.setUserId(userId);
     
    105106    }
    106107
    107     private User getOrCreateUser(String principalName, String displayName) {
     108    private synchronized User getOrCreateUser(String principalName, String displayName) {
    108109        // Try getting it from db
    109110        User user = userDao.getByPrincipalName(principalName);
Note: See TracChangeset for help on using the changeset viewer.