Author: norman
Date: Thu Dec 14 09:25:45 2006
New Revision: 487269

URL: http://svn.apache.org/viewvc?view=rev&rev=487269
Log:
Add getHelloName() to mailServer interface, Specify a defaultHelloName which is 
used by all services if the service not override it. See JAMES-738

Modified:
    james/server/trunk/src/conf/james-assembly.xml
    james/server/trunk/src/conf/james-config.xml
    james/server/trunk/src/java/org/apache/james/James.java
    james/server/trunk/src/java/org/apache/james/core/AbstractJamesService.java
    james/server/trunk/src/java/org/apache/james/imapserver/ImapServer.java
    james/server/trunk/src/java/org/apache/james/imapserver/ImapServer.xinfo
    james/server/trunk/src/java/org/apache/james/nntpserver/NNTPServer.java
    james/server/trunk/src/java/org/apache/james/nntpserver/NNTPServer.xinfo
    james/server/trunk/src/java/org/apache/james/pop3server/POP3Server.java
    
james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java
    james/server/trunk/src/java/org/apache/james/services/MailServer.java
    james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.java
    
james/server/trunk/src/test/org/apache/james/imapserver/mock/MockMailServer.java
    
james/server/trunk/src/test/org/apache/james/test/mock/james/MockMailServer.java

Modified: james/server/trunk/src/conf/james-assembly.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/conf/james-assembly.xml?view=diff&rev=487269&r1=487268&r2=487269
==============================================================================
--- james/server/trunk/src/conf/james-assembly.xml (original)
+++ james/server/trunk/src/conf/james-assembly.xml Thu Dec 14 09:25:45 2006
@@ -178,6 +178,7 @@
     <provide name="thread-manager"
              
role="org.apache.avalon.cornerstone.services.threads.ThreadManager" />
     <provide name="dnsserver" role="org.apache.james.services.DNSServer"/>
+    <provide name="James" role="org.apache.james.services.MailServer"/>
   </block>
 
   <!-- NNTP Repository -->

Modified: james/server/trunk/src/conf/james-config.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/conf/james-config.xml?view=diff&rev=487269&r1=487268&r2=487269
==============================================================================
--- james/server/trunk/src/conf/james-config.xml (original)
+++ james/server/trunk/src/conf/james-config.xml Thu Dec 14 09:25:45 2006
@@ -102,6 +102,13 @@
       <!-- If not defaultdomain is set the first domain of the DomainList get 
used -->
       <defaultDomain> localhost </defaultDomain>
       
+      <!-- This is the name used by the server to identify itself in the 
RemoteManager -->
+      <!-- protocol.  If autodetect is TRUE, the server will discover its -->
+      <!-- own host name and use that in the protocol.  If discovery fails, -->
+      <!-- the value of 'localhost' is used.  If autodetect is FALSE, James -->
+      <!-- will use the specified value. -->
+      <!-- Set the default helloName which is used in all services if not 
overridden in the specific service-->
+      <helloName autodetect="true">myMailServer</helloName>
    </James>
 
     <!--
@@ -922,7 +929,9 @@
          <!-- own host name and use that in the protocol.  If discovery fails, 
-->
          <!-- the value of 'localhost' is used.  If autodetect is FALSE, James 
-->
          <!-- will use the specified value. -->
+         <!--
          <helloName autodetect="true">myMailServer</helloName>
+         -->
          <administrator_accounts>
 <!-- CHECKME! -->
             <!-- Change the default login/password. -->
@@ -959,7 +968,9 @@
          <!-- own host name and use that in the protocol.  If discovery fails, 
-->
          <!-- the value of 'localhost' is used.  If autodetect is FALSE, James 
-->
          <!-- will use the specified value. -->
+         <!--
          <helloName autodetect="true">myMailServer</helloName>
+         -->
          <connectiontimeout>120000</connectiontimeout>
       </handler>
    </pop3server>
@@ -988,7 +999,9 @@
          <!-- own host name and use that in the protocol.  If discovery fails, 
