You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2009/11/02 11:08:25 UTC
svn commit: r831840 - in /james/server/trunk:
management-library/src/main/java/org/apache/james/management/
management-library/src/test/java/org/
management-library/src/test/java/org/apache/
management-library/src/test/java/org/apache/james/ management...
Author: norman
Date: Mon Nov 2 10:08:24 2009
New Revision: 831840
URL: http://svn.apache.org/viewvc?rev=831840&view=rev
Log:
Add AvalonRemoteManager(JAMES-893)
Added:
james/server/trunk/management-library/src/test/java/org/
james/server/trunk/management-library/src/test/java/org/apache/
james/server/trunk/management-library/src/test/java/org/apache/james/
james/server/trunk/management-library/src/test/java/org/apache/james/management/
james/server/trunk/management-library/src/test/java/org/apache/james/management/mock/
james/server/trunk/management-library/src/test/java/org/apache/james/management/mock/MockVirtualUserTableManagementService.java
james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/AvalonRemoteManager.java
james/server/trunk/remotemanager-function/src/main/resources/org/apache/james/remotemanager/AvalonRemoteManager.xinfo
- copied unchanged from r829709, james/server/trunk/remotemanager-function/src/main/resources/org/apache/james/remotemanager/RemoteManager.xinfo
james/server/trunk/remotemanager-function/src/test/java/org/apache/james/remotemanager/AvalonRemoteManagerTest.java
Removed:
james/server/trunk/remotemanager-function/src/main/resources/org/apache/james/remotemanager/RemoteManager.xinfo
Modified:
james/server/trunk/management-library/src/main/java/org/apache/james/management/SpoolManagementService.java
james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml
james/server/trunk/remotemanager-function/src/test/java/org/apache/james/remotemanager/RemoteManagerTest.java
Modified: james/server/trunk/management-library/src/main/java/org/apache/james/management/SpoolManagementService.java
URL: http://svn.apache.org/viewvc/james/server/trunk/management-library/src/main/java/org/apache/james/management/SpoolManagementService.java?rev=831840&r1=831839&r2=831840&view=diff
==============================================================================
--- james/server/trunk/management-library/src/main/java/org/apache/james/management/SpoolManagementService.java (original)
+++ james/server/trunk/management-library/src/main/java/org/apache/james/management/SpoolManagementService.java Mon Nov 2 10:08:24 2009
@@ -54,7 +54,7 @@
* @throws MessagingException
* @throws SpoolManagementException
*/
- public int removeSpoolItems(String spoolRepositoryURL, String key, List lockingFailures, SpoolFilter filter)
+ public int removeSpoolItems(String spoolRepositoryURL, String key, List<String> lockingFailures, SpoolFilter filter)
throws MessagingException, SpoolManagementException;
/**
@@ -69,7 +69,7 @@
* @throws MessagingException
* @throws SpoolManagementException
*/
- public int resendSpoolItems(String spoolRepositoryURL, String key, List lockingFailures, SpoolFilter filter)
+ public int resendSpoolItems(String spoolRepositoryURL, String key, List<String> lockingFailures, SpoolFilter filter)
throws MessagingException, SpoolManagementException;
/**
@@ -82,6 +82,6 @@
* @throws MessagingException
* @throws SpoolManagementException
*/
- public List getSpoolItems(String spoolRepositoryURL, SpoolFilter filter)
+ public List<String> getSpoolItems(String spoolRepositoryURL, SpoolFilter filter)
throws MessagingException, SpoolManagementException;
}
Added: james/server/trunk/management-library/src/test/java/org/apache/james/management/mock/MockVirtualUserTableManagementService.java
URL: http://svn.apache.org/viewvc/james/server/trunk/management-library/src/test/java/org/apache/james/management/mock/MockVirtualUserTableManagementService.java?rev=831840&view=auto
==============================================================================
--- james/server/trunk/management-library/src/test/java/org/apache/james/management/mock/MockVirtualUserTableManagementService.java (added)
+++ james/server/trunk/management-library/src/test/java/org/apache/james/management/mock/MockVirtualUserTableManagementService.java Mon Nov 2 10:08:24 2009
@@ -0,0 +1,181 @@
+/****************************************************************
+ * 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.management.mock;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.apache.james.api.vut.management.VirtualUserTableManagementException;
+import org.apache.james.api.vut.management.VirtualUserTableManagementService;
+
+public class MockVirtualUserTableManagementService implements VirtualUserTableManagementService{
+ private Map<String,Collection<String>> mappings = new HashMap<String, Collection<String>>();
+
+ public boolean addAddressMapping(String virtualUserTable, String user,
+ String domain, String address)
+ throws VirtualUserTableManagementException {
+ Collection<String> map = mappings.get(user + "@" + domain);
+ if (map == null) {
+ map = new ArrayList<String>();
+ mappings.put(user + "@" + domain, map);
+
+ } else {
+ if (map.contains(address)) return false;
+ }
+ return map.add(address);
+ }
+
+ public boolean addAliasDomainMapping(String virtualUserTable,
+ String aliasDomain, String realDomain)
+ throws VirtualUserTableManagementException {
+ Collection<String> map = mappings.get(realDomain);
+ if (map == null) {
+ map = new ArrayList<String>();
+ mappings.put(realDomain, map);
+
+ } else {
+ if (map.contains(aliasDomain)) return false;
+ }
+ return map.add(aliasDomain);
+ }
+
+ public boolean addErrorMapping(String virtualUserTable, String user,
+ String domain, String error)
+ throws VirtualUserTableManagementException {
+ Collection<String> map = mappings.get(user + "@" + domain);
+ if (map == null) {
+ map = new ArrayList<String>();
+ mappings.put(user + "@" + domain, map);
+ } else {
+ if (map.contains(error)) return false;
+ }
+ return map.add(error);
+ }
+
+ public boolean addMapping(String virtualUserTable, String user,
+ String domain, String mapping)
+ throws VirtualUserTableManagementException {
+ Collection<String> map = mappings.get(user + "@" + domain);
+ if (map == null) {
+ map = new ArrayList<String>();
+ mappings.put(user + "@" + domain, map);
+ } else {
+ if (map.contains(mapping)) return false;
+ }
+ return map.add(mapping);
+ }
+
+ public boolean addRegexMapping(String virtualUserTable, String user,
+ String domain, String regex)
+ throws VirtualUserTableManagementException {
+ Collection<String> map = mappings.get(user + "@" + domain);
+ if (map == null) {
+ map = new ArrayList<String>();
+ mappings.put(user + "@" + domain, map);
+ } else {
+ if (map.contains(regex)) return false;
+ }
+ return map.add(regex);
+ }
+
+ public Map<String, Collection<String>> getAllMappings(
+ String virtualUserTable) throws VirtualUserTableManagementException {
+ return mappings;
+ }
+
+ public Collection<String> getUserDomainMappings(String virtualUserTable,
+ String user, String domain)
+ throws VirtualUserTableManagementException {
+ return mappings.get(user + "@" + domain);
+ }
+
+ public boolean removeAddressMapping(String virtualUserTable, String user,
+ String domain, String address)
+ throws VirtualUserTableManagementException {
+ Collection<String> col = mappings.get(user + "@" + domain);
+ Iterator<String> it = col.iterator();
+ while (it.hasNext()) {
+ String mapping = it.next();
+ if (mapping.equalsIgnoreCase(address)) {
+ return col.remove(address);
+ }
+ }
+ return false;
+ }
+
+ public boolean removeAliasDomainMapping(String virtualUserTable,
+ String aliasDomain, String realDomain)
+ throws VirtualUserTableManagementException {
+ Collection<String> col = mappings.get(realDomain);
+ Iterator<String> it = col.iterator();
+ while (it.hasNext()) {
+ String mapping = it.next();
+ if (mapping.equalsIgnoreCase(aliasDomain)) {
+ return col.remove(aliasDomain);
+ }
+ }
+ return false;
+ }
+
+ public boolean removeErrorMapping(String virtualUserTable, String user,
+ String domain, String error)
+ throws VirtualUserTableManagementException {
+ Collection<String> col = mappings.get(user + "@" + domain);
+ Iterator<String> it = col.iterator();
+ while (it.hasNext()) {
+ String mapping = it.next();
+ if (mapping.equalsIgnoreCase(error)) {
+ return col.remove(error);
+ }
+ }
+ return false;
+ }
+
+ public boolean removeMapping(String virtualUserTable, String user,
+ String domain, String rawmapping)
+ throws VirtualUserTableManagementException {
+ Collection<String> col = mappings.get(user + "@" + domain);
+ Iterator<String> it = col.iterator();
+ while (it.hasNext()) {
+ String mapping = it.next();
+ if (mapping.equalsIgnoreCase(rawmapping)) {
+ return col.remove(rawmapping);
+ }
+ }
+ return false;
+ }
+
+ public boolean removeRegexMapping(String virtualUserTable, String user,
+ String domain, String regex)
+ throws VirtualUserTableManagementException {
+ Collection<String> col = mappings.get(user + "@" + domain);
+ Iterator<String> it = col.iterator();
+ while (it.hasNext()) {
+ String mapping = it.next();
+ if (mapping.equalsIgnoreCase(regex)) {
+ return col.remove(regex);
+ }
+ }
+ return false;
+ }
+
+}
Modified: james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml?rev=831840&r1=831839&r2=831840&view=diff
==============================================================================
--- james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml (original)
+++ james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml Mon Nov 2 10:08:24 2009
@@ -95,7 +95,7 @@
<proxy disable='true'/>
</block>
- <block name="remotemanager" class="org.apache.james.remotemanager.RemoteManager" >
+ <block name="remotemanager" class="org.apache.james.remotemanager.AvalonRemoteManager" >
<provide name="mailstore" role="org.apache.avalon.cornerstone.services.store.Store"/>
<provide name="users-store" role="org.apache.james.api.user.UsersStore"/>
<provide name="localusersrepository" role="org.apache.james.api.user.UsersRepository"/>
Added: james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/AvalonRemoteManager.java
URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/AvalonRemoteManager.java?rev=831840&view=auto
==============================================================================
--- james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/AvalonRemoteManager.java (added)
+++ james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/AvalonRemoteManager.java Mon Nov 2 10:08:24 2009
@@ -0,0 +1,187 @@
+/****************************************************************
+ * 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.remotemanager;
+
+import org.apache.avalon.cornerstone.services.sockets.SocketManager;
+import org.apache.avalon.cornerstone.services.store.Store;
+import org.apache.avalon.cornerstone.services.threads.ThreadManager;
+import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.configuration.Configurable;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.logger.LogEnabled;
+import org.apache.avalon.framework.logger.Logger;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.impl.AvalonLogger;
+import org.apache.james.api.dnsservice.DNSService;
+import org.apache.james.api.kernel.LoaderService;
+import org.apache.james.api.user.UsersStore;
+import org.apache.james.api.vut.management.VirtualUserTableManagementService;
+import org.apache.james.bridge.GuiceInjected;
+import org.apache.james.management.BayesianAnalyzerManagementService;
+import org.apache.james.management.DomainListManagementService;
+import org.apache.james.management.ProcessorManagementService;
+import org.apache.james.management.SpoolManagementService;
+import org.apache.james.services.FileSystem;
+import org.apache.james.services.MailServer;
+import org.apache.james.socket.JamesConnectionManager;
+import org.apache.james.socket.api.ProtocolHandlerFactory;
+import org.apache.james.util.ConfigurationAdapter;
+import org.guiceyfruit.jsr250.Jsr250Module;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Provider;
+import com.google.inject.name.Names;
+
+public class AvalonRemoteManager implements GuiceInjected, Initializable, Serviceable, Configurable, LogEnabled, RemoteManagerMBean {
+
+ private FileSystem filesystem;
+ private MailServer mailserver;
+ private DNSService dns;
+ private Log logger;
+ private org.apache.commons.configuration.HierarchicalConfiguration config;
+ private Injector injector;
+ private JamesConnectionManager connectionManager;
+ private SocketManager socketManager;
+ private RemoteManager server = new RemoteManager();
+ private ThreadManager threadManager;
+ private SpoolManagementService spoolService;
+ private BayesianAnalyzerManagementService bayesianServer;
+ private VirtualUserTableManagementService vutService;
+ private DomainListManagementService domainService;
+ private UsersStore usersStore;
+ private ProcessorManagementService processorService;
+ private Store store;
+
+ public String getNetworkInterface() {
+ return server.getNetworkInterface();
+ }
+
+ public int getPort() {
+ return server.getPort();
+ }
+
+ public String getSocketType() {
+ return server.getSocketType();
+ }
+
+ public boolean isEnabled() {
+ return server.isEnabled();
+ }
+
+ /**
+ * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
+ */
+ public void configure(Configuration config) throws ConfigurationException {
+ try {
+ this.config = new ConfigurationAdapter(config);
+ } catch (org.apache.commons.configuration.ConfigurationException e) {
+ throw new ConfigurationException("Unable to convert configuration", e);
+ }
+ }
+
+ /**
+ * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
+ */
+ public void service(ServiceManager manager) throws ServiceException {
+ dns = (DNSService) manager.lookup(DNSService.ROLE);
+ mailserver = (MailServer) manager.lookup(MailServer.ROLE);
+ filesystem = (FileSystem) manager.lookup(FileSystem.ROLE);
+ socketManager = (SocketManager) manager.lookup(SocketManager.ROLE);
+ connectionManager = (JamesConnectionManager) manager.lookup(JamesConnectionManager.ROLE);
+ threadManager = (ThreadManager) manager.lookup(ThreadManager.ROLE);
+ spoolService = (SpoolManagementService) manager.lookup(SpoolManagementService.ROLE);
+ bayesianServer = (BayesianAnalyzerManagementService) manager.lookup(BayesianAnalyzerManagementService.ROLE);
+ vutService = (VirtualUserTableManagementService) manager.lookup(VirtualUserTableManagementService.ROLE);
+ domainService = (DomainListManagementService) manager.lookup(DomainListManagementService.ROLE);
+ usersStore = (UsersStore) manager.lookup(UsersStore.ROLE);
+ processorService = (ProcessorManagementService) manager.lookup(ProcessorManagementService.ROLE);
+ store = (Store) manager.lookup(Store.ROLE);
+ // thats needed because of used excalibur socket components
+ server.service(manager);
+ }
+
+ /**
+ * @see org.apache.avalon.framework.activity.Initializable#initialize()
+ */
+ public void initialize() throws Exception {
+ injector = Guice.createInjector(new RemoteManagerModule(), new Jsr250Module());
+ injector.injectMembers(server);
+ }
+
+ /**
+ * @see org.apache.avalon.framework.logger.LogEnabled#enableLogging(org.apache.avalon.framework.logger.Logger)
+ */
+ public void enableLogging(Logger logger) {
+ this.logger = new AvalonLogger(logger);
+ }
+
+ private final class RemoteManagerModule extends AbstractModule {
+
+ @Override
+ protected void configure() {
+ bind(DNSService.class).annotatedWith(Names.named("org.apache.james.api.dnsservice.DNSService")).toInstance(dns);
+ bind(MailServer.class).annotatedWith(Names.named("org.apache.james.services.MailServer")).toInstance(mailserver);
+ bind(org.apache.commons.configuration.HierarchicalConfiguration.class).annotatedWith(Names.named("org.apache.commons.configuration.Configuration")).toInstance(config);
+ bind(Log.class).annotatedWith(Names.named("org.apache.commons.logging.Log")).toInstance(logger);
+ bind(FileSystem.class).annotatedWith(Names.named("org.apache.james.services.FileSystem")).toInstance(filesystem);
+ bind(ProtocolHandlerFactory.class).annotatedWith(Names.named("org.apache.james.socket.api.ProtocolHandlerFactory")).toProvider(new Provider<ProtocolHandlerFactory>() {
+
+ public ProtocolHandlerFactory get() {
+ return server;
+ }
+
+ });
+ bind(SocketManager.class).annotatedWith(Names.named("org.apache.avalon.cornerstone.services.sockets.SocketManager")).toInstance(socketManager);
+ bind(JamesConnectionManager.class).annotatedWith(Names.named("org.apache.james.socket.JamesConnectionManager")).toInstance(connectionManager);
+ bind(ThreadManager.class).annotatedWith(Names.named("org.apache.avalon.cornerstone.services.threads.ThreadManager")).toInstance(threadManager);
+ bind(SpoolManagementService.class).annotatedWith(Names.named("org.apache.james.management.SpoolManagementService")).toInstance(spoolService);
+ bind(BayesianAnalyzerManagementService.class).annotatedWith(Names.named("org.apache.james.management.BayesianAnalyzerManagementService")).toInstance(bayesianServer);
+ bind(UsersStore.class).annotatedWith(Names.named("org.apache.james.api.user.UsersStore")).toInstance(usersStore);
+ bind(ProcessorManagementService.class).annotatedWith(Names.named("org.apache.james.management.ProcessorManagementService")).toInstance(processorService);
+ bind(VirtualUserTableManagementService.class).annotatedWith(Names.named("org.apache.james.api.vut.management.VirtualUserTableManagementService")).toInstance(vutService);
+ bind(DomainListManagementService.class).annotatedWith(Names.named("org.apache.james.management.DomainListManagementService")).toInstance(domainService);
+ bind(Store.class).annotatedWith(Names.named("org.apache.avalon.cornerstone.services.store.Store")).toInstance(store);
+ // we bind the LoaderService to an Provider to get sure everything is there when the SMTPLoaderService get created.
+ bind(LoaderService.class).annotatedWith(Names.named("org.apache.james.LoaderService")).toProvider(new Provider<LoaderService>() {
+
+ public LoaderService get() {
+ return new RemoteManagerLoaderService();
+ }
+
+ // Mimic the loaderservice
+ class RemoteManagerLoaderService implements LoaderService {
+ Injector injector = Guice.createInjector(new RemoteManagerModule(), new Jsr250Module());
+
+ public <T> T load(Class<T> type) {
+ return injector.getInstance(type);
+ }
+
+ }
+
+ });
+
+ }
+ }
+}
\ No newline at end of file
Added: james/server/trunk/remotemanager-function/src/test/java/org/apache/james/remotemanager/AvalonRemoteManagerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager-function/src/test/java/org/apache/james/remotemanager/AvalonRemoteManagerTest.java?rev=831840&view=auto
==============================================================================
--- james/server/trunk/remotemanager-function/src/test/java/org/apache/james/remotemanager/AvalonRemoteManagerTest.java (added)
+++ james/server/trunk/remotemanager-function/src/test/java/org/apache/james/remotemanager/AvalonRemoteManagerTest.java Mon Nov 2 10:08:24 2009
@@ -0,0 +1,43 @@
+/****************************************************************
+ * 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.remotemanager;
+
+import org.apache.avalon.framework.container.ContainerUtil;
+import org.apache.james.test.mock.avalon.MockLogger;
+
+public class AvalonRemoteManagerTest extends RemoteManagerTest{
+
+ private AvalonRemoteManager server;
+ @Override
+ protected void setUp() throws Exception {
+ server = new AvalonRemoteManager();
+ setUpServiceManager();
+ ContainerUtil.enableLogging(server, new MockLogger());
+ ContainerUtil.service(server, serviceManager);
+ m_testConfiguration = new RemoteManagerTestConfiguration(m_remoteManagerListenerPort);
+ }
+
+ @Override
+ protected void finishSetUp(RemoteManagerTestConfiguration testConfiguration)
+ throws Exception {
+ testConfiguration.init();
+ ContainerUtil.configure(server, testConfiguration);
+ ContainerUtil.initialize(server);
+ }
+}
Modified: james/server/trunk/remotemanager-function/src/test/java/org/apache/james/remotemanager/RemoteManagerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager-function/src/test/java/org/apache/james/remotemanager/RemoteManagerTest.java?rev=831840&r1=831839&r2=831840&view=diff
==============================================================================
--- james/server/trunk/remotemanager-function/src/test/java/org/apache/james/remotemanager/RemoteManagerTest.java (original)
+++ james/server/trunk/remotemanager-function/src/test/java/org/apache/james/remotemanager/RemoteManagerTest.java Mon Nov 2 10:08:24 2009
@@ -35,16 +35,21 @@
import org.apache.james.api.user.UsersRepository;
import org.apache.james.api.user.UsersStore;
import org.apache.james.api.vut.management.VirtualUserTableManagementService;
-import org.apache.james.impl.vut.VirtualUserTableManagement;
import org.apache.james.management.BayesianAnalyzerManagementException;
import org.apache.james.management.BayesianAnalyzerManagementService;
import org.apache.james.management.DomainListManagementException;
import org.apache.james.management.DomainListManagementService;
+import org.apache.james.management.ProcessorManagementService;
+import org.apache.james.management.SpoolFilter;
+import org.apache.james.management.SpoolManagementException;
+import org.apache.james.management.SpoolManagementService;
+import org.apache.james.management.mock.MockVirtualUserTableManagementService;
import org.apache.james.services.MailServer;
import org.apache.james.socket.JamesConnectionManager;
import org.apache.james.socket.SimpleConnectionManager;
import org.apache.james.test.mock.avalon.MockLogger;
import org.apache.james.test.mock.avalon.MockSocketManager;
+import org.apache.james.test.mock.avalon.MockStore;
import org.apache.james.test.mock.avalon.MockThreadManager;
import org.apache.james.test.mock.james.MockFileSystem;
import org.apache.james.test.mock.james.MockMailServer;
@@ -64,8 +69,12 @@
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
+
+import javax.mail.MessagingException;
import junit.framework.TestCase;
@@ -87,13 +96,14 @@
protected TelnetClient m_telnetClient;
private MockUsersRepository m_mockUsersRepository;
private MockMailServer mailServer;
- private FakeLoader serviceManager;
+ protected FakeLoader serviceManager;
private SimpleConnectionManager connectionManager;
private MockUsersStore usersStore;
private MockSocketManager socketManager;
private MockThreadManager threadManager;
private DNSService dnsservice;
private MockFileSystem filesystem;
+ private MockVirtualUserTableManagementService vutManagement;
protected void setUp() throws Exception {
m_remoteManager = new RemoteManager();
@@ -116,7 +126,7 @@
super.tearDown();
}
- protected void finishSetUp(RemoteManagerTestConfiguration testConfiguration) {
+ protected void finishSetUp(RemoteManagerTestConfiguration testConfiguration) throws Exception {
testConfiguration.init();
try {
m_remoteManager.setConfiguration(new ConfigurationAdapter(testConfiguration));
@@ -186,7 +196,7 @@
readAnswer(3);
}
- private void setUpServiceManager() throws ServiceException {
+ protected void setUpServiceManager() throws ServiceException {
serviceManager = new FakeLoader();
connectionManager = new SimpleConnectionManager();
ContainerUtil.enableLogging(connectionManager, new MockLogger());
@@ -211,11 +221,13 @@
dnsservice = setUpDNSServer();
serviceManager.put(DNSService.ROLE, dnsservice);
- MockVirtualUserTableStore vutStore = new MockVirtualUserTableStore();
- VirtualUserTableManagement vutManagement = new VirtualUserTableManagement();
- vutManagement.setVirtualUserTableStore(vutStore);
- vutManagement.setVirtualUserTableManagement(new MockVirtualUserTableManagementImpl());
- serviceManager.put(VirtualUserTableManagementService.ROLE, vutManagement);
+ vutManagement = new MockVirtualUserTableManagementService();
+ //VirtualUserTableManagementService vutManagement = new VirtualUserTableManagement();
+ //vutManagement.setVirtualUserTableStore(vutStore);
+ //vutManagement.setVirtualUserTableManagement(new MockVirtualUserTableManagementImpl());
+ serviceManager.put(VirtualUserTableManagementService.ROLE, new MockVirtualUserTableManagementService());
+
+
ManageableDomainList xml = new SimpleDomainList();
@@ -292,6 +304,64 @@
return 0;
}
});
+
+ serviceManager.put(SpoolManagementService.ROLE, new SpoolManagementService() {
+
+ public int resendSpoolItems(String spoolRepositoryURL, String key,
+ List lockingFailures, SpoolFilter filter)
+ throws MessagingException, SpoolManagementException {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public int removeSpoolItems(String spoolRepositoryURL, String key,
+ List lockingFailures, SpoolFilter filter)
+ throws MessagingException, SpoolManagementException {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public int moveSpoolItems(String srcSpoolRepositoryURL,
+ String dstSpoolRepositoryURL, String dstState, SpoolFilter filter)
+ throws MessagingException, SpoolManagementException {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public List getSpoolItems(String spoolRepositoryURL, SpoolFilter filter)
+ throws MessagingException, SpoolManagementException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ });
+ serviceManager.put(MockStore.ROLE,new MockStore());
+ serviceManager.put(ProcessorManagementService.ROLE, new ProcessorManagementService() {
+
+ public String[] getProcessorNames() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String[] getMatcherParameters(String processorName, int matcherIndex) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String[] getMatcherNames(String processorName) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String[] getMailetParameters(String processorName, int mailetIndex) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String[] getMailetNames(String processorName) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ });
}
private DNSService setUpDNSServer() {
@@ -323,14 +393,14 @@
assertEquals("Arguments echoed", "hsif eht lla rof sknaht", lastLine);
}
*/
- public void testLogin() throws IOException {
+ public void testLogin() throws Exception {
finishSetUp(m_testConfiguration);
connect();
login();
}
- public void testWrongLoginUser() throws IOException {
+ public void testWrongLoginUser() throws Exception {
finishSetUp(m_testConfiguration);
connect();
@@ -344,7 +414,7 @@
assertTrue("Last line does not start with 'Login id:' but with '"+last+"'",last.startsWith("Login id:")); // login failed, getting new login prompt
}
- public void testWrongLoginPassword() throws IOException {
+ public void testWrongLoginPassword() throws Exception {
finishSetUp(m_testConfiguration);
connect();
@@ -357,7 +427,7 @@
assertTrue("Line does not start with 'Login id:' but with '"+last+"'", last.startsWith("Login id:")); // login failed, getting new login prompt
}
- public void testUserCount() throws IOException {
+ public void testUserCount() throws Exception {
finishSetUp(m_testConfiguration);
connect();
login();
@@ -383,7 +453,7 @@
assertTrue(getLastLine(readAnswer()).endsWith(" 1")); // 1 total
}
- public void testAddUserAndVerify() throws IOException {
+ public void testAddUserAndVerify() throws Exception {
finishSetUp(m_testConfiguration);
connect();
login();
@@ -404,7 +474,7 @@
assertTrue(getLastLine(readAnswer()).endsWith(" does not exist"));
}
- public void testDelUser() throws IOException {
+ public void testDelUser() throws Exception {
finishSetUp(m_testConfiguration);
connect();
login();
@@ -425,7 +495,7 @@
assertTrue(getLastLine(readAnswer()).endsWith(" does not exist"));
}
- public void testQuit() throws IOException {
+ public void testQuit() throws Exception {
finishSetUp(m_testConfiguration);
connect();
@@ -445,7 +515,7 @@
}
- public void testListUsers() throws IOException {
+ public void testListUsers() throws Exception {
finishSetUp(m_testConfiguration);
connect();
login();
@@ -487,7 +557,7 @@
}
}
- public void testCommandCaseInsensitive() throws IOException {
+ public void testCommandCaseInsensitive() throws Exception {
finishSetUp(m_testConfiguration);
connect();
login();
@@ -505,7 +575,7 @@
assertTrue(getLastLine(readAnswer()).endsWith(" exists"));
}
- public void testParameterCaseSensitive() throws IOException {
+ public void testParameterCaseSensitive() throws Exception {
finishSetUp(m_testConfiguration);
connect();
login();
@@ -523,7 +593,7 @@
assertTrue(getLastLine(readAnswer()).endsWith(" does not exist"));
}
- public void testAlias() throws IOException {
+ public void testAlias() throws Exception {
m_mockUsersRepository.setForceUseJamesUser();
finishSetUp(m_testConfiguration);
connect();
@@ -585,7 +655,7 @@
}
- public void testForward() throws IOException {
+ public void testForward() throws Exception {
m_mockUsersRepository.setForceUseJamesUser();
finishSetUp(m_testConfiguration);
connect();
@@ -626,7 +696,7 @@
}
- public void testSetPassword() throws IOException {
+ public void testSetPassword() throws Exception {
finishSetUp(m_testConfiguration);
connect();
login();
@@ -656,7 +726,7 @@
}
- public void testAddMapping() throws IOException {
+ public void testAddMapping() throws Exception {
String lastLine;
finishSetUp(m_testConfiguration);
connect();
@@ -671,7 +741,7 @@
assertTrue("Not add mapping... allready exists",lastLine.endsWith("false"));
}
- public void testRemoveMapping() throws IOException {
+ public void testRemoveMapping() throws Exception {
String lastLine;
finishSetUp(m_testConfiguration);
connect();
@@ -690,7 +760,7 @@
assertTrue("Not remove mapping... mapping not exists",lastLine.endsWith("false"));
}
- public void testListAllMappings() throws IOException {
+ public void testListAllMappings() throws Exception {
String lastLine;
finishSetUp(m_testConfiguration);
connect();
@@ -706,11 +776,11 @@
sendCommand("listallmappings");
List answer = readAnswer(3);
- assertTrue("Read first mapping", answer.get(1).toString().endsWith("junit"));
- assertTrue("Read second mapping line", answer.get(2).toString().endsWith("junit2"));
+ assertTrue("Read first mapping", answer.get(1).toString().contains("junit"));
+ assertTrue("Read second mapping line", answer.get(2).toString().contains("junit2"));
}
- public void testListMapping() throws IOException {
+ public void testListMapping() throws Exception {
String lastLine;
finishSetUp(m_testConfiguration);
connect();
@@ -729,7 +799,7 @@
assertTrue("list mapping", lastLine.endsWith("junit"));
}
- public void testaddDomain() throws IOException {
+ public void testaddDomain() throws Exception {
String lastLine;
finishSetUp(m_testConfiguration);
connect();
@@ -749,7 +819,7 @@
assertTrue("list domain", lastLine.endsWith("domain"));
}
- public void testremoveDomain() throws IOException {
+ public void testremoveDomain() throws Exception {
String lastLine;
finishSetUp(m_testConfiguration);
connect();
@@ -768,7 +838,7 @@
assertTrue("Remove domain which not exist", lastLine.endsWith("fail"));
}
- public void testListDomains() throws IOException {
+ public void testListDomains() throws Exception {
String lastLine;
finishSetUp(m_testConfiguration);
connect();
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org