snichol 2003/06/19 20:38:35
Modified: java/src/org/apache/soap/util/net Relay.java TcpTunnel.java
TcpTunnelGui.java
Log:
Add TODO comment about finding workaround for TextArea#append bug in
JDK later than 1.2.2 (on Win32, at least).
Allow character encoding to assume for captured/displayed data to be
specified on command line. If not specified, defaults to the previously
hard-coded 8859_1. In my experience, UTF8 is much more common.
Revision Changes Path
1.6 +29 -1 xml-soap/java/src/org/apache/soap/util/net/Relay.java
Index: Relay.java
===================================================================
RCS file: /home/cvs/xml-soap/java/src/org/apache/soap/util/net/Relay.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Relay.java 11 Sep 2002 17:26:11 -0000 1.5
+++ Relay.java 20 Jun 2003 03:38:35 -0000 1.6
@@ -76,6 +76,7 @@
byte buf[] = new byte[BUFSIZ];
TextArea ta;
OutputStream os;
+ String enc = "8859_1";
Relay (InputStream in, OutputStream out, TextArea ta) {
this.in = in;
@@ -89,6 +90,24 @@
this.os = os;
}
+ Relay (InputStream in, OutputStream out, TextArea ta, String enc) {
+ this.in = in;
+ this.out = out;
+ this.ta = ta;
+ this.enc = enc;
+ }
+
+ 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;
@@ -97,7 +116,12 @@
out.write (buf, 0, n);
out.flush ();
if (ta != null) {
- ta.append (new String (buf, 0, n, "8859_1"));
+ // TODO: There is a "feature" of JDK later than 1.2.2 on Win32
+ // that append does not quite correctly work. Specifically,
+ // getText delegates to the peer, which returns a string in
+ // which CR/LF are turned into just CR, so the length is off
+ // and text is actually inserted prior to the final characters.
+ ta.append (new String (buf, 0, n, enc));
}
if (os != null)
os.write(buf, 0, n);
@@ -110,5 +134,9 @@
} catch (IOException e) {
}
}
+ }
+
+ public void setEncoding(String enc) {
+ this.enc = enc;
}
}
1.5 +11 -4 xml-soap/java/src/org/apache/soap/util/net/TcpTunnel.java
Index: TcpTunnel.java
===================================================================
RCS file: /home/cvs/xml-soap/java/src/org/apache/soap/util/net/TcpTunnel.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- TcpTunnel.java 11 Sep 2002 17:26:11 -0000 1.4
+++ TcpTunnel.java 20 Jun 2003 03:38:35 -0000 1.5
@@ -69,8 +69,8 @@
*/
public class TcpTunnel {
public static void main (String args[]) throws IOException {
- if (args.length != 3) {
- System.err.println ("Usage: java TcpTunnel listenport tunnelhost tunnelport");
+ if (args.length != 3 && args.length != 4) {
+ System.err.println ("Usage: java TcpTunnel listenport tunnelhost tunnelport [encoding]");
System.exit (1);
}
@@ -78,6 +78,13 @@
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);
@@ -94,8 +101,8 @@
tunnelhost);
// relay the stuff thru
- new Relay (sc.getInputStream(), st.getOutputStream(), System.out).start ();
- new Relay (st.getInputStream(), sc.getOutputStream(), System.out).start ();
+ 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.
}
1.4 +6 -4 xml-soap/java/src/org/apache/soap/util/net/TcpTunnelGui.java
Index: TcpTunnelGui.java
===================================================================
RCS file: /home/cvs/xml-soap/java/src/org/apache/soap/util/net/TcpTunnelGui.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TcpTunnelGui.java 1 Sep 2000 03:53:06 -0000 1.3
+++ TcpTunnelGui.java 20 Jun 2003 03:38:35 -0000 1.4
@@ -164,9 +164,9 @@
}
public static void main (String args[]) throws IOException {
- if (args.length != 3) {
+ if (args.length != 3 && args.length != 4) {
System.err.println ("Usage: java TcpTunnelGui listenport tunnelhost " +
- "tunnelport");
+ "tunnelport [encoding]");
System.exit (1);
}
@@ -176,6 +176,8 @@
final TcpTunnelGui ttg =
new TcpTunnelGui (listenPort, tunnelHost, tunnelPort);
+ final String enc = (args.length == 4) ? args[3] : "8859_1";
+
// create the server thread
Thread server = new Thread () {
public void run () {
@@ -204,9 +206,9 @@
// relay the stuff thru
new Relay (sc.getInputStream (), st.getOutputStream (),
- ttg.getListenText ()).start ();
+ ttg.getListenText (), enc).start ();
new Relay (st.getInputStream (), sc.getOutputStream (),
- ttg.getTunnelText ()).start ();
+ ttg.getTunnelText (), enc).start ();
// that's it .. they're off; now I go back to my stuff.
} catch (Exception ee) {
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.