Author: bago
Date: Sun Oct 18 11:30:37 2009
New Revision: 826411

URL: http://svn.apache.org/viewvc?rev=826411&view=rev
Log:
Make the SMTPHandlerChain equals the other handlerchains by merging the 2 
HandlerPackages (CoreCmdHandler and CoreMessageHook)

Removed:
    
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/protocol/core/CoreMessageHookLoader.java
Modified:
    
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/protocol/SMTPHandlerChain.java
    
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/protocol/core/CoreCmdHandlerLoader.java
    
james/server/trunk/socket-shared-library/src/main/java/org/apache/james/socket/shared/AbstractHandlerChain.java

Modified: 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/protocol/SMTPHandlerChain.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/protocol/SMTPHandlerChain.java?rev=826411&r1=826410&r2=826411&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/protocol/SMTPHandlerChain.java
 (original)
+++ 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/protocol/SMTPHandlerChain.java
 Sun Oct 18 11:30:37 2009
@@ -21,13 +21,9 @@
 
 package org.apache.james.smtpserver.protocol;
 
-import java.util.List;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.james.smtpserver.protocol.core.CoreCmdHandlerLoader;
-import org.apache.james.smtpserver.protocol.core.CoreMessageHookLoader;
-import org.apache.james.smtpserver.protocol.core.DataLineMessageHookHandler;
 import org.apache.james.socket.shared.AbstractHandlerChain;
 import org.apache.james.socket.shared.LogEnabled;
 
@@ -38,7 +34,7 @@
 public class SMTPHandlerChain extends AbstractHandlerChain implements 
LogEnabled{
 
     /** This log is the fall back shared by all instances */
-    private static final Log FALLBACK_LOG = 
LogFactory.getLog(DataLineMessageHookHandler.class);
+    private static final Log FALLBACK_LOG = 
LogFactory.getLog(SMTPHandlerChain.class);
     
     /** Non context specific log should only be used when no context specific 
log is available */
     private Log log = FALLBACK_LOG;
@@ -53,30 +49,6 @@
     }
 
     /**
-     * loads the various handlers from the configuration
-     * 
-     * @param configuration
-     *            configuration under handlerchain node
-     */
-    @SuppressWarnings("unchecked")
-       protected void loadHandlers() throws Exception {
-        super.loadHandlers();
-        if (commonsConf != null) {
-            List<org.apache.commons.configuration.Configuration> children = 
commonsConf.configurationsAt("handler");
-            ClassLoader classLoader = 
Thread.currentThread().getContextClassLoader();
-
-            // load the configured handlers
-            if (children != null && children.isEmpty() == false) {
-
-                // load core messageHandlers
-                loadClass(classLoader, CoreMessageHookLoader.class.getName(),
-                        addHandler(CoreMessageHookLoader.class.getName()));
-
-            }
-        }
-    }
-
-    /**
      * @see org.apache.james.socket.shared.AbstractHandlerChain#getLog()
      */
     protected Log getLog() {

Modified: 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/protocol/core/CoreCmdHandlerLoader.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/protocol/core/CoreCmdHandlerLoader.java?rev=826411&r1=826410&r2=826411&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/protocol/core/CoreCmdHandlerLoader.java
 (original)
+++ 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/protocol/core/CoreCmdHandlerLoader.java
 Sun Oct 18 11:30:37 2009
@@ -56,6 +56,11 @@
     private final String SENDERAUTHIDENTITYVERIFICATION = 
SenderAuthIdentifyVerificationRcptHook.class.getName();
     private final String DATALINEMESSAGEHOOKHANDLER = 
DataLineMessageHookHandler.class.getName();
     private final String STARTTLSHANDLER = StartTlsCmdHandler.class.getName();
+
+    // MessageHooks
+    private final String ADDDEFAULTATTRIBUTESHANDLER = 
AddDefaultAttributesMessageHook.class.getName();
+    private final String SENDMAILHANDLER = SendMailHandler.class.getName();
+
     private final List<String> commands = new LinkedList<String>();
 
     public CoreCmdHandlerLoader() {
@@ -80,7 +85,11 @@
         commands.add(SENDERAUTHIDENTITYVERIFICATION);
         commands.add(POSTMASTERABUSEHOOK);
         commands.add(DATALINEMESSAGEHOOKHANDLER);
-        commands.add(STARTTLSHANDLER);    }
+        commands.add(STARTTLSHANDLER);
+        // Add the default messageHooks
+        commands.add(ADDDEFAULTATTRIBUTESHANDLER);
+        commands.add(SENDMAILHANDLER);
+    }
     /**
      * @see org.apache.james.socket.shared.HandlersPackage#getHandlers()
      */

Modified: 
james/server/trunk/socket-shared-library/src/main/java/org/apache/james/socket/shared/AbstractHandlerChain.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/socket-shared-library/src/main/java/org/apache/james/socket/shared/AbstractHandlerChain.java?rev=826411&r1=826410&r2=826411&view=diff
==============================================================================
--- 
james/server/trunk/socket-shared-library/src/main/java/org/apache/james/socket/shared/AbstractHandlerChain.java
 (original)
+++ 
james/server/trunk/socket-shared-library/src/main/java/org/apache/james/socket/shared/AbstractHandlerChain.java
 Sun Oct 18 11:30:37 2009
@@ -32,19 +32,20 @@
 import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.commons.logging.Log;
 import org.apache.james.api.kernel.LoaderService;
+import org.apache.james.socket.configuration.Configurable;
 
 /**
  * Abstract class which HandlerChains should extend
  * 
  *
  */
-public abstract class AbstractHandlerChain {
+public abstract class AbstractHandlerChain implements LogEnabled, Configurable 
{
     protected final List<Object> handlers = new LinkedList<Object>();
     
     /** Loads instances */
     private LoaderService loader;
 
-    protected HierarchicalConfiguration commonsConf;
+    protected Configuration commonsConf;
     
     
     /**
@@ -175,8 +176,8 @@
      */
     @SuppressWarnings("unchecked")
     protected void loadHandlers() throws Exception {
-        if (commonsConf != null) {
-            List<org.apache.commons.configuration.Configuration> children = 
commonsConf.configurationsAt("handler");
+        if (commonsConf != null && commonsConf instanceof 
HierarchicalConfiguration) {
+            List<org.apache.commons.configuration.Configuration> children = 
((HierarchicalConfiguration) commonsConf).configurationsAt("handler");
             ClassLoader classLoader = 
Thread.currentThread().getContextClassLoader();
 
             // load the configured handlers
@@ -209,12 +210,15 @@
      * Configure the chain
      * 
      * @param commonsConf
-     * @throws Exception
      */
-    public void configure(HierarchicalConfiguration commonsConf) throws 
Exception {
+    public void configure(Configuration commonsConf) throws 
ConfigurationException {
         this.commonsConf =  commonsConf;
-        loadHandlers();    
-        wireExtensibleHandlers();
+        try {
+            loadHandlers();
+            wireExtensibleHandlers();
+        } catch (Exception e) {
+            throw new ConfigurationException(e.getMessage(), e);
+        }    
     }
     
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to