You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2006/02/21 05:41:07 UTC
svn commit: r379334 - in
/webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/tracer:
Relay.java TcpTunnel.java
Author: dims
Date: Mon Feb 20 20:41:05 2006
New Revision: 379334
URL: http://svn.apache.org/viewcvs?rev=379334&view=rev
Log:
am trying to evoke fond memories for some people :)
PS: Seriously, i needed a command line tool to capture the messages for addressing interop testing.
Added:
webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/tracer/Relay.java
webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/tracer/TcpTunnel.java
Added: webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/tracer/Relay.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/tracer/Relay.java?rev=379334&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/tracer/Relay.java (added)
+++ webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/tracer/Relay.java Mon Feb 20 20:41:05 2006
@@ -0,0 +1,70 @@
+/**
+ *
+ * Copyright 2000-2004 The Apache Software Foundation
+ *
+ * Licensed 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.tool.tracer;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+/**
+ * A <code>Relay</code> object is used by <code>TcpTunnel</code>
+ * and <code>TcpTunnelGui</code> to relay bytes from an
+ * <code>InputStream</code> to a <code>OutputStream</code>.
+ *
+ * @author Sanjiva Weerawarana (sanjiva@watson.ibm.com)
+ * @author Scott Nichol (snichol@computer.org)
+ */
+public class Relay extends Thread {
+ final static int BUFSIZ = 1000;
+ InputStream in;
+ OutputStream out;
+ byte buf[] = new byte[BUFSIZ];
+ OutputStream os;
+ String enc = "8859_1";
+ Relay(InputStream in, OutputStream out, OutputStream os, String enc) {
+ this.in = in;
+ this.out = out;
+ this.os = os;
+ this.enc = enc;
+ }
+ public String getEncoding() {
+ return enc;
+ }
+ public void run() {
+ int n;
+ try {
+ while ((n = in.read(buf)) > 0) {
+ out.write(buf, 0, n);
+ out.flush();
+ if (os != null) {
+ os.write(buf, 0, n);
+ os.flush();
+ }
+ }
+ } catch (IOException e) {
+ } finally {
+ try {
+ in.close();
+ out.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+ public void setEncoding(String enc) {
+ this.enc = enc;
+ }
+}
Added: webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/tracer/TcpTunnel.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/tracer/TcpTunnel.java?rev=379334&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/tracer/TcpTunnel.java (added)
+++ webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/tracer/TcpTunnel.java Mon Feb 20 20:41:05 2006
@@ -0,0 +1,61 @@
+/**
+ *
+ * Copyright 2000-2004 The Apache Software Foundation
+ *
+ * Licensed 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.tool.tracer;
+
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+/**
+ * A <code>TcpTunnel</code> object listens on the given port,
+ * and once <code>Start</code> is pressed, will forward all bytes
+ * to the given host and port.
+ *
+ * @author Sanjiva Weerawarana (sanjiva@watson.ibm.com)
+ */
+public class TcpTunnel {
+ public static void main(String args[]) throws IOException {
+ if (args.length != 3 && args.length != 4) {
+ System.err.println("Usage: java TcpTunnel listenport tunnelhost tunnelport [encoding]");
+ System.exit(1);
+ }
+ int listenport = Integer.parseInt(args[0]);
+ String tunnelhost = args[1];
+ int tunnelport = Integer.parseInt(args[2]);
+ String enc;
+ if (args.length == 4) {
+ enc = args[3];
+ } else {
+ enc = "8859_1";
+ }
+ System.out.println("TcpTunnel: ready to rock and roll on port " + listenport);
+ ServerSocket ss = new ServerSocket(listenport);
+ while (true) {
+ // accept the connection from my client
+ Socket sc = ss.accept();
+
+ // connect to the thing I'm tunnelling for
+ Socket st = new Socket(tunnelhost, tunnelport);
+ System.out.println("TcpTunnel: tunnelling port " + listenport + " to port " + tunnelport + " on host " + tunnelhost);
+
+ // relay the stuff thru
+ new Relay(sc.getInputStream(), st.getOutputStream(), System.out, enc).start();
+ new Relay(st.getInputStream(), sc.getOutputStream(), System.out, enc).start();
+ // that's it .. they're off; now I go back to my stuff.
+ }
+ }
+}