You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2010/10/12 20:03:20 UTC

svn commit: r1021866 [2/2] - in /james/server/trunk: dnsservice-api/src/main/java/org/apache/james/dnsservice/api/ dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/ domain-api/src/main/java/org/apache/james/api/domainlist/ domain-ap...

Modified: james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/NioSMTPServer.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/NioSMTPServer.java?rev=1021866&r1=1021865&r2=1021866&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/NioSMTPServer.java (original)
+++ james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/NioSMTPServer.java Tue Oct 12 18:03:19 2010
@@ -18,6 +18,7 @@
  ****************************************************************/
 package org.apache.james.smtpserver.netty;
 
+
 import javax.annotation.Resource;
 import javax.net.ssl.SSLContext;
 
@@ -26,10 +27,12 @@ import org.apache.commons.configuration.
 import org.apache.james.protocols.api.ProtocolHandlerChain;
 import org.apache.james.protocols.impl.AbstractSSLAwareChannelPipelineFactory;
 import org.apache.james.protocols.smtp.SMTPConfiguration;
-import org.apache.james.protocols.smtp.SMTPServerMBean;
 import org.apache.james.services.MailServer;
+import org.apache.james.smtpserver.SMTPServerMBean;
 import org.apache.james.socket.netty.AbstractConfigurableAsyncServer;
+import org.apache.james.socket.netty.ConnectionCountHandler;
 import org.apache.james.util.netmatcher.NetMatcher;
+import org.jboss.netty.channel.ChannelPipeline;
 import org.jboss.netty.channel.ChannelPipelineFactory;
 import org.jboss.netty.channel.ChannelUpstreamHandler;
 import org.jboss.netty.channel.group.ChannelGroup;
@@ -98,6 +101,9 @@ public class NioSMTPServer extends Abstr
     private MailServer mailServer;
 
     private boolean verifyIdentity;
+    
+    private final ConnectionCountHandler countHandler = new ConnectionCountHandler();
+    
 
     @Resource(name="mailserver")
     public final void setMailServer(MailServer mailServer) {
@@ -194,8 +200,9 @@ public class NioSMTPServer extends Abstr
         return 25;
     }
 
-    /**
-     * @see org.apache.james.core.AbstractProtocolServer#getServiceType()
+    /*
+     * (non-Javadoc)
+     * @see org.apache.james.socket.ServerMBean#getServiceType()
      */
     public String getServiceType() {
         return "SMTP Service";
@@ -308,7 +315,17 @@ public class NioSMTPServer extends Abstr
             super(timeout, maxConnections, maxConnectsPerIp, group);
         }
 
+        
         @Override
+		public ChannelPipeline getPipeline() throws Exception {
+			ChannelPipeline pipeline = super.getPipeline();
+			pipeline.addBefore("coreHandler", "connectionCount", countHandler);
+			
+			return pipeline;
+		}
+
+
+		@Override
         protected SSLContext getSSLContext() {
             return NioSMTPServer.this.getSSLContext();
         }
@@ -329,4 +346,49 @@ public class NioSMTPServer extends Abstr
         }
         
     }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.james.socket.ServerMBean#getCurrentConnections()
+     */
+	public int getCurrentConnections() {
+		return countHandler.getCurrentConnectionCount();
+	}
+
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.apache.james.smtpserver.SMTPServerMBean#getMaximalMessageSize()
+	 */
+	public long getMaximalMessageSize() {
+		return maxMessageSize;
+	}
+
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.apache.james.smtpserver.SMTPServerMBean#getAddressBracketsEnforcement()
+	 */
+	public boolean getAddressBracketsEnforcement() {
+		return addressBracketsEnforcement;
+	}
+
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.apache.james.smtpserver.SMTPServerMBean#getHeloEhloEnforcement()
+	 */
+	public boolean getHeloEhloEnforcement() {
+		return heloEhloEnforcement;
+	}
+
+
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.apache.james.protocols.smtp.SMTPServerMBean#getNetworkInterface()
+	 */
+	public String getNetworkInterface() {
+		return "unknown";
+	}
 }

Modified: james/server/trunk/spoolmanager/src/main/java/org/apache/james/JamesMailServer.java
URL: http://svn.apache.org/viewvc/james/server/trunk/spoolmanager/src/main/java/org/apache/james/JamesMailServer.java?rev=1021866&r1=1021865&r2=1021866&view=diff
==============================================================================
--- james/server/trunk/spoolmanager/src/main/java/org/apache/james/JamesMailServer.java (original)
+++ james/server/trunk/spoolmanager/src/main/java/org/apache/james/JamesMailServer.java Tue Oct 12 18:03:19 2010
@@ -22,7 +22,6 @@
 package org.apache.james;
 
 import java.net.UnknownHostException;
-import java.util.Collection;
 import java.util.List;
 import java.util.Locale;
 
