Author: norman
Date: Thu Oct 21 11:01:02 2010
New Revision: 1025940

URL: http://svn.apache.org/viewvc?rev=1025940&view=rev
Log:
Merge AbstractStore with JamesUsersStore. There is no need to keep it seperated 

Removed:
    
james/server/trunk/user-library/src/main/java/org/apache/james/user/lib/AbstractStore.java
Modified:
    
james/server/trunk/user-library/src/main/java/org/apache/james/user/lib/JamesUsersStore.java

Modified: 
james/server/trunk/user-library/src/main/java/org/apache/james/user/lib/JamesUsersStore.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/user-library/src/main/java/org/apache/james/user/lib/JamesUsersStore.java?rev=1025940&r1=1025939&r2=1025940&view=diff
==============================================================================
--- 
james/server/trunk/user-library/src/main/java/org/apache/james/user/lib/JamesUsersStore.java
 (original)
+++ 
james/server/trunk/user-library/src/main/java/org/apache/james/user/lib/JamesUsersStore.java
 Thu Oct 21 11:01:02 2010
@@ -18,10 +18,19 @@
  ****************************************************************/
 package org.apache.james.user.lib;
 
+import java.util.Collections;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+
+import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
+import org.apache.commons.logging.Log;
+import org.apache.james.services.InstanceFactory;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersStore;
 
@@ -29,10 +38,59 @@ import org.apache.james.user.api.UsersSt
  * UsersStore implementation which will parse the configuration file for 
users-store and add every configured repository 
  *
  */
-public class JamesUsersStore extends AbstractStore<UsersRepository> implements 
UsersStore {
+public class JamesUsersStore implements UsersStore {
 
     private String defaultName;
 
+    protected Log log;
+
+    protected final Map<String, UsersRepository> objects = 
Collections.synchronizedMap(new HashMap<String, UsersRepository>());
+    private InstanceFactory factory;
+    private HierarchicalConfiguration config;
+
+  
+    @Resource(name="instanceFactory")
+    public void setInstanceFactory(InstanceFactory factory) {
+        this.factory = factory;
+    }
+    
+    public void setLog(Log log) {
+        this.log = log;
+    }
+
+    public void configure(HierarchicalConfiguration config) throws 
ConfigurationException {
+        this.config = config;
+    }
+
+    @PostConstruct
+    @SuppressWarnings("unchecked")
+    public void init() throws Exception {
+        ClassLoader loader = Thread.currentThread().getContextClassLoader();
+        List<HierarchicalConfiguration> repConfs = 
config.configurationsAt("repository");
+        for (int i = 0; i < repConfs.size(); i++) {
+            final HierarchicalConfiguration repConf = repConfs.get(i);
+            String repName = repConf.getString("[...@name]", null);
+            String repClass = repConf.getString("[...@class]");
+
+            if (repName == null) {
+                repName = repClass;
+            }
+            
+            if (log.isDebugEnabled()) {
+                log.debug("Starting " + repClass);
+            }
+                        
+            
+            objects.put(repName, (UsersRepository) 
factory.newInstance(loader.loadClass(repClass), log, repConf));
+            
+            if (log.isInfoEnabled()) {
+                StringBuffer logBuffer = new StringBuffer(64).append("Bean  
").append(repName).append(" started.");
+                log.info(logBuffer.toString());
+            }
+        }
+   
+    }
+    
 
     /*
      * (non-Javadoc)
@@ -65,10 +123,4 @@ public class JamesUsersStore extends Abs
         return objects.keySet().iterator();
     }
 
-    @SuppressWarnings("unchecked")
-    @Override
-    protected List<HierarchicalConfiguration> 
getSubConfigurations(HierarchicalConfiguration rootConf) {
-        return rootConf.configurationsAt("repository");
-    }
-
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to