You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by ve...@apache.org on 2008/09/27 22:25:12 UTC
svn commit: r699731 - in
/webservices/commons/trunk/modules/transport/modules:
mail/src/test/java/org/apache/axis2/transport/mail/
testkit/src/main/java/org/apache/axis2/transport/testkit/http/
testkit/src/main/java/org/apache/axis2/transport/testkit/u...
Author: veithen
Date: Sat Sep 27 13:25:12 2008
New Revision: 699731
URL: http://svn.apache.org/viewvc?rev=699731&view=rev
Log:
Mail transport tests: Intercept and log the SMTP communication.
Added:
webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Acceptor.java
Modified:
webservices/commons/trunk/modules/transport/modules/mail/src/test/java/org/apache/axis2/transport/mail/GreenMailTestEnvironment.java
webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/http/HttpChannel.java
webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Tunnel.java
Modified: webservices/commons/trunk/modules/transport/modules/mail/src/test/java/org/apache/axis2/transport/mail/GreenMailTestEnvironment.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/mail/src/test/java/org/apache/axis2/transport/mail/GreenMailTestEnvironment.java?rev=699731&r1=699730&r2=699731&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/mail/src/test/java/org/apache/axis2/transport/mail/GreenMailTestEnvironment.java (original)
+++ webservices/commons/trunk/modules/transport/modules/mail/src/test/java/org/apache/axis2/transport/mail/GreenMailTestEnvironment.java Sat Sep 27 13:25:12 2008
@@ -20,6 +20,7 @@
package org.apache.axis2.transport.mail;
import java.io.OutputStream;
+import java.net.InetSocketAddress;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
@@ -31,6 +32,7 @@
import org.apache.axis2.transport.testkit.name.Name;
import org.apache.axis2.transport.testkit.util.LogManager;
import org.apache.axis2.transport.testkit.util.ServerUtil;
+import org.apache.axis2.transport.testkit.util.tcpmon.Tunnel;
import com.icegreen.greenmail.store.FolderListener;
import com.icegreen.greenmail.store.MailFolder;
@@ -54,6 +56,7 @@
private final ServerSetup storeServerSetup;
private LogManager logManager;
private GreenMail greenMail;
+ private Tunnel smtpTunnel;
private int accountNumber;
private List<Account> unallocatedAccounts;
@@ -73,6 +76,8 @@
this.logManager = logManager;
greenMail = new GreenMail(new ServerSetup[] { SMTP, storeServerSetup });
greenMail.start();
+ smtpTunnel = new Tunnel(new InetSocketAddress("127.0.0.1", 7025));
+ smtpTunnel.start();
unallocatedAccounts = new LinkedList<Account>();
ServerUtil.waitForServer(SMTP.getPort());
ServerUtil.waitForServer(storeServerSetup.getPort());
@@ -143,7 +148,7 @@
public Map<String,String> getOutProperties() {
Map<String,String> props = new HashMap<String,String>();
props.put("mail.smtp.host", "localhost");
- props.put("mail.smtp.port", String.valueOf(SMTP.getPort()));
+ props.put("mail.smtp.port", String.valueOf(smtpTunnel.getPort()));
return props;
}
}
Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/http/HttpChannel.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/http/HttpChannel.java?rev=699731&r1=699730&r2=699731&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/http/HttpChannel.java (original)
+++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/http/HttpChannel.java Sat Sep 27 13:25:12 2008
@@ -35,7 +35,7 @@
private void setUp() throws Exception {
serviceName = "TestService-" + UUID.randomUUID();
tunnel = new Tunnel(new InetSocketAddress("127.0.0.1", 8280));
- new Thread(tunnel).start();
+ tunnel.start();
}
@SuppressWarnings("unused")
Added: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Acceptor.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Acceptor.java?rev=699731&view=auto
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Acceptor.java (added)
+++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Acceptor.java Sat Sep 27 13:25:12 2008
@@ -0,0 +1,62 @@
+/*
+ * 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.axis2.transport.testkit.util.tcpmon;
+
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.util.concurrent.ExecutorService;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public class Acceptor implements Runnable {
+ private static final Log log = LogFactory.getLog(Acceptor.class);
+
+ private final ServerSocket serverSocket;
+ private final ExecutorService executorService;
+ private final InetSocketAddress target;
+
+ public Acceptor(ServerSocket serverSocket, ExecutorService executorService, InetSocketAddress target) {
+ this.serverSocket = serverSocket;
+ this.executorService = executorService;
+ this.target = target;
+ }
+
+ public void run() {
+ while (true) {
+ Socket socket;
+ try {
+ socket = serverSocket.accept();
+ } catch (IOException ex) {
+ break;
+ }
+ try {
+ Socket targetSocket = new Socket(target.getAddress(), target.getPort());
+ executorService.execute(new Relay("SENT", socket.getInputStream(), targetSocket.getOutputStream()));
+ executorService.execute(new Relay("RECEIVED", targetSocket.getInputStream(), socket.getOutputStream()));
+ } catch (IOException ex) {
+ log.error(ex);
+ }
+ }
+ }
+
+}
Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Tunnel.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Tunnel.java?rev=699731&r1=699730&r2=699731&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Tunnel.java (original)
+++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Tunnel.java Sat Sep 27 13:25:12 2008
@@ -22,16 +22,13 @@
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
-import java.net.Socket;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-public class Tunnel implements Runnable {
- private static final Log log = LogFactory.getLog(Tunnel.class);
-
+public class Tunnel {
private final ServerSocket serverSocket;
private final InetSocketAddress target;
+ private ExecutorService executorService;
public Tunnel(InetSocketAddress target) throws IOException {
serverSocket = new ServerSocket(0);
@@ -42,25 +39,13 @@
return serverSocket.getLocalPort();
}
- public void run() {
- while (true) {
- Socket socket;
- try {
- socket = serverSocket.accept();
- } catch (IOException ex) {
- break;
- }
- try {
- Socket targetSocket = new Socket(target.getAddress(), target.getPort());
- new Thread(new Relay("SENT", socket.getInputStream(), targetSocket.getOutputStream())).start();
- new Thread(new Relay("RECEIVED", targetSocket.getInputStream(), socket.getOutputStream())).start();
- } catch (IOException ex) {
- log.error(ex);
- }
- }
+ public void start() {
+ executorService = Executors.newCachedThreadPool();
+ executorService.execute(new Acceptor(serverSocket, executorService, target));
}
public void stop() throws IOException {
serverSocket.close();
+ executorService.shutdown();
}
}