Author: norman
Date: Wed Dec 22 14:44:36 2010
New Revision: 1051923

URL: http://svn.apache.org/viewvc?rev=1051923&view=rev
Log:
use <state> as replacement of <processor> as the matchers/mailets get called on 
the state of a Mail 

Modified:
    
james/server/trunk/container-spring/src/main/config/james/context/james-server-context.xml
    
james/server/trunk/container-spring/src/main/config/james/mailetcontainer.xml
    
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/provider/configuration/ConfigurationProviderImpl.java
    
james/server/trunk/mailetcontainer-library/src/main/java/org/apache/james/mailetcontainer/lib/AbstractCompositeProcessor.java

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=1051923&r1=1051922&r2=1051923&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
 Wed Dec 22 14:44:36 2010
@@ -52,7 +52,6 @@
             <map>
                 <entry key="mailetcontext" value="mailetcontainer"/>
                 <entry key="mailprocessor" value="mailetcontainer"/>
-                <entry key="matcherloader" value="mailetcontainer"/>
             </map>
         </property>
     </bean>
@@ -102,9 +101,9 @@
     <bean id="configurationProvider" 
class="org.apache.james.container.spring.provider.configuration.ConfigurationProviderImpl">
         <property name="configurationMappings">
             <map>
-                <entry key="mailprocessor" value="mailetcontainer"/>
-                <entry key="mailspooler" value="mailetcontainer"/>
-                <entry key="mailetcontext" value="mailetcontainer"/>
+                <entry key="mailprocessor" value="mailetcontainer.states"/>
+                <entry key="mailspooler" value="mailetcontainer.spooler"/>
+                <entry key="mailetcontext" value="mailetcontainer.context"/>
              </map>
         </property>
     </bean>

Modified: 
james/server/trunk/container-spring/src/main/config/james/mailetcontainer.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/config/james/mailetcontainer.xml?rev=1051923&r1=1051922&r2=1051923&view=diff
==============================================================================
--- 
james/server/trunk/container-spring/src/main/config/james/mailetcontainer.xml 
(original)
+++ 
james/server/trunk/container-spring/src/main/config/james/mailetcontainer.xml 
Wed Dec 22 14:44:36 2010
@@ -21,82 +21,88 @@
 <!-- See http://james.apache.org/server/3/config.html for usage -->
 
 <mailetcontainer enableJmx="true">
+
+  <context>
     <postmaster>postmas...@localhost</postmaster>
-    
+  </context>
+  
+  <spooler>
     <threads> 20 </threads>
-
-    <processor name="root" enableJmx="true">
-       <mailet match="All" class="PostmasterAlias"/>
-       <mailet match="RelayLimit=30" class="Null"/>
-       <mailet match="SMTPAuthSuccessful" class="ToProcessor">
-          <processor>transport</processor>
-       </mailet>
-       <mailet match="InSpammerBlacklist=dnsbl.njabl.org." class="ToProcessor">
-         <processor>spam</processor>
-         <notice>550 Requested action not taken: rejected - see 
http://njabl.org/ </notice>
+  </spooler>
+    
+  <states>
+    <state name="root" enableJmx="true">
+      <mailet match="All" class="PostmasterAlias"/>
+      <mailet match="RelayLimit=30" class="Null"/>
+      <mailet match="SMTPAuthSuccessful" class="ToProcessor">
+        <processor>transport</processor>
+      </mailet>
+      <mailet match="InSpammerBlacklist=dnsbl.njabl.org." class="ToProcessor">
+        <processor>spam</processor>
+        <notice>550 Requested action not taken: rejected - see 
http://njabl.org/ </notice>
        </mailet>
        <mailet match="All" class="ToProcessor">
-          <processor>transport</processor>
-       </mailet>
-    </processor>
-
-    <processor name="transport" enableJmx="true">
-       <mailet match="SMTPAuthSuccessful" class="SetMimeHeader">
-          <name>X-UserIsAuth</name>
-          <value>true</value>
-       </mailet>
-       <mailet match="All" class="VirtualUserTable">
-           <virtualusertable>DefaultVirtualUserTable</virtualusertable>
-       </mailet>
-       <mailet match="RecipientIsLocal" class="LocalDelivery"/>
-       <mailet match="HostIsLocal" class="ToProcessor">
-          <processor>local-address-error</processor>
-          <notice>550 - Requested action not taken: no such user here</notice>
-       </mailet>
-       <mailet match="All" class="RemoteDelivery">
-          <outgoingQueue>outgoing</outgoingQueue>
-          <delayTime>5 minutes</delayTime>
-          <delayTime>10 minutes</delayTime>
-          <delayTime>45 minutes</delayTime>
-          <delayTime>2 hours</delayTime>
-          <delayTime>3 hours</delayTime>
-          <delayTime>6 hours</delayTime>
-          <maxRetries>25</maxRetries>
-          <maxDnsProblemRetries>0</maxDnsProblemRetries>
-          <deliveryThreads>10</deliveryThreads>
-          <sendpartial>true</sendpartial>
-          <bounceProcessor>bounces</bounceProcessor>
+        <processor>transport</processor>
        </mailet>
-    </processor>
+     </state>
 