-->
          <!-- the value of 'localhost' is used.  If autodetect is FALSE, James 
-->
          <!-- will use the specified value. -->
+         <!--
          <helloName autodetect="true">myMailServer</helloName>
+         -->
          <connectiontimeout>360000</connectiontimeout>
 
          <!--  Uncomment this if you want to require SMTP authentication.
@@ -1086,7 +1099,9 @@
          <!-- own host name and use that in the protocol.  If discovery fails, 
-->
          <!-- the value of 'localhost' is used.  If autodetect is FALSE, James 
-->
          <!-- will use the specified value. -->
+         <!--
          <helloName autodetect="true">myMailServer</helloName>
+         -->
          <connectiontimeout>120000</connectiontimeout>
           <!-- Set the authRequired value to true to enable authenticated NNTP 
-->
          <authRequired>false</authRequired>

Modified: james/server/trunk/src/java/org/apache/james/James.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/James.java?view=diff&rev=487269&r1=487268&r2=487269
==============================================================================
--- james/server/trunk/src/java/org/apache/james/James.java (original)
+++ james/server/trunk/src/java/org/apache/james/James.java Thu Dec 14 09:25:45 
2006
@@ -67,6 +67,7 @@
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.io.SequenceInputStream;
+import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -178,6 +179,8 @@
     private boolean virtualHosting = false;
     
     private String defaultDomain = null;
+    
+    private String helloName = null;
 
 
     /**
@@ -268,6 +271,22 @@
         }
         
         getLogger().info("Defaultdomain: " + defaultDomain);
+        
+        Configuration helloNameConfig = conf.getChild("helloName");
+        if (helloNameConfig != null) {
+            boolean autodetect = 
helloNameConfig.getAttributeAsBoolean("autodetect", true);
+            if (autodetect) {
+                try {
+                    helloName = 
lookupDNSServer().getHostName(lookupDNSServer().getLocalHost());
+                } catch (UnknownHostException e) {
+                    helloName = "localhost";
+                }
+            } else {
+             // Should we use the defaultdomain here ?
+                helloName = helloNameConfig.getValue(defaultDomain);
+            }
+            attributes.put(Constants.HELLO_NAME, helloName);
+        }
 
         // Add this to comp
         compMgr.put( MailServer.ROLE, this);
@@ -947,6 +966,22 @@
             }  
         } else {
             return defaultDomain;
+        }
+    }
+
+    /**
+     * @see org.apache.james.services.MailServer#getHelloName()
+     */
+    public String getHelloName() {
+        if (helloName != null) {
+            return helloName;
+        } else {
+            String hello = (String) getAttribute(Constants.HELLO_NAME);   
+            if (hello == null) {
+                return defaultDomain;
+            } else {
+                return hello;
+            }
         }
     }
 }

Modified: 
james/server/trunk/src/java/org/apache/james/core/AbstractJamesService.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/core/AbstractJamesService.java?view=diff&rev=487269&r1=487268&r2=487269
==============================================================================
--- james/server/trunk/src/java/org/apache/james/core/AbstractJamesService.java 
(original)
+++ james/server/trunk/src/java/org/apache/james/core/AbstractJamesService.java 
Thu Dec 14 09:25:45 2006
@@ -354,6 +354,16 @@
         this.streamDumpDir = streamdumpDir;
     }
 
