Author: matthieu Date: Tue Nov 3 16:50:52 2015 New Revision: 1712340 URL: http://svn.apache.org/viewvc?rev=1712340&view=rev Log: JAMES-1626 Add interface ConfigurationProvider to allow multiple implementations
Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ConfigurationProviderModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationProvider.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/FileConfigurationProvider.java - copied, changed from r1712339, james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/FileConfigurationProviderTest.java - copied, changed from r1712339, james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/ClassPathConfigurationProviderTest.java Removed: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/ClassPathConfigurationProviderTest.java Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/InMemoryMailRepositoryStoreTest.java Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java?rev=1712340&r1=1712339&r2=1712340&view=diff ============================================================================== --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java Tue Nov 3 16:50:52 2015 @@ -33,6 +33,7 @@ import org.apache.james.modules.protocol import org.apache.james.modules.server.ActiveMQQueueModule; import org.apache.james.modules.server.CamelMailetContainerModule; import org.apache.james.modules.server.ConfigurationPerformerModule; +import org.apache.james.modules.server.ConfigurationProviderModule; import org.apache.james.modules.server.DNSServiceModule; import org.apache.james.modules.server.FileSystemModule; import org.apache.james.modules.server.JMXServerModule; @@ -64,7 +65,8 @@ public class CassandraJamesServerMain { new SieveModule(), new MailStoreRepositoryModule(), new CamelMailetContainerModule(), - new QuotaModule()); + new QuotaModule(), + new ConfigurationProviderModule()); public static void main(String[] args) throws Exception { CassandraJamesServer server = new CassandraJamesServer(Modules.combine( Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java?rev=1712340&r1=1712339&r2=1712340&view=diff ============================================================================== --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java Tue Nov 3 16:50:52 2015 @@ -18,11 +18,6 @@ ****************************************************************/ package org.apache.james.modules.protocols; -import com.google.inject.Inject; -import com.google.inject.Provides; -import com.google.inject.Singleton; -import com.google.inject.multibindings.Multibinder; -import com.google.inject.name.Named; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.decode.ImapDecoder; import org.apache.james.imap.encode.ImapEncoder; @@ -35,13 +30,18 @@ import org.apache.james.mailbox.Subscrip import org.apache.james.mailbox.quota.QuotaManager; import org.apache.james.mailbox.quota.QuotaRootResolver; import org.apache.james.modules.mailbox.CassandraMailboxModule; -import org.apache.james.utils.ClassPathConfigurationProvider; import org.apache.james.utils.ConfigurationPerformer; +import org.apache.james.utils.ConfigurationProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.collect.ImmutableSet; import com.google.inject.AbstractModule; +import com.google.inject.Inject; +import com.google.inject.Provides; +import com.google.inject.Singleton; +import com.google.inject.multibindings.Multibinder; +import com.google.inject.name.Named; public class IMAPServerModule extends AbstractModule { @@ -84,19 +84,19 @@ public class IMAPServerModule extends Ab @Singleton public static class IMAPModuleConfigurationPerformer implements ConfigurationPerformer { - private final ClassPathConfigurationProvider classPathConfigurationProvider; + private final ConfigurationProvider configurationProvider; private final IMAPServerFactory imapServerFactory; @Inject - public IMAPModuleConfigurationPerformer(ClassPathConfigurationProvider classPathConfigurationProvider, IMAPServerFactory imapServerFactory) { - this.classPathConfigurationProvider = classPathConfigurationProvider; + public IMAPModuleConfigurationPerformer(ConfigurationProvider configurationProvider, IMAPServerFactory imapServerFactory) { + this.configurationProvider = configurationProvider; this.imapServerFactory = imapServerFactory; } @Override public void initModule() throws Exception { imapServerFactory.setLog(LOGGER); - imapServerFactory.configure(classPathConfigurationProvider.getConfiguration("imapserver")); + imapServerFactory.configure(configurationProvider.getConfiguration("imapserver")); imapServerFactory.init(); } } Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java?rev=1712340&r1=1712339&r2=1712340&view=diff ============================================================================== --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java Tue Nov 3 16:50:52 2015 @@ -19,16 +19,17 @@ package org.apache.james.modules.protocols; -import com.google.inject.AbstractModule; -import com.google.inject.Inject; -import com.google.inject.Singleton; -import com.google.inject.multibindings.Multibinder; import org.apache.james.lmtpserver.netty.LMTPServerFactory; -import org.apache.james.utils.ClassPathConfigurationProvider; import org.apache.james.utils.ConfigurationPerformer; +import org.apache.james.utils.ConfigurationProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.inject.AbstractModule; +import com.google.inject.Inject; +import com.google.inject.Singleton; +import com.google.inject.multibindings.Multibinder; + public class LMTPServerModule extends AbstractModule { private static final Logger LOGGER = LoggerFactory.getLogger(LMTPServerModule.class); @@ -41,19 +42,19 @@ public class LMTPServerModule extends Ab @Singleton public static class LMTPModuleConfigurationPerformer implements ConfigurationPerformer { - private final ClassPathConfigurationProvider classPathConfigurationProvider; + private final ConfigurationProvider configurationProvider; private final LMTPServerFactory lmtpServerFactory; @Inject - public LMTPModuleConfigurationPerformer(ClassPathConfigurationProvider classPathConfigurationProvider, LMTPServerFactory lmtpServerFactory) { - this.classPathConfigurationProvider = classPathConfigurationProvider; + public LMTPModuleConfigurationPerformer(ConfigurationProvider configurationProvider, LMTPServerFactory lmtpServerFactory) { + this.configurationProvider = configurationProvider; this.lmtpServerFactory = lmtpServerFactory; } @Override public void initModule() throws Exception { lmtpServerFactory.setLog(LOGGER); - lmtpServerFactory.configure(classPathConfigurationProvider.getConfiguration("lmtpserver")); + lmtpServerFactory.configure(configurationProvider.getConfiguration("lmtpserver")); lmtpServerFactory.init(); } } Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java?rev=1712340&r1=1712339&r2=1712340&view=diff ============================================================================== --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java Tue Nov 3 16:50:52 2015 @@ -19,16 +19,17 @@ package org.apache.james.modules.protocols; -import com.google.inject.AbstractModule; -import com.google.inject.Inject; -import com.google.inject.Singleton; -import com.google.inject.multibindings.Multibinder; import org.apache.james.pop3server.netty.POP3ServerFactory; -import org.apache.james.utils.ClassPathConfigurationProvider; import org.apache.james.utils.ConfigurationPerformer; +import org.apache.james.utils.ConfigurationProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.inject.AbstractModule; +import com.google.inject.Inject; +import com.google.inject.Singleton; +import com.google.inject.multibindings.Multibinder; + public class POP3ServerModule extends AbstractModule { private static final Logger LOGGER = LoggerFactory.getLogger(POP3ServerModule.class); @@ -41,19 +42,19 @@ public class POP3ServerModule extends Ab @Singleton public static class POP3ModuleConfigurationPerformer implements ConfigurationPerformer { - private final ClassPathConfigurationProvider classPathConfigurationProvider; + private final ConfigurationProvider configurationProvider; private final POP3ServerFactory pop3ServerFactory; @Inject - public POP3ModuleConfigurationPerformer(ClassPathConfigurationProvider classPathConfigurationProvider, POP3ServerFactory pop3ServerFactory) { - this.classPathConfigurationProvider = classPathConfigurationProvider; + public POP3ModuleConfigurationPerformer(ConfigurationProvider configurationProvider, POP3ServerFactory pop3ServerFactory) { + this.configurationProvider = configurationProvider; this.pop3ServerFactory = pop3ServerFactory; } @Override public void initModule() throws Exception { pop3ServerFactory.setLog(LOGGER); - pop3ServerFactory.configure(classPathConfigurationProvider.getConfiguration("pop3server")); + pop3ServerFactory.configure(configurationProvider.getConfiguration("pop3server")); pop3ServerFactory.init(); } } Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java?rev=1712340&r1=1712339&r2=1712340&view=diff ============================================================================== --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java Tue Nov 3 16:50:52 2015 @@ -21,8 +21,8 @@ package org.apache.james.modules.protoco import org.apache.james.smtpserver.SendMailHandler; import org.apache.james.smtpserver.netty.SMTPServerFactory; -import org.apache.james.utils.ClassPathConfigurationProvider; import org.apache.james.utils.ConfigurationPerformer; +import org.apache.james.utils.ConfigurationProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -43,15 +43,15 @@ public class SMTPServerModule extends Ab @Singleton public static class SMTPModuleConfigurationPerformer implements ConfigurationPerformer { - private final ClassPathConfigurationProvider classPathConfigurationProvider; + private final ConfigurationProvider configurationProvider; private final SMTPServerFactory smtpServerFactory; private final SendMailHandler sendMailHandler; @Inject - public SMTPModuleConfigurationPerformer(ClassPathConfigurationProvider classPathConfigurationProvider, + public SMTPModuleConfigurationPerformer(ConfigurationProvider configurationProvider, SMTPServerFactory smtpServerFactory, - SendMailHandler sendMailHandler) { - this.classPathConfigurationProvider = classPathConfigurationProvider; + SendMailHandler sendMailHandler) { + this.configurationProvider = configurationProvider; this.smtpServerFactory = smtpServerFactory; this.sendMailHandler = sendMailHandler; } @@ -59,7 +59,7 @@ public class SMTPServerModule extends Ab @Override public void initModule() throws Exception { smtpServerFactory.setLog(LOGGER); - smtpServerFactory.configure(classPathConfigurationProvider.getConfiguration("smtpserver")); + smtpServerFactory.configure(configurationProvider.getConfiguration("smtpserver")); smtpServerFactory.init(); sendMailHandler.init(null); } Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java?rev=1712340&r1=1712339&r2=1712340&view=diff ============================================================================== --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java Tue Nov 3 16:50:52 2015 @@ -19,11 +19,6 @@ package org.apache.james.modules.server; -import com.google.inject.AbstractModule; -import com.google.inject.Inject; -import com.google.inject.Provides; -import com.google.inject.Singleton; -import com.google.inject.multibindings.Multibinder; import org.apache.camel.impl.DefaultCamelContext; import org.apache.james.dnsservice.api.DNSService; import org.apache.james.domainlist.api.DomainList; @@ -35,14 +30,20 @@ import org.apache.james.mailetcontainer. import org.apache.james.mailetcontainer.impl.JamesMailetContext; import org.apache.james.mailetcontainer.impl.camel.CamelCompositeProcessor; import org.apache.james.user.api.UsersRepository; -import org.apache.james.utils.ClassPathConfigurationProvider; import org.apache.james.utils.ConfigurationPerformer; +import org.apache.james.utils.ConfigurationProvider; import org.apache.james.utils.GuiceMailetLoader; import org.apache.james.utils.GuiceMatcherLoader; import org.apache.mailet.MailetContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.inject.AbstractModule; +import com.google.inject.Inject; +import com.google.inject.Provides; +import com.google.inject.Singleton; +import com.google.inject.multibindings.Multibinder; + public class CamelMailetContainerModule extends AbstractModule { private final static Logger LOGGER = LoggerFactory.getLogger(CamelMailetContainerModule.class); @@ -74,17 +75,17 @@ public class CamelMailetContainerModule @Singleton public static class IMAPModuleConfigurationPerformer implements ConfigurationPerformer { - private final ClassPathConfigurationProvider classPathConfigurationProvider; + private final ConfigurationProvider configurationProvider; private final CamelCompositeProcessor camelCompositeProcessor; private final JamesMailSpooler jamesMailSpooler; private final JamesMailetContext mailetContext; @Inject - public IMAPModuleConfigurationPerformer(ClassPathConfigurationProvider classPathConfigurationProvider, + public IMAPModuleConfigurationPerformer(ConfigurationProvider configurationProvider, CamelCompositeProcessor camelCompositeProcessor, JamesMailSpooler jamesMailSpooler, JamesMailetContext mailetContext) { - this.classPathConfigurationProvider = classPathConfigurationProvider; + this.configurationProvider = configurationProvider; this.camelCompositeProcessor = camelCompositeProcessor; this.jamesMailSpooler = jamesMailSpooler; this.mailetContext = mailetContext; @@ -94,13 +95,13 @@ public class CamelMailetContainerModule public void initModule() throws Exception { camelCompositeProcessor.setLog(LOGGER); camelCompositeProcessor.setCamelContext(new DefaultCamelContext()); - camelCompositeProcessor.configure(classPathConfigurationProvider.getConfiguration("mailetcontainer").configurationAt("processors")); + camelCompositeProcessor.configure(configurationProvider.getConfiguration("mailetcontainer").configurationAt("processors")); camelCompositeProcessor.init(); jamesMailSpooler.setLog(LOGGER); - jamesMailSpooler.configure(classPathConfigurationProvider.getConfiguration("mailetcontainer").configurationAt("spooler")); + jamesMailSpooler.configure(configurationProvider.getConfiguration("mailetcontainer").configurationAt("spooler")); jamesMailSpooler.init(); mailetContext.setLog(LOGGER); - mailetContext.configure(classPathConfigurationProvider.getConfiguration("mailetcontainer").configurationAt("context")); + mailetContext.configure(configurationProvider.getConfiguration("mailetcontainer").configurationAt("context")); } } Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ConfigurationProviderModule.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ConfigurationProviderModule.java?rev=1712340&view=auto ============================================================================== --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ConfigurationProviderModule.java (added) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/ConfigurationProviderModule.java Tue Nov 3 16:50:52 2015 @@ -0,0 +1,33 @@ +/**************************************************************** + * 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.modules.server; + +import org.apache.james.utils.ConfigurationProvider; +import org.apache.james.utils.FileConfigurationProvider; + +import com.google.inject.AbstractModule; + +public class ConfigurationProviderModule extends AbstractModule { + + @Override + public void configure() { + bind(ConfigurationProvider.class).to(FileConfigurationProvider.class); + } + +} Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java?rev=1712340&r1=1712339&r2=1712340&view=diff ============================================================================== --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java Tue Nov 3 16:50:52 2015 @@ -18,18 +18,18 @@ ****************************************************************/ package org.apache.james.modules.server; -import com.google.inject.Inject; -import com.google.inject.Singleton; -import com.google.inject.multibindings.Multibinder; import org.apache.james.dnsservice.api.DNSService; import org.apache.james.dnsservice.dnsjava.DNSJavaService; - -import com.google.inject.AbstractModule; -import org.apache.james.utils.ClassPathConfigurationProvider; import org.apache.james.utils.ConfigurationPerformer; +import org.apache.james.utils.ConfigurationProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.inject.AbstractModule; +import com.google.inject.Inject; +import com.google.inject.Singleton; +import com.google.inject.multibindings.Multibinder; + public class DNSServiceModule extends AbstractModule { private static final Logger LOGGER = LoggerFactory.getLogger(DNSServiceModule.class); @@ -43,19 +43,19 @@ public class DNSServiceModule extends Ab @Singleton public static class DNSServiceConfigurationPerformer implements ConfigurationPerformer { - private final ClassPathConfigurationProvider classPathConfigurationProvider; + private final ConfigurationProvider configurationProvider; private final DNSJavaService dnsService; @Inject - public DNSServiceConfigurationPerformer(ClassPathConfigurationProvider classPathConfigurationProvider, + public DNSServiceConfigurationPerformer(ConfigurationProvider configurationProvider, DNSJavaService dnsService) { - this.classPathConfigurationProvider = classPathConfigurationProvider; + this.configurationProvider = configurationProvider; this.dnsService = dnsService; } public void initModule() throws Exception { dnsService.setLog(LOGGER); - dnsService.configure(classPathConfigurationProvider.getConfiguration("dnsservice")); + dnsService.configure(configurationProvider.getConfiguration("dnsservice")); dnsService.init(); } } Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java?rev=1712340&r1=1712339&r2=1712340&view=diff ============================================================================== --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java Tue Nov 3 16:50:52 2015 @@ -23,11 +23,12 @@ import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Singleton; import com.google.inject.multibindings.Multibinder; + import org.apache.james.filesystem.api.FileSystem; import org.apache.james.mailrepository.api.MailRepository; import org.apache.james.mailrepository.api.MailRepositoryStore; import org.apache.james.mailrepository.file.FileMailRepository; -import org.apache.james.utils.ClassPathConfigurationProvider; +import org.apache.james.utils.ConfigurationProvider; import org.apache.james.utils.ConfigurationPerformer; import org.apache.james.utils.InMemoryMailRepositoryStore; import org.apache.james.utils.MailRepositoryProvider; @@ -67,19 +68,19 @@ public class MailStoreRepositoryModule e @Singleton public static class MailRepositoryStoreModuleConfigurationPerformer implements ConfigurationPerformer { - private final ClassPathConfigurationProvider classPathConfigurationProvider; + private final ConfigurationProvider configurationProvider; private final InMemoryMailRepositoryStore javaMailRepositoryStore; @Inject - public MailRepositoryStoreModuleConfigurationPerformer(ClassPathConfigurationProvider classPathConfigurationProvider, - InMemoryMailRepositoryStore javaMailRepositoryStore) { - this.classPathConfigurationProvider = classPathConfigurationProvider; + public MailRepositoryStoreModuleConfigurationPerformer(ConfigurationProvider configurationProvider, + InMemoryMailRepositoryStore javaMailRepositoryStore) { + this.configurationProvider = configurationProvider; this.javaMailRepositoryStore = javaMailRepositoryStore; } @Override public void initModule() throws Exception { - javaMailRepositoryStore.configure(classPathConfigurationProvider.getConfiguration("mailrepositorystore")); + javaMailRepositoryStore.configure(configurationProvider.getConfiguration("mailrepositorystore")); javaMailRepositoryStore.init(); } } Added: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationProvider.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationProvider.java?rev=1712340&view=auto ============================================================================== --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationProvider.java (added) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ConfigurationProvider.java Tue Nov 3 16:50:52 2015 @@ -0,0 +1,30 @@ +/**************************************************************** + * 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.utils; + +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.HierarchicalConfiguration; + +public interface ConfigurationProvider { + + HierarchicalConfiguration getConfiguration(String component) + throws ConfigurationException; + +} \ No newline at end of file Copied: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/FileConfigurationProvider.java (from r1712339, james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java) URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/FileConfigurationProvider.java?p2=james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/FileConfigurationProvider.java&p1=james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java&r1=1712339&r2=1712340&rev=1712340&view=diff ============================================================================== --- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/ClassPathConfigurationProvider.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/utils/FileConfigurationProvider.java Tue Nov 3 16:50:52 2015 @@ -32,10 +32,11 @@ import com.google.common.base.Splitter; import com.google.common.base.Strings; import com.google.common.collect.Iterables; -public class ClassPathConfigurationProvider { +public class FileConfigurationProvider implements ConfigurationProvider { private static final String CONFIGURATION_FILE_SUFFIX = ".xml"; + @Override public HierarchicalConfiguration getConfiguration(String component) throws ConfigurationException { Preconditions.checkNotNull(component); List<String> configPathParts = Splitter.on(".").splitToList(component); Copied: james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/FileConfigurationProviderTest.java (from r1712339, james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/ClassPathConfigurationProviderTest.java) URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/FileConfigurationProviderTest.java?p2=james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/FileConfigurationProviderTest.java&p1=james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/ClassPathConfigurationProviderTest.java&r1=1712339&r2=1712340&rev=1712340&view=diff ============================================================================== --- james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/ClassPathConfigurationProviderTest.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/FileConfigurationProviderTest.java Tue Nov 3 16:50:52 2015 @@ -26,7 +26,7 @@ import org.apache.commons.configuration. import org.junit.Before; import org.junit.Test; -public class ClassPathConfigurationProviderTest { +public class FileConfigurationProviderTest { private static final String CONFIG_KEY_1 = "test2"; private static final String CONFIG_KEY_2 = "property"; @@ -39,11 +39,11 @@ public class ClassPathConfigurationProvi private static final String ROOT_CONFIG_KEY = "test"; private static final String CONFIG_SEPARATOR = "."; - private ClassPathConfigurationProvider configurationProvider; + private FileConfigurationProvider configurationProvider; @Before public void setUp() { - configurationProvider = new ClassPathConfigurationProvider(); + configurationProvider = new FileConfigurationProvider(); } @Test(expected = IllegalArgumentException.class) Modified: james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/InMemoryMailRepositoryStoreTest.java URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/InMemoryMailRepositoryStoreTest.java?rev=1712340&r1=1712339&r2=1712340&view=diff ============================================================================== --- james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/InMemoryMailRepositoryStoreTest.java (original) +++ james/project/trunk/server/container/cassandra-guice/src/test/java/org/apache/james/utils/InMemoryMailRepositoryStoreTest.java Tue Nov 3 16:50:52 2015 @@ -42,7 +42,7 @@ public class InMemoryMailRepositoryStore repositoryStore = new InMemoryMailRepositoryStore(Sets.newHashSet( new MailStoreRepositoryModule.FileMailRepositoryProvider( new FileSystemImpl(new JamesServerResourceLoader())))); - repositoryStore.configure(new ClassPathConfigurationProvider().getConfiguration("mailrepositorystore")); + repositoryStore.configure(new FileConfigurationProvider().getConfiguration("mailrepositorystore")); repositoryStore.init(); } @@ -72,7 +72,7 @@ public class InMemoryMailRepositoryStore repositoryStore = new InMemoryMailRepositoryStore(Sets.newHashSet( new MailStoreRepositoryModule.FileMailRepositoryProvider( new FileSystemImpl(new JamesServerResourceLoader())))); - repositoryStore.configure(new ClassPathConfigurationProvider().getConfiguration("fakemailrepositorystore")); + repositoryStore.configure(new FileConfigurationProvider().getConfiguration("fakemailrepositorystore")); } catch (Exception e) { fail("Unexpected failure : ", e); } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org