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 er...@apache.org on 2010/12/20 08:42:57 UTC
svn commit: r1051009 - in /james/server/trunk:
container-spring/src/main/java/org/apache/james/container/spring/bean/
container-spring/src/main/java/org/apache/james/container/spring/bean/factory/
container-spring/src/main/java/org/apache/james/contain...
Author: eric
Date: Mon Dec 20 07:42:56 2010
New Revision: 1051009
URL: http://svn.apache.org/viewvc?rev=1051009&view=rev
Log:
Attempt to repackage container-spring project
Added:
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/filesystem/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/filesystem/FileSystemBeanFactory.java
- copied, changed from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/resolver/spring/SpringFileSystem.java
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailetcontainer/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailetcontainer/MailetLoaderBeanFactory.java
- copied, changed from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/mailetcontainer/spring/BeanFactoryMailetLoader.java
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailetcontainer/MatcherLoaderBeanFactory.java
- copied, changed from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/mailetcontainer/spring/BeanFactoryMatcherLoader.java
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java (with props)
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/protocolhandlerchain/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/protocolhandlerchain/ProtocolHandlerChainBeanFactory.java
- copied, changed from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/protocols/spring/BeanFactoryProtocolHandlerChain.java
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/configuration/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/configuration/ConfigurationBeanFactoryPostProcessor.java
- copied, changed from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/config/JamesLoaderBeanFactoryPostProcessor.java
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/filesystem/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/filesystem/FileSystemBeanFactoryPostProcessor.java
- copied, changed from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/config/FileSystemResolver.java
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/AbstractLifeCycleBeanPostProcessor.java
- copied, changed from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/AbstractLifeCycleBeanPostProcessor.java
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/configurable/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/configurable/ConfigurableBeanPostProcessor.java
- copied, changed from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/CommonsConfigurableBeanPostProcessor.java
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/configurable/provider/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/configurable/provider/ConfigurationProvider.java
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/configurable/provider/ConfigurationProviderImpl.java
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/logenabled/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/logenabled/LogEnabledBeanPostProcessor.java
- copied, changed from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/LogEnabledBeanPostProcessor.java
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/logenabled/provider/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/logenabled/provider/LogProvider.java
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/logenabled/provider/LogProviderImpl.java
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/resource/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/resource/AbstractJamesResourceLoader.java
- copied, changed from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/AbstractJamesResourceLoader.java
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/resource/JamesResourceLoader.java
- copied, changed from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/JamesResourceLoader.java
Removed:
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/config/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/AbstractJamesResourceLoader.java
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/JamesResourceLoader.java
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/provider/api/
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/provider/impl/
james/server/trunk/container-spring/src/main/java/org/apache/james/mailetcontainer/spring/
james/server/trunk/container-spring/src/main/java/org/apache/james/mailrepository/spring/
james/server/trunk/container-spring/src/main/java/org/apache/james/protocols/spring/
james/server/trunk/container-spring/src/main/java/org/apache/james/resolver/spring/
Modified:
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/JamesServerApplicationContext.java
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/web/JamesServerWebApplicationContext.java
james/server/trunk/osgi/src/main/java/org/apache/james/container/osgi/JamesOsgiBeanFactoryPostProcessor.java
james/server/trunk/osgi/src/main/java/org/apache/james/container/osgi/OsgiConfigurationProvider.java
james/server/trunk/osgi/src/main/java/org/apache/james/container/osgi/OsgiLogProvider.java
Copied: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/filesystem/FileSystemBeanFactory.java (from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/resolver/spring/SpringFileSystem.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/filesystem/FileSystemBeanFactory.java?p2=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/filesystem/FileSystemBeanFactory.java&p1=james/server/trunk/container-spring/src/main/java/org/apache/james/resolver/spring/SpringFileSystem.java&r1=1051006&r2=1051009&rev=1051009&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/resolver/spring/SpringFileSystem.java (original)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/filesystem/FileSystemBeanFactory.java Mon Dec 20 07:42:56 2010
@@ -16,9 +16,9 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.resolver.spring;
+package org.apache.james.container.spring.bean.factory.filesystem;
-import org.apache.james.container.spring.context.JamesResourceLoader;
+import org.apache.james.container.spring.resource.JamesResourceLoader;
import org.apache.james.resolver.api.FileSystem;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
@@ -34,7 +34,7 @@ import java.io.InputStream;
* resources
*
*/
-public class SpringFileSystem implements FileSystem, ApplicationContextAware {
+public class FileSystemBeanFactory implements FileSystem, ApplicationContextAware {
private JamesResourceLoader resourceLoader = null;
Copied: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailetcontainer/MailetLoaderBeanFactory.java (from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/mailetcontainer/spring/BeanFactoryMailetLoader.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailetcontainer/MailetLoaderBeanFactory.java?p2=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailetcontainer/MailetLoaderBeanFactory.java&p1=james/server/trunk/container-spring/src/main/java/org/apache/james/mailetcontainer/spring/BeanFactoryMailetLoader.java&r1=1051006&r2=1051009&rev=1051009&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/mailetcontainer/spring/BeanFactoryMailetLoader.java (original)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailetcontainer/MailetLoaderBeanFactory.java Mon Dec 20 07:42:56 2010
@@ -18,7 +18,7 @@
****************************************************************/
-package org.apache.james.mailetcontainer.spring;
+package org.apache.james.container.spring.bean.factory.mailetcontainer;
import javax.mail.MessagingException;
import org.apache.james.mailetcontainer.api.MailetLoader;
@@ -35,7 +35,7 @@ import org.springframework.beans.factory
* The Mailets are not registered in the factory after loading them!
*
*/
-public class BeanFactoryMailetLoader implements MailetLoader, BeanFactoryAware {
+public class MailetLoaderBeanFactory implements MailetLoader, BeanFactoryAware {
private ConfigurableListableBeanFactory beanFactory;
Copied: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailetcontainer/MatcherLoaderBeanFactory.java (from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/mailetcontainer/spring/BeanFactoryMatcherLoader.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailetcontainer/MatcherLoaderBeanFactory.java?p2=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailetcontainer/MatcherLoaderBeanFactory.java&p1=james/server/trunk/container-spring/src/main/java/org/apache/james/mailetcontainer/spring/BeanFactoryMatcherLoader.java&r1=1051006&r2=1051009&rev=1051009&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/mailetcontainer/spring/BeanFactoryMatcherLoader.java (original)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailetcontainer/MatcherLoaderBeanFactory.java Mon Dec 20 07:42:56 2010
@@ -19,7 +19,7 @@
-package org.apache.james.mailetcontainer.spring;
+package org.apache.james.container.spring.bean.factory.mailetcontainer;
import javax.mail.MessagingException;
import org.apache.james.mailetcontainer.api.MatcherLoader;
@@ -37,7 +37,7 @@ import org.springframework.beans.factory
* The Matchers are not registered in the factory after loading them!
*
*/
-public class BeanFactoryMatcherLoader implements MatcherLoader, BeanFactoryAware {
+public class MatcherLoaderBeanFactory implements MatcherLoader, BeanFactoryAware {
private ConfigurableListableBeanFactory beanFactory;
Added: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java?rev=1051009&view=auto
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java (added)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java Mon Dec 20 07:42:56 2010
@@ -0,0 +1,278 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+
+
+package org.apache.james.container.spring.bean.factory.mailrepositorystore;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+
+import org.apache.commons.collections.map.ReferenceMap;
+import org.apache.commons.configuration.CombinedConfiguration;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.DefaultConfigurationBuilder;
+import org.apache.commons.configuration.HierarchicalConfiguration;
+import org.apache.commons.logging.Log;
+import org.apache.james.lifecycle.api.Configurable;
+import org.apache.james.lifecycle.api.LogEnabled;
+import org.apache.james.mailrepository.api.MailRepository;
+import org.apache.james.mailrepository.api.MailRepositoryStore;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.beans.factory.BeanFactoryAware;
+import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
+
+/**
+ * Provides a registry of mail repositories. A mail repository is uniquely
+ * identified by its destinationURL, type and model.
+ *
+ */
+public class MailRepositoryStoreBeanFactory implements MailRepositoryStore, LogEnabled, Configurable, BeanFactoryAware {
+
+
+ // map of [destinationURL + type]->Repository
+ private Map<String, MailRepository> repositories;
+
+ // map of [protocol(destinationURL) + type ]->classname of repository;
+ private Map<String,String> classes;
+
+ // map of [protocol(destinationURL) + type ]->default config for repository.
+ private Map<String,HierarchicalConfiguration> defaultConfigs;
+
+ /**
+ * The Avalon configuration used by the instance
+ */
+ private HierarchicalConfiguration configuration;
+
+ private Log logger;
+
+ private ConfigurableListableBeanFactory beanFactory;
+
+ public void setLog(Log logger) {
+ this.logger = logger;
+ }
+
+ protected Log getLogger() {
+ return logger;
+ }
+
+ public void configure(HierarchicalConfiguration configuration) throws ConfigurationException{
+ this.configuration = configuration;
+ }
+
+
+ @PostConstruct
+ @SuppressWarnings("unchecked")
+ public void init()
+ throws Exception {
+
+ getLogger().info("JamesMailStore init...");
+
+ repositories = new ReferenceMap();
+ classes = new HashMap<String,String>();
+ defaultConfigs = new HashMap<String, HierarchicalConfiguration>();
+ List<HierarchicalConfiguration> registeredClasses
+ = configuration.configurationsAt("mailrepositories.mailrepository");
+ for ( int i = 0; i < registeredClasses.size(); i++ )
+ {
+ registerRepository(registeredClasses.get(i));
+ }
+
+ }
+
+ /**
+ * <p>Registers a new mail repository type in the mail store's
+ * registry based upon a passed in <code>Configuration</code> object.</p>
+ *
+ * <p>This is presumably synchronized to prevent corruption of the
+ * internal registry.</p>
+ *
+ * @param repConf the Configuration object used to register the
+ * repository
+ *
+ * @throws ConfigurationException if an error occurs accessing the
+ * Configuration object
+ */
+ @SuppressWarnings("unchecked")
+ public synchronized void registerRepository(HierarchicalConfiguration repConf)
+ throws ConfigurationException {
+ String className = repConf.getString("[@class]");
+ boolean infoEnabled = getLogger().isInfoEnabled();
+ List<String> protocols = repConf.getList("protocols.protocol");
+
+ for ( int i = 0; i < protocols.size(); i++ )
+ {
+ String protocol = protocols.get(i);
+
+ HierarchicalConfiguration defConf = null;
+
+ if (repConf.getKeys("config").hasNext()) {
+ // Get the default configuration for these protocol/type combinations.
+ defConf = repConf.configurationAt("config");
+ }
+
+ String key = protocol ;
+ if (infoEnabled) {
+ StringBuffer infoBuffer =
+ new StringBuffer(128)
+ .append("Registering Repository instance of class ")
+ .append(className)
+ .append(" to handle ")
+ .append(protocol)
+ .append(" protocol requests for repositories with key ")
+ .append(key);
+ getLogger().info(infoBuffer.toString());
+ }
+ if (classes.get(key) != null) {
+ throw new ConfigurationException("The combination of protocol and type comprise a unique key for repositories. This constraint has been violated. Please check your repository configuration.");
+ }
+ classes.put(key, className);
+ if (defConf != null) {
+ defaultConfigs.put(key, defConf);
+ }
+ }
+
+ }
+
+ /**
+ * This method accept a Configuration object as hint and return the
+ * corresponding MailRepository.
+ * The Configuration must be in the form of:
+ * <repository destinationURL="[URL of this mail repository]"
+ * type="[repository type ex. OBJECT or STREAM or MAIL etc.]"
+ * model="[repository model ex. PERSISTENT or CACHE etc.]">
+ * [addition configuration]
+ * </repository>
+ *
+ * @param hint the Configuration object used to look up the repository
+ *
+ * @return the selected repository
+ *
+ * @throws ServiceException if any error occurs while parsing the
+ * Configuration or retrieving the
+ * MailRepository
+ */
+ public synchronized MailRepository select(String destination) throws MailRepostoryStoreException {
+
+ String protocol = null;
+
+ int idx = destination.indexOf(':');
+ if ( idx == -1 )
+ throw new MailRepostoryStoreException("Destination is malformed. Must be a valid URL: "
+ + destination);
+ protocol = destination.substring(0,idx);
+
+
+ String repID = destination;
+ MailRepository reply = repositories.get(repID);
+ StringBuffer logBuffer = null;
+ if (reply != null) {
+ if (getLogger().isDebugEnabled()) {
+ logBuffer =
+ new StringBuffer(128)
+ .append("obtained repository: ")
+ .append(repID)
+ .append(",")
+ .append(reply.getClass());
+ getLogger().debug(logBuffer.toString());
+ }
+ return reply;
+ } else {
+ String key = protocol;
+ String repClass = (String) classes.get( key );
+ if (getLogger().isDebugEnabled()) {
+ logBuffer =
+ new StringBuffer(128)
+ .append("obtained repository: ")
+ .append(repClass)
+ .append(" to handle: ")
+ .append(protocol)
+ .append(" with key ")
+ .append(key);
+ getLogger().debug( logBuffer.toString() );
+ }
+
+ // If default values have been set, create a new repository
+ // configuration element using the default values
+ // and the values in the selector.
+ // If no default values, just use the selector.
+ final CombinedConfiguration config = new CombinedConfiguration();
+ HierarchicalConfiguration defConf = defaultConfigs.get(key);
+ if ( defConf != null) {
+ config.addConfiguration(defConf);
+ }
+ DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
+ builder.addProperty("[@destinationURL]", destination);
+ config.addConfiguration(builder);
+
+ try {
+ // Use the classloader which is used for bean instance stuff
+ Class<MailRepository> clazz = (Class<MailRepository>) beanFactory.getBeanClassLoader().loadClass(repClass);
+ reply = (MailRepository) beanFactory.autowire(clazz, ConfigurableListableBeanFactory.AUTOWIRE_NO, false);
+
+ if (reply instanceof LogEnabled) {
+ ((LogEnabled) reply).setLog(logger);
+ }
+
+ if (reply instanceof Configurable) {
+ ((Configurable) reply).configure(config);
+ }
+
+ reply = (MailRepository) beanFactory.initializeBean(reply, key);
+
+
+ repositories.put(repID, reply);
+ if (getLogger().isInfoEnabled()) {
+ logBuffer =
+ new StringBuffer(128)
+ .append("added repository: ")
+ .append(repID)
+ .append("->")
+ .append(repClass);
+ getLogger().info(logBuffer.toString());
+ }
+ return reply;
+ } catch (Exception e) {
+ if (getLogger().isWarnEnabled()) {
+ getLogger().warn( "Exception while creating repository:" +
+ e.getMessage(), e );
+ }
+ throw new MailRepostoryStoreException("Cannot find or init repository", e);
+ }
+ }
+
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.james.mailstore.api.MailStore#getUrls()
+ */
+ public synchronized List<String> getUrls() {
+ return new ArrayList<String>(repositories.keySet());
+ }
+
+ public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
+ this.beanFactory = (ConfigurableListableBeanFactory) beanFactory;
+ }
+}
Propchange: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java
------------------------------------------------------------------------------
cvs2svn:cvs-rev = 1.17.4.4
Propchange: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/protocolhandlerchain/ProtocolHandlerChainBeanFactory.java (from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/protocols/spring/BeanFactoryProtocolHandlerChain.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/protocolhandlerchain/ProtocolHandlerChainBeanFactory.java?p2=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/protocolhandlerchain/ProtocolHandlerChainBeanFactory.java&p1=james/server/trunk/container-spring/src/main/java/org/apache/james/protocols/spring/BeanFactoryProtocolHandlerChain.java&r1=1051006&r2=1051009&rev=1051009&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/protocols/spring/BeanFactoryProtocolHandlerChain.java (original)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factory/protocolhandlerchain/ProtocolHandlerChainBeanFactory.java Mon Dec 20 07:42:56 2010
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.protocols.spring;
+package org.apache.james.container.spring.bean.factory.protocolhandlerchain;
import java.util.Iterator;
import java.util.LinkedList;
@@ -28,8 +28,8 @@ import org.apache.commons.configuration.
import org.apache.commons.configuration.DefaultConfigurationBuilder;
import org.apache.commons.configuration.HierarchicalConfiguration;
import org.apache.commons.logging.Log;
-import org.apache.james.container.spring.provider.api.ConfigurationProvider;
-import org.apache.james.container.spring.provider.api.LogProvider;
+import org.apache.james.container.spring.bean.postprocessor.configurable.provider.ConfigurationProvider;
+import org.apache.james.container.spring.bean.postprocessor.logenabled.provider.LogProvider;
import org.apache.james.protocols.api.ExtensibleHandler;
import org.apache.james.protocols.api.HandlersPackage;
import org.apache.james.protocols.api.ProtocolHandlerChain;
@@ -54,7 +54,7 @@ import org.springframework.beans.factory
*
*/
@SuppressWarnings("unchecked")
-public class BeanFactoryProtocolHandlerChain implements ProtocolHandlerChain, BeanFactoryPostProcessor, BeanPostProcessor {
+public class ProtocolHandlerChainBeanFactory implements ProtocolHandlerChain, BeanFactoryPostProcessor, BeanPostProcessor {
private String coreHandlersPackage;
private List<String> handlers = new LinkedList<String>();
Copied: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/configuration/ConfigurationBeanFactoryPostProcessor.java (from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/config/JamesLoaderBeanFactoryPostProcessor.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/configuration/ConfigurationBeanFactoryPostProcessor.java?p2=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/configuration/ConfigurationBeanFactoryPostProcessor.java&p1=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/config/JamesLoaderBeanFactoryPostProcessor.java&r1=1051006&r2=1051009&rev=1051009&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/config/JamesLoaderBeanFactoryPostProcessor.java (original)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/configuration/ConfigurationBeanFactoryPostProcessor.java Mon Dec 20 07:42:56 2010
@@ -16,14 +16,14 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.container.spring.config;
+package org.apache.james.container.spring.bean.factorypostprocessor.configuration;
import java.util.Iterator;
import java.util.Map;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.HierarchicalConfiguration;
-import org.apache.james.container.spring.provider.api.ConfigurationProvider;
+import org.apache.james.container.spring.bean.postprocessor.configurable.provider.ConfigurationProvider;
import org.springframework.beans.BeansException;
import org.springframework.beans.FatalBeanException;
import org.springframework.beans.factory.config.BeanDefinition;
@@ -42,7 +42,7 @@ import org.springframework.beans.factory
* If you don't need to register an alias just us an empty value.
*
*/
-public class JamesLoaderBeanFactoryPostProcessor implements BeanFactoryPostProcessor {
+public class ConfigurationBeanFactoryPostProcessor implements BeanFactoryPostProcessor {
private Map<String, String> beans;
Copied: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/filesystem/FileSystemBeanFactoryPostProcessor.java (from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/config/FileSystemResolver.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/filesystem/FileSystemBeanFactoryPostProcessor.java?p2=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/filesystem/FileSystemBeanFactoryPostProcessor.java&p1=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/config/FileSystemResolver.java&r1=1051006&r2=1051009&rev=1051009&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/config/FileSystemResolver.java (original)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/filesystem/FileSystemBeanFactoryPostProcessor.java Mon Dec 20 07:42:56 2010
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.container.spring.config;
+package org.apache.james.container.spring.bean.factorypostprocessor.filesystem;
import java.io.FileNotFoundException;
@@ -34,7 +34,7 @@ import org.springframework.beans.factory
* prefixed with {@link #FS_PREFIX}. If such a property is found it will try to resolve the given path via the {@link FileSystem} service
* and replace it.
*/
-public class FileSystemResolver implements BeanFactoryPostProcessor{
+public class FileSystemBeanFactoryPostProcessor implements BeanFactoryPostProcessor{
private static final String FS_PREFIX ="filesystem=";
Copied: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/AbstractLifeCycleBeanPostProcessor.java (from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/AbstractLifeCycleBeanPostProcessor.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/AbstractLifeCycleBeanPostProcessor.java?p2=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/AbstractLifeCycleBeanPostProcessor.java&p1=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/AbstractLifeCycleBeanPostProcessor.java&r1=1051006&r2=1051009&rev=1051009&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/AbstractLifeCycleBeanPostProcessor.java (original)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/AbstractLifeCycleBeanPostProcessor.java Mon Dec 20 07:42:56 2010
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.container.spring.lifecycle;
+package org.apache.james.container.spring.bean.postprocessor;
import org.springframework.beans.BeansException;
import org.springframework.beans.FatalBeanException;
Copied: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/configurable/ConfigurableBeanPostProcessor.java (from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/CommonsConfigurableBeanPostProcessor.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/configurable/ConfigurableBeanPostProcessor.java?p2=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/configurable/ConfigurableBeanPostProcessor.java&p1=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/CommonsConfigurableBeanPostProcessor.java&r1=1051006&r2=1051009&rev=1051009&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/CommonsConfigurableBeanPostProcessor.java (original)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/configurable/ConfigurableBeanPostProcessor.java Mon Dec 20 07:42:56 2010
@@ -16,10 +16,11 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.container.spring.lifecycle;
+package org.apache.james.container.spring.bean.postprocessor.configurable;
import org.apache.commons.configuration.HierarchicalConfiguration;
-import org.apache.james.container.spring.provider.api.ConfigurationProvider;
+import org.apache.james.container.spring.bean.postprocessor.AbstractLifeCycleBeanPostProcessor;
+import org.apache.james.container.spring.bean.postprocessor.configurable.provider.ConfigurationProvider;
import org.apache.james.lifecycle.api.Configurable;
/**
@@ -27,7 +28,7 @@ import org.apache.james.lifecycle.api.Co
*
*
*/
-public class CommonsConfigurableBeanPostProcessor extends AbstractLifeCycleBeanPostProcessor<Configurable> {
+public class ConfigurableBeanPostProcessor extends AbstractLifeCycleBeanPostProcessor<Configurable> {
private ConfigurationProvider provider;
Added: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/configurable/provider/ConfigurationProvider.java
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/configurable/provider/ConfigurationProvider.java?rev=1051009&view=auto
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/configurable/provider/ConfigurationProvider.java (added)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/configurable/provider/ConfigurationProvider.java Mon Dec 20 07:42:56 2010
@@ -0,0 +1,47 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+package org.apache.james.container.spring.bean.postprocessor.configurable.provider;
+
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.HierarchicalConfiguration;
+
+/**
+ * Load {@link HierarchicalConfiguration} for beans
+ *
+ *
+ */
+public interface ConfigurationProvider {
+
+ /**
+ * Load the configuration for the bean with the given name
+ *
+ * @param beanName
+ * @return config
+ * @throws ConfigurationException
+ */
+ public HierarchicalConfiguration getConfiguration(String beanName) throws ConfigurationException;
+
+ /**
+ * Register a {@link HierarchicalConfiguration} for a bean name
+ *
+ * @param beanName
+ * @param conf
+ */
+ public void registerConfiguration(String beanName, HierarchicalConfiguration conf);
+}
Added: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/configurable/provider/ConfigurationProviderImpl.java
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/configurable/provider/ConfigurationProviderImpl.java?rev=1051009&view=auto
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/configurable/provider/ConfigurationProviderImpl.java (added)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/configurable/provider/ConfigurationProviderImpl.java Mon Dec 20 07:42:56 2010
@@ -0,0 +1,134 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+package org.apache.james.container.spring.bean.postprocessor.configurable.provider;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.HierarchicalConfiguration;
+import org.apache.commons.configuration.XMLConfiguration;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.context.ResourceLoaderAware;
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.ResourceLoader;
+
+/**
+ * Load Configuration and act as provider
+ *
+ *
+ */
+public class ConfigurationProviderImpl implements ConfigurationProvider, ResourceLoaderAware, InitializingBean {
+
+ private ResourceLoader loader;
+ private Map<String, HierarchicalConfiguration> confMap = new HashMap<String, HierarchicalConfiguration>();
+ private Map<String, String> resources;
+
+ /**
+ * Return the configuration prefix to load the config. In this case its
+ * file://conf/
+ *
+ * @return prefix
+ */
+ protected String getConfigPrefix() {
+ return "file://conf/";
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.springframework.context.ResourceLoaderAware#setResourceLoader(org
+ * .springframework.core.io.ResourceLoader)
+ */
+ public void setResourceLoader(ResourceLoader loader) {
+ this.loader = loader;
+ }
+
+ private XMLConfiguration getConfig(Resource r) throws ConfigurationException, IOException {
+ XMLConfiguration config = new XMLConfiguration();
+ config.setDelimiterParsingDisabled(true);
+
+ // Use InputStream so we are not bound to File implementations of the config
+ config.load(r.getInputStream());
+ return config;
+ }
+
+ public void setConfigurationMappings(Map<String,String> resources) {
+ this.resources = resources;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.james.container.spring.Registry#registerForComponent(java.lang.String, java.lang.Object)
+ */
+ public void registerForComponent(String name, HierarchicalConfiguration conf) {
+ confMap.put(name, conf);
+ }
+
+
+
+ /*
+ * (non-Javadoc)
+ * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()
+ */
+ public void afterPropertiesSet() throws Exception {
+ if (resources != null) {
+ Iterator<String> it = resources.keySet().iterator();
+
+ while (it.hasNext()) {
+ String key = it.next();
+ String value = resources.get(key);
+ registerConfiguration(key,getConfiguration(value));
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.james.container.spring.lifecycle.ConfigurationProvider#getConfiguration(java.lang.String)
+ */
+ public HierarchicalConfiguration getConfiguration(String name) throws ConfigurationException {
+ HierarchicalConfiguration conf = confMap.get(name);
+ if (conf != null) {
+ return conf;
+ } else {
+ Resource r = loader.getResource(getConfigPrefix()+ name + ".xml");
+ if (r.exists()) {
+ try {
+ return getConfig(r);
+ } catch (Exception e) {
+ throw new ConfigurationException("Unable to load configuration for component " + name, e);
+ }
+ }
+ }
+ throw new ConfigurationException("Unable to load configuration for component " + name);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.james.container.spring.lifecycle.ConfigurationProvider#registerConfiguration(java.lang.String, org.apache.commons.configuration.HierarchicalConfiguration)
+ */
+ public void registerConfiguration(String beanName, HierarchicalConfiguration conf) {
+ confMap.put(beanName,conf);
+ }
+
+}
Copied: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/logenabled/LogEnabledBeanPostProcessor.java (from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/LogEnabledBeanPostProcessor.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/logenabled/LogEnabledBeanPostProcessor.java?p2=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/logenabled/LogEnabledBeanPostProcessor.java&p1=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/LogEnabledBeanPostProcessor.java&r1=1051006&r2=1051009&rev=1051009&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/lifecycle/LogEnabledBeanPostProcessor.java (original)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/logenabled/LogEnabledBeanPostProcessor.java Mon Dec 20 07:42:56 2010
@@ -16,9 +16,10 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.container.spring.lifecycle;
+package org.apache.james.container.spring.bean.postprocessor.logenabled;
-import org.apache.james.container.spring.provider.api.LogProvider;
+import org.apache.james.container.spring.bean.postprocessor.AbstractLifeCycleBeanPostProcessor;
+import org.apache.james.container.spring.bean.postprocessor.logenabled.provider.LogProvider;
import org.apache.james.lifecycle.api.LogEnabled;
/**
Added: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/logenabled/provider/LogProvider.java
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/logenabled/provider/LogProvider.java?rev=1051009&view=auto
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/logenabled/provider/LogProvider.java (added)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/logenabled/provider/LogProvider.java Mon Dec 20 07:42:56 2010
@@ -0,0 +1,45 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+package org.apache.james.container.spring.bean.postprocessor.logenabled.provider;
+
+import org.apache.commons.logging.Log;
+
+/**
+ * Provide {@link Log} instances for Beans
+ *
+ *
+ */
+public interface LogProvider {
+
+ /**
+ * Return the Log for the bean with the given name
+ *
+ * @param name
+ * @return log
+ */
+ public Log getLog(String beanName);
+
+ /**
+ * Register a {@link Log} for a beanName. The registered Log will get returned by {@link #getLog(String)}
+ *
+ * @param beanName
+ * @param log
+ */
+ public void registerLog(String beanName, Log log);
+}
Added: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/logenabled/provider/LogProviderImpl.java
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/logenabled/provider/LogProviderImpl.java?rev=1051009&view=auto
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/logenabled/provider/LogProviderImpl.java (added)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/bean/postprocessor/logenabled/provider/LogProviderImpl.java Mon Dec 20 07:42:56 2010
@@ -0,0 +1,100 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+package org.apache.james.container.spring.bean.postprocessor.logenabled.provider;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.impl.Log4JLogger;
+import org.springframework.beans.factory.InitializingBean;
+
+/**
+ * Provide a Log object for components
+ *
+ *
+ */
+public class LogProviderImpl implements LogProvider, InitializingBean {
+
+ private final Map<String, Log> logMap = new HashMap<String, Log>();
+ private Map<String, String> logs;
+ private final static String PREFIX = "james.";
+
+ /**
+ * Use {@link Log4JLogger} to create the Log
+ *
+ * @param loggerName
+ * @return log
+ */
+ protected Log createLog(String loggerName) {
+ return new Log4JLogger(loggerName);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.apache.james.container.spring.Registry#registerForComponent(java.
+ * lang.String, java.lang.Object)
+ */
+ public void registerForComponent(String name, Log log) {
+ logMap.put(name, log);
+ }
+
+ public void setLogMappings(Map<String,String> logs) {
+ this.logs = logs;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()
+ */
+ public void afterPropertiesSet() throws Exception {
+ if (logs != null) {
+ Iterator<String> it = logs.keySet().iterator();
+ while(it.hasNext()) {
+ String key = it.next();
+ String value = logs.get(key);
+ registerLog(key, new Log4JLogger(PREFIX + value));
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.james.container.spring.lifecycle.LogProvider#getLog(java.lang.String)
+ */
+ public Log getLog(String name) {
+ Log log = logMap.get(name);
+ if (log != null) {
+ return log;
+ } else {
+ return createLog(PREFIX + name);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.james.container.spring.lifecycle.LogProvider#registerLog(java.lang.String, org.apache.commons.logging.Log)
+ */
+ public void registerLog(String beanName, Log log) {
+ logMap.put(beanName, log);
+ }
+}
Modified: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/JamesServerApplicationContext.java
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/JamesServerApplicationContext.java?rev=1051009&r1=1051008&r2=1051009&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/JamesServerApplicationContext.java (original)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/JamesServerApplicationContext.java Mon Dec 20 07:42:56 2010
@@ -18,6 +18,8 @@
****************************************************************/
package org.apache.james.container.spring.context;
+import org.apache.james.container.spring.resource.AbstractJamesResourceLoader;
+import org.apache.james.container.spring.resource.JamesResourceLoader;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.Resource;
Modified: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/web/JamesServerWebApplicationContext.java
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/web/JamesServerWebApplicationContext.java?rev=1051009&r1=1051008&r2=1051009&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/web/JamesServerWebApplicationContext.java (original)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/web/JamesServerWebApplicationContext.java Mon Dec 20 07:42:56 2010
@@ -18,8 +18,8 @@
****************************************************************/
package org.apache.james.container.spring.context.web;
-import org.apache.james.container.spring.context.AbstractJamesResourceLoader;
-import org.apache.james.container.spring.context.JamesResourceLoader;
+import org.apache.james.container.spring.resource.AbstractJamesResourceLoader;
+import org.apache.james.container.spring.resource.JamesResourceLoader;
import org.springframework.core.io.Resource;
import org.springframework.web.context.support.XmlWebApplicationContext;
Copied: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/resource/AbstractJamesResourceLoader.java (from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/AbstractJamesResourceLoader.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/resource/AbstractJamesResourceLoader.java?p2=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/resource/AbstractJamesResourceLoader.java&p1=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/AbstractJamesResourceLoader.java&r1=1051006&r2=1051009&rev=1051009&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/AbstractJamesResourceLoader.java (original)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/resource/AbstractJamesResourceLoader.java Mon Dec 20 07:42:56 2010
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.container.spring.context;
+package org.apache.james.container.spring.resource;
import java.io.File;
Copied: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/resource/JamesResourceLoader.java (from r1051006, james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/JamesResourceLoader.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/resource/JamesResourceLoader.java?p2=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/resource/JamesResourceLoader.java&p1=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/JamesResourceLoader.java&r1=1051006&r2=1051009&rev=1051009&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/context/JamesResourceLoader.java (original)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/resource/JamesResourceLoader.java Mon Dec 20 07:42:56 2010
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.container.spring.context;
+package org.apache.james.container.spring.resource;
import org.springframework.core.io.ResourceLoader;
Modified: james/server/trunk/osgi/src/main/java/org/apache/james/container/osgi/JamesOsgiBeanFactoryPostProcessor.java
URL: http://svn.apache.org/viewvc/james/server/trunk/osgi/src/main/java/org/apache/james/container/osgi/JamesOsgiBeanFactoryPostProcessor.java?rev=1051009&r1=1051008&r2=1051009&view=diff
==============================================================================
--- james/server/trunk/osgi/src/main/java/org/apache/james/container/osgi/JamesOsgiBeanFactoryPostProcessor.java (original)
+++ james/server/trunk/osgi/src/main/java/org/apache/james/container/osgi/JamesOsgiBeanFactoryPostProcessor.java Mon Dec 20 07:42:56 2010
@@ -21,8 +21,8 @@ package org.apache.james.container.osgi;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
-import org.apache.james.container.spring.lifecycle.CommonsConfigurableBeanPostProcessor;
-import org.apache.james.container.spring.lifecycle.LogEnabledBeanPostProcessor;
+import org.apache.james.container.spring.bean.postprocessor.configurable.ConfigurableBeanPostProcessor;
+import org.apache.james.container.spring.bean.postprocessor.logenabled.LogEnabledBeanPostProcessor;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleException;
import org.osgi.framework.InvalidSyntaxException;
@@ -62,7 +62,7 @@ public class JamesOsgiBeanFactoryPostPro
// Life-cycle for Configurable
OsgiConfigurationProvider confProvider = new OsgiConfigurationProvider(confDir);
- CommonsConfigurableBeanPostProcessor confProcessor = new CommonsConfigurableBeanPostProcessor();
+ ConfigurableBeanPostProcessor confProcessor = new ConfigurableBeanPostProcessor();
confProcessor.setConfigurationProvider(confProvider);
confProcessor.setBeanFactory(factory);
factory.addBeanPostProcessor(confProcessor);
Modified: james/server/trunk/osgi/src/main/java/org/apache/james/container/osgi/OsgiConfigurationProvider.java
URL: http://svn.apache.org/viewvc/james/server/trunk/osgi/src/main/java/org/apache/james/container/osgi/OsgiConfigurationProvider.java?rev=1051009&r1=1051008&r2=1051009&view=diff
==============================================================================
--- james/server/trunk/osgi/src/main/java/org/apache/james/container/osgi/OsgiConfigurationProvider.java (original)
+++ james/server/trunk/osgi/src/main/java/org/apache/james/container/osgi/OsgiConfigurationProvider.java Mon Dec 20 07:42:56 2010
@@ -23,7 +23,7 @@ import java.io.File;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.HierarchicalConfiguration;
import org.apache.commons.configuration.XMLConfiguration;
-import org.apache.james.container.spring.provider.api.ConfigurationProvider;
+import org.apache.james.container.spring.bean.postprocessor.configurable.provider.ConfigurationProvider;
/**
* Load configuration files from the specified configuration directory
Modified: james/server/trunk/osgi/src/main/java/org/apache/james/container/osgi/OsgiLogProvider.java
URL: http://svn.apache.org/viewvc/james/server/trunk/osgi/src/main/java/org/apache/james/container/osgi/OsgiLogProvider.java?rev=1051009&r1=1051008&r2=1051009&view=diff
==============================================================================
--- james/server/trunk/osgi/src/main/java/org/apache/james/container/osgi/OsgiLogProvider.java (original)
+++ james/server/trunk/osgi/src/main/java/org/apache/james/container/osgi/OsgiLogProvider.java Mon Dec 20 07:42:56 2010
@@ -20,7 +20,7 @@ package org.apache.james.container.osgi;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.james.container.spring.provider.api.LogProvider;
+import org.apache.james.container.spring.bean.postprocessor.logenabled.provider.LogProvider;
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org