You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ve...@apache.org on 2008/05/03 22:58:37 UTC
svn commit: r653136 - in /synapse/trunk/java/modules/transports: ./
src/test/java/org/apache/synapse/transport/mail/ src/test/resources/META-INF/
Author: veithen
Date: Sat May 3 13:58:36 2008
New Revision: 653136
URL: http://svn.apache.org/viewvc?rev=653136&view=rev
Log:
SYNAPSE-246: Mail transport unit tests now use mock JavaMail store and transport providers and no longer depend on GMail.
Added:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/Account.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestFolder.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestMimeMessage.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestStore.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestTransport.java
synapse/trunk/java/modules/transports/src/test/resources/META-INF/
synapse/trunk/java/modules/transports/src/test/resources/META-INF/javamail.providers
Modified:
synapse/trunk/java/modules/transports/pom.xml
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailEchoRawXMLTest.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/UtilsMailServer.java
Modified: synapse/trunk/java/modules/transports/pom.xml
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/pom.xml?rev=653136&r1=653135&r2=653136&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/pom.xml (original)
+++ synapse/trunk/java/modules/transports/pom.xml Sat May 3 13:58:36 2008
@@ -43,7 +43,6 @@
<version>2.3</version>
<configuration>
<excludes>
- <exclude>**/MailEchoRawXMLTest.java</exclude>
<exclude>**/AbstractTransportTest.java</exclude>
</excludes>
</configuration>
Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/Account.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/Account.java?rev=653136&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/Account.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/Account.java Sat May 3 13:58:36 2008
@@ -0,0 +1,88 @@
+/*
+ * 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.synapse.transport.mail;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import javax.mail.Flags;
+import javax.mail.internet.InternetAddress;
+
+public class Account {
+ public static class Message {
+ private final int uid;
+ private final byte[] content;
+ private final Flags flags = new Flags();
+
+ public Message(int uid, byte[] content) {
+ this.uid = uid;
+ this.content = content;
+ }
+
+ public int getUid() {
+ return uid;
+ }
+
+ public byte[] getContent() {
+ return content;
+ }
+
+ public synchronized Flags getFlags() {
+ return (Flags)flags.clone();
+ }
+
+ public synchronized void addFlags(Flags flags) {
+ flags.add(flags);
+ }
+
+ public synchronized void removeFlags(Flags flags) {
+ flags.remove(flags);
+ }
+ }
+
+ private static final Map<InternetAddress,Account> accounts = new HashMap<InternetAddress,Account>();
+
+ private final Map<Integer,Message> messageMap = new LinkedHashMap<Integer,Message>();
+ private int nextUid;
+
+ public static synchronized Account getAccount(InternetAddress address) {
+ Account account = accounts.get(address);
+ if (account == null) {
+ account = new Account();
+ accounts.put(address, account);
+ }
+ return account;
+ }
+
+ public synchronized void receive(byte[] content) {
+ int uid = nextUid++;
+ messageMap.put(uid, new Message(uid, content));
+ }
+
+ public synchronized Message[] getMessages() {
+ Collection<Message> messages = messageMap.values();
+ return messages.toArray(new Message[messages.size()]);
+ }
+
+ public synchronized void deleteMessage(int uid) {
+ messageMap.remove(uid);
+ }
+}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailEchoRawXMLTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailEchoRawXMLTest.java?rev=653136&r1=653135&r2=653136&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailEchoRawXMLTest.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailEchoRawXMLTest.java Sat May 3 13:58:36 2008
@@ -76,6 +76,8 @@
//Logger.getLogger("org.apache.synapse.transport.mail").setLevel(Level.TRACE);
server = new UtilsMailServer();
+ props.put("mail.smtp.class", TestTransport.class.getName());
+
props.put("mail.pop3.host", "pop.gmail.com");
props.put("mail.pop3.port", "995");
props.put("mail.pop3.user", "synapse.test.0");
@@ -104,9 +106,9 @@
session.setDebug(log.isTraceEnabled());
WSMimeMessage msg = new WSMimeMessage(session);
- msg.setFrom(new InternetAddress("synapse.test.0@gmail.com"));
- msg.setReplyTo(InternetAddress.parse("synapse.test.0@gmail.com"));
- InternetAddress[] address = {new InternetAddress("synapse.test.6@gmail.com")};
+ msg.setFrom(new InternetAddress("synapse.test.0"));
+ msg.setReplyTo(InternetAddress.parse("synapse.test.0"));
+ InternetAddress[] address = {new InternetAddress("synapse.test.6")};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject("POX Roundtrip");
msg.setHeader(BaseConstants.SOAPACTION, Constants.AXIS2_NAMESPACE_URI + "/echoOMElement");
@@ -117,11 +119,11 @@
Transport.send(msg);
Thread.yield();
- Thread.sleep(1000 * 10);
+ Thread.sleep(100);
Object reply = null;
boolean replyNotFound = true;
- int retryCount = 3;
+ int retryCount = 50;
while (replyNotFound) {
log.debug("Checking for response ... with MessageID : " + msgId);
reply = getMessage(msgId);
@@ -129,7 +131,7 @@
replyNotFound = false;
} else {
if (retryCount-- > 0) {
- Thread.sleep(10000);
+ Thread.sleep(100);
} else {
break;
}
@@ -157,8 +159,8 @@
String msgId = UUIDGenerator.getUUID();
Options options = new Options();
- options.setTo(new EndpointReference("mailto:synapse.test.6@gmail.com"));
- options.setReplyTo(new EndpointReference("mailto:synapse.test.0@gmail.com"));
+ options.setTo(new EndpointReference("mailto:synapse.test.6"));
+ options.setReplyTo(new EndpointReference("mailto:synapse.test.0"));
options.setAction(Constants.AXIS2_NAMESPACE_URI + "/echoOMElement");
options.setMessageId(msgId);
@@ -169,11 +171,11 @@
sender.fireAndForget(createPayload());
Thread.yield();
- Thread.sleep(1000 * 10);
+ Thread.sleep(100);
Object reply = null;
boolean replyNotFound = true;
- int retryCount = 3;
+ int retryCount = 50;
while (replyNotFound) {
log.debug("Checking for response ... with MessageID : " + msgId);
reply = getMessage(msgId);
@@ -181,7 +183,7 @@
replyNotFound = false;
} else {
if (retryCount-- > 0) {
- Thread.sleep(10000);
+ Thread.sleep(100);
} else {
break;
}
@@ -209,8 +211,8 @@
String msgId = UUIDGenerator.getUUID();
Options options = new Options();
- options.setTo(new EndpointReference("mailto:synapse.test.6@gmail.com"));
- options.setReplyTo(new EndpointReference("mailto:synapse.test.0@gmail.com"));
+ options.setTo(new EndpointReference("mailto:synapse.test.6"));
+ options.setReplyTo(new EndpointReference("mailto:synapse.test.0"));
options.setAction(Constants.AXIS2_NAMESPACE_URI + "/echoOMElement");
options.setMessageId(msgId);
@@ -221,11 +223,11 @@
sender.fireAndForget(createKoreanPayload());
Thread.yield();
- Thread.sleep(1000 * 10);
+ Thread.sleep(100);
Object reply = null;
boolean replyNotFound = true;
- int retryCount = 3;
+ int retryCount = 50;
while (replyNotFound) {
log.debug("Checking for response ... with MessageID : " + msgId);
reply = getMessage(msgId);
@@ -233,7 +235,7 @@
replyNotFound = false;
} else {
if (retryCount-- > 0) {
- Thread.sleep(10000);
+ Thread.sleep(100);
} else {
break;
}
@@ -261,8 +263,8 @@
String msgId = UUIDGenerator.getUUID();
Options options = new Options();
- options.setTo(new EndpointReference("mailto:synapse.test.6@gmail.com"));
- options.setReplyTo(new EndpointReference("mailto:synapse.test.0@gmail.com"));
+ options.setTo(new EndpointReference("mailto:synapse.test.6"));
+ options.setReplyTo(new EndpointReference("mailto:synapse.test.0"));
options.setAction(Constants.AXIS2_NAMESPACE_URI + "/echoOMElement");
options.setSoapVersionURI(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);
options.setMessageId(msgId);
@@ -272,11 +274,11 @@
sender.fireAndForget(createPayload());
Thread.yield();
- Thread.sleep(1000 * 10);
+ Thread.sleep(100);
Object reply = null;
boolean replyNotFound = true;
- int retryCount = 3;
+ int retryCount = 50;
while (replyNotFound) {
log.debug("Checking for response ... with MessageID : " + msgId);
reply = getMessage(msgId);
@@ -284,7 +286,7 @@
replyNotFound = false;
} else {
if (retryCount-- > 0) {
- Thread.sleep(10000);
+ Thread.sleep(100);
} else {
break;
}
@@ -312,8 +314,8 @@
String msgId = UUIDGenerator.getUUID();
Options options = new Options();
- options.setTo(new EndpointReference("mailto:synapse.test.7@gmail.com"));
- options.setReplyTo(new EndpointReference("mailto:synapse.test.0@gmail.com"));
+ options.setTo(new EndpointReference("mailto:synapse.test.7"));
+ options.setReplyTo(new EndpointReference("mailto:synapse.test.0"));
options.setAction(Constants.AXIS2_NAMESPACE_URI + "/echoOMElement");
options.setMessageId(msgId);
@@ -322,11 +324,11 @@
sender.fireAndForget(createKoreanPayload());
Thread.yield();
- Thread.sleep(1000 * 10);
+ Thread.sleep(100);
Object reply = null;
boolean replyNotFound = true;
- int retryCount = 3;
+ int retryCount = 50;
while (replyNotFound) {
log.debug("Checking for response ... with MessageID : " + msgId);
reply = getMessage(msgId);
@@ -334,7 +336,7 @@
replyNotFound = false;
} else {
if (retryCount-- > 0) {
- Thread.sleep(10000);
+ Thread.sleep(100);
} else {
break;
}
@@ -362,8 +364,8 @@
String msgId = UUIDGenerator.getUUID();
Options options = new Options();
- options.setTo(new EndpointReference("mailto:synapse.test.7@gmail.com"));
- options.setReplyTo(new EndpointReference("mailto:synapse.test.0@gmail.com"));
+ options.setTo(new EndpointReference("mailto:synapse.test.7"));
+ options.setReplyTo(new EndpointReference("mailto:synapse.test.0"));
options.setAction(Constants.AXIS2_NAMESPACE_URI + "/echoOMElement");
options.setMessageId(msgId);
options.setProperty(Constants.Configuration. CHARACTER_SET_ENCODING, KOREAN_CHARSET);
@@ -373,11 +375,11 @@
sender.fireAndForget(createKoreanPayload());
Thread.yield();
- Thread.sleep(1000 * 10);
+ Thread.sleep(100);
Object reply = null;
boolean replyNotFound = true;
- int retryCount = 3;
+ int retryCount = 50;
while (replyNotFound) {
log.debug("Checking for response ... with MessageID : " + msgId);
reply = getMessage(msgId);
@@ -385,7 +387,7 @@
replyNotFound = false;
} else {
if (retryCount-- > 0) {
- Thread.sleep(10000);
+ Thread.sleep(100);
} else {
break;
}
@@ -415,7 +417,7 @@
Store store = null;
try {
- store = session.getStore("pop3");
+ store = session.getStore("test-store");
store.connect(username, password);
Folder folder = store.getFolder(MailConstants.DEFAULT_FOLDER);
folder.open(Folder.READ_WRITE);
@@ -458,6 +460,7 @@
AxisConfiguration axisCfg = new AxisConfiguration();
TransportOutDescription trpOutDesc = new TransportOutDescription("mailto");
+ trpOutDesc.addParameter(new Parameter("mail.smtp.class", TestTransport.class.getName()));
trpOutDesc.addParameter(new Parameter("mail.smtp.host", "smtp.gmail.com"));
trpOutDesc.addParameter(new Parameter("mail.smtp.port", "587"));
trpOutDesc.addParameter(new Parameter("mail.smtp.starttls.enable", "true"));
Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestFolder.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestFolder.java?rev=653136&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestFolder.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestFolder.java Sat May 3 13:58:36 2008
@@ -0,0 +1,182 @@
+/*
+ * 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.synapse.transport.mail;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.mail.Flags;
+import javax.mail.Folder;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.Store;
+
+public class TestFolder extends Folder {
+ private final Account account;
+ private TestMimeMessage[] messages;
+ private boolean open;
+
+ public TestFolder(Store store, Account account) {
+ super(store);
+ this.account = account;
+ }
+
+ private void refresh() throws MessagingException {
+ Account.Message[] messages = account.getMessages();
+ this.messages = new TestMimeMessage[messages.length];
+ for (int i=0; i<messages.length; i++) {
+ this.messages[i] = new TestMimeMessage(this, messages[i], i+1);
+ }
+ }
+
+ @Override
+ public void open(int mode) throws MessagingException {
+ refresh();
+ open = true;
+ }
+
+ @Override
+ public boolean isOpen() {
+ return open;
+ }
+
+ @Override
+ public int getMessageCount() throws MessagingException {
+ return messages.length;
+ }
+
+ @Override
+ public Message getMessage(int msgnum) throws MessagingException {
+ return messages[msgnum-1];
+ }
+
+ private Message[] doExpunge() throws MessagingException {
+ List<Message> expunged = new LinkedList<Message>();
+ for (TestMimeMessage message : messages) {
+ if (message.isSet(Flags.Flag.DELETED)) {
+ expunged.add(message);
+ account.deleteMessage(message.getUid());
+ }
+ }
+ return expunged.toArray(new Message[expunged.size()]);
+ }
+
+ @Override
+ public Message[] expunge() throws MessagingException {
+ Message[] expunged = doExpunge();
+ refresh();
+ return expunged;
+ }
+
+ @Override
+ public void close(boolean expunge) throws MessagingException {
+ if (expunge) {
+ doExpunge();
+ }
+ open = false;
+ messages = null;
+ }
+
+
+
+ @Override
+ public void appendMessages(Message[] msgs) throws MessagingException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean create(int type) throws MessagingException {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean delete(boolean recurse) throws MessagingException {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean exists() throws MessagingException {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public Folder getFolder(String name) throws MessagingException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getFullName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Folder getParent() throws MessagingException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Flags getPermanentFlags() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public char getSeparator() throws MessagingException {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public int getType() throws MessagingException {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public boolean hasNewMessages() throws MessagingException {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public Folder[] list(String pattern) throws MessagingException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean renameTo(Folder f) throws MessagingException {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+}
Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestMimeMessage.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestMimeMessage.java?rev=653136&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestMimeMessage.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestMimeMessage.java Sat May 3 13:58:36 2008
@@ -0,0 +1,50 @@
+/*
+ * 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.synapse.transport.mail;
+
+import java.io.ByteArrayInputStream;
+
+import javax.mail.Flags;
+import javax.mail.Folder;
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+
+public class TestMimeMessage extends MimeMessage {
+ private final Account.Message message;
+
+ public TestMimeMessage(Folder folder, Account.Message message, int msgnum) throws MessagingException {
+ super(folder, new ByteArrayInputStream(message.getContent()), msgnum);
+ this.message = message;
+ flags = message.getFlags();
+ }
+
+ @Override
+ public synchronized void setFlags(Flags flags, boolean set) throws MessagingException {
+ super.setFlags(flags, set);
+ if (set) {
+ message.addFlags(flags);
+ } else {
+ message.removeFlags(flags);
+ }
+ }
+
+ public int getUid() {
+ return message.getUid();
+ }
+}
Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestStore.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestStore.java?rev=653136&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestStore.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestStore.java Sat May 3 13:58:36 2008
@@ -0,0 +1,56 @@
+/*
+ * 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.synapse.transport.mail;
+
+import javax.mail.Folder;
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.mail.Store;
+import javax.mail.URLName;
+import javax.mail.internet.InternetAddress;
+
+public class TestStore extends Store {
+ private Account account;
+
+ public TestStore(Session session, URLName urlname) {
+ super(session, urlname);
+ }
+
+ @Override
+ protected boolean protocolConnect(String host, int port, String user,
+ String password) throws MessagingException {
+ account = Account.getAccount(new InternetAddress(user));
+ return true;
+ }
+
+ @Override
+ public Folder getDefaultFolder() throws MessagingException {
+ return new TestFolder(this, account);
+ }
+
+ @Override
+ public Folder getFolder(String name) throws MessagingException {
+ return getDefaultFolder();
+ }
+
+ @Override
+ public Folder getFolder(URLName url) throws MessagingException {
+ return getDefaultFolder();
+ }
+}
Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestTransport.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestTransport.java?rev=653136&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestTransport.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/TestTransport.java Sat May 3 13:58:36 2008
@@ -0,0 +1,58 @@
+/*
+ * 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.synapse.transport.mail;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.Arrays;
+
+import javax.mail.Address;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.mail.Transport;
+import javax.mail.URLName;
+import javax.mail.internet.InternetAddress;
+
+public class TestTransport extends Transport {
+ public TestTransport(Session session, URLName urlname) {
+ super(session, urlname);
+ }
+
+ @Override
+ protected boolean protocolConnect(String host, int port, String user,
+ String password) throws MessagingException {
+ return true;
+ }
+
+ @Override
+ public void sendMessage(Message msg, Address[] addresses) throws MessagingException {
+ System.out.println("Message to " + Arrays.asList(addresses));
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ try {
+ msg.writeTo(baos);
+ } catch (IOException ex) {
+ throw new MessagingException("Unable to serialize message", ex);
+ }
+ byte[] content = baos.toByteArray();
+ for (Address address : addresses) {
+ Account.getAccount((InternetAddress)address).receive(content);
+ }
+ }
+}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/UtilsMailServer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/UtilsMailServer.java?rev=653136&r1=653135&r2=653136&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/UtilsMailServer.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/UtilsMailServer.java Sat May 3 13:58:36 2008
@@ -37,6 +37,7 @@
TransportOutDescription trpOutDesc =
new TransportOutDescription(MailConstants.TRANSPORT_NAME);
// gmail
+ trpOutDesc.addParameter(new Parameter("mail.smtp.class", TestTransport.class.getName()));
trpOutDesc.addParameter(new Parameter("mail.smtp.host", "smtp.gmail.com"));
trpOutDesc.addParameter(new Parameter("mail.smtp.port", "587"));
trpOutDesc.addParameter(new Parameter("mail.smtp.starttls.enable", "true"));
@@ -60,10 +61,10 @@
// local james
parameters.add(new Parameter("transport.mail.Address", "synapse.test.6@localhost"));
//parameters.add(new Parameter("transport.mail.ReplyAddress", "synapse.test.1@gmail.com"));
- parameters.add(new Parameter("transport.mail.Protocol", "pop3"));
+ parameters.add(new Parameter("transport.mail.Protocol", "test-store"));
//parameters.add(new Parameter("transport.mail.ContentType", "text/xml"));
parameters.add(new Parameter("transport.mail.ActionAfterProcess", "DELETE"));
- parameters.add(new Parameter("transport.PollInterval", "5"));
+ parameters.add(new Parameter("transport.PollInterval", "1"));
// gmail
parameters.add(new Parameter("mail.pop3.host", "pop.gmail.com"));
@@ -82,10 +83,10 @@
parameters = new ArrayList();
parameters.add(new Parameter("transport.mail.Address", "synapse.test.7@gmail.com"));
//parameters.add(new Parameter("transport.mail.ReplyAddress", "synapse.test.1@gmail.com"));
- parameters.add(new Parameter("transport.mail.Protocol", "imap"));
+ parameters.add(new Parameter("transport.mail.Protocol", "test-store"));
//parameters.add(new Parameter("transport.mail.ContentType", "text/xml"));
//parameters.add(new Parameter("transport.mail.ActionAfterProcess", "DELETE"));
- parameters.add(new Parameter("transport.PollInterval", "5"));
+ parameters.add(new Parameter("transport.PollInterval", "1"));
parameters.add(new Parameter("mail.imap.host", "imap.gmail.com"));
parameters.add(new Parameter("mail.imap.port", "993"));
Added: synapse/trunk/java/modules/transports/src/test/resources/META-INF/javamail.providers
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/resources/META-INF/javamail.providers?rev=653136&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/resources/META-INF/javamail.providers (added)
+++ synapse/trunk/java/modules/transports/src/test/resources/META-INF/javamail.providers Sat May 3 13:58:36 2008
@@ -0,0 +1,2 @@
+protocol=test-transport; type=transport; class=org.apache.synapse.transport.mail.TestTransport
+protocol=test-store; type=store; class=org.apache.synapse.transport.mail.TestStore