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]