Author: norman Date: Fri Oct 7 14:04:34 2011 New Revision: 1180044 URL: http://svn.apache.org/viewvc?rev=1180044&view=rev Log: Introduce an AbstractServerFactory which is used to create the configured AbstractConfigurableAsyncServer subtypes. This allows users to easily start more then one instance of a specific server (for example one for smtp and one for smtps) without the need to worry about spring xml files. See JAMES-1214
Modified: james/app/trunk/src/main/config/james/META-INF/org/apache/james/spring-server.xml james/app/trunk/src/main/config/james/imapserver.xml james/app/trunk/src/main/config/james/lmtpserver.xml james/app/trunk/src/main/config/james/pop3server.xml james/app/trunk/src/main/config/james/smtpserver.xml Modified: james/app/trunk/src/main/config/james/META-INF/org/apache/james/spring-server.xml URL: http://svn.apache.org/viewvc/james/app/trunk/src/main/config/james/META-INF/org/apache/james/spring-server.xml?rev=1180044&r1=1180043&r2=1180044&view=diff ============================================================================== --- james/app/trunk/src/main/config/james/META-INF/org/apache/james/spring-server.xml (original) +++ james/app/trunk/src/main/config/james/META-INF/org/apache/james/spring-server.xml Fri Oct 7 14:04:34 2011 @@ -248,23 +248,23 @@ <!-- SMTP Server --> - <bean id="smtpserver" class="org.apache.james.smtpserver.netty.SMTPServer"/> + <bean id="smtpserver" class="org.apache.james.smtpserver.netty.SMTPServerFactory"/> <!-- LMTP Server --> - <bean id="lmtpserver" class="org.apache.james.lmtpserver.netty.LMTPServer"/> + <bean id="lmtpserver" class="org.apache.james.lmtpserver.netty.LMTPServerFactory"/> <!-- POP3 Server --> - <bean id="pop3server" class="org.apache.james.pop3server.netty.POP3Server"/> + <bean id="pop3server" class="org.apache.james.pop3server.netty.POP3ServerFactory"/> <!-- IMAP Server --> - <bean id="imapserver" class="org.apache.james.imapserver.netty.IMAPServer"> + <bean id="imapserver" class="org.apache.james.imapserver.netty.IMAPServerFactory"> <property name="imapDecoder" ref="imapDecoder"/> <property name="imapEncoder" ref="imapEncoder"/> </bean> @@ -364,10 +364,6 @@ <bean id="exporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false"> <property name="beans"> <map> - <entry key="org.apache.james:type=server,name=smtpserver" value-ref="smtpserver"/> - <entry key="org.apache.james:type=server,name=lmtpserver" value-ref="lmtpserver"/> - <entry key="org.apache.james:type=server,name=pop3server" value-ref="pop3server"/> - <entry key="org.apache.james:type=server,name=imapserver" value-ref="imapserver"/> <entry key="org.apache.james:type=component,name=domainlist" value-ref="domainlistmanagement"/> <entry key="org.apache.james:type=component,name=dnsservice" value-ref="dnsservice"/> <entry key="org.apache.james:type=component,name=recipientrewritetable" value-ref="recipientrewritetablemanagement"/> @@ -382,7 +378,7 @@ </property> <property name="assembler"> <bean class="org.springframework.jmx.export.assembler.InterfaceBasedMBeanInfoAssembler"> - <property name="managedInterfaces" value="org.apache.james.smtpserver.netty.SMTPServerMBean,org.apache.james.pop3server.netty.POP3ServerMBean,org.apache.james.imapserver.netty.IMAPServerMBean,org.apache.james.fetchmail.FetchSchedulerMBean,org.apache.james.domainlist.api.DomainListManagementMBean,org.apache.james.dnsservice.api.DNSServiceMBean,org.apache.james.rrt.api.RecipientRewriteTableManagementMBean,org.apache.james.user.api.UsersRepositoryManagementMBean,org.apache.james.adapter.mailbox.MailboxManagerManagementMBean,org.apache.james.container.spring.mailbox.MailboxCopierManagementMBean,org.apache.james.mailetcontainer.api.jmx.MailSpoolerMBean,org.apache.james.container.spring.lifecycle.LogProviderManagementMBean"/> + <property name="managedInterfaces" value="org.apache.james.fetchmail.FetchSchedulerMBean,org.apache.james.domainlist.api.DomainListManagementMBean,org.apache.james.dnsservice.api.DNSServiceMBean,org.apache.james.rrt.api.RecipientRewriteTableManagementMBean,org.apache.james.user.api.UsersRepositoryManagementMBean,org.apache.james.adapter.mailbox.MailboxManagerManagementMBean,org.apache.james.container.spring.mailbox.MailboxCopierManagementMBean,org.apache.james.mailetcontainer.api.jmx.MailSpoolerMBean,org.apache.james.container.spring.lifecycle.LogProviderManagementMBean"/> </bean> </property> </bean> Modified: james/app/trunk/src/main/config/james/imapserver.xml URL: http://svn.apache.org/viewvc/james/app/trunk/src/main/config/james/imapserver.xml?rev=1180044&r1=1180043&r2=1180044&view=diff ============================================================================== --- james/app/trunk/src/main/config/james/imapserver.xml (original) +++ james/app/trunk/src/main/config/james/imapserver.xml Fri Oct 7 14:04:34 2011 @@ -20,27 +20,34 @@ <!-- See http://james.apache.org/server/3/config.html for usage --> -<imapserver enabled="true"> - <bind>0.0.0.0:143</bind> - <connectionBacklog>200</connectionBacklog> - <tls socketTLS="false" startTLS="false"> - </tls> +<imapservers> + <imapserver enabled="true"> + <jmxName>imapserver</jmxName> + <bind>0.0.0.0:143</bind> + <connectionBacklog>200</connectionBacklog> + <tls socketTLS="false" startTLS="false"> + <keystore>file://conf/keystore</keystore> + <secret>yoursecret</secret> + <provider>org.bouncycastle.jce.provider.BouncyCastleProvider</provider> + </tls> - <!-- Disallow plain authenticate / login. So any client will need to STARTTLS before try to login --> - <!-- or the socket must be using TLS in general --> - <plainAuthDisallowed>false</plainAuthDisallowed> + <!-- Disallow plain authenticate / login. So any client will need to STARTTLS before try to login --> + <!-- or the socket must be using TLS in general --> + <plainAuthDisallowed>false</plainAuthDisallowed> - <!-- COMPRESS extension --> - <compress>false</compress> + <!-- COMPRESS extension --> + <compress>false</compress> - <!-- Maximal allowed line-length before a BAD response will get returned to the client --> - <!-- This should be set with caution as a to high value can make the server a target for DOS! --> - <maxLineLength>65536</maxLineLength> + <!-- Maximal allowed line-length before a BAD response will get returned to the client --> + <!-- This should be set with caution as a to high value can make the server a target for DOS! --> + <maxLineLength>65536</maxLineLength> - <!-- 10MB size limit before we will start to stream to a temporary file --> - <inMemorySizeLimit>10485760</inMemorySizeLimit> - <handler> + <!-- 10MB size limit before we will start to stream to a temporary file --> + <inMemorySizeLimit>10485760</inMemorySizeLimit> + <handler> <connectionLimit> 0 </connectionLimit> <connectionLimitPerIP> 0 </connectionLimitPerIP> - </handler> -</imapserver> + </handler> + </imapserver> +</imapservers> + Modified: james/app/trunk/src/main/config/james/lmtpserver.xml URL: http://svn.apache.org/viewvc/james/app/trunk/src/main/config/james/lmtpserver.xml?rev=1180044&r1=1180043&r2=1180044&view=diff ============================================================================== --- james/app/trunk/src/main/config/james/lmtpserver.xml (original) +++ james/app/trunk/src/main/config/james/lmtpserver.xml Fri Oct 7 14:04:34 2011 @@ -20,14 +20,18 @@ <!-- See http://james.apache.org/server/3/config.html for usage --> -<lmtpserver enabled="false"> - <bind>127.0.0.1:24</bind> - <connectionBacklog>200</connectionBacklog> - <connectiontimeout>1200</connectiontimeout> - <connectionLimit> 0 </connectionLimit> - <connectionLimitPerIP> 0 </connectionLimitPerIP> - <maxmessagesize>0</maxmessagesize> - <handlerchain enableJmx="true"> +<lmtpservers> + <lmtpserver enabled="false"> + <jmxName>lmtpserver</jmxName> + <bind>127.0.0.1:24</bind> + <connectionBacklog>200</connectionBacklog> + <connectiontimeout>1200</connectiontimeout> + <connectionLimit> 0 </connectionLimit> + <connectionLimitPerIP> 0 </connectionLimitPerIP> + <maxmessagesize>0</maxmessagesize> + <handlerchain enableJmx="true"> <handler class="org.apache.james.lmtpserver.CoreCmdHandlerLoader"/> - </handlerchain> -</lmtpserver> + </handlerchain> + </lmtpserver> +</lmtpservers> + Modified: james/app/trunk/src/main/config/james/pop3server.xml URL: http://svn.apache.org/viewvc/james/app/trunk/src/main/config/james/pop3server.xml?rev=1180044&r1=1180043&r2=1180044&view=diff ============================================================================== --- james/app/trunk/src/main/config/james/pop3server.xml (original) +++ james/app/trunk/src/main/config/james/pop3server.xml Fri Oct 7 14:04:34 2011 @@ -20,18 +20,21 @@ <!-- See http://james.apache.org/server/3/config.html for usage --> -<pop3server enabled="true"> - <bind>0.0.0.0:110</bind> - <connectionBacklog>200</connectionBacklog> - <tls socketTLS="false" startTLS="false"> +<pop3servers> + <pop3server enabled="true"> + <jmxName>pop3server</jmxName> + <bind>0.0.0.0:110</bind> + <connectionBacklog>200</connectionBacklog> + <tls socketTLS="false" startTLS="false"> <keystore>file://conf/keystore</keystore> <secret>yoursecret</secret> <provider>org.bouncycastle.jce.provider.BouncyCastleProvider</provider> - </tls> - <connectiontimeout>1200</connectiontimeout> - <connectionLimit> 0 </connectionLimit> - <connectionLimitPerIP> 0 </connectionLimitPerIP> - <handlerchain enableJmx="true"> + </tls> + <connectiontimeout>1200</connectiontimeout> + <connectionLimit> 0 </connectionLimit> + <connectionLimitPerIP> 0 </connectionLimitPerIP> + <handlerchain enableJmx="true"> <handler class="org.apache.james.pop3server.core.CoreCmdHandlerLoader"/> - </handlerchain> -</pop3server> + </handlerchain> + </pop3server> +</pop3servers> Modified: james/app/trunk/src/main/config/james/smtpserver.xml URL: http://svn.apache.org/viewvc/james/app/trunk/src/main/config/james/smtpserver.xml?rev=1180044&r1=1180043&r2=1180044&view=diff ============================================================================== --- james/app/trunk/src/main/config/james/smtpserver.xml (original) +++ james/app/trunk/src/main/config/james/smtpserver.xml Fri Oct 7 14:04:34 2011 @@ -19,21 +19,28 @@ <!-- See http://james.apache.org/server/3/config.html for usage --> -<smtpserver enabled="true"> - <bind>0.0.0.0:25</bind> - <connectionBacklog>200</connectionBacklog> - <tls socketTLS="false" startTLS="false"> - </tls> - <connectiontimeout>360</connectiontimeout> - <connectionLimit> 0 </connectionLimit> - <connectionLimitPerIP> 0 </connectionLimitPerIP> - <authorizedAddresses>127.0.0.0/8</authorizedAddresses> - <authRequired>true</authRequired> - <verifyIdentity>true</verifyIdentity> - <maxmessagesize>0</maxmessagesize> - <addressBracketsEnforcement>true</addressBracketsEnforcement> - <handlerchain enableJmx="true"> - <handler class="org.apache.james.smtpserver.fastfail.ValidRcptHandler"/> - <handler class="org.apache.james.smtpserver.CoreCmdHandlerLoader"/> - </handlerchain> -</smtpserver> +<smtpservers> + <smtpserver enabled="true"> + <jmxName>smtpserver</jmxName> + <bind>0.0.0.0:25</bind> + <connectionBacklog>200</connectionBacklog> + <tls socketTLS="false" startTLS="false"> + <keystore>file://conf/keystore</keystore> + <secret>yoursecret</secret> + <provider>org.bouncycastle.jce.provider.BouncyCastleProvider</provider> + </tls> + <connectiontimeout>360</connectiontimeout> + <connectionLimit> 0 </connectionLimit> + <connectionLimitPerIP> 0 </connectionLimitPerIP> + <authorizedAddresses>127.0.0.0/8</authorizedAddresses> + <authRequired>true</authRequired> + <verifyIdentity>true</verifyIdentity> + <maxmessagesize>0</maxmessagesize> + <addressBracketsEnforcement>true</addressBracketsEnforcement> + <handlerchain enableJmx="true"> + <handler class="org.apache.james.smtpserver.fastfail.ValidRcptHandler"/> + <handler class="org.apache.james.smtpserver.CoreCmdHandlerLoader"/> + </handlerchain> + </smtpserver> +</smtpservers> + --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org