Author: davsclaus
Date: Sun Apr 27 06:06:42 2008
New Revision: 651939
URL: http://svn.apache.org/viewvc?rev=651939&view=rev
Log:
CAMEL-335
- subject unit test added
- fixed destination defaults to the username parameter if no explicity provided
Added:
activemq/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailSubjectTest.java
(with props)
Modified:
activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailProducer.java
activemq/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java
Modified:
activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java?rev=651939&r1=651938&r2=651939&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
(original)
+++
activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
Sun Apr 27 06:06:42 2008
@@ -50,6 +50,11 @@
if (destination != null) {
mimeMessage.setRecipients(Message.RecipientType.TO,
destination);
}
+ // must have a destination otherwise we do not know where to send
the mail
+ if (mimeMessage.getAllRecipients() == null) {
+ throw new IllegalArgumentException("The MineMessage does not
have any recipients set. "
+ + "Add a destination (Recipient.TO) to the
MailConfiguration.");
+ }
if (empty(mimeMessage.getFrom())) {
// lets default the address to the endpoint destination
Modified:
activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java?rev=651939&r1=651938&r2=651939&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
(original)
+++
activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
Sun Apr 27 06:06:42 2008
@@ -186,6 +186,11 @@
public void setUsername(String username) {
this.username = username;
+ if (destination == null) {
+ // set default destination to [EMAIL PROTECTED] for backwards
compatibility
+ // can be overridden by URI parameters
+ setDestination(username + "@" + host);
+ }
}
public String getDestination() {
Modified:
activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java?rev=651939&r1=651938&r2=651939&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
(original)
+++
activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
Sun Apr 27 06:06:42 2008
@@ -52,8 +52,10 @@
public Consumer<MailExchange> createConsumer(Processor processor) throws
Exception {
JavaMailConnection connection =
configuration.createJavaMailConnection(this);
+
String protocol = getConfiguration().getProtocol();
- // TODO: Why do we change protocol from smtp to pop3?
+ // replace smtp with pop3 since we are creating a consumer and thus we
need to use pop3 as protocol
+ // as stmp is only for sending
if (protocol.equals("smtp")) {
protocol = "pop3";
}
@@ -62,6 +64,7 @@
if (folder == null) {
throw new IllegalArgumentException("No folder for protocol: " +
protocol + " and name: " + folderName);
}
+
return createConsumer(processor, folder);
}
Modified:
activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailProducer.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailProducer.java?rev=651939&r1=651938&r2=651939&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailProducer.java
(original)
+++
activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailProducer.java
Sun Apr 27 06:06:42 2008
@@ -44,6 +44,9 @@
sender.send(new MimeMessagePreparator() {
public void prepare(MimeMessage mimeMessage) throws Exception {
endpoint.getBinding().populateMailMessage(endpoint,
mimeMessage, exchange);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Sending MineMessage: MessageID=" +
mimeMessage.getMessageID());
+ }
}
});
}
Modified:
activemq/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java?rev=651939&r1=651938&r2=651939&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java
(original)
+++
activemq/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java
Sun Apr 27 06:06:42 2008
@@ -145,7 +145,7 @@
assertEquals("getHost()", "myhost", config.getHost());
assertEquals("getPort()", 25, config.getPort());
assertEquals("getUsername()", "james", config.getUsername());
- assertEquals("getDestination()", null, config.getDestination());
+ assertEquals("getDestination()", "[EMAIL PROTECTED]",
config.getDestination());
assertEquals("folder", "INBOX", config.getFolderName());
assertEquals("encoding", null, config.getDefaultEncoding());
assertEquals("from", "[EMAIL PROTECTED]", config.getFrom());
Added:
activemq/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailSubjectTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailSubjectTest.java?rev=651939&view=auto
==============================================================================
---
activemq/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailSubjectTest.java
(added)
+++
activemq/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailSubjectTest.java
Sun Apr 27 06:06:42 2008
@@ -0,0 +1,61 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.mail;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Exchange;
+import org.apache.camel.Message;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+
+/**
+ * Unit test for Mail subject support.
+ */
+public class MailSubjectTest extends ContextTestSupport {
+ private String subject = "Camel rocks";
+
+ public void testMailSubject() throws Exception {
+ MockEndpoint mock = getMockEndpoint("mock:result");
+ mock.expectedMessageCount(1);
+
+ String body = "Hello Claus.\nYes it does.\n\nRegards James.";
+
+ template.sendBody("direct:a", body);
+
+ // need some time for camel to consume mail
+ Thread.sleep(1000);
+
+ Exchange exchange = mock.assertExchangeReceived(0);
+ Message in = exchange.getIn();
+ assertEquals("body", body, in.getBody(String.class));
+ assertEquals("subject", subject, in.getHeader("subject",
String.class));
+
+ mock.assertIsSatisfied();
+ }
+
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ public void configure() throws Exception {
+ // START SNIPPET: e1
+ from("direct:a").setHeader("subject",
subject).to("smtp:localhost?username=james");
+ // END SNIPPET: e1
+
+ from("pop3:localhost?username=james").to("mock:result");
+ }
+ };
+ }
+}
Propchange:
activemq/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailSubjectTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
activemq/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailSubjectTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date