+    protected String getLocalHostName() {
+        String hostName = null;
+        try {
+            hostName = dnsServer.getHostName(dnsServer.getLocalHost());
+        } catch (UnknownHostException ue) {
+            hostName = "localhost";
+        }
+        return hostName;
+    }
+    
     private void configureHelloName(Configuration handlerConfiguration) {
         StringBuffer infoBuffer;
         String hostName = null;
@@ -371,11 +381,17 @@
         getLogger().info(infoBuffer.toString());
 
         Configuration helloConf = handlerConfiguration.getChild(HELLO_NAME);
-        boolean autodetect = helloConf.getAttributeAsBoolean("autodetect", 
true);
-        if (autodetect) {
-            helloName = hostName;
+ 
+        if (helloConf != null) {
+            boolean autodetect = helloConf.getAttributeAsBoolean("autodetect", 
true);
+            if (autodetect) {
+                helloName = hostName;
+            } else {
+                // Should we use the defaultdomain here ?
+                helloName = helloConf.getValue("localhost");
+            }
         } else {
-            helloName = helloConf.getValue("localhost");
+            helloName = null;
         }
         infoBuffer =
             new StringBuffer(64)

Modified: 
james/server/trunk/src/java/org/apache/james/imapserver/ImapServer.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/imapserver/ImapServer.java?view=diff&rev=487269&r1=487268&r2=487269
==============================================================================
--- james/server/trunk/src/java/org/apache/james/imapserver/ImapServer.java 
(original)
+++ james/server/trunk/src/java/org/apache/james/imapserver/ImapServer.java Thu 
Dec 14 09:25:45 2006
@@ -26,6 +26,7 @@
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.james.core.AbstractJamesService;
 import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
+import org.apache.james.services.MailServer;
 import org.apache.james.services.UsersRepository;
 
 /**
@@ -61,6 +62,8 @@
 
     public MailboxManagerProvider mailboxManagerProvider;
 
+    private MailServer mailServer;
+
     public void service( ServiceManager serviceManager ) throws 
ServiceException
     {
         super.service( serviceManager );
@@ -70,11 +73,16 @@
         MailboxManagerProvider mailboxManagerProvider 
=(MailboxManagerProvider) 
serviceManager.lookup("org.apache.james.mailboxmanager.manager.MailboxManagerProvider");
         getLogger().debug("MailboxManagerMailRepository uses service 
"+mailboxManagerProvider);
         setMailboxManagerProvider(mailboxManagerProvider);
+        setMailServer((MailServer) serviceManager.lookup(MailServer.ROLE));
     }
 
     void setUserRepository(UsersRepository repository) {
         this.users=repository;
     }
+    
+    void setMailServer(MailServer mailServer) {
+        this.mailServer = mailServer;
+    }
 
     void setMailboxManagerProvider(MailboxManagerProvider 
mailboxManagerProvider) {
         this.mailboxManagerProvider=mailboxManagerProvider;
@@ -89,7 +97,7 @@
         if ( isEnabled() ) {
             Configuration handlerConfiguration = configuration.getChild( 
"handler" );
             lengthReset = handlerConfiguration.getChild( "lengthReset" 
).getValueAsInteger( lengthReset );
-            getLogger().info( "The idle timeout will be reset every " + 
lengthReset + " bytes." );
+            getLogger().info( "The idle timeout will be reset every " + 
lengthReset + " bytes." );  
         }
     }
 
@@ -144,7 +152,11 @@
          */
         public String getHelloName()
         {
-            return ImapServer.this.helloName;
+            if (ImapServer.this.helloName == null) {
+                return ImapServer.this.mailServer.getHelloName();
+            } else {
+                return ImapServer.this.helloName;
+            }
         }
 
         /**

Modified: 
james/server/trunk/src/java/org/apache/james/imapserver/ImapServer.xinfo
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/imapserver/ImapServer.xinfo?view=diff&rev=487269&r1=487268&r2=487269
==============================================================================
--- james/server/trunk/src/java/org/apache/james/imapserver/ImapServer.xinfo 
(original)
+++ james/server/trunk/src/java/org/apache/james/imapserver/ImapServer.xinfo 
Thu Dec 14 09:25:45 2006
@@ -28,7 +28,10 @@
     </dependency>
     <dependency>
       <service name="org.apache.james.services.DNSServer" version="1.0"/>
-    </dependency>    
+    </dependency>   
+    <dependency>
+      <service name="org.apache.james.services.MailServer" version="1.0"/>
+    </dependency>   
     <!--
       <dependency>
           <service name="org.apache.james.imapserver.ImapHost" version="1.0"/>

Modified: 
james/server/trunk/src/java/org/apache/james/nntpserver/NNTPServer.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/nntpserver/NNTPServer.java?view=diff&rev=487269&r1=487268&r2=487269
==============================================================================
--- james/server/trunk/src/java/org/apache/james/nntpserver/NNTPServer.java 
(original)
+++ james/server/trunk/src/java/org/apache/james/nntpserver/NNTPServer.java Thu 
Dec 14 09:25:45 2006
@@ -27,6 +27,7 @@
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.james.core.AbstractJamesService;
 import org.apache.james.nntpserver.repository.NNTPRepository;
+import org.apache.james.services.MailServer;
 import org.apache.james.services.UsersRepository;
 
 /**
@@ -50,6 +51,8 @@
      */
     private UsersRepository userRepository = null;
 
+    private MailServer mailServer;
+
     /**
      * Set the UserRepository
      * 
@@ -67,6 +70,10 @@
     public void setRepository(NNTPRepository nntpRepository) {
         this.nntpRepository = nntpRepository;
     }
+    
+    public void setMailServer(MailServer mailServer) {
+        this.mailServer = mailServer;
+    }
 
     /**
      * The configuration data to be passed to the handler
@@ -86,6 +93,8 @@
         NNTPRepository repo = (NNTPRepository)componentManager
             .lookup("org.apache.james.nntpserver.repository.NNTPRepository");
         setRepository(repo);
+        
+        setMailServer((MailServer) componentManager.lookup(MailServer.ROLE));
     }
 
     /**
@@ -147,7 +156,11 @@
          * @see 
org.apache.james.nntpserver.NNTPHandlerConfigurationData#getHelloName()
          */
         public String getHelloName() {
-            return NNTPServer.this.helloName;
+            if (NNTPServer.this.helloName == null) {
+                return NNTPServer.this.mailServer.getHelloName();
+            } else {
+                return NNTPServer.this.helloName;
+            }
         }
 
         /**

Modified: 
james/server/trunk/src/java/org/apache/james/nntpserver/NNTPServer.xinfo
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/nntpserver/NNTPServer.xinfo?view=diff&rev=487269&r1=487268&r2=487269
==============================================================================
--- james/server/trunk/src/java/org/apache/james/nntpserver/NNTPServer.xinfo 
(original)
+++ james/server/trunk/src/java/org/apache/james/nntpserver/NNTPServer.xinfo 
Thu Dec 14 09:25:45 2006
@@ -30,7 +30,10 @@
     </dependency>
     <dependency>
       <service name="org.apache.james.services.DNSServer" version="1.0"/>
-    </dependency>       
+    </dependency>     
+    <dependency>
+      <service name="org.apache.james.services.MailServer" version="1.0"/>
+    </dependency>     
   </dependencies>
 
 </blockinfo>

Modified: 
james/server/trunk/src/java/org/apache/james/pop3server/POP3Server.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/pop3server/POP3Server.java?view=diff&rev=487269&r1=487268&r2=487269
==============================================================================
--- james/server/trunk/src/java/org/apache/james/pop3server/POP3Server.java 
(original)
+++ james/server/trunk/src/java/org/apache/james/pop3server/POP3Server.java Thu 
Dec 14 09:25:45 2006
@@ -164,7 +164,11 @@
          * @see 
org.apache.james.pop3server.POP3HandlerConfigurationData#getHelloName()
          */
         public String getHelloName() {
-            return POP3Server.this.helloName;
+            if (POP3Server.this.helloName == null) {
+                return POP3Server.this.mailServer.getHelloName();
+            } else {
+                return POP3Server.this.helloName;
+            }
         }
 
         /**

Modified: 
james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java?view=diff&rev=487269&r1=487268&r2=487269
==============================================================================
--- 
james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java 
(original)
+++ 
james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java 
Thu Dec 14 09:25:45 2006
@@ -273,7 +273,11 @@
          * @see 
org.apache.james.remotemanager.RemoteManagerHandlerConfigurationData#getHelloName()
          */
         public String getHelloName() {
-            return RemoteManager.this.helloName;
+            if (RemoteManager.this.helloName == null) {
+                return RemoteManager.this.mailServer.getHelloName();
+            } else {
+                return RemoteManager.this.helloName;
+            }
         }
 
         /**

Modified: james/server/trunk/src/java/org/apache/james/services/MailServer.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/services/MailServer.java?view=diff&rev=487269&r1=487268&r2=487269
==============================================================================
--- james/server/trunk/src/java/org/apache/james/services/MailServer.java 
(original)
+++ james/server/trunk/src/java/org/apache/james/services/MailServer.java Thu 
Dec 14 09:25:45 2006
@@ -151,4 +151,11 @@
      * @return the defaultdomain
      */
     String getDefaultDomain();
+    
+    /**
+     * Return the helloName which should use for all services by default
+     * 
+     * @return the helloName
+     */
+    String getHelloName();
 }

Modified: 
james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.java?view=diff&rev=487269&r1=487268&r2=487269
==============================================================================
--- james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.java 
(original)
+++ james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.java Thu 
Dec 14 09:25:45 2006
@@ -148,8 +148,12 @@
      */
     public void configure(final Configuration configuration) throws 
ConfigurationException {
         super.configure(configuration);
+        String hello = (String) 
mailetcontext.getAttribute(Constants.HELLO_NAME);
+        
         if (isEnabled()) {
-            mailetcontext.setAttribute(Constants.HELLO_NAME, helloName);
+            // TODO Remove this in next not backwards compatible release!
+            if (hello == null) 
mailetcontext.setAttribute(Constants.HELLO_NAME, helloName);
+            
             Configuration handlerConfiguration = 
configuration.getChild("handler");
             String authRequiredString = 
handlerConfiguration.getChild("authRequired").getValue("false").trim().toLowerCase();
             if (authRequiredString.equals("true")) authRequired = 
AUTH_REQUIRED;
@@ -241,7 +245,8 @@
             
ContainerUtil.configure(handlerChain,handlerConfiguration.getChild("handlerchain"));
 
         } else {
-            mailetcontext.setAttribute(Constants.HELLO_NAME, "localhost");
+            // TODO Remove this in next not backwards compatible release!
+            if (hello == null) 
mailetcontext.setAttribute(Constants.HELLO_NAME, "localhost");
         }
     }
     
@@ -297,7 +302,11 @@
          * @see 
org.apache.james.smtpserver.SMTPHandlerConfigurationData#getHelloName()
          */
         public String getHelloName() {
-            return SMTPServer.this.helloName;
+            if (SMTPServer.this.helloName == null) {
+                return SMTPServer.this.mailServer.getHelloName();
+            } else {
+                return SMTPServer.this.helloName;
+            }
         }
 
         /**

Modified: 
james/server/trunk/src/test/org/apache/james/imapserver/mock/MockMailServer.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/imapserver/mock/MockMailServer.java?view=diff&rev=487269&r1=487268&r2=487269
==============================================================================
--- 
james/server/trunk/src/test/org/apache/james/imapserver/mock/MockMailServer.java
 (original)
+++ 
james/server/trunk/src/test/org/apache/james/imapserver/mock/MockMailServer.java
 Thu Dec 14 09:25:45 2006
@@ -69,4 +69,8 @@
         return "localhost";
     }
 
+    public String getHelloName() {
+        return "localhost";
+    }
+
 }

Modified: 
james/server/trunk/src/test/org/apache/james/test/mock/james/MockMailServer.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/test/mock/james/MockMailServer.java?view=diff&rev=487269&r1=487268&r2=487269
==============================================================================
--- 
james/server/trunk/src/test/org/apache/james/test/mock/james/MockMailServer.java
 (original)
+++ 
james/server/trunk/src/test/org/apache/james/test/mock/james/MockMailServer.java
 Thu Dec 14 09:25:45 2006
@@ -199,6 +199,10 @@
     public String getDefaultDomain() {
         return "localhost";
     }
+
+    public String getHelloName() {
+        return "localhost";
+    }
 }
 
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to