You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2009/01/13 08:18:44 UTC

svn commit: r734059 - in /activemq/camel/branches/camel-1.x: ./ components/camel-mail/src/main/java/org/apache/camel/component/mail/

Author: davsclaus
Date: Mon Jan 12 23:18:41 2009
New Revision: 734059

URL: http://svn.apache.org/viewvc?rev=734059&view=rev
Log:
Merged revisions 734053 via svnmerge from 
https://svn.eu.apache.org/repos/asf/activemq/camel/trunk

........
  r734053 | davsclaus | 2009-01-13 07:49:52 +0100 (Tue, 13 Jan 2009) | 1 line
  
  CAMEL-1249: Fixed bug in mail component when using multiple mail configurations. (bad Claus)
........

Modified:
    activemq/camel/branches/camel-1.x/   (props changed)
    activemq/camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java
    activemq/camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
    activemq/camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java

Propchange: activemq/camel/branches/camel-1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 12 23:18:41 2009
@@ -1 +1 @@
-/activemq/camel/trunk:732943,733749
+/activemq/camel/trunk:732943,733749,734053

Propchange: activemq/camel/branches/camel-1.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: activemq/camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java?rev=734059&r1=734058&r2=734059&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java Mon Jan 12 23:18:41 2009
@@ -25,6 +25,7 @@
 import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.impl.DefaultHeaderFilterStrategy;
 import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.camel.util.ObjectHelper;
 
 /**
  * Component for JavaMail.
@@ -72,14 +73,24 @@
         if ("nntp".equalsIgnoreCase(url.getScheme())) {
             throw new UnsupportedOperationException("nntp protocol is not supported");
         }
-        
-        MailConfiguration config = new MailConfiguration();
+
+        // must use copy as each endpoint can have different options
+        ObjectHelper.notNull(configuration, "configuration");
+        MailConfiguration config = configuration.copy();
+
+        // only configure if we have a url with a known protocol
         config.configure(url);
 
-        // lets make sure we copy the configuration as each endpoint can customize its own version
         MailEndpoint endpoint = new MailEndpoint(uri, this, config);
-
         setProperties(endpoint.getConfiguration(), parameters);
+
+        // sanity check that we know the mail server
+        ObjectHelper.notEmpty(config.getHost(), "host");
+        ObjectHelper.notEmpty(config.getProtocol(), "protocol");
+        if (config.getPort() <= 0) {
+            throw new IllegalArgumentException("port mut be specified");
+        }
+
         return endpoint;
     }
 

Modified: activemq/camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java?rev=734059&r1=734058&r2=734059&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java Mon Jan 12 23:18:41 2009
@@ -20,12 +20,12 @@
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
-
 import javax.mail.Authenticator;
 import javax.mail.Message;
 import javax.mail.PasswordAuthentication;
 import javax.mail.Session;
 
+import org.apache.camel.RuntimeCamelException;
 import org.springframework.mail.javamail.JavaMailSenderImpl;
 
 /**
@@ -33,7 +33,7 @@
  *
  * @version $Revision$
  */
-public class MailConfiguration {
+public class MailConfiguration implements Cloneable {
 
     public static final String DEFAULT_FOLDER_NAME = "INBOX";
     public static final String DEFAULT_FROM = "camel@localhost";
@@ -63,6 +63,17 @@
     public MailConfiguration() {
     }
 
+    /**
+     * Returns a copy of this configuration
+     */
+    public MailConfiguration copy() {
+        try {
+            return (MailConfiguration) clone();
+        } catch (CloneNotSupportedException e) {
+            throw new RuntimeCamelException(e);
+        }
+    }
+
     public void configure(URI uri) {
         String value = uri.getHost();
         if (value != null) {
@@ -82,10 +93,10 @@
         }
 
         int port = uri.getPort();
-        if (port >= 0) {
+        if (port > 0) {
             setPort(port);
-        } else {
-            // resolve default port if no port number was provided
+        } else if (port <= 0 && this.port <= 0) {
+            // resolve default port if no port number was provided, and not already configured with a port number
             setPort(MailUtils.getDefaultPortForProtocol(uri.getScheme()));
         }
     }
@@ -166,7 +177,7 @@
         return properties;
     }
 
-   /**
+    /**
      * Is the used protocol to be secure or not
      */
     public boolean isSecureProtocol() {

Modified: activemq/camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java?rev=734059&r1=734058&r2=734059&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java Mon Jan 12 23:18:41 2009
@@ -38,7 +38,7 @@
     public MailEndpoint(String uri, MailComponent component, MailConfiguration configuration) {
         super(uri, component);
         this.configuration = configuration;
-        binding = new MailBinding(component.getHeaderFilterStrategy());
+        this.binding = new MailBinding(component.getHeaderFilterStrategy());
     }
 
     public MailEndpoint(String endpointUri, MailConfiguration configuration) {