Author: richard.opalka(a)jboss.com
Date: 2007-11-21 12:19:55 -0500 (Wed, 21 Nov 2007)
New Revision: 5096
Modified:
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/emulator/Constant.java
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/emulator/EndpointEmulator.java
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/emulator/Util.java
Log:
enhancing WS-RM emulator to create new TCP/IP connection when inbound message is
addressable
Modified:
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/emulator/Constant.java
===================================================================
---
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/emulator/Constant.java 2007-11-21
15:23:56 UTC (rev 5095)
+++
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/emulator/Constant.java 2007-11-21
17:19:55 UTC (rev 5096)
@@ -66,5 +66,7 @@
public static final String VALUE_ATTRIBUTE = "value";
public static final String HTTP_METHOD_ATTRIBUTE = "httpMethod";
public static final String PATH_INFO_ATTRIBUTE = "pathInfo";
-
+ // XML configuration referencable entities
+ public static final String RESPONSE_TO = PARAGRAPH + LEFT_BRACKET +
"res.wsa.to" + RIGHT_BRACKET;
+ public static final String ADDRESSING_ANONYMOUS_URI =
"http://www.w3.org/2005/08/addressing/anonymous";
}
Modified:
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/emulator/EndpointEmulator.java
===================================================================
---
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/emulator/EndpointEmulator.java 2007-11-21
15:23:56 UTC (rev 5095)
+++
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/emulator/EndpointEmulator.java 2007-11-21
17:19:55 UTC (rev 5096)
@@ -25,7 +25,12 @@
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
import java.io.PrintWriter;
+import java.net.HttpURLConnection;
+import java.net.Socket;
+import java.net.URL;
+import java.net.URLConnection;
import java.util.List;
import java.util.Map;
@@ -98,6 +103,7 @@
Map<String, String> resProperties = view.getResponse().getProperties();
Map<String, String> reqProperties = view.getRequest().getProperties();
String responseMessage = Util.getResourceAsString(ctx,
view.getResponse().getResource());
+ String responseTo = null;
if (resProperties.size() > 0)
{
@@ -109,14 +115,34 @@
Map<String, String> replaceMap =
Util.prepareReplaceMap(initializedReqProperties, resProperties);
responseMessage = Util.replaceAll(responseMessage, replaceMap);
+ responseTo = replaceMap.get(RESPONSE_TO);
+ if (ADDRESSING_ANONYMOUS_URI.equals(responseTo))
+ {
+ responseTo = null;
+ }
}
- resp.setContentType(view.getResponse().getContentType());
- resp.setStatus(Integer.valueOf(view.getResponse().getStatusCode()));
- PrintWriter writer = resp.getWriter();
- writer.print(responseMessage);
- writer.flush();
- writer.close();
+ if (responseTo == null)
+ {
+ ctx.log("Sending response through ServletResponse");
+ resp.setContentType(view.getResponse().getContentType());
+ resp.setStatus(Integer.valueOf(view.getResponse().getStatusCode()));
+ PrintWriter writer = resp.getWriter();
+ writer.print(responseMessage);
+ writer.flush();
+ writer.close();
+ }
+ else
+ {
+ ctx.log("Sending response through new socket connection");
+ URL url = new URL(responseTo);
+ Socket socket = new Socket(url.getHost(), url.getPort());
+ OutputStream out = socket.getOutputStream();
+ out.write(Util.createHTTPHeaders(url, responseMessage.length()));
+ out.write(responseMessage.getBytes());
+ out.flush();
+ out.close();
+ }
}
}
\ No newline at end of file
Modified:
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/emulator/Util.java
===================================================================
---
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/emulator/Util.java 2007-11-21
15:23:56 UTC (rev 5095)
+++
stack/native/trunk/src/test/java/org/jboss/test/ws/jaxws/wsrm/emulator/Util.java 2007-11-21
17:19:55 UTC (rev 5096)
@@ -28,6 +28,7 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
@@ -64,6 +65,19 @@
{
// forbidden inheritance
}
+
+ private static final String CRLF = "\r\n";
+
+ public static byte[] createHTTPHeaders(URL url, int payloadLength)
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.append("POST " + url.getPath() + " HTTP/1.1" + CRLF);
+ sb.append("Content-Type: text/xml" + CRLF);
+ sb.append("Host: " + url.getHost() + ":" + url.getPort() +
CRLF);
+ sb.append("Content-Length: " + payloadLength + CRLF);
+ sb.append(CRLF);
+ return sb.toString().getBytes();
+ }
public static String replace(String oldString, String newString, String data)
{
Show replies by date