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/04 15:06:53 UTC

svn commit: r832749 - in /james/server/trunk: nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/ phoenix-deployment/src/conf/ smtpserver-function/src/main/resources/org/apache/james/smtpserver/

Author: norman
Date: Wed Nov  4 14:06:52 2009
New Revision: 832749

URL: http://svn.apache.org/viewvc?rev=832749&view=rev
Log:
Work on fixing startup when nntp is enabled

Modified:
    james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/AvalonNNTPRepository.java
    james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/NNTPRepositoryImpl.java
    james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/NNTPSpooler.java
    james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml
    james/server/trunk/phoenix-deployment/src/conf/james-config.xml
    james/server/trunk/smtpserver-function/src/main/resources/org/apache/james/smtpserver/AvalonSMTPServer.xinfo

Modified: james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/AvalonNNTPRepository.java
URL: http://svn.apache.org/viewvc/james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/AvalonNNTPRepository.java?rev=832749&r1=832748&r2=832749&view=diff
==============================================================================
--- james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/AvalonNNTPRepository.java (original)
+++ james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/AvalonNNTPRepository.java Wed Nov  4 14:06:52 2009
@@ -33,6 +33,7 @@
 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.kernel.LoaderService;
 import org.apache.james.bridge.GuiceInjected;
 import org.apache.james.services.FileSystem;
 import org.apache.james.util.ConfigurationAdapter;
@@ -40,6 +41,8 @@
 
 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 AvalonNNTPRepository implements NNTPRepository, GuiceInjected, Configurable, Serviceable, LogEnabled, Initializable{
@@ -90,17 +93,35 @@
     }
 
     public void initialize() throws Exception {
-        repos = Guice.createInjector(new Jsr250Module(), new AbstractModule() {
-            
-            @Override
-            protected void configure() {
-                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(fs);
-            }
-        }).getInstance(NNTPRepositoryImpl.class);
+        repos = Guice.createInjector(new Jsr250Module(), new NTTPRepositoryModule()).getInstance(NNTPRepositoryImpl.class);
     }
 
+    private class NTTPRepositoryModule extends AbstractModule {
+        
+        @Override
+        protected void configure() {
+            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(fs);
+            bind(LoaderService.class).annotatedWith(Names.named("org.apache.james.LoaderService")).toProvider(new Provider<LoaderService>() {
+
+                public LoaderService get() {
+                    return new NNTPLoaderService();
+                }
+                
+                // Mimic the loaderservice
+                class NNTPLoaderService implements LoaderService {
+                    Injector injector = Guice.createInjector(new NTTPRepositoryModule(), new Jsr250Module());
+
+                    public <T> T load(Class<T> type) {
+                        return injector.getInstance(type);
+                    }
+                    
+                }
+                
+            });
+        }
+    }
     /**
      * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
      */

Modified: james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/NNTPRepositoryImpl.java
URL: http://svn.apache.org/viewvc/james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/NNTPRepositoryImpl.java?rev=832749&r1=832748&r2=832749&view=diff
==============================================================================
--- james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/NNTPRepositoryImpl.java (original)
+++ james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/NNTPRepositoryImpl.java Wed Nov  4 14:06:52 2009
@@ -472,7 +472,9 @@
         HierarchicalConfiguration spoolerConfiguration = configuration.configurationAt("spool");
         // Must be a subclass of org.apache.james.nntpserver.repository.NNTPSpooler
         className = spoolerConfiguration.getString("[@class]");
-
+        if (className == null) {
+        	className = NNTPSpooler.class.getName();
+        }
         try {
             Class<?> myClass = Thread.currentThread().getContextClassLoader().loadClass(className);
             Object obj = loader.load(myClass);

Modified: james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/NNTPSpooler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/NNTPSpooler.java?rev=832749&r1=832748&r2=832749&view=diff
==============================================================================
--- james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/NNTPSpooler.java (original)
+++ james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/repository/NNTPSpooler.java Wed Nov  4 14:06:52 2009
@@ -30,6 +30,7 @@
 import org.apache.james.util.Lock;
 import org.apache.james.util.io.IOUtil;
 
+import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
 import javax.mail.internet.MimeMessage;
 
@@ -75,13 +76,8 @@
 
     private Log logger;
 
-
-    /**
-     * @see org.apache.avalon.framework.activity.Initializable#initialize()
-     */
-    public void initialize() throws Exception {
-        //System.out.println(getClass().getName()+": init");
-
+    @PostConstruct
+    public void init() throws Exception {
         try {
             spoolPath = fileSystem.getFile(spoolPathString);
             if ( spoolPath.exists() == 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=832749&r1=832748&r2=832749&view=diff
==============================================================================
--- james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml (original)
+++ james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml Wed Nov  4 14:06:52 2009
@@ -158,6 +158,7 @@
     <provide name="filesystem" role="org.apache.james.services.FileSystem" />
     <provide name="defaultvirtualusertable"
              role="org.apache.james.api.vut.VirtualUserTable" />
+    <provide name="virtualusertable-store" role="org.apache.james.api.vut.VirtualUserTableStore"/>
     <proxy disable='true'/>
   </block>
   

Modified: james/server/trunk/phoenix-deployment/src/conf/james-config.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/conf/james-config.xml?rev=832749&r1=832748&r2=832749&view=diff
==============================================================================
--- james/server/trunk/phoenix-deployment/src/conf/james-config.xml (original)
+++ james/server/trunk/phoenix-deployment/src/conf/james-config.xml Wed Nov  4 14:06:52 2009
@@ -1210,7 +1210,7 @@
          <newsgroup>org.apache.avalon.user</newsgroup>
       </newsgroups>
 
-      <spool>
+      <spool class="org.apache.james.nntpserver.repository.NNTPSpooler">
          <configuration>
             <spoolPath>file://var/nntp/spool</spoolPath>
             <!-- The number of threads that process spooler related tasks. -->

Modified: james/server/trunk/smtpserver-function/src/main/resources/org/apache/james/smtpserver/AvalonSMTPServer.xinfo
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/resources/org/apache/james/smtpserver/AvalonSMTPServer.xinfo?rev=832749&r1=832748&r2=832749&view=diff
==============================================================================
--- james/server/trunk/smtpserver-function/src/main/resources/org/apache/james/smtpserver/AvalonSMTPServer.xinfo (original)
+++ james/server/trunk/smtpserver-function/src/main/resources/org/apache/james/smtpserver/AvalonSMTPServer.xinfo Wed Nov  4 14:06:52 2009
@@ -65,6 +65,9 @@
     </dependency>
     <dependency>
       <service name="org.apache.james.services.FileSystem" version="1.0"/>
+    </dependency>    
+    <dependency>
+      <service name="org.apache.james.api.vut.VirtualUserTableStore" version="1.0"/>
     </dependency>
   </dependencies>
 </blockinfo>



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