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]