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) {