Author: norman
Date: Thu Oct 14 16:22:08 2010
New Revision: 1022598

URL: http://svn.apache.org/viewvc?rev=1022598&view=rev
Log:
Make jmx optional in CamelMailProcessorList by move it to extra class 
(JAMES-1057)

Added:
    
james/server/trunk/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/ProcessorManagement.java
Modified:
    
james/server/trunk/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/camel/CamelMailProcessorList.java
    james/server/trunk/spring-deployment/src/main/config/james/spring-beans.xml

Modified: 
james/server/trunk/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/camel/CamelMailProcessorList.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/camel/CamelMailProcessorList.java?rev=1022598&r1=1022597&r2=1022598&view=diff
==============================================================================
--- 
james/server/trunk/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/camel/CamelMailProcessorList.java
 (original)
+++ 
james/server/trunk/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/camel/CamelMailProcessorList.java
 Thu Oct 14 16:22:08 2010
@@ -29,9 +29,6 @@ import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 import javax.annotation.Resource;
 import javax.mail.MessagingException;
-import javax.management.MBeanServer;
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
@@ -94,7 +91,6 @@ public class CamelMailProcessorList impl
 
     private ProducerTemplate producerTemplate;
        private CamelContext camelContext;
-       private MBeanServer mbeanserver;
     
 
 
@@ -103,16 +99,8 @@ public class CamelMailProcessorList impl
         getCamelContext().addRoutes(new SpoolRouteBuilder());
         producerTemplate = getCamelContext().createProducerTemplate();
 
-        registerMBeans();
-
     }
 
-    @Resource(name = "mbeanserver")
-    public void setMbeanServer(MBeanServer mbeanServer) {
-        this.mbeanserver = mbeanServer;
-    }
-       
-       
     /**
      * Destroy all mailets and matchers
      */
@@ -325,209 +313,149 @@ public class CamelMailProcessorList impl
         this.camelContext = camelContext;
     }
 
