I just reviewed. It makes really more sense. I will revert and backport the other change.
bye Norman Stefano Bagnara schrieb: > -0 > > In trunk we already have the option to use: > <mail.smtp.localhost>some.host.name</mail.smtp.localhost> > inside the RemoteDelivery. > So this patch simply add another way to do the same thing. > > If you think this helloName deserve more attention then imho we should > better add a comment about the <mail.smtp.localhost> configuration > option. > > Stefano > > [EMAIL PROTECTED] wrote: >> Author: norman >> Date: Thu Dec 14 09:51:09 2006 >> New Revision: 487278 >> >> URL: http://svn.apache.org/viewvc?view=rev&rev=487278 >> Log: >> Add config parameter to RemoteDelivery to configure helo. See JAMES-735 >> >> Modified: >> james/server/trunk/src/conf/james-config.xml >> >> james/server/trunk/src/java/org/apache/james/transport/mailets/RemoteDelivery.java >> >> >> 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=487278&r1=487277&r2=487278 >> >> ============================================================================== >> >> --- james/server/trunk/src/conf/james-config.xml (original) >> +++ james/server/trunk/src/conf/james-config.xml Thu Dec 14 09:51:09 >> 2006 >> @@ -697,6 +697,12 @@ >> <gateway> otherserver.mydomain.com </gateway> >> <gatewayPort>25</gatewayPort> >> --> >> + + <!-- The name which will be used as HELO. >> If not set the heloName configured in James block --> >> + <!-- will be used. --> >> + <!-- >> + <helloName> myMailServer </helloName> + --> >> </mailet> >> >> </processor> >> >> Modified: >> james/server/trunk/src/java/org/apache/james/transport/mailets/RemoteDelivery.java >> >> URL: >> http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/transport/mailets/RemoteDelivery.java?view=diff&rev=487278&r1=487277&r2=487278 >> >> ============================================================================== >> >> --- >> james/server/trunk/src/java/org/apache/james/transport/mailets/RemoteDelivery.java >> (original) >> +++ >> james/server/trunk/src/java/org/apache/james/transport/mailets/RemoteDelivery.java >> Thu Dec 14 09:51:09 2006 >> @@ -228,6 +228,8 @@ >> // The retry count dnsProblemErrors >> private int dnsProblemRetry = 0; >> + private String helloName = null; >> + /** >> * Initialize the mailet >> */ >> @@ -385,6 +387,9 @@ >> if (dnsRetry != null && !dnsRetry.equals("")) { >> dnsProblemRetry = Integer.parseInt(dnsRetry); } >> + + helloName = getInitParameter("helloName"); >> + } >> /** >> @@ -1110,26 +1115,43 @@ >> * there are any >> */ >> public void run() { >> - >> - /* TODO: CHANGE ME!!! The problem is that we need to wait >> for James to >> - * finish initializing. We expect the HELLO_NAME to be put >> into >> - * the MailetContext, but in the current configuration we get >> - * started before the SMTP Server, which establishes the value. >> - * Since there is no contractual guarantee that there will be a >> - * HELLO_NAME value, we can't just wait for it. As a temporary >> - * measure, I'm inserting this philosophically unsatisfactory >> - * fix. >> - */ >> - long stop = System.currentTimeMillis() + 60000; >> - while >> ((getMailetContext().getAttribute(Constants.HELLO_NAME) == null) >> - && stop > System.currentTimeMillis()) { >> - try { >> - Thread.sleep(1000); >> - } catch (Exception ignored) {} // wait for James to >> finish initializing >> - } >> - >> //Checks the pool and delivers a mail message >> Properties props = new Properties(); >> + + if (helloName == null) { >> + /* TODO: CHANGE ME!!! The problem is that we need to >> wait for James to >> + * finish initializing. We expect the HELLO_NAME to be >> put into >> + * the MailetContext, but in the current configuration >> we get >> + * started before the SMTP Server, which establishes the >> value. >> + * Since there is no contractual guarantee that there >> will be a >> + * HELLO_NAME value, we can't just wait for it. As a >> temporary >> + * measure, I'm inserting this philosophically >> unsatisfactory >> + * fix. >> + * + * When we drop backward compatibility >> we can remove the waiting, cause if the heloName is configured >> + * in the james block it will be set in the attributes >> before the mailets get init >> + */ >> + long stop = System.currentTimeMillis() + 60000; >> + while >> ((getMailetContext().getAttribute(Constants.HELLO_NAME) == null) >> + && stop > System.currentTimeMillis()) { >> + try { >> + Thread.sleep(1000); >> + } catch (Exception ignored) {} // wait for James to >> finish initializing >> + } >> + + String defaultDomain = (String) >> getMailetContext().getAttribute(Constants.HELLO_NAME); >> + if (defaultDomain != null) { >> + props.put("mail.smtp.localhost", defaultDomain); >> + } else { >> + defaultDomain = (String) >> getMailetContext().getAttribute(Constants.DEFAULT_DOMAIN); >> + if (defaultDomain != null) { >> + props.put("mail.smtp.localhost", defaultDomain); >> + } >> + } >> + } else { >> + props.put("mail.smtp.localhost", helloName); >> + } >> + //Not needed for production environment >> props.put("mail.debug", "false"); >> // Reactivated: javamail 1.3.2 should no more have problems >> with "250 OK" >> @@ -1145,17 +1167,6 @@ >> >> props.put("mail.smtp.connectiontimeout", connectionTimeout + >> ""); >> props.put("mail.smtp.sendpartial",String.valueOf(sendPartial)); >> - >> - //Set the hostname we'll use as this server >> - if (getMailetContext().getAttribute(Constants.HELLO_NAME) != >> null) { >> - props.put("mail.smtp.localhost", >> getMailetContext().getAttribute(Constants.HELLO_NAME)); >> - } >> - else { >> - String defaultDomain = (String) >> getMailetContext().getAttribute(Constants.DEFAULT_DOMAIN); >> - if (defaultDomain != null) { >> - props.put("mail.smtp.localhost", defaultDomain); >> - } >> - } >> >> if (isBindUsed) { >> // undocumented JavaMail 1.2 feature, smtp transport >> will use >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
