You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2010/12/18 11:23:21 UTC

svn commit: r1050608 - in /james/server/trunk: ./ container-spring/ container-spring/src/main/config/james/context/ container-spring/src/main/java/org/apache/james/container/spring/ mail-api/src/main/java/org/apache/james/mailstore/api/ mail-library/sr...

Author: norman
Date: Sat Dec 18 10:23:20 2010
New Revision: 1050608

URL: http://svn.apache.org/viewvc?rev=1050608&view=rev
Log:
Get rid of InstanceFactory

Added:
    james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/BeanFactoryMailStore.java
      - copied, changed from r1050601, james/server/trunk/mail-library/src/main/java/org/apache/james/mailstore/lib/JamesMailStore.java
    james/server/trunk/nio-netty/src/test/
    james/server/trunk/nio-netty/src/test/java/
    james/server/trunk/nio-netty/src/test/java/org/
    james/server/trunk/nio-netty/src/test/java/org/apache/
    james/server/trunk/nio-netty/src/test/java/org/apache/james/
    james/server/trunk/nio-netty/src/test/java/org/apache/james/server/
    james/server/trunk/nio-netty/src/test/java/org/apache/james/server/mock/
    james/server/trunk/nio-netty/src/test/java/org/apache/james/server/mock/MockJSR250Loader.java
      - copied, changed from r1050030, james/server/trunk/resolver-api/src/test/java/org/apache/james/resolver/api/mock/MockJSR250Loader.java
    james/server/trunk/nio-netty/src/test/java/org/apache/james/server/mock/MockProtocolHandlerChain.java
      - copied, changed from r1050434, james/server/trunk/nio-netty/src/main/java/org/apache/james/server/JamesProtocolHandlerChain.java
Removed:
    james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/SpringInstanceFactory.java
    james/server/trunk/mail-library/src/main/java/org/apache/james/mailstore/lib/JamesMailStore.java
    james/server/trunk/nio-netty/src/main/java/org/apache/james/server/JamesProtocolHandlerChain.java
    james/server/trunk/resolver-api/src/main/java/org/apache/james/resolver/api/InstanceFactory.java
    james/server/trunk/resolver-api/src/test/java/org/apache/james/resolver/api/mock/AbstractJSR250InstanceFactory.java
    james/server/trunk/resolver-api/src/test/java/org/apache/james/resolver/api/mock/MockJSR250Loader.java
Modified:
    james/server/trunk/container-spring/pom.xml
    james/server/trunk/container-spring/src/main/config/james/context/james-server-context.xml
    james/server/trunk/mail-api/src/main/java/org/apache/james/mailstore/api/MailStore.java
    james/server/trunk/mail-library/src/test/java/org/apache/james/mailstore/mock/MockMailStore.java
    james/server/trunk/osgi/src/main/java/org/apache/james/container/osgi/JamesOsgiBeanFactoryPostProcessor.java
    james/server/trunk/pom.xml
    james/server/trunk/pop3server/pom.xml
    james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/AbstractAsyncPOP3ServerTest.java
    james/server/trunk/remotemanager/pom.xml
    james/server/trunk/remotemanager/src/test/java/org/apache/james/remotemanager/AbstractRemoteManagerTest.java
    james/server/trunk/smtpserver/pom.xml
    james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/AbstractSMTPServerTest.java

Modified: james/server/trunk/container-spring/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/pom.xml?rev=1050608&r1=1050607&r2=1050608&view=diff
==============================================================================
--- james/server/trunk/container-spring/pom.xml (original)
+++ james/server/trunk/container-spring/pom.xml Sat Dec 18 10:23:20 2010
@@ -677,7 +677,6 @@
     <dependency>
       <groupId>org.apache.james</groupId>
       <artifactId>james-server-mail-api</artifactId>
-      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.james</groupId>

Modified: james/server/trunk/container-spring/src/main/config/james/context/james-server-context.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/config/james/context/james-server-context.xml?rev=1050608&r1=1050607&r2=1050608&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/config/james/context/james-server-context.xml (original)
+++ james/server/trunk/container-spring/src/main/config/james/context/james-server-context.xml Sat Dec 18 10:23:20 2010
@@ -72,7 +72,6 @@
     <!-- 
       Injection
      -->
-    <bean id="instanceFactory" class="org.apache.james.container.spring.SpringInstanceFactory"/>
     <bean class= "org.springframework.context.annotation.CommonAnnotationBeanPostProcessor">
         <property name="order" value="3" />
     </bean>