@@ -62,10 +61,10 @@ public class JamesMailServer
     private HierarchicalConfiguration conf = null;
 
     /**
-     * The collection of domain/server names for which this instance of James
+     * The array of domain/server names for which this instance of James
      * will receive and process mail.
      */
-    private Collection<String> serverNames;
+    private String[] serverNames;
 
     /**
      * The number of mails generated.  Access needs to be synchronized for
@@ -200,7 +199,7 @@ public class JamesMailServer
         }
         serverNames = domains.getDomains();
 
-        if (serverNames == null || serverNames.size() == 0) throw new ConfigurationException("No domainnames configured");
+        if (serverNames == null || serverNames.length == 0) throw new ConfigurationException("No domainnames configured");
         
        
     }
@@ -299,11 +298,11 @@ public class JamesMailServer
      */
     public String getDefaultDomain() {
         if (defaultDomain == null) {
-            List<String> domainList = domains.getDomains();
-            if (domainList == null || domainList.isEmpty()) {
+            String[] domainList = domains.getDomains();
+            if (domainList == null || domainList.length < 1) {
             	return conf.getString("defaultDomain", "localhost");
             } else {
-                return (String) domainList.get(0);
+                return domainList[0];
             }  
         } else {
             return defaultDomain;

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=1021866&r1=1021865&r2=1021866&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 Tue Oct 12 18:03:19 2010
@@ -33,28 +33,25 @@
     -->
 
     <!--
-    <bean id="exporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false"> 
-        <property name="autodetect" value="true" /> 
-        <property name="namingStrategy" ref="namingStrategy" /> 
-    </bean> 
-    <bean id="namingStrategy" class="org.springframework.jmx.export.naming.KeyNamingStrategy" >
-        <property name="mappings" >
-            <props> 
-                <prop key="fetchmail"> bean:name=fetchmail</prop> 
-                <prop key="smtpserver">bean:name=smtpserver</prop> 
-                <prop key="dnsservice" >bean:name=dnsservice</prop> 
-                <prop key="remotemanager" >bean:name=remotemanager</prop> 
-                <prop key="pop3server" >bean:name=pop3server</prop> 
-                <prop key="virtualusertablemanagement">bean:name=virtualusertablemanagement</prop> 
-                <prop key="spoolmanagement" >bean:name=spoolmanagement</prop> 
-                <prop key="domainlistmanagement" >bean:name=domainlistmanagement</prop>
-                <prop key="processormanagement" >bean:name=processormanagement</prop>
-                <prop key="bayesiananalyzermanagement">bean:name=bayesiananalyzermanagement</prop> 
-                <prop key="usermanagement" >bean:name=usermanagement</prop> 
-                <prop key="serverConnector" >bean:name=serverConnector</prop>
-            </props>
-        </property>
-    </bean> 
+    <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=server,name=remotemanager" value-ref="remotemanager"/>
+          <entry key="org.apache.james:type=components,name=domainlist" value-ref="domainlist"/>
+          <entry key="org.apache.james:type=components,name=dnsservice" value-ref="dnsservice"/>
+
+        </map>
+      </property>
+      <property name="assembler">
+          <bean class="org.springframework.jmx.export.assembler.InterfaceBasedMBeanInfoAssembler">
+            <property name="managedInterfaces" value="org.apache.james.smtpserver.SMTPServerMBean,org.apache.james.socket.ServerMBean,org.apache.james.api.domainlist.DomainListMBean,org.apache.james.api.domainlist.ManageableDomainListMBean,org.apache.james.dnsservice.api.DNSServiceMBean"/>
+          </bean>
+      </property>
+    </bean>
 
     <bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean" />
 
@@ -263,16 +260,16 @@
     <bean id="virtualusertable" name="virtualusertablemanagement" class="org.apache.james.impl.vut.JamesVirtualUserTable" />
 
     <!-- The context domainlist implementation -->
-    <bean id="domainlist" class="org.apache.james.domain.XMLDomainList" />
+    <bean id="domainlist" name="domainlistmanagement" class="org.apache.james.domain.XMLDomainList" />
 
     <!--  JPA implementation of the domainlist service -->
     <!--
-    <bean id="domainlist" class="org.apache.james.domain.JPADomainList"/>
+    <bean id="domainlist" name="domainlistmanagement" class="org.apache.james.domain.JPADomainList"/>
     -->
 
     <!--  JDBC implementation of the domainlist service - deprecated, use the JPADomainList -->
     <!--
-    <bean id="domainlist" class="org.apache.james.domain.JDBCDomainList"/>
+    <bean id="domainlist" name="domainlistmanagement" class="org.apache.james.domain.JDBCDomainList"/>
     -->
 
     <!-- IMAP server Beans -->
@@ -384,8 +381,6 @@
 
     -->
 
-    <bean id="domainlistmanagement" class="org.apache.james.management.impl.DomainListManagement" />
-
 
     <!-- The Time Scheduler block -->
     <bean id="scheduler" class="java.util.concurrent.Executors" factory-method="newScheduledThreadPool">



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org