Author: norman
Date: Tue Sep 21 11:34:02 2010
New Revision: 999322

URL: http://svn.apache.org/viewvc?rev=999322&view=rev
Log:
ChildMailProcessor is now full implemented

Modified:
    
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/CamelMailProcessorList.java

Modified: 
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/CamelMailProcessorList.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/CamelMailProcessorList.java?rev=999322&r1=999321&r2=999322&view=diff
==============================================================================
--- 
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/CamelMailProcessorList.java
 (original)
+++ 
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/CamelMailProcessorList.java
 Tue Sep 21 11:34:02 2010
@@ -69,8 +69,7 @@ public class CamelMailProcessorList exte
 
     private final Map<String,List<Mailet>> mailets = new 
HashMap<String,List<Mailet>>();
     private final Map<String,List<Matcher>> matchers = new 
HashMap<String,List<Matcher>>();
-
-    private final List<String> processors = new ArrayList<String>();
+    private final Map<String,MailProcessor> processors = new 
HashMap<String,MailProcessor>();
     private final UseLatestAggregationStrategy aggr = new 
UseLatestAggregationStrategy();
        
     @Resource(name = "matcherpackages")
@@ -102,7 +101,6 @@ public class CamelMailProcessorList exte
             String processorName = processorConf.getString("[...@name]");
 
           
-            processors.add(processorName);
             mailets.put(processorName, new ArrayList<Mailet>());
             matchers.put(processorName, new ArrayList<Matcher>());
 
@@ -222,6 +220,7 @@ public class CamelMailProcessorList exte
                      // route it to the next processor
                     .otherwise().process(mailProcessor).stop();
                   
+            processors.put(processorName, new 
ChildMailProcessor(processorName));
         }
                 
         producerTemplate = getContext().createProducerTemplate();
@@ -285,7 +284,7 @@ public class CamelMailProcessorList exte
      * @see org.apache.james.services.SpoolManager#getProcessorNames()
      */
     public String[] getProcessorNames() {
-        return processors.toArray(new String[processors.size()]);
+        return processors.keySet().toArray(new String[processors.size()]);
     }
 
     
@@ -364,7 +363,7 @@ public class CamelMailProcessorList exte
      * @see 
org.apache.james.transport.ProcessorList#getProcessor(java.lang.String)
      */
     public MailProcessor getProcessor(String name) {
-        return new ChildMailProcessor(name);
+        return processors.get(name);
     }
     
     
@@ -390,9 +389,6 @@ public class CamelMailProcessorList exte
     }
     
     
-    /*
-     * 
-     */
     private final class ChildMailProcessor implements MailProcessor, 
MailetContainer {
 
         private String processorName;
@@ -401,10 +397,18 @@ public class CamelMailProcessorList exte
             this.processorName = processorName;
         }
         
+
+        /*
+         * (non-Javadoc)
+         * @see 
org.apache.james.transport.MailProcessor#service(org.apache.mailet.Mail)
+         */
         public void service(Mail mail) throws MessagingException {
-            // TODO: Allow to only run a part of the route
-            
-        }
+                try {
+                 producerTemplate.sendBody(getEndpoint(processorName), mail);
+             } catch (CamelExecutionException ex) {
+                 throw new MessagingException("Unable to process mail " + 
mail.getName(),ex);
+             }        
+         }
         
         /*
          * (non-Javadoc)



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

Reply via email to