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]