-    
-    private void registerMBeans() {
-       
-        String baseObjectName = 
"org.apache.james:type=component,name=processor,";
-
-        String[] processorNames = getProcessorNames();
-        for (int i = 0; i < processorNames.length; i++) {
-            String processorName = processorNames[i];
-            createProcessorMBean(baseObjectName, processorName, mbeanserver);
-            continue;
-        }
-    }
-
-    private void createProcessorMBean(String baseObjectName, String 
processorName, MBeanServer mBeanServer) {
-        String processorMBeanName = baseObjectName + "processor=" + 
processorName;
-        registerMBean(mBeanServer, processorMBeanName, 
getProcessor(processorName));
-
-
-        // add all mailets but the last, because that is a terminator (see 
LinearProcessor.closeProcessorLists())
-        List<Mailet> mailets =  ((MailetContainer) 
getProcessor(processorName)).getMailets();
-        for (int i = 0; i < mailets.size(); i++) {
-            MailetManagement mailet = (MailetManagement) mailets.get(i);
-
-            String mailetMBeanName = processorMBeanName + 
",subtype=mailet,index=" + (i+1) + ",mailetname=" + mailet.getMailetName();
-            registerMBean(mBeanServer, mailetMBeanName, mailet);
-        }
-
-       
-        
-        // add all matchers but the last, because that is a terminator (see 
LinearProcessor.closeProcessorLists())
-        List<Matcher> matchers =  
((MailetContainer)getProcessor(processorName)).getMatchers();
-        for (int i = 0; i < matchers.size(); i++) {
-            MatcherManagement matcher = (MatcherManagement) matchers.get(i);
-
-            String matcherMBeanName = processorMBeanName + 
",subtype=matcher,index=" + (i+1) + ",matchername=" + matcher.getMatcherName();
+  
+    private final class SpoolRouteBuilder extends RouteBuilder {
+        /*
+         * (non-Javadoc)
+         * @see org.apache.camel.builder.RouteBuilder#configure()
+         */
+        @SuppressWarnings("unchecked")
+        @Override
+        public void configure() throws Exception {
+            Processor terminatingMailetProcessor = new MailetProcessor(new 
TerminatingMailet(), logger);
+            Processor disposeProcessor = new DisposeProcessor();
+            Processor mailProcessor = new MailCamelProcessor();
+            Processor removePropsProcessor = new RemovePropertiesProcessor();
+            
+            List<HierarchicalConfiguration> processorConfs = 
config.configurationsAt("processor");
+            for (int i = 0; i < processorConfs.size(); i++) {
+                final HierarchicalConfiguration processorConf = 
processorConfs.get(i);
+                String processorName = processorConf.getString("[...@name]");
 
-            registerMBean(mBeanServer, matcherMBeanName, matcher);
-        }
-       
+                
+                mailets.put(processorName, new ArrayList<MailetManagement>());
+                matchers.put(processorName, new 
ArrayList<MatcherManagement>());
 
-    }
+                RouteDefinition processorDef = 
from(getEndpoint(processorName)).inOnly()
+            // store the logger in properties
+                .setProperty(MatcherSplitter.LOGGER_PROPERTY, 
constant(logger));   
+
+                final List<HierarchicalConfiguration> mailetConfs = 
processorConf.configurationsAt("mailet");
+                // Loop through the mailet configuration, load
+                // all of the matcher and mailets, and add
+                // them to the processor.
+                for (int j = 0; j < mailetConfs.size(); j++) {
+                    HierarchicalConfiguration c = mailetConfs.get(j);
+
+                    // We need to set this because of correctly parsing comma
+                    String mailetClassName = c.getString("[...@class]");
+                    String matcherName = c.getString("[...@match]", null);
+                    String invertedMatcherName = c.getString("[...@notmatch]", 
null);
+                
+                    Mailet mailet = null;
+                    Matcher matcher = null;
+                    try {
+
+                        if (matcherName != null && invertedMatcherName != 
null) {
+                            // if no matcher is configured throw an Exception
+                            throw new ConfigurationException("Please configure 
only match or nomatch per mailet");
+                        } else if (matcherName != null) {
+                            matcher = matcherLoader.getMatcher(matcherName);
+                        } else if (invertedMatcherName != null) {
+                            matcher = new 
MatcherInverter(matcherLoader.getMatcher(invertedMatcherName));
+
+                        } else {
+                            // default matcher is All
+                            matcher = matcherLoader.getMatcher("All");
+                        }
+
+                        // The matcher itself should log that it's been inited.
+                        if (logger.isInfoEnabled()) {
+                            StringBuffer infoBuffer = new 
StringBuffer(64).append("Matcher ").append(matcherName).append(" 
instantiated.");
+                            logger.info(infoBuffer.toString());
+                        }
+                    } catch (MessagingException ex) {
+                        // **** Do better job printing out exception
+                        if (logger.isErrorEnabled()) {
+                            StringBuffer errorBuffer = new 
StringBuffer(256).append("Unable to init matcher 
").append(matcherName).append(": ").append(ex.toString());
+                            logger.error(errorBuffer.toString(), ex);
+                            if (ex.getNextException() != null) {
+                                logger.error("Caused by nested exception: ", 
ex.getNextException());
+                            }
+                        }
+                        System.err.println("Unable to init matcher " + 
matcherName);
+                        System.err.println("Check spool manager logs for more 
details.");
+                        // System.exit(1);
+                        throw new ConfigurationException("Unable to init 
matcher", ex);
+                    }
+                    try {
+                        mailet = mailetLoader.getMailet(mailetClassName, c);
+                        if (logger.isInfoEnabled()) {
+                            StringBuffer infoBuffer = new 
StringBuffer(64).append("Mailet ").append(mailetClassName).append(" 
instantiated.");
+                            logger.info(infoBuffer.toString());
+                        }
+                    } catch (MessagingException ex) {
+                        // **** Do better job printing out exception
+                        if (logger.isErrorEnabled()) {
+                            StringBuffer errorBuffer = new 
StringBuffer(256).append("Unable to init mailet 
").append(mailetClassName).append(": ").append(ex.toString());
+                            logger.error(errorBuffer.toString(), ex);
+                            if (ex.getNextException() != null) {
+                                logger.error("Caused by nested exception: ", 
ex.getNextException());
+                            }
+                        }
+                        System.err.println("Unable to init mailet " + 
mailetClassName);
+                        System.err.println("Check spool manager logs for more 
details.");
+                        throw new ConfigurationException("Unable to init 
mailet", ex);
+                    }
+                    if (mailet != null && matcher != null) {
+                        MailetManagement wrappedMailet = new 
MailetManagement(mailet);
+                        MatcherManagement wrappedMatcher = new 
MatcherManagement(matcher);
+                        String onMatchException = null;
+                        MailetConfig mailetConfig = 
wrappedMailet.getMailetConfig();
+                    
+                        if (mailetConfig instanceof MailetConfigImpl) {
+                            onMatchException = ((MailetConfigImpl) 
mailetConfig).getInitAttribute("onMatchException");
+                        }
+                    
+                        MailetProcessor mailetProccessor = new 
MailetProcessor(wrappedMailet, logger);
+                        // Store the matcher to use for splitter in properties
+                        processorDef
+                            .setProperty(MatcherSplitter.MATCHER_PROPERTY, 
constant(wrappedMatcher)).setProperty(MatcherSplitter.ON_MATCH_EXCEPTION_PROPERTY,
 constant(onMatchException))
+                            
+                            // do splitting of the mail based on the stored 
matcher
+                            
.split().method(MatcherSplitter.class).aggregationStrategy(aggr).parallelProcessing()
+                            .choice().when(new 
MatcherMatch()).process(mailetProccessor).end()
+                            
+                            .choice().when(new 
MailStateEquals(Mail.GHOST)).process(disposeProcessor).stop().otherwise().process(removePropsProcessor).end()
+
+                            .choice().when(new 
MailStateNotEquals(processorName)).process(mailProcessor).stop().end();
+
+                        // store mailet and matcher
+                        mailets.get(processorName).add(wrappedMailet);
+                        matchers.get(processorName).add(wrappedMatcher);
+                    }
+              
 
-    private void registerMBean(MBeanServer mBeanServer, String mBeanName, 
Object object) {
-        ObjectName objectName = null;
-        try {
-            objectName = new ObjectName(mBeanName);
-        } catch (MalformedObjectNameException e) {
-               logger.info("Unable to register mbean", e);
-
-            return;
-        }
-        try {
-            mBeanServer.registerMBean(object, objectName);
-        } catch (javax.management.JMException e) {
-            logger.error("Unable to register mbean", e);
+                }
+                
+                processorDef
+                // start choice
+                    .choice()
+                 
+                    // when the mail state did not change till yet ( the end 
of the route) we need to call the TerminatingMailet to
+                    // make sure we don't fall into a endless loop
+                    .when(new 
MailStateEquals(processorName)).process(terminatingMailetProcessor).stop()
+                    
+                       
+                    // dispose when needed
+                    .when(new 
MailStateEquals(Mail.GHOST)).process(disposeProcessor).stop()
+                    
+                     // route it to the next processor
+                    .otherwise().process(mailProcessor).stop();
+                  
+                processors.put(processorName, new 
ProcessorDetail(processorName,new ChildProcessor(processorName)));
+            }
+                
         }
     }
-
-    
-       private final class SpoolRouteBuilder extends RouteBuilder {
-               /*
-            * (non-Javadoc)
-            * @see org.apache.camel.builder.RouteBuilder#configure()
-            */
-           @SuppressWarnings("unchecked")
-           @Override
-           public void configure() throws Exception {
-               Processor terminatingMailetProcessor = new MailetProcessor(new 
TerminatingMailet(), logger);
-               Processor disposeProcessor = new DisposeProcessor();
-               Processor mailProcessor = new MailCamelProcessor();
-               Processor removePropsProcessor = new 
RemovePropertiesProcessor();
-               
-               List<HierarchicalConfiguration> processorConfs = 
config.configurationsAt("processor");
-               for (int i = 0; i < processorConfs.size(); i++) {
-                   final HierarchicalConfiguration processorConf = 
processorConfs.get(i);
-                   String processorName = 
processorConf.getString("[...@name]");
-
-                 
-                   mailets.put(processorName, new 
ArrayList<MailetManagement>());
-                   matchers.put(processorName, new 
ArrayList<MatcherManagement>());
-
-                   RouteDefinition processorDef = 
from(getEndpoint(processorName)).inOnly()
-                   // store the logger in properties
-                   .setProperty(MatcherSplitter.LOGGER_PROPERTY, 
constant(logger));   
-                      
-                   
-                   final List<HierarchicalConfiguration> mailetConfs = 
processorConf.configurationsAt("mailet");
-                   // Loop through the mailet configuration, load
-                   // all of the matcher and mailets, and add
-                   // them to the processor.
-                   for (int j = 0; j < mailetConfs.size(); j++) {
-                       HierarchicalConfiguration c = mailetConfs.get(j);
-
-                       // We need to set this because of correctly parsing 
comma
-                       String mailetClassName = c.getString("[...@class]");
-                       String matcherName = c.getString("[...@match]", null);
-                       String invertedMatcherName = 
c.getString("[...@notmatch]", null);
-
-                       Mailet mailet = null;
-                       Matcher matcher = null;
-                       try {
-
-                           if (matcherName != null && invertedMatcherName != 
null) {
-                               // if no matcher is configured throw an 
Exception
-                               throw new ConfigurationException("Please 
configure only match or nomatch per mailet");
-                           } else if (matcherName != null) {
-                               matcher = matcherLoader.getMatcher(matcherName);
-                           } else if (invertedMatcherName != null) {
-                               matcher = new 
MatcherInverter(matcherLoader.getMatcher(invertedMatcherName));
-
-                           } else {
-                               // default matcher is All
-                               matcher = matcherLoader.getMatcher("All");
-                           }
-
-                           // The matcher itself should log that it's been 
inited.
-                           if (logger.isInfoEnabled()) {
-                               StringBuffer infoBuffer = new 
StringBuffer(64).append("Matcher ").append(matcherName).append(" 
instantiated.");
-                               logger.info(infoBuffer.toString());
-                           }
-                       } catch (MessagingException ex) {
-                           // **** Do better job printing out exception
-                           if (logger.isErrorEnabled()) {
-                               StringBuffer errorBuffer = new 
StringBuffer(256).append("Unable to init matcher 
").append(matcherName).append(": ").append(ex.toString());
-                               logger.error(errorBuffer.toString(), ex);
-                               if (ex.getNextException() != null) {
-                                   logger.error("Caused by nested exception: 
", ex.getNextException());
-                               }
-                           }
-                           System.err.println("Unable to init matcher " + 
matcherName);
-                           System.err.println("Check spool manager logs for 
more details.");
-                           // System.exit(1);
-                           throw new ConfigurationException("Unable to init 
matcher", ex);
-                       }
-                       try {
-                           mailet = mailetLoader.getMailet(mailetClassName, c);
-                           if (logger.isInfoEnabled()) {
-                               StringBuffer infoBuffer = new 
StringBuffer(64).append("Mailet ").append(mailetClassName).append(" 
instantiated.");
-                               logger.info(infoBuffer.toString());
-                           }
-                       } catch (MessagingException ex) {
-                           // **** Do better job printing out exception
-                           if (logger.isErrorEnabled()) {
-                               StringBuffer errorBuffer = new 
StringBuffer(256).append("Unable to init mailet 
").append(mailetClassName).append(": ").append(ex.toString());
-                               logger.error(errorBuffer.toString(), ex);
-                               if (ex.getNextException() != null) {
-                                   logger.error("Caused by nested exception: 
", ex.getNextException());
-                               }
-                           }
-                           System.err.println("Unable to init mailet " + 
mailetClassName);
-                           System.err.println("Check spool manager logs for 
more details.");
-                           throw new ConfigurationException("Unable to init 
mailet", ex);
-                       }
-                       if (mailet != null && matcher != null) {
-                           MailetManagement wrappedMailet = new 
MailetManagement(mailet);
-                           MatcherManagement wrappedMatcher = new 
MatcherManagement(matcher);
-                           String onMatchException = null;
-                           MailetConfig mailetConfig = 
wrappedMailet.getMailetConfig();
-                           
-                           if (mailetConfig instanceof MailetConfigImpl) {
-                               onMatchException = ((MailetConfigImpl) 
mailetConfig).getInitAttribute("onMatchException");
-                           }
-                           
-                           MailetProcessor mailetProccessor = new 
MailetProcessor(wrappedMailet, logger);
-                           // Store the matcher to use for splitter in 
properties
-                           processorDef
-                                   
.setProperty(MatcherSplitter.MATCHER_PROPERTY, 
constant(wrappedMatcher)).setProperty(MatcherSplitter.ON_MATCH_EXCEPTION_PROPERTY,
 constant(onMatchException))
-                                   
-                                   // do splitting of the mail based on the 
stored matcher
-                                   
.split().method(MatcherSplitter.class).aggregationStrategy(aggr).parallelProcessing()
-
-                                   .choice().when(new 
MatcherMatch()).process(mailetProccessor).end()
-                                   
-                                   .choice().when(new 
MailStateEquals(Mail.GHOST)).process(disposeProcessor).stop().otherwise().process(removePropsProcessor).end()
-
-                                   .choice().when(new 
MailStateNotEquals(processorName)).process(mailProcessor).stop().end();
-
-                           // store mailet and matcher
-                           mailets.get(processorName).add(wrappedMailet);
-                           matchers.get(processorName).add(wrappedMatcher);
-                       }
-                     
-
-                   }
-                   
-                   processorDef
-                           // start choice
-                           .choice()
-                        
-                           // when the mail state did not change till yet ( 
the end of the route) we need to call the TerminatingMailet to
-                           // make sure we don't fall into a endless loop
-                           .when(new 
MailStateEquals(processorName)).process(terminatingMailetProcessor).stop()
-                           
-                              
-                           // dispose when needed
-                           .when(new 
MailStateEquals(Mail.GHOST)).process(disposeProcessor).stop()
-                           
-                            // route it to the next processor
-                           .otherwise().process(mailProcessor).stop();
-                         
-                   processors.put(processorName, new 
ProcessorDetail(processorName,new ChildProcessor(processorName)));
-               }
-                       
-           }
-       }
 }

Added: 
james/server/trunk/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/ProcessorManagement.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/ProcessorManagement.java?rev=1022598&view=auto
==============================================================================
--- 
james/server/trunk/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/ProcessorManagement.java
 (added)
+++ 
james/server/trunk/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/ProcessorManagement.java
 Thu Oct 14 16:22:08 2010
@@ -0,0 +1,170 @@
+/****************************************************************
+ * 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.mailetcontainer;
+
+import java.util.List;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+import javax.management.MBeanServer;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+
+import org.apache.commons.logging.Log;
+import org.apache.james.lifecycle.LogEnabled;
+import org.apache.mailet.Mailet;
+import org.apache.mailet.Matcher;
+
+/**
+ * Expose JMX functions for {...@link MailProcessorList} implementations
+ * 
+ *
+ */
+public class ProcessorManagement implements ProcessorManagementMBean, 
LogEnabled{
+
+    private MailProcessorList mailProcessor;
+    private MBeanServer mbeanserver;
+    private Log logger;
+
+    @Resource(name="mailProcessor")
+    public void setMailProcessorList(MailProcessorList mailProcessor) {
+        this.mailProcessor = mailProcessor;
+    }
+    
+
+    @Resource(name = "mbeanserver")
+    public void setMbeanServer(MBeanServer mbeanServer) {
+        this.mbeanserver = mbeanServer;
+    }
+   
+    @PostConstruct
+    public void init() throws Exception {
+        registerMBeans();
+
+    }
+    
+    
+    private void registerMBeans() {
+       
+        String baseObjectName = 
"org.apache.james:type=component,name=processor,";
+
+        String[] processorNames = getProcessorNames();
+        for (int i = 0; i < processorNames.length; i++) {
+            String processorName = processorNames[i];
+            createProcessorMBean(baseObjectName, processorName, mbeanserver);
+            continue;
+        }
+    }
+
+    private void createProcessorMBean(String baseObjectName, String 
processorName, MBeanServer mBeanServer) {
+        String processorMBeanName = baseObjectName + "processor=" + 
processorName;
+        
+        MailProcessor processor = mailProcessor.getProcessor(processorName);
+        ProcessorDetail processorDetail;
+        
+        // check if the processor is an instance of ProcessorDetail. If not 
create a wrapper around it. This will give us not all
+        // statistics but at least a few of them
+        if (processor instanceof ProcessorDetail) {
+            processorDetail = (ProcessorDetail) processor;
+        } else {
+            processorDetail = new ProcessorDetail(processorName, processor);
+        }
+        registerMBean(mBeanServer, processorMBeanName, processorDetail);
+
+
+        // check if the processor holds Mailets and Matchers
+        if (processor instanceof MailetContainer) {
+            MailetContainer container = (MailetContainer) processor;
+            List<Mailet> mailets =  container.getMailets();
+         
+            for (int i = 0; i < mailets.size(); i++) {
+                MailetManagement mailetManagement;
+
+                Mailet mailet = mailets.get(i);
+                
+                // check if the mailet is an instance of MailetManagement. If 
not create a wrapper around it. This will give us not all
+                // statistics but at least a few of them
+                if (mailet instanceof MailetManagement) {
+                    mailetManagement = (MailetManagement) mailet;
+                } else {
+                    mailetManagement = new MailetManagement(mailet);
+                }
+                String mailetMBeanName = processorMBeanName + 
",subtype=mailet,index=" + (i+1) + ",mailetname=" + 
mailetManagement.getMailetName();
+                registerMBean(mBeanServer, mailetMBeanName, mailetManagement);
+            }
+
+            List<Matcher> matchers =  container.getMatchers();
+            for (int i = 0; i < matchers.size(); i++) {
+                MatcherManagement matcherManagement;
+                Matcher matcher = matchers.get(i);
+                
+                // check if the matcher is an instance of MatcherManagement. 
If not create a wrapper around it. This will give us not all
+                // statistics but at least a few of them
+                if (matcher instanceof MatcherManagement) {
+                   matcherManagement = (MatcherManagement) matcher;
+                } else {
+                    matcherManagement = new MatcherManagement(matcher);
+                }
+
+                String matcherMBeanName = processorMBeanName + 
",subtype=matcher,index=" + (i+1) + ",matchername=" + 
matcherManagement.getMatcherName();
+
+                registerMBean(mBeanServer, matcherMBeanName, 
matcherManagement);
+            }
+           
+        }
+       
+
+    }
+
+    private void registerMBean(MBeanServer mBeanServer, String mBeanName, 
Object object) {
+        ObjectName objectName = null;
+        try {
+            objectName = new ObjectName(mBeanName);
+        } catch (MalformedObjectNameException e) {
+            logger.info("Unable to register mbean", e);
+
+            return;
+        }
+        try {
+            mBeanServer.registerMBean(object, objectName);
+        } catch (javax.management.JMException e) {
+            logger.error("Unable to register mbean", e);
+        }
+    }
+
+    
+
+    /*
+     * (non-Javadoc)
+     * @see 
org.apache.james.mailetcontainer.ProcessorManagementMBean#getProcessorNames()
+     */
+    public String[] getProcessorNames() {
+        return mailProcessor.getProcessorNames();
+    }
+
+
+    /*
+     * (non-Javadoc)
+     * @see 
org.apache.james.lifecycle.LogEnabled#setLog(org.apache.commons.logging.Log)
+     */
+    public void setLog(Log logger) {
+        this.logger = logger;
+    }
+
+}

Modified: 
james/server/trunk/spring-deployment/src/main/config/james/spring-beans.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/spring-deployment/src/main/config/james/spring-beans.xml?rev=1022598&r1=1022597&r2=1022598&view=diff
==============================================================================
--- james/server/trunk/spring-deployment/src/main/config/james/spring-beans.xml 
(original)
+++ james/server/trunk/spring-deployment/src/main/config/james/spring-beans.xml 
Thu Oct 14 16:22:08 2010
@@ -43,7 +43,7 @@
           <entry key="org.apache.james:type=server,name=remotemanager" 
value-ref="remotemanager"/>
           <entry key="org.apache.james:type=component,name=domainlist" 
value-ref="domainlist"/>
           <entry key="org.apache.james:type=component,name=dnsservice" 
value-ref="dnsservice"/>
-          <entry key="org.apache.james:type=component,name=processor" 
value-ref="mailProcessor"/>
+          <entry key="org.apache.james:type=component,name=processor" 
value-ref="processormanagement"/>
 
         </map>
       </property>
@@ -66,6 +66,8 @@
         <property name="objectName" value="connector:name=rmi" /> 
         <property name="serviceUrl" 
value="service:jmx:rmi://localhost/jndi/rmi://localhost:1099/jamesmailserver" />
     </bean>
+    
+    <bean id="processormanagement" 
class="org.apache.james.mailetcontainer.ProcessorManagement"/>
     -->
 
     <bean 
class="org.apache.james.container.spring.lifecycle.CommonsConfigurableBeanPostProcessor">
@@ -170,7 +172,6 @@
 
     <bean id="spoolmanager" 
class="org.apache.james.transport.JamesSpoolManager"/>
     
-    
     <!-- mailserver implementation which use activemq for spooling the mail -->
     <bean id="mailserver" class="org.apache.james.JamesMailServer"/>
 
@@ -268,6 +269,8 @@
     <bean id="domainlist" name="domainlistmanagement" 
class="org.apache.james.domain.JDBCDomainList"/>
     -->
 
+
+
     <!-- IMAP server Beans -->
     <bean id="imapserver" 
class="org.apache.james.imapserver.netty.NioImapServer">
         <property name="imapDecoder" ref="imapDecoder"/>



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

Reply via email to