@@ -243,7 +242,7 @@
     <!-- 
       MailStore
      -->
-    <bean id="mailstore" class="org.apache.james.mailstore.lib.JamesMailStore" />
+    <bean id="mailstore" class="org.apache.james.container.spring.BeanFactoryMailStore" />
 
     <!-- 
       Mailbox

Copied: james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/BeanFactoryMailStore.java (from r1050601, james/server/trunk/mail-library/src/main/java/org/apache/james/mailstore/lib/JamesMailStore.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/BeanFactoryMailStore.java?p2=james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/BeanFactoryMailStore.java&p1=james/server/trunk/mail-library/src/main/java/org/apache/james/mailstore/lib/JamesMailStore.java&r1=1050601&r2=1050608&rev=1050608&view=diff
==============================================================================
--- james/server/trunk/mail-library/src/main/java/org/apache/james/mailstore/lib/JamesMailStore.java (original)
+++ james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/BeanFactoryMailStore.java Sat Dec 18 10:23:20 2010
@@ -19,14 +19,14 @@
 
 
 
-package org.apache.james.mailstore.lib;
+package org.apache.james.container.spring;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import javax.annotation.PostConstruct;
-import javax.annotation.Resource;
 
 import org.apache.commons.collections.map.ReferenceMap;
 import org.apache.commons.configuration.CombinedConfiguration;
@@ -38,14 +38,17 @@ import org.apache.james.lifecycle.api.Co
 import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.mailrepository.api.MailRepository;
 import org.apache.james.mailstore.api.MailStore;
-import org.apache.james.resolver.api.InstanceFactory;
+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 JamesMailStore implements MailStore, LogEnabled, Configurable {
+public class BeanFactoryMailStore implements MailStore, LogEnabled, Configurable, BeanFactoryAware {
 
 
     // map of [destinationURL + type]->Repository
@@ -64,7 +67,7 @@ public class JamesMailStore implements M
 
     private Log logger;
 
-    private InstanceFactory factory;
+    private ConfigurableListableBeanFactory beanFactory;
 
     public void setLog(Log logger) {
         this.logger = logger;
@@ -78,11 +81,6 @@ public class JamesMailStore implements M
         this.configuration = configuration;
     }
 
-
-    @Resource(name="instanceFactory")
-    public void setInstanceFactory(InstanceFactory factory) {
-        this.factory = factory;
-    }
     
     @PostConstruct
     @SuppressWarnings("unchecked")
@@ -229,7 +227,20 @@ public class JamesMailStore implements M
             config.addConfiguration(builder);
             
             try {               
-                reply =  (MailRepository) factory.newInstance(Thread.currentThread().getContextClassLoader().loadClass(repClass), logger, config);
+                // 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()) {
@@ -252,4 +263,16 @@ public class JamesMailStore implements M
         }
         
     }
+
+    /*
+     * (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;        
+    }
 }

Modified: james/server/trunk/mail-api/src/main/java/org/apache/james/mailstore/api/MailStore.java
URL: http://svn.apache.org/viewvc/james/server/trunk/mail-api/src/main/java/org/apache/james/mailstore/api/MailStore.java?rev=1050608&r1=1050607&r2=1050608&view=diff
==============================================================================
--- james/server/trunk/mail-api/src/main/java/org/apache/james/mailstore/api/MailStore.java (original)
+++ james/server/trunk/mail-api/src/main/java/org/apache/james/mailstore/api/MailStore.java Sat Dec 18 10:23:20 2010
@@ -19,12 +19,16 @@
 
 package org.apache.james.mailstore.api;
 
+import java.util.List;
+
 import org.apache.james.mailrepository.api.MailRepository;
 
 public interface MailStore {
 
     public MailRepository select(String url) throws StoreException;
     
+    public List<String> getUrls();
+    
     @SuppressWarnings("serial")
     public class StoreException extends Exception {
         public StoreException(String msg, Throwable t) {

Modified: james/server/trunk/mail-library/src/test/java/org/apache/james/mailstore/mock/MockMailStore.java
URL: http://svn.apache.org/viewvc/james/server/trunk/mail-library/src/test/java/org/apache/james/mailstore/mock/MockMailStore.java?rev=1050608&r1=1050607&r2=1050608&view=diff
==============================================================================
--- james/server/trunk/mail-library/src/test/java/org/apache/james/mailstore/mock/MockMailStore.java (original)
+++ james/server/trunk/mail-library/src/test/java/org/apache/james/mailstore/mock/MockMailStore.java Sat Dec 18 10:23:20 2010
@@ -21,7 +21,9 @@
 
 package org.apache.james.mailstore.mock;
 
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.james.mailrepository.api.MailRepository;
@@ -45,4 +47,8 @@ public class MockMailStore implements Ma
         return m_storedObjectMap.get(key);
     }
 
+    public List<String> getUrls() {
+        return new ArrayList<String>(m_storedObjectMap.keySet());
+    }
+
 }

Copied: james/server/trunk/nio-netty/src/test/java/org/apache/james/server/mock/MockJSR250Loader.java (from r1050030, james/server/trunk/resolver-api/src/test/java/org/apache/james/resolver/api/mock/MockJSR250Loader.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/nio-netty/src/test/java/org/apache/james/server/mock/MockJSR250Loader.java?p2=james/server/trunk/nio-netty/src/test/java/org/apache/james/server/mock/MockJSR250Loader.java&p1=james/server/trunk/resolver-api/src/test/java/org/apache/james/resolver/api/mock/MockJSR250Loader.java&r1=1050030&r2=1050608&rev=1050608&view=diff
==============================================================================
--- james/server/trunk/resolver-api/src/test/java/org/apache/james/resolver/api/mock/MockJSR250Loader.java (original)
+++ james/server/trunk/nio-netty/src/test/java/org/apache/james/server/mock/MockJSR250Loader.java Sat Dec 18 10:23:20 2010
@@ -17,14 +17,23 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.resolver.api.mock;
+package org.apache.james.server.mock;
 
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
-import org.apache.james.resolver.api.mock.AbstractJSR250InstanceFactory;
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.annotation.Resource;
 
-public class MockJSR250Loader extends AbstractJSR250InstanceFactory {
+import org.apache.commons.configuration.HierarchicalConfiguration;
+import org.apache.commons.logging.Log;
+
+public class MockJSR250Loader {
 
     private final Map<String, Object> servicesByName;
     
@@ -44,7 +53,103 @@ public class MockJSR250Loader extends Ab
         servicesByName.put(role, service);
     }
 
-	@Override
+
+    private List<Object> loaderRegistry = new ArrayList<Object>();
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.james.api.kernel.Factory#newInstance(java.lang.String)
+     */
+    public final <T> T newInstance(Class<T> clazz) throws Exception {
+        return newInstance(clazz, null, null);
+    }
+
+    public  final <T> T newInstance(Class<T> clazz, Log log, HierarchicalConfiguration config)  throws Exception{
+            T obj = clazz.newInstance();
+            injectResources(obj);
+            postConstruct(obj);
+            synchronized (this) {
+                loaderRegistry.add(obj);
+            }
+            return obj;
+    }
+
+    protected Object create(String className) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
+        return Thread.currentThread().getContextClassLoader().loadClass(className).newInstance();
+    }
+    /**
+     * Dispose all loaded instances by calling the method of the instances which
+     * is annotated with @PreDestroy
+     */
+    public synchronized void dispose() {
+        for (int i = 0; i < loaderRegistry.size(); i++) {
+            try {
+                preDestroy(loaderRegistry.get(i));
+            } catch (IllegalAccessException e) {
+                e.printStackTrace();
+            } catch (InvocationTargetException e) {
+                e.printStackTrace();
+            }
+        }
+        loaderRegistry.clear();
+    }
+
+    private void postConstruct(Object resource) throws IllegalAccessException, InvocationTargetException {
+        Method[] methods = resource.getClass().getMethods();
+        for (Method method : methods) {
+            PostConstruct postConstructAnnotation = method.getAnnotation(PostConstruct.class);
+            if (postConstructAnnotation != null) {
+                Object[] args = {};
+                method.invoke(resource, args);
+
+            }
+        }
+    }
+
+    private void preDestroy(Object resource) throws IllegalAccessException, InvocationTargetException {
+        Method[] methods = resource.getClass().getMethods();
+        for (Method method : methods) {
+            PreDestroy preDestroyAnnotation = method.getAnnotation(PreDestroy.class);
+            if (preDestroyAnnotation != null) {
+                Object[] args = {};
+                method.invoke(resource, args);
+
+            }
+        }
+    }
+
+    private void injectResources(Object resource) {
+        final Method[] methods = resource.getClass().getMethods();
+        for (Method method : methods) {
+            final Resource resourceAnnotation = method.getAnnotation(Resource.class);
+            if (resourceAnnotation != null) {
+                final String name = resourceAnnotation.name();
+                if (name == null) {
+                    throw new UnsupportedOperationException("Resource annotation without name specified is not supported by this implementation");
+                } else {
+                    // Name indicates a service
+                    final Object service = getObjectForName(name);
+
+                    if (service == null) {
+                        throw new RuntimeException("Injection failed for object " + resource + " on method " + method + " with resource name " + name + ", because no mapping was found");
+                    } else {
+                        try {
+                            Object[] args = { service };
+                            method.invoke(resource, args);
+                        } catch (IllegalAccessException e) {
+                            throw new RuntimeException("Injection failed for object " + resource + " on method " + method + " with resource " + service, e);
+                        } catch (IllegalArgumentException e) {
+                            throw new RuntimeException("Injection failed for object " + resource + " on method " + method + " with resource " + service, e);
+                        } catch (InvocationTargetException e) {
+                            throw new RuntimeException("Injection failed for object " + resource + " on method " + method + " with resource " + service, e);
+                        }
+                    }
+                }
+            }
+        }
+    }
+
 	public Object getObjectForName(String name) {
 		return get(name);
 	}

Copied: james/server/trunk/nio-netty/src/test/java/org/apache/james/server/mock/MockProtocolHandlerChain.java (from r1050434, james/server/trunk/nio-netty/src/main/java/org/apache/james/server/JamesProtocolHandlerChain.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/nio-netty/src/test/java/org/apache/james/server/mock/MockProtocolHandlerChain.java?p2=james/server/trunk/nio-netty/src/test/java/org/apache/james/server/mock/MockProtocolHandlerChain.java&p1=james/server/trunk/nio-netty/src/main/java/org/apache/james/server/JamesProtocolHandlerChain.java&r1=1050434&r2=1050608&rev=1050608&view=diff
==============================================================================
--- james/server/trunk/nio-netty/src/main/java/org/apache/james/server/JamesProtocolHandlerChain.java (original)
+++ james/server/trunk/nio-netty/src/test/java/org/apache/james/server/mock/MockProtocolHandlerChain.java Sat Dec 18 10:23:20 2010
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations      *
  * under the License.                                           *
  ****************************************************************/
-package org.apache.james.server;
+package org.apache.james.server.mock;
 
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -35,7 +35,6 @@ import org.apache.james.protocols.api.Ex
 import org.apache.james.protocols.api.HandlersPackage;
 import org.apache.james.protocols.api.ProtocolHandlerChain;
 import org.apache.james.protocols.api.WiringException;
-import org.apache.james.resolver.api.InstanceFactory;
 
 
 /**
@@ -45,21 +44,20 @@ import org.apache.james.resolver.api.Ins
  * TODO: Move this to test package as it is the only place where it get used
  */
 @SuppressWarnings("unchecked")
-public class JamesProtocolHandlerChain implements ProtocolHandlerChain, Configurable, LogEnabled {
+public class MockProtocolHandlerChain implements ProtocolHandlerChain, Configurable, LogEnabled {
   
     private Log log;
     private String coreHandlersPackage;
     private LinkedList handlers = new LinkedList();
     private HierarchicalConfiguration config;
-    private InstanceFactory factory;
+    private MockJSR250Loader factory;
 
 
     public void setCoreHandlersPackage(String coreHandlersPackage) {
         this.coreHandlersPackage = coreHandlersPackage;
     }
    
-    @Resource(name="instanceFactory")
-    public void setInstanceFactory(InstanceFactory factory) {
+    public void setLoader(MockJSR250Loader factory) {
         this.factory = factory;
     }
     

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=1050608&r1=1050607&r2=1050608&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 Sat Dec 18 10:23:20 2010
@@ -21,7 +21,6 @@ package org.apache.james.container.osgi;
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 
-import org.apache.james.container.spring.SpringInstanceFactory;
 import org.apache.james.container.spring.lifecycle.CommonsConfigurableBeanPostProcessor;
 import org.apache.james.container.spring.lifecycle.LogEnabledBeanPostProcessor;
 import org.osgi.framework.BundleContext;
@@ -75,10 +74,6 @@ public class JamesOsgiBeanFactoryPostPro
         commAnnotationProcessor.setDestroyAnnotationType(PreDestroy.class);
         commAnnotationProcessor.setResourceFactory(factory);
         factory.addBeanPostProcessor(commAnnotationProcessor);
-        
-        // Add SpringInstanceFactory to the context so we can load the classes via it
-        SpringInstanceFactory instanceFactory = new SpringInstanceFactory();
-        instanceFactory.setBeanFactory(factory);
-        factory.registerSingleton("instanceFactory", instanceFactory);
+     
     }
 }

Modified: james/server/trunk/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/pom.xml?rev=1050608&r1=1050607&r2=1050608&view=diff
==============================================================================
--- james/server/trunk/pom.xml (original)
+++ james/server/trunk/pom.xml Sat Dec 18 10:23:20 2010
@@ -343,6 +343,13 @@
     </dependency>
     <dependency>
       <groupId>org.apache.james</groupId>
+      <artifactId>james-server-nio-netty</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.james</groupId>
       <artifactId>apache-mailet</artifactId>
       <version>2.4</version>
       <exclusions>

Modified: james/server/trunk/pop3server/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server/pom.xml?rev=1050608&r1=1050607&r2=1050608&view=diff
==============================================================================
--- james/server/trunk/pop3server/pom.xml (original)
+++ james/server/trunk/pop3server/pom.xml Sat Dec 18 10:23:20 2010
@@ -126,5 +126,11 @@
       <scope>test</scope>
       <type>test-jar</type>
     </dependency>
+    <dependency>
+      <groupId>org.apache.james</groupId>
+      <artifactId>james-server-nio-netty</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 </project>
\ No newline at end of file

Modified: james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/AbstractAsyncPOP3ServerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/AbstractAsyncPOP3ServerTest.java?rev=1050608&r1=1050607&r2=1050608&view=diff
==============================================================================
--- james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/AbstractAsyncPOP3ServerTest.java (original)
+++ james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/AbstractAsyncPOP3ServerTest.java Sat Dec 18 10:23:20 2010
@@ -38,8 +38,8 @@ import org.apache.commons.net.pop3.POP3C
 import org.apache.commons.net.pop3.POP3MessageInfo;
 import org.apache.commons.net.pop3.POP3Reply;
 import org.apache.james.resolver.api.mock.MockFileSystem;
-import org.apache.james.resolver.api.mock.MockJSR250Loader;
-import org.apache.james.server.JamesProtocolHandlerChain;
+import org.apache.james.server.mock.MockJSR250Loader;
+import org.apache.james.server.mock.MockProtocolHandlerChain;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.dnsservice.api.mock.MockDNSService;
 import org.apache.james.mailbox.inmemory.InMemoryMailboxManager;
@@ -63,7 +63,7 @@ public abstract class AbstractAsyncPOP3S
     private MockJSR250Loader serviceManager;
     protected DNSService dnsservice;
     protected MockFileSystem fSystem;
-    protected JamesProtocolHandlerChain chain;
+    protected MockProtocolHandlerChain chain;
     private InMemoryMailboxManager manager;
     private byte[] content =        ("Return-path: return@test.com\r\n"+
             "Content-Transfer-Encoding: plain\r\n"+
@@ -77,8 +77,8 @@ public abstract class AbstractAsyncPOP3S
     protected void setUp() throws Exception {
         setUpServiceManager();
         
-        chain = new JamesProtocolHandlerChain();
-        chain.setInstanceFactory(serviceManager);
+        chain = new MockProtocolHandlerChain();
+        chain.setLoader(serviceManager);
         chain.setLog(new SimpleLog("ChainLog"));
    
         setUpPOP3Server();

Modified: james/server/trunk/remotemanager/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager/pom.xml?rev=1050608&r1=1050607&r2=1050608&view=diff
==============================================================================
--- james/server/trunk/remotemanager/pom.xml (original)
+++ james/server/trunk/remotemanager/pom.xml Sat Dec 18 10:23:20 2010
@@ -132,5 +132,11 @@
       <scope>test</scope>
       <type>test-jar</type>
     </dependency>
+    <dependency>
+      <groupId>org.apache.james</groupId>
+      <artifactId>james-server-nio-netty</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 </project>

Modified: james/server/trunk/remotemanager/src/test/java/org/apache/james/remotemanager/AbstractRemoteManagerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager/src/test/java/org/apache/james/remotemanager/AbstractRemoteManagerTest.java?rev=1050608&r1=1050607&r2=1050608&view=diff
==============================================================================
--- james/server/trunk/remotemanager/src/test/java/org/apache/james/remotemanager/AbstractRemoteManagerTest.java (original)
+++ james/server/trunk/remotemanager/src/test/java/org/apache/james/remotemanager/AbstractRemoteManagerTest.java Sat Dec 18 10:23:20 2010
@@ -30,20 +30,18 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
-import javax.mail.MessagingException;
 
 import junit.framework.TestCase;
 
 import org.apache.commons.logging.impl.SimpleLog;
 import org.apache.commons.net.telnet.TelnetClient;
 import org.apache.james.resolver.api.mock.MockFileSystem;
-import org.apache.james.resolver.api.mock.MockJSR250Loader;
-import org.apache.james.server.JamesProtocolHandlerChain;
+import org.apache.james.server.mock.MockJSR250Loader;
+import org.apache.james.server.mock.MockProtocolHandlerChain;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.dnsservice.api.mock.MockDNSService;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.domainlist.api.mock.SimpleDomainList;
-import org.apache.james.lifecycle.api.LifecycleUtil;
 import org.apache.james.mailstore.mock.MockMailStore;
 import org.apache.james.user.lib.mock.MockUsersRepository;
 import org.apache.james.util.InternetPrintWriter;
@@ -62,13 +60,13 @@ public abstract class AbstractRemoteMana
 	protected DNSService dnsservice;
 	protected MockFileSystem filesystem;
 	private MockVirtualUserTableManagementImpl vutManagement;
-	protected JamesProtocolHandlerChain chain;
+	protected MockProtocolHandlerChain chain;
 	
 	protected void setUp() throws Exception {
 		setUpFakeLoader();
 
-        chain = new JamesProtocolHandlerChain();
-	    chain.setInstanceFactory(serviceManager);
+        chain = new MockProtocolHandlerChain();
+	    chain.setLoader(serviceManager);
 	    chain.setLog(new SimpleLog("ChainLog"));
 	        
 	    setUpRemoteManager();

Modified: james/server/trunk/smtpserver/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/pom.xml?rev=1050608&r1=1050607&r2=1050608&view=diff
==============================================================================
--- james/server/trunk/smtpserver/pom.xml (original)
+++ james/server/trunk/smtpserver/pom.xml Sat Dec 18 10:23:20 2010
@@ -181,5 +181,11 @@
       <scope>test</scope>
       <type>test-jar</type>
     </dependency>
+    <dependency>
+      <groupId>org.apache.james</groupId>
+      <artifactId>james-server-nio-netty</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 </project>

Modified: james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/AbstractSMTPServerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/AbstractSMTPServerTest.java?rev=1050608&r1=1050607&r2=1050608&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/AbstractSMTPServerTest.java (original)
+++ james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/AbstractSMTPServerTest.java Sat Dec 18 10:23:20 2010
@@ -45,11 +45,10 @@ import org.apache.commons.net.smtp.SMTPR
 import org.apache.james.queue.api.mock.MockMailQueue;
 import org.apache.james.queue.api.mock.MockMailQueueFactory;
 import org.apache.james.resolver.api.mock.MockFileSystem;
-import org.apache.james.resolver.api.mock.MockJSR250Loader;
-import org.apache.james.server.JamesProtocolHandlerChain;
+import org.apache.james.server.mock.MockJSR250Loader;
+import org.apache.james.server.mock.MockProtocolHandlerChain;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.domainlist.api.mock.SimpleDomainList;
-import org.apache.james.lifecycle.api.LifecycleUtil;
 import org.apache.james.mailstore.mock.MockMailStore;
 import org.apache.james.user.lib.mock.MockUsersRepository;
 import org.apache.james.util.codec.Base64;
@@ -147,7 +146,7 @@ public abstract class AbstractSMTPServer
     protected MockMailStore store;
     protected MockFileSystem fileSystem;
     protected SMTPServerDNSServiceAdapter dnsAdapter;
-    protected JamesProtocolHandlerChain chain;
+    protected MockProtocolHandlerChain chain;
     protected MockMailQueueFactory queueFactory;
     protected MockMailQueue queue;
     
@@ -163,8 +162,8 @@ public abstract class AbstractSMTPServer
         m_testConfiguration = new SMTPTestConfiguration(m_smtpListenerPort);
 
         
-        chain = new JamesProtocolHandlerChain();
-        chain.setInstanceFactory(m_serviceManager);
+        chain = new MockProtocolHandlerChain();
+        chain.setLoader(m_serviceManager);
         chain.setLog(log);
         setUpSMTPServer();
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org