-    <processor name="error" enableJmx="true">
-       <mailet match="All" class="ToRepository">
-          <repositoryPath>file://var/mail/error/</repositoryPath>
-       </mailet>
-    </processor>
-
-    <processor name="spam" enableJmx="true">
-       <mailet match="All" class="ToRepository">
-          <repositoryPath>file://var/mail/spam/</repositoryPath>
-       </mailet>
-    </processor>
-
-    <processor name="local-address-error" enableJmx="true">
-       <mailet match="All" class="ToRepository">
-          <repositoryPath>file://var/mail/address-error/</repositoryPath>
-       </mailet>
-    </processor>
-
-    <processor name="relay-denied" enableJmx="true">
-       <mailet match="All" class="ToRepository">
-          <repositoryPath>file://var/mail/relay-denied/</repositoryPath>
-       </mailet>
-    </processor>
-
-    <processor name="bounces" enableJmx="true">
-       <mailet match="All" class="DSNBounce">
-          <passThrough>false</passThrough>
-        </mailet>
-    </processor>
-    
+    <state name="transport" enableJmx="true">
+      <mailet match="SMTPAuthSuccessful" class="SetMimeHeader">
+        <name>X-UserIsAuth</name>
+        <value>true</value>
+      </mailet>
+      <mailet match="All" class="VirtualUserTable">
+        <virtualusertable>DefaultVirtualUserTable</virtualusertable>
+      </mailet>
+      <mailet match="RecipientIsLocal" class="LocalDelivery"/>
+      <mailet match="HostIsLocal" class="ToProcessor">
+        <processor>local-address-error</processor>
+        <notice>550 - Requested action not taken: no such user here</notice>
+      </mailet>
+      <mailet match="All" class="RemoteDelivery">
+        <outgoingQueue>outgoing</outgoingQueue>
+        <delayTime>5 minutes</delayTime>
+        <delayTime>10 minutes</delayTime>
+        <delayTime>45 minutes</delayTime>
+        <delayTime>2 hours</delayTime>
+        <delayTime>3 hours</delayTime>
+        <delayTime>6 hours</delayTime>
+        <maxRetries>25</maxRetries>
+        <maxDnsProblemRetries>0</maxDnsProblemRetries>
+        <deliveryThreads>10</deliveryThreads>
+        <sendpartial>true</sendpartial>
+        <bounceProcessor>bounces</bounceProcessor>
+      </mailet>
+    </state>
+
+    <state name="error" enableJmx="true">
+      <mailet match="All" class="ToRepository">
+        <repositoryPath>file://var/mail/error/</repositoryPath>
+      </mailet>
+    </state>
+
+    <state name="spam" enableJmx="true">
+      <mailet match="All" class="ToRepository">
+        <repositoryPath>file://var/mail/spam/</repositoryPath>
+      </mailet>
+    </state>
+
+    <state name="local-address-error" enableJmx="true">
+      <mailet match="All" class="ToRepository">
+        <repositoryPath>file://var/mail/address-error/</repositoryPath>
+      </mailet>
+    </state>
+
+    <state name="relay-denied" enableJmx="true">
+      <mailet match="All" class="ToRepository">
+        <repositoryPath>file://var/mail/relay-denied/</repositoryPath>
+      </mailet>
+    </state>
+
+    <state name="bounces" enableJmx="true">
+      <mailet match="All" class="DSNBounce">
+        <passThrough>false</passThrough>
+      </mailet>
+    </state>
+  </states>
 </mailetcontainer>

Modified: 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/provider/configuration/ConfigurationProviderImpl.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/provider/configuration/ConfigurationProviderImpl.java?rev=1051923&r1=1051922&r2=1051923&view=diff
==============================================================================
--- 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/provider/configuration/ConfigurationProviderImpl.java
 (original)
+++ 
james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/provider/configuration/ConfigurationProviderImpl.java
 Wed Dec 22 14:44:36 2010
@@ -111,10 +111,28 @@ public class ConfigurationProviderImpl i
         if (conf != null) {
             return conf;
         } else {
-            Resource r = loader.getResource(getConfigPrefix()+ name + ".xml");
+            
+            int i = name.indexOf(".");
+            String configName;
+            String configPart = null;
+            
+            if (i > -1) {
+                configPart = name.substring(i+1);
+                configName = name.substring(0, i);
+            } else {
+                configName = name;
+            }
+
+            Resource r = loader.getResource(getConfigPrefix()+ configName + 
".xml");
             if (r.exists()) {
                 try {
-                    return getConfig(r);
+                    HierarchicalConfiguration config = getConfig(r);
+                    if (configPart != null) {
+                        return config.configurationAt(configPart);
+                    } else {
+                        return config;
+                    }
+                    
                 } catch (Exception e) {
                     throw new ConfigurationException("Unable to load 
configuration for component " + name, e);                    
                 }

Modified: 
james/server/trunk/mailetcontainer-library/src/main/java/org/apache/james/mailetcontainer/lib/AbstractCompositeProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/mailetcontainer-library/src/main/java/org/apache/james/mailetcontainer/lib/AbstractCompositeProcessor.java?rev=1051923&r1=1051922&r2=1051923&view=diff
==============================================================================
--- 
james/server/trunk/mailetcontainer-library/src/main/java/org/apache/james/mailetcontainer/lib/AbstractCompositeProcessor.java
 (original)
+++ 
james/server/trunk/mailetcontainer-library/src/main/java/org/apache/james/mailetcontainer/lib/AbstractCompositeProcessor.java
 Wed Dec 22 14:44:36 2010
@@ -180,7 +180,7 @@ public abstract class AbstractCompositeP
     @SuppressWarnings("unchecked")
     @PostConstruct
     public void init() throws Exception {
-        List<HierarchicalConfiguration> processorConfs = 
config.configurationsAt("processor");
+        List<HierarchicalConfiguration> processorConfs = 
config.configurationsAt("state");
         for (int i = 0; i < processorConfs.size(); i++) {
             final HierarchicalConfiguration processorConf = 
processorConfs.get(i);
             String processorName = processorConf.getString("[...@name]");



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

Reply via email to