You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2010/01/03 15:07:48 UTC
svn commit: r895393 - in /james/server/sandbox/active/pure_spring_deployment:
avalon-user-function/src/main/java/org/apache/james/userrepository/
avalon-user-function/src/test/java/org/apache/james/userrepository/
core-api/src/main/java/org/apache/jame...
Author: norman
Date: Sun Jan 3 14:07:41 2010
New Revision: 895393
URL: http://svn.apache.org/viewvc?rev=895393&view=rev
Log:
Fix some bugs after running the spring stuff in production. Now everything works!
cleanup
Modified:
james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/main/java/org/apache/james/userrepository/AbstractJdbcUsersRepository.java
james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/main/java/org/apache/james/userrepository/JamesUsersJdbcRepository.java
james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/main/java/org/apache/james/userrepository/UsersFileRepository.java
james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/test/java/org/apache/james/userrepository/UsersFileRepositoryTest.java
james/server/sandbox/active/pure_spring_deployment/core-api/src/main/java/org/apache/james/api/kernel/LoaderService.java
james/server/sandbox/active/pure_spring_deployment/core-api/src/main/java/org/apache/james/lifecycle/Configurable.java
james/server/sandbox/active/pure_spring_deployment/core-api/src/test/java/org/apache/james/api/kernel/mock/FakeLoader.java
james/server/sandbox/active/pure_spring_deployment/core-function/src/main/java/org/apache/james/mailrepository/MailStore.java
james/server/sandbox/active/pure_spring_deployment/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/NNTPSpooler.java
james/server/sandbox/active/pure_spring_deployment/remotemanager-function/src/main/java/org/apache/james/remotemanager/RemoteManagerProtocolHandlerFactory.java
james/server/sandbox/active/pure_spring_deployment/remotemanager-function/src/main/java/org/apache/james/remotemanager/core/AbstractMappingCmdHandler.java
james/server/sandbox/active/pure_spring_deployment/remotemanager-function/src/main/java/org/apache/james/remotemanager/core/ListAllMappingsCmdHandler.java
james/server/sandbox/active/pure_spring_deployment/socket-shared-library/src/main/java/org/apache/james/socket/shared/ProtocolHandlerChainImpl.java
james/server/sandbox/active/pure_spring_deployment/spoolmanager-function/src/main/java/org/apache/james/transport/JamesSpoolManager.java
james/server/sandbox/active/pure_spring_deployment/spoolmanager-function/src/main/java/org/apache/james/transport/LinearProcessor.java
james/server/sandbox/active/pure_spring_deployment/spoolmanager-function/src/main/java/org/apache/james/transport/StateAwareProcessorList.java
james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/config/james/log4j.properties
james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/config/james/spring-beans.xml
james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/java/org/apache/james/container/spring/lifecycle/AvalonInitializableBeanPostProcessor.java
james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/java/org/apache/james/container/spring/lifecycle/CommonsConfigurableBeanPostProcessor.java
james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/java/org/apache/james/container/spring/lifecycle/JSR250LoaderService.java
Modified: james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/main/java/org/apache/james/userrepository/AbstractJdbcUsersRepository.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/main/java/org/apache/james/userrepository/AbstractJdbcUsersRepository.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/main/java/org/apache/james/userrepository/AbstractJdbcUsersRepository.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/main/java/org/apache/james/userrepository/AbstractJdbcUsersRepository.java Sun Jan 3 14:07:41 2010
@@ -232,8 +232,7 @@
* the DataSourceSelector
*/
@Resource(name="database-connections")
- void setDatasources(DataSourceSelector datasources) {
- System.out.println("database-connections" + datasources);
+ public void setDatasources(DataSourceSelector datasources) {
m_datasources = datasources;
}
/**
@@ -243,7 +242,7 @@
* the new service
*/
@Resource(name="filesystem")
- void setFileSystem(FileSystem system) {
+ public void setFileSystem(FileSystem system) {
this.fileSystem = system;
}
Modified: james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/main/java/org/apache/james/userrepository/JamesUsersJdbcRepository.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/main/java/org/apache/james/userrepository/JamesUsersJdbcRepository.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/main/java/org/apache/james/userrepository/JamesUsersJdbcRepository.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/main/java/org/apache/james/userrepository/JamesUsersJdbcRepository.java Sun Jan 3 14:07:41 2010
@@ -30,22 +30,11 @@
import java.sql.ResultSet;
import java.sql.SQLException;
-import javax.annotation.PostConstruct;
-
/**
* A Jdbc-backed UserRepository which handles User instances of the <CODE>DefaultJamesUser</CODE>
* class, or any superclass.
*/
public class JamesUsersJdbcRepository extends AbstractJdbcUsersRepository {
-
-
- // REMOVE ME!
- @PostConstruct
- @Override
- public void init() throws Exception {
- super.init();
- }
-
/**
* @see org.apache.james.userrepository.AbstractJdbcUsersRepository#readUserFromResultSet(java.sql.ResultSet)
Modified: james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/main/java/org/apache/james/userrepository/UsersFileRepository.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/main/java/org/apache/james/userrepository/UsersFileRepository.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/main/java/org/apache/james/userrepository/UsersFileRepository.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/main/java/org/apache/james/userrepository/UsersFileRepository.java Sun Jan 3 14:07:41 2010
@@ -83,7 +83,7 @@
protected void doConfigure( final HierarchicalConfiguration configuration )
throws ConfigurationException {
super.doConfigure(configuration);
- destination = configuration.getString( "destination/[@URL]" );
+ destination = configuration.getString( "destination.[@URL]" );
if (!destination.endsWith(urlSeparator)) {
destination += urlSeparator;
Modified: james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/test/java/org/apache/james/userrepository/UsersFileRepositoryTest.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/test/java/org/apache/james/userrepository/UsersFileRepositoryTest.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/test/java/org/apache/james/userrepository/UsersFileRepositoryTest.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/avalon-user-function/src/test/java/org/apache/james/userrepository/UsersFileRepositoryTest.java Sun Jan 3 14:07:41 2010
@@ -80,7 +80,7 @@
mockStore.add("OBJECT.users", file_Persistent_Object_Repository);
res.setStore(mockStore);
DefaultConfigurationBuilder configuration = new DefaultConfigurationBuilder("test");
- configuration.addProperty("destination/[@URL]", "file://target/var/users");
+ configuration.addProperty("destination.[@URL]", "file://target/var/users");
res.setLog(new SimpleLog("MockLog"));
res.configure(configuration);
res.init();
Modified: james/server/sandbox/active/pure_spring_deployment/core-api/src/main/java/org/apache/james/api/kernel/LoaderService.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/core-api/src/main/java/org/apache/james/api/kernel/LoaderService.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/core-api/src/main/java/org/apache/james/api/kernel/LoaderService.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/core-api/src/main/java/org/apache/james/api/kernel/LoaderService.java Sun Jan 3 14:07:41 2010
@@ -27,6 +27,14 @@
*/
public interface LoaderService {
+ /**
+ * Inject dependencies to the given object using jsr250. Before the injection is done set the Log and config
+ * to the object if the right LifeCycle methods are implement and Log / Config is not null
+ *
+ * @param obj
+ * @param logger
+ * @param config
+ */
public void injectDependenciesWithLifecycle(Object obj, Log logger, HierarchicalConfiguration config);
Modified: james/server/sandbox/active/pure_spring_deployment/core-api/src/main/java/org/apache/james/lifecycle/Configurable.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/core-api/src/main/java/org/apache/james/lifecycle/Configurable.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/core-api/src/main/java/org/apache/james/lifecycle/Configurable.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/core-api/src/main/java/org/apache/james/lifecycle/Configurable.java Sun Jan 3 14:07:41 2010
@@ -30,7 +30,8 @@
public interface Configurable {
/**
- * Configure
+ * Configure the object. Be aware that no services are injected when this is called. If you need
+ * to access injected stuff do it in a method annotated with @PostConstruct
*
* @param config
* @throws ConfigurationException
Modified: james/server/sandbox/active/pure_spring_deployment/core-api/src/test/java/org/apache/james/api/kernel/mock/FakeLoader.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/core-api/src/test/java/org/apache/james/api/kernel/mock/FakeLoader.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/core-api/src/test/java/org/apache/james/api/kernel/mock/FakeLoader.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/core-api/src/test/java/org/apache/james/api/kernel/mock/FakeLoader.java Sun Jan 3 14:07:41 2010
@@ -55,7 +55,8 @@
mappings.put("scheduler", "org.apache.avalon.cornerstone.services.scheduler.TimeScheduler");
mappings.put("database-connections", "org.apache.avalon.cornerstone.services.datasources.DataSourceSelector");
mappings.put("defaultvirtualusertable", "org.apache.james.api.vut.VirtualUserTable");
-
+ mappings.put("virtualusertablemanagement", "org.apache.james.api.vut.management.VirtualUserTableManagement");
+
mappings.put("spoolmanager", "org.apache.james.services.SpoolManager");
mappings.put("matcherpackages", "org.apache.james.transport.MatcherLoader");
mappings.put("mailetpackages", "org.apache.james.transport.MailetLoader");
@@ -65,7 +66,7 @@
mappings.put("spoolmanagement", "org.apache.james.management.SpoolManagementService");
mappings.put("bayesiananalyzermanagement", "org.apache.james.management.BayesianAnalyzerManagementService");
mappings.put("processormanagement", "org.apache.james.management.ProcessorManagementService");
- mappings.put("virtualusertablemanagement", "org.apache.james.api.vut.management.VirtualUserTableManagementService");
+ mappings.put("virtualusertablemanagementservice", "org.apache.james.api.vut.management.VirtualUserTableManagementService");
mappings.put("domainlistmanagement", "org.apache.james.management.DomainListManagementService");
mappings.put("nntp-repository", "org.apache.james.nntpserver.repository.NNTPRepository");
}
@@ -96,7 +97,6 @@
// Name indicates a service
final Object service = get(name);
- System.out.println("SERVICE=" + service);
if (service == null) {
} else {
try {
Modified: james/server/sandbox/active/pure_spring_deployment/core-function/src/main/java/org/apache/james/mailrepository/MailStore.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/core-function/src/main/java/org/apache/james/mailrepository/MailStore.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/core-function/src/main/java/org/apache/james/mailrepository/MailStore.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/core-function/src/main/java/org/apache/james/mailrepository/MailStore.java Sun Jan 3 14:07:41 2010
@@ -73,16 +73,7 @@
private Log logger;
- private FileSystem fs;
-
- private DataSourceSelector datasources;
-
private LoaderService loader;
-
- @Resource(name="database-connections")
- public void setDatasources(DataSourceSelector datasources) {
- this.datasources = datasources;
- }
public void setLog(Log logger) {
@@ -96,17 +87,9 @@
public void configure(HierarchicalConfiguration configuration) throws ConfigurationException{
this.configuration = configuration;
}
-
- /**
- * Set the Store to use
- *
- * @param store the Store
- */
- @Resource(name="filesystem")
- public void setFileSystem(FileSystem fs) {
- this.fs = fs;
- }
+
+
@Resource(name="org.apache.james.LoaderService")
public void setLoaderService(LoaderService loader) {
this.loader = loader;
Modified: james/server/sandbox/active/pure_spring_deployment/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/NNTPSpooler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/NNTPSpooler.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/NNTPSpooler.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/NNTPSpooler.java Sun Jan 3 14:07:41 2010
@@ -24,6 +24,8 @@
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.HierarchicalConfiguration;
import org.apache.commons.logging.Log;
+import org.apache.james.lifecycle.Configurable;
+import org.apache.james.lifecycle.LogEnabled;
import org.apache.james.services.FileSystem;
import org.apache.james.util.Lock;
import org.apache.james.util.io.IOUtil;
@@ -45,7 +47,7 @@
* Eats up inappropriate entries.
*
*/
-public class NNTPSpooler {
+public class NNTPSpooler implements LogEnabled, Configurable{
private ArticleIDRepository idRepos;
@@ -345,12 +347,10 @@
- @Resource(name="org.apache.commons.configuration.Configuration")
public void configure(HierarchicalConfiguration config) {
this.config = config;
}
- @Resource(name="org.apache.commons.logging.Log")
public void setLog(Log log) {
this.logger = log;
}
Modified: james/server/sandbox/active/pure_spring_deployment/remotemanager-function/src/main/java/org/apache/james/remotemanager/RemoteManagerProtocolHandlerFactory.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/remotemanager-function/src/main/java/org/apache/james/remotemanager/RemoteManagerProtocolHandlerFactory.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/remotemanager-function/src/main/java/org/apache/james/remotemanager/RemoteManagerProtocolHandlerFactory.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/remotemanager-function/src/main/java/org/apache/james/remotemanager/RemoteManagerProtocolHandlerFactory.java Sun Jan 3 14:07:41 2010
@@ -25,7 +25,6 @@
import java.util.List;
import java.util.Map;
-import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import org.apache.commons.configuration.ConfigurationException;
@@ -68,12 +67,6 @@
private MailServer mailServer;
-
- @PostConstruct
- public void init() throws Exception {
- super.init();
- }
-
@SuppressWarnings("unchecked")
public void onConfigure(HierarchicalConfiguration configuration)
throws ConfigurationException {
Modified: james/server/sandbox/active/pure_spring_deployment/remotemanager-function/src/main/java/org/apache/james/remotemanager/core/AbstractMappingCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/remotemanager-function/src/main/java/org/apache/james/remotemanager/core/AbstractMappingCmdHandler.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/remotemanager-function/src/main/java/org/apache/james/remotemanager/core/AbstractMappingCmdHandler.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/remotemanager-function/src/main/java/org/apache/james/remotemanager/core/AbstractMappingCmdHandler.java Sun Jan 3 14:07:41 2010
@@ -31,7 +31,7 @@
protected final static String REMOVE_MAPPING_ACTION = "REMOVEMAPPING";
protected VirtualUserTableManagementService vutManagement;
- @Resource(name = "virtualusertablemanagement")
+ @Resource(name = "virtualusertablemanagementservice")
public final void setVirtualUserTableManagementService(VirtualUserTableManagementService vutManagement) {
this.vutManagement = vutManagement;
}
Modified: james/server/sandbox/active/pure_spring_deployment/remotemanager-function/src/main/java/org/apache/james/remotemanager/core/ListAllMappingsCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/remotemanager-function/src/main/java/org/apache/james/remotemanager/core/ListAllMappingsCmdHandler.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/remotemanager-function/src/main/java/org/apache/james/remotemanager/core/ListAllMappingsCmdHandler.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/remotemanager-function/src/main/java/org/apache/james/remotemanager/core/ListAllMappingsCmdHandler.java Sun Jan 3 14:07:41 2010
@@ -41,7 +41,7 @@
protected VirtualUserTableManagementService vutManagement;
- @Resource(name = "virtualusertablemanagement")
+ @Resource(name = "virtualusertablemanagementservice")
public final void setVirtualUserTableManagementService(VirtualUserTableManagementService vutManagement) {
this.vutManagement = vutManagement;
}
Modified: james/server/sandbox/active/pure_spring_deployment/socket-shared-library/src/main/java/org/apache/james/socket/shared/ProtocolHandlerChainImpl.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/socket-shared-library/src/main/java/org/apache/james/socket/shared/ProtocolHandlerChainImpl.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/socket-shared-library/src/main/java/org/apache/james/socket/shared/ProtocolHandlerChainImpl.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/socket-shared-library/src/main/java/org/apache/james/socket/shared/ProtocolHandlerChainImpl.java Sun Jan 3 14:07:41 2010
@@ -129,7 +129,6 @@
final Class<?> handlerClass = classLoader.loadClass(className);
Object handler = handlerClass.newInstance();
- System.out.println("LOADER=" + loader);
loader.injectDependenciesWithLifecycle(handler, getLog(), config);
// if it is a commands handler add it to the map with key as command
Modified: james/server/sandbox/active/pure_spring_deployment/spoolmanager-function/src/main/java/org/apache/james/transport/JamesSpoolManager.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/spoolmanager-function/src/main/java/org/apache/james/transport/JamesSpoolManager.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/spoolmanager-function/src/main/java/org/apache/james/transport/JamesSpoolManager.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/spoolmanager-function/src/main/java/org/apache/james/transport/JamesSpoolManager.java Sun Jan 3 14:07:41 2010
@@ -143,7 +143,7 @@
String processorClass = config.getString("processorClass","org.apache.james.transport.StateAwareProcessorList");
try {
processorList = (MailProcessor) Thread.currentThread().getContextClassLoader().loadClass(processorClass).newInstance();;
- loaderService.injectDependencies(processorList);
+ loaderService.injectDependenciesWithLifecycle(processorList, logger, config);
} catch (Exception e1) {
logger.error("Unable to instantiate spoolmanager processor: "+processorClass, e1);
throw new ConfigurationException("Instantiation exception: "+processorClass, e1);
Modified: james/server/sandbox/active/pure_spring_deployment/spoolmanager-function/src/main/java/org/apache/james/transport/LinearProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/spoolmanager-function/src/main/java/org/apache/james/transport/LinearProcessor.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/spoolmanager-function/src/main/java/org/apache/james/transport/LinearProcessor.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/spoolmanager-function/src/main/java/org/apache/james/transport/LinearProcessor.java Sun Jan 3 14:07:41 2010
@@ -30,6 +30,7 @@
import java.util.List;
import java.util.Locale;
+import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import javax.mail.MessagingException;
@@ -117,6 +118,8 @@
private Log logger;
+ private HierarchicalConfiguration processorConf;
+
/**
* Set the spool to be used by this LinearProcessor.
*
@@ -566,10 +569,15 @@
mailets = new ArrayList<Mailet>();
}
- @SuppressWarnings("unchecked")
public void configure(HierarchicalConfiguration processorConf) throws ConfigurationException {
+ this.processorConf = processorConf;
+ }
+
+ @SuppressWarnings("unchecked")
+ @PostConstruct
+ public void init() throws Exception {
openProcessorList();
-
+
final List<HierarchicalConfiguration> mailetConfs
= processorConf.configurationsAt( "mailet" );
// Loop through the mailet configuration, load
@@ -670,7 +678,6 @@
// able to service mails until this call is made.
closeProcessorLists();
}
-
/**
* @see org.apache.james.transport.MailetContainer#getMailetConfigs()
*/
Modified: james/server/sandbox/active/pure_spring_deployment/spoolmanager-function/src/main/java/org/apache/james/transport/StateAwareProcessorList.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/spoolmanager-function/src/main/java/org/apache/james/transport/StateAwareProcessorList.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/spoolmanager-function/src/main/java/org/apache/james/transport/StateAwareProcessorList.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/spoolmanager-function/src/main/java/org/apache/james/transport/StateAwareProcessorList.java Sun Jan 3 14:07:41 2010
@@ -37,7 +37,6 @@
import org.apache.james.api.kernel.LoaderService;
import org.apache.james.lifecycle.Configurable;
import org.apache.james.lifecycle.LogEnabled;
-import org.apache.james.services.SpoolRepository;
import org.apache.mailet.Mail;
import org.apache.mailet.MailetException;
@@ -57,12 +56,6 @@
private HierarchicalConfiguration config;
- private MailetLoader mailetLoader;
-
- private MatcherLoader matcherLoader;
-
- private SpoolRepository spoolRepos;
-
private LoaderService loader;
public StateAwareProcessorList() {
@@ -75,26 +68,12 @@
this.logger = logger;
}
-
- @Resource(name="mailetpackages")
- public final void setMailetLoader(MailetLoader mailetLoader) {
- this.mailetLoader = mailetLoader;
- }
-
- @Resource(name="matcherpackages")
- public final void setMatcherLoader(MatcherLoader matcherLoader) {
- this.matcherLoader = matcherLoader;
- }
-
- @Resource(name="spoolrepository")
- public final void setSpoolRepository(SpoolRepository spoolRepos) {
- this.spoolRepos = spoolRepos;
- }
@Resource(name="org.apache.james.LoaderService")
public final void setLoaderService(LoaderService loader) {
this.loader = loader;
}
+
/**
* @see org.apache.avalon.framework.activity.Initializable#initialize()
*/
@@ -115,10 +94,7 @@
processors.put(processorName, processor);
- //setupLogger(processor, processorName);
- //ContainerUtil.service(processor, compMgr);
- //ContainerUtil.configure(processor, processorConf);
-
+
if (logger.isInfoEnabled()) {
StringBuffer infoBuffer =
new StringBuffer(64)
Modified: james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/config/james/log4j.properties
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/config/james/log4j.properties?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/config/james/log4j.properties (original)
+++ james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/config/james/log4j.properties Sun Jan 3 14:07:41 2010
@@ -30,6 +30,6 @@
log4j.logger.org.springframework=WARN, CONS, FILE
log4j.logger.org.apache.james=DEBUG, CONS, FILE
#log4j.logger.james: set from default value WARN to INFO or even DEBUG to see (even) more logging
-log4j.logger.james=WARN, CONS, FILE
+log4j.logger.james=DEBUG, CONS, FILE
log4j.logger=DEBUG, CONS, FILE
Modified: james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/config/james/spring-beans.xml
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/config/james/spring-beans.xml?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/config/james/spring-beans.xml (original)
+++ james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/config/james/spring-beans.xml Sun Jan 3 14:07:41 2010
@@ -19,22 +19,6 @@
<beans>
-
-
- <!--
- Logging to log4j <bean id="logger"
- class="org.apache.james.container.spring.logging.log4j.LoggerToComponentMapper"
- init-method="init"> <property name="configurationResource"
- value="log4j.properties"/> </bean> Logging to System.out
- -->
- <!--
- <bean name="logWorker"
- class="org.apache.james.container.spring.logging.SystemConsoleLogWorker"
- /> <bean name="logger, loggerMap"
- class="org.apache.james.container.spring.adaptor.LoggingBridge" >
- <property name="logWorker" ref="logWorker" /> </bean>
- -->
-
<!--
replaces strings in configuration values <bean
id="stringRemapperConfigurationInterceptor"
@@ -92,29 +76,6 @@
/> </bean>
-->
- <!--
- beans managing bootstrapping and component lifecycle <bean
- id="loggerPropagator"
- class="org.apache.james.container.spring.lifecycle.LoggerPropagator" >
- <property name="loggerFactory" ref="logger"/> </bean> <bean
- id="contextPropagator"
- class="org.apache.james.container.spring.lifecycle.ContextPropagator"
- > <property name="context" ref="avalonContext"/> </bean> <bean
- id="servicePropagator"
- class="org.apache.james.container.spring.lifecycle.ServicePropagator"
- > <property name="serviceManagerFactory" ref="serviceManager"/>
- </bean> <bean id="configurationManager"
- class="org.apache.james.container.spring.lifecycle.ConfigurationPropagator"
- > <property name="configurationProvider" ref="configurationProvider"/>
- </bean> <bean id="initializationManager"
- class="org.apache.james.container.spring.lifecycle.InitializationPropagator"
- />
- -->
-
-
-
-
-
<bean
class="org.apache.james.container.spring.lifecycle.AvalonServiceableBeanPostProcessor">
<property name="order" value="2" />
@@ -291,10 +252,8 @@
class="org.apache.james.container.spring.adaptor.FileSystemBridge" />
<!-- The VirtualUserTable Management block -->
- <!--
- <bean id="virtualusertablemanagement"
- class="org.apache.james.impl.vut.VirtualUserTableManagementService" />
- -->
+ <bean id="virtualusertablemanagementservice"
+ class="org.apache.james.impl.vut.VirtualUserTableManagement" />
<!-- VirtualUserTable Store -->
<bean id="virtualusertable-store" class="org.apache.james.core.VirtualUserTableStoreImpl" />
Modified: james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/java/org/apache/james/container/spring/lifecycle/AvalonInitializableBeanPostProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/java/org/apache/james/container/spring/lifecycle/AvalonInitializableBeanPostProcessor.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/java/org/apache/james/container/spring/lifecycle/AvalonInitializableBeanPostProcessor.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/java/org/apache/james/container/spring/lifecycle/AvalonInitializableBeanPostProcessor.java Sun Jan 3 14:07:41 2010
@@ -31,6 +31,7 @@
@Override
protected void executeLifecycleMethodAfterInit(Initializable bean,
String beanname, String lifecyclename) throws Exception {
+ System.out.println("BEAN=" + beanname + ".initialize()");
bean.initialize();
}
@@ -39,8 +40,4 @@
return Initializable.class;
}
- public int getOrder() {
- return 4;
- }
-
}
Modified: james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/java/org/apache/james/container/spring/lifecycle/CommonsConfigurableBeanPostProcessor.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/java/org/apache/james/container/spring/lifecycle/CommonsConfigurableBeanPostProcessor.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/java/org/apache/james/container/spring/lifecycle/CommonsConfigurableBeanPostProcessor.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/java/org/apache/james/container/spring/lifecycle/CommonsConfigurableBeanPostProcessor.java Sun Jan 3 14:07:41 2010
@@ -36,7 +36,9 @@
protected void executeLifecycleMethodBeforeInit(Configurable bean, String beanname,
String lifecyclename) throws Exception {
HierarchicalConfiguration beanConfig = provider.getConfigurationForComponent(lifecyclename);
- bean.configure(beanConfig);
+ if(beanConfig != null) {
+ bean.configure(beanConfig);
+ }
}
Modified: james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/java/org/apache/james/container/spring/lifecycle/JSR250LoaderService.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/java/org/apache/james/container/spring/lifecycle/JSR250LoaderService.java?rev=895393&r1=895392&r2=895393&view=diff
==============================================================================
--- james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/java/org/apache/james/container/spring/lifecycle/JSR250LoaderService.java (original)
+++ james/server/sandbox/active/pure_spring_deployment/spring-deployment/src/main/java/org/apache/james/container/spring/lifecycle/JSR250LoaderService.java Sun Jan 3 14:07:41 2010
@@ -18,6 +18,12 @@
****************************************************************/
package org.apache.james.container.spring.lifecycle;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+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;
@@ -25,8 +31,6 @@
import org.apache.james.lifecycle.Configurable;
import org.apache.james.lifecycle.LogEnabled;
import org.springframework.beans.BeansException;
-import org.springframework.beans.FatalBeanException;
-import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ConfigurableApplicationContext;
@@ -38,16 +42,70 @@
*
*
*/
-@SuppressWarnings("unused")
-public class JSR250LoaderService extends CommonAnnotationBeanPostProcessor implements LoaderService {
+@SuppressWarnings("serial")
+public class JSR250LoaderService extends CommonAnnotationBeanPostProcessor implements LoaderService, ApplicationContextAware {
- /*
+ private ConfigurableApplicationContext applicationContext;
+
+ /*
* (non-Javadoc)
* @see org.apache.james.api.kernel.LoaderService#injectDependencies(java.lang.Object)
*/
public void injectDependencies(Object obj) {
- postProcessAfterInitialization(obj, obj.getClass().getName());
- }
+ try {
+ injectResources(obj);
+ postConstruct(obj);
+ } catch (IllegalAccessException e) {
+ throw new RuntimeException("Unable to handle dependency injection of object " + obj, e);
+ } catch (InvocationTargetException e) {
+ throw new RuntimeException("Unable to handle dependency injection of object " + obj, e);
+ }
+ }
+
+
+ private void postConstruct(Object resource) throws IllegalAccessException,
+ InvocationTargetException {
+ Method[] methods = resource.getClass().getMethods();
+ for (Method method : methods) {
+ PostConstruct postConstructAnnotation = method
+ .getAnnotation(PostConstruct.class);
+ if (postConstructAnnotation != null) {
+ Object[] args = {};
+ method.invoke(resource, args);
+
+ }
+ }
+ }
+
+ private void injectResources(Object resource) {
+ final Method[] methods = resource.getClass().getMethods();
+ for (Method method : methods) {
+ final Resource resourceAnnotation = method.getAnnotation(Resource.class);
+ if (resourceAnnotation != null) {
+ final String name = resourceAnnotation.name();
+ if (name == null) {
+ // Unsupported
+ } else {
+ // Name indicates a service
+ final Object service = applicationContext.getBean(name);
+
+ if (service == null) {
+ } else {
+ try {
+ Object[] args = {service};
+ method.invoke(resource, args);
+ } catch (IllegalAccessException e) {
+ throw new RuntimeException("Injection failed for object " + resource + " on method " + method + " with resource " + service, e);
+ } catch (IllegalArgumentException e) {
+ throw new RuntimeException("Injection failed for object " + resource + " on method " + method + " with resource " + service, e);
+ } catch (InvocationTargetException e) {
+ throw new RuntimeException("Injection failed for object " + resource + " on method " + method + " with resource " + service, e);
+ }
+ }
+ }
+ }
+ }
+ }
/*
* (non-Javadoc)
@@ -67,4 +125,8 @@
}
injectDependencies(obj);
}
+
+ public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+ this.applicationContext = (ConfigurableApplicationContext) applicationContext;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org