JBoss Remoting SVN: r5410 - remoting3/trunk/taglet/src/main/java/org/jboss/remoting3/taglet.
by jboss-remoting-commits@lists.jboss.org
Author: david.lloyd(a)jboss.com
Date: 2009-08-31 17:43:58 -0400 (Mon, 31 Aug 2009)
New Revision: 5410
Modified:
remoting3/trunk/taglet/src/main/java/org/jboss/remoting3/taglet/RemotingTypeTaglet.java
Log:
Fix the taglet to use the newer taglet API
Modified: remoting3/trunk/taglet/src/main/java/org/jboss/remoting3/taglet/RemotingTypeTaglet.java
===================================================================
--- remoting3/trunk/taglet/src/main/java/org/jboss/remoting3/taglet/RemotingTypeTaglet.java 2009-08-31 15:26:22 UTC (rev 5409)
+++ remoting3/trunk/taglet/src/main/java/org/jboss/remoting3/taglet/RemotingTypeTaglet.java 2009-08-31 21:43:58 UTC (rev 5410)
@@ -24,8 +24,11 @@
import java.util.Map;
+import com.sun.tools.doclets.internal.toolkit.taglets.Taglet;
+import com.sun.tools.doclets.internal.toolkit.taglets.TagletOutput;
+import com.sun.tools.doclets.internal.toolkit.taglets.TagletWriter;
import com.sun.javadoc.Tag;
-import com.sun.tools.doclets.Taglet;
+import com.sun.javadoc.Doc;
public abstract class RemotingTypeTaglet implements Taglet {
@@ -57,6 +60,20 @@
return false;
}
+ public TagletOutput getTagletOutput(final Tag tag, final TagletWriter tagletWriter) throws IllegalArgumentException {
+ final TagletOutput output = tagletWriter.getOutputInstance();
+ output.setOutput(toString(tag.firstSentenceTags()));
+ return output;
+ }
+
+ public TagletOutput getTagletOutput(final Doc doc, final TagletWriter tagletWriter) throws IllegalArgumentException {
+ final TagletOutput output = tagletWriter.getOutputInstance();
+ output.setOutput(toString(doc.tags(getName())));
+ return output;
+ }
+
+ public abstract String toString(final Tag tag);
+
public String toString(final Tag[] tags) {
return tags.length > 0 ? toString(tags[0]) : "";
}
15 years, 3 months
JBoss Remoting SVN: r5409 - remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/bisocket.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-08-31 11:26:22 -0400 (Mon, 31 Aug 2009)
New Revision: 5409
Modified:
remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/bisocket/BisocketControlConnectionReplacementTestCase.java
Log:
JBREM-1147: Reduced logging level to INFO.
Modified: remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/bisocket/BisocketControlConnectionReplacementTestCase.java
===================================================================
--- remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/bisocket/BisocketControlConnectionReplacementTestCase.java 2009-08-30 03:25:02 UTC (rev 5408)
+++ remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/bisocket/BisocketControlConnectionReplacementTestCase.java 2009-08-31 15:26:22 UTC (rev 5409)
@@ -89,7 +89,7 @@
if (firstTime)
{
firstTime = false;
- Logger.getLogger("org.jboss.remoting").setLevel(XLevel.TRACE);
+ Logger.getLogger("org.jboss.remoting").setLevel(Level.INFO);
Logger.getLogger("org.jboss.test.remoting").setLevel(Level.INFO);
String pattern = "[%d{ABSOLUTE}] [%t] %5p (%F:%L) - %m%n";
PatternLayout layout = new PatternLayout(pattern);
15 years, 3 months
JBoss Remoting SVN: r5408 - remoting2/branches/2.x/docs/guide/en.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-08-29 23:25:02 -0400 (Sat, 29 Aug 2009)
New Revision: 5408
Modified:
remoting2/branches/2.x/docs/guide/en/chap5.xml
Log:
JBREM-1145: Added discussion of "remotingContentType" return header.
Modified: remoting2/branches/2.x/docs/guide/en/chap5.xml
===================================================================
--- remoting2/branches/2.x/docs/guide/en/chap5.xml 2009-08-30 03:24:24 UTC (rev 5407)
+++ remoting2/branches/2.x/docs/guide/en/chap5.xml 2009-08-30 03:25:02 UTC (rev 5408)
@@ -703,8 +703,8 @@
(application/octet-stream).</para>
<para>The handlers receiving http invocations can also set the response
- code, response message, and response headers. To do this, will need to get
- the return payload map from the InvocationRequest passed (via its
+ code, response message, response headers, and content-type. To do this, will
+ need to get the return payload map from the InvocationRequest passed (via its
getReturnPayload() method). Then populate this map with whatever
properties needed. For response code and message, will need to use the
following keys for the map:</para>
@@ -2810,7 +2810,7 @@
is required (only the ability for the client to access the server on the
specified loader port, so must provide access if running through
firewall).</para>
-
+
<para><emphasis role="bold">Note.</emphasis> Prior to release 2.5.2, only the
parameters in the <classname>InvokerLocator</classname> were used to configure
marshallers and unmarshallers. As of release 2.5.2 the parameters in the
@@ -2819,6 +2819,23 @@
be used if the parameter
<code>org.jboss.remoting.Remoting.PASS_CONFIG_MAP_TO_MARSHAL_FACTORY</code>
(actual value "passConfigMapToMarshalFactory") is set to "true".</para>
+
+ <bridgehead>Http marshalling</bridgehead>
+ <para>By default, the http, https, servlet, and sslservlet transports use
+ <classname>org.jboss.remoting.marshal.http.HTTPMarshaller</classname> and
+ <classname>org.jboss.remoting.marshal.http.HTTPUnMarshaller</classname>,
+ which are distinct from their parent classes
+ <classname>org.jboss.remoting.marshal.serializable.SerializableMarshaller</classname>
+ and <classname>org.jboss.remoting.marshal.serializable.SerializableUnMarshaller</classname>
+ only insofar as they treat Strings as a special case in the interest of efficiency.
+ However, prior to release 2.5.2, <classname>HTTPUnMarshaller</classname> incorrectly
+ uses the content-type set by the <classname>ServerInvocationHandler</classname> (if
+ any), which would normally apply to the application payload of a response rather
+ than the type of the envelope. As of release 2.5.2, this behavior remains the
+ default, but it can be corrected by setting the parameter
+ <code>org.jboss.remoting.transport.http.HTTPMetadataConstants.USE_REMOTING_CONTENT_TYPE</code>
+ (actual value "useRemotingContentType") to "true".</para>
+
<bridgehead>Compression marshalling</bridgehead>
<para>A compression marshaller/unmarshaller is available as well which
@@ -6612,6 +6629,16 @@
should revert to the orginal error handling behavior of returning an error
message.</para>
+ <para><emphasis role="bold">USE_REMOTING_CONTENT_TYPE</emphasis> (actual value
+ is 'useRemotingContentType') - key indicating if
+ <classname>org.jboss.remoting.marshal.http.HTTPUnMarshaller</classname>
+ should determine that it is reading a String by using the "content-type"
+ return header (if set to "false") or the "remotingContentType" header
+ if set to "true". The default value is "false", to avoid introducing any
+ inconsistent behavior between versions, but, if the
+ <classname>org.jboss.remoting.ServerInvocationHandler</classname> sets
+ the content-type return header, then this parameter should be set to "true".</para>
+
<para>For every http client request made from remoting client, a remoting
version and remoting specific user agent will be set as a request
property. The request property key for the remoting version will be
15 years, 3 months
JBoss Remoting SVN: r5407 - remoting2/branches/2.2/docs/guide/en.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-08-29 23:24:24 -0400 (Sat, 29 Aug 2009)
New Revision: 5407
Modified:
remoting2/branches/2.2/docs/guide/en/chap5.xml
Log:
JBREM-1145: Added discussion of "remotingContentType" return header.
Modified: remoting2/branches/2.2/docs/guide/en/chap5.xml
===================================================================
--- remoting2/branches/2.2/docs/guide/en/chap5.xml 2009-08-30 00:47:21 UTC (rev 5406)
+++ remoting2/branches/2.2/docs/guide/en/chap5.xml 2009-08-30 03:24:24 UTC (rev 5407)
@@ -562,8 +562,8 @@
(application/octet-stream).</para>
<para>The handlers receiving http invocations can also set the response
- code, response message, and response headers. To do this, will need to get
- the return payload map from the InvocationRequest passed (via its
+ code, response message, response headers, and content-type. To do this, will
+ need to get the return payload map from the InvocationRequest passed (via its
getReturnPayload() method). Then populate this map with whatever
properties needed. For response code and message, will need to use the
following keys for the map:</para>
@@ -3202,6 +3202,22 @@
<code>org.jboss.remoting.Remoting.PASS_CONFIG_MAP_TO_MARSHAL_FACTORY</code>
(actual value "passConfigMapToMarshalFactory") is set to "true".</para>
+ <bridgehead>Http marshalling</bridgehead>
+ <para>By default, the http, https, servlet, and sslservlet transports use
+ <classname>org.jboss.remoting.marshal.http.HTTPMarshaller</classname> and
+ <classname>org.jboss.remoting.marshal.http.HTTPUnMarshaller</classname>,
+ which are distinct from their parent classes
+ <classname>org.jboss.remoting.marshal.serializable.SerializableMarshaller</classname>
+ and <classname>org.jboss.remoting.marshal.serializable.SerializableUnMarshaller</classname>
+ only insofar as they treat Strings as a special case in the interest of efficiency.
+ However, prior to release 2.2.3.SP1, <classname>HTTPUnMarshaller</classname> incorrectly
+ uses the content-type set by the <classname>ServerInvocationHandler</classname> (if
+ any), which would normally apply to the application payload of a response rather
+ than the type of the envelope. As of release 2.2.3.SP1, this behavior remains the
+ default, but it can be corrected by setting the parameter
+ <code>org.jboss.remoting.transport.http.HTTPMetadataConstants.USE_REMOTING_CONTENT_TYPE</code>
+ (actual value "useRemotingContentType") to "true".</para>
+
<bridgehead>Compression marshalling</bridgehead>
<para>A compression marshaller/unmarshaller is available as well which
@@ -6677,6 +6693,16 @@
should throw an exception instead of the orginal error handling behavior of
returning an error message.</para>
+ <para><emphasis role="bold">USE_REMOTING_CONTENT_TYPE</emphasis> (actual value
+ is 'useRemotingContentType') - key indicating if
+ <classname>org.jboss.remoting.marshal.http.HTTPUnMarshaller</classname>
+ should determine that it is reading a String by using the "content-type"
+ return header (if set to "false") or the "remotingContentType" header
+ if set to "true". The default value is "false", to avoid introducing any
+ inconsistent behavior between versions, but, if the
+ <classname>org.jboss.remoting.ServerInvocationHandler</classname> sets
+ the content-type return header, then this parameter should be set to "true".</para>
+
<para></para>
<para>For every http client request made from remoting client, a remoting
15 years, 3 months
JBoss Remoting SVN: r5406 - remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/web.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-08-29 20:47:21 -0400 (Sat, 29 Aug 2009)
New Revision: 5406
Modified:
remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/web/WebInvokerTestClient.java
Log:
JBREM-1145: Uses remotingContentType instead of content-type.
Modified: remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/web/WebInvokerTestClient.java
===================================================================
--- remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/web/WebInvokerTestClient.java 2009-08-30 00:45:44 UTC (rev 5405)
+++ remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/web/WebInvokerTestClient.java 2009-08-30 00:47:21 UTC (rev 5406)
@@ -91,11 +91,12 @@
if (raw)
{
- headerProps.put("Content-Type", "application/soap+xml");
+ headerProps.put(HTTPMetadataConstants.REMOTING_CONTENT_TYPE, HTTPMetadataConstants.REMOTING_CONTENT_TYPE_STRING);
}
else
{
headerProps.put("Content-Type", WebUtil.BINARY);
+ headerProps.put(HTTPMetadataConstants.REMOTING_CONTENT_TYPE, HTTPMetadataConstants.REMOTING_CONTENT_TYPE_NON_STRING);
}
addHeaders(headerProps);
@@ -258,6 +259,7 @@
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
+ conn.addRequestProperty(HTTPMetadataConstants.REMOTING_CONTENT_TYPE, HTTPMetadataConstants.REMOTING_CONTENT_TYPE_STRING);
os = conn.getOutputStream();
byte[] requestBytes = WebInvocationHandler.SET_CONTENT_TYPE.getBytes();
os.write(requestBytes);
@@ -268,6 +270,7 @@
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
+ conn.addRequestProperty(HTTPMetadataConstants.REMOTING_CONTENT_TYPE, HTTPMetadataConstants.REMOTING_CONTENT_TYPE_STRING);
os = conn.getOutputStream();
byte[] requestBytes = WebInvocationHandler.SET_CONTENT_TYPE.getBytes();
os.write(requestBytes);
15 years, 3 months
JBoss Remoting SVN: r5405 - remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-08-29 20:45:44 -0400 (Sat, 29 Aug 2009)
New Revision: 5405
Added:
remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/ContentTypeTestClient.java
remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestInvocationHandler.java
remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestMarshaller.java
remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestUnMarshaller.java
remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/remoting-servlet-service.xml
Log:
JBREM-1145: Added unit tests for servlet transport.
Added: remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/ContentTypeTestClient.java
===================================================================
--- remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/ContentTypeTestClient.java (rev 0)
+++ remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/ContentTypeTestClient.java 2009-08-30 00:45:44 UTC (rev 5405)
@@ -0,0 +1,132 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.remoting.transport.servlet.marshal;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.jboss.logging.Logger;
+import org.jboss.remoting.Client;
+import org.jboss.remoting.InvokerLocator;
+import org.jboss.remoting.transport.http.HTTPMetadataConstants;
+import org.jboss.test.remoting.transport.http.marshal.HttpContentTypeTestCase;
+
+
+/**
+ * Unit tests for JBREM-1145.
+ *
+ * @author <a href="ron.sigal(a)jboss.com">Ron Sigal</a>
+ * @version $Revision: 1.1 $
+ * <p>
+ * Copyright August 17, 2009
+ * </p>
+ */
+public class ContentTypeTestClient extends HttpContentTypeTestCase
+{
+ private static Logger log = Logger.getLogger(ContentTypeTestClient.class);
+
+
+ protected void validateOrdinaryInvocation(Client client) throws Throwable
+ {
+ // Local tests
+ log.info("TestMarshaller.marshallers.size(): " + TestMarshaller.marshallers.size());
+ log.info("TestMarshaller.unmarshallers.size(): " + TestUnMarshaller.unmarshallers.size());
+ assertEquals(2, TestMarshaller.marshallers.size());
+ assertEquals(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_NON_STRING, ((TestMarshaller)TestMarshaller.marshallers.get(1)).type);
+ assertEquals(2, TestUnMarshaller.unmarshallers.size());
+ assertEquals(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_NON_STRING, ((TestUnMarshaller)TestUnMarshaller.unmarshallers.get(1)).type);
+
+ // Remote tests
+ int serverMarshallerCount = ((Integer) client.invoke(TestInvocationHandler.GET_NUMBER_OF_MARSHALLERS)).intValue();
+ log.info("server side marshallers: " + serverMarshallerCount);
+ int serverUnmarshallerCount = ((Integer) client.invoke(TestInvocationHandler.GET_NUMBER_OF_UNMARSHALLERS)).intValue();
+ log.info("server side unmarshallers: " + serverUnmarshallerCount);
+ Map metadata = new HashMap();
+ metadata.put(TestInvocationHandler.N, Integer.toString(serverMarshallerCount - 1));
+ String type = (String) client.invoke(TestInvocationHandler.GET_NTH_MARSHALLER_TYPE, metadata);
+ assertEquals(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_NON_STRING, type);
+ metadata.put(TestInvocationHandler.N, Integer.toString(serverUnmarshallerCount - 1));
+ type = (String) client.invoke(TestInvocationHandler.GET_NTH_UNMARSHALLER_TYPE, metadata);
+ assertEquals(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_NON_STRING, type);
+ client.invoke(TestInvocationHandler.RESET);
+ }
+
+
+ protected void validateRawStringMessage(Client client) throws Throwable
+ {
+ // Local tests
+ log.info("TestMarshaller.marshallers.size(): " + TestMarshaller.marshallers.size());
+ log.info("TestMarshaller.unmarshallers.size(): " + TestUnMarshaller.unmarshallers.size());
+ assertEquals(2, TestMarshaller.marshallers.size());
+ assertEquals(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_STRING, ((TestMarshaller)TestMarshaller.marshallers.get(1)).type);
+ assertEquals(2, TestUnMarshaller.unmarshallers.size());
+ assertEquals(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_STRING, ((TestUnMarshaller)TestUnMarshaller.unmarshallers.get(1)).type);
+
+ // Remote tests
+ int serverMarshallerCount = ((Integer) client.invoke(TestInvocationHandler.GET_NUMBER_OF_MARSHALLERS)).intValue();
+ log.info("server side marshallers: " + serverMarshallerCount);
+ int serverUnmarshallerCount = ((Integer) client.invoke(TestInvocationHandler.GET_NUMBER_OF_UNMARSHALLERS)).intValue();
+ log.info("server side unmarshallers: " + serverUnmarshallerCount);
+ assertEquals(4, serverMarshallerCount);
+ assertEquals(6, serverUnmarshallerCount);
+ Map metadata = new HashMap();
+ metadata.put(TestInvocationHandler.N, "3");
+ String type = (String) client.invoke(TestInvocationHandler.GET_NTH_MARSHALLER_TYPE, metadata);
+ assertEquals(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_STRING, type);
+ metadata.put(TestInvocationHandler.N, "1");
+ type = (String) client.invoke(TestInvocationHandler.GET_NTH_UNMARSHALLER_TYPE, metadata);
+ assertEquals(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_STRING, type);
+ client.invoke(TestInvocationHandler.RESET);
+ }
+
+ protected String getTransport()
+ {
+ return "servlet";
+ }
+
+ protected void setupServer(boolean addUseRemotingContentType, boolean useRemotingContentType) throws Exception
+ {
+ String path = null;
+ String useRemotingContentTypeAttribute = null;
+ if (addUseRemotingContentType)
+ {
+ if (useRemotingContentType)
+ {
+ path = "servlet-invoker/ServerInvokerServlet/true";
+ useRemotingContentTypeAttribute = "&useRemotingContentType=true";
+ }
+ else
+ {
+ path = "servlet-invoker/ServerInvokerServlet/false";
+ useRemotingContentTypeAttribute = "&useRemotingContentType=false";
+ }
+ }
+ else
+ {
+ path = "servlet-invoker/ServerInvokerServlet/default";
+ useRemotingContentTypeAttribute = "";
+ }
+
+ String locatorURI = "servlet://localhost:8080/" + path + "/?datatype=test&marshaller=org.jboss.test.remoting.marshall.TestMarshaller&unmarshaller=org.jboss.test.remoting.marshall.TestUnmarshaller" + useRemotingContentTypeAttribute;
+ serverLocator = new InvokerLocator(locatorURI);
+ }
+}
\ No newline at end of file
Added: remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestInvocationHandler.java
===================================================================
--- remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestInvocationHandler.java (rev 0)
+++ remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestInvocationHandler.java 2009-08-30 00:45:44 UTC (rev 5405)
@@ -0,0 +1,114 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+
+package org.jboss.test.remoting.transport.servlet.marshal;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.management.MBeanServer;
+
+import org.jboss.logging.Logger;
+import org.jboss.remoting.InvocationRequest;
+import org.jboss.remoting.ServerInvocationHandler;
+import org.jboss.remoting.ServerInvoker;
+import org.jboss.remoting.callback.InvokerCallbackHandler;
+import org.jboss.remoting.marshal.MarshalFactory;
+import org.jboss.remoting.transport.http.HTTPMetadataConstants;
+
+
+/**
+ * For JBREM-1145.
+ *
+ * @author <a href="ron.sigal(a)jboss.com">Ron Sigal</a>
+ * @version $Revision: 1.1 $
+ * <p>
+ * Copyright August 17, 2009
+ * </p>
+ */
+public class TestInvocationHandler implements ServerInvocationHandler
+{
+ public static String GET_NUMBER_OF_MARSHALLERS = "getNumberOfMarshallers";
+ public static String GET_NUMBER_OF_UNMARSHALLERS = "getNumberOfUnmarshallers";
+ public static String GET_NTH_MARSHALLER_TYPE = "getNthMarshallerType";
+ public static String GET_NTH_UNMARSHALLER_TYPE = "getNthUnarshallerType";
+ public static String RESET = "reset";
+ public static String N = "n";
+
+ private static Logger log = Logger.getLogger(TestInvocationHandler.class);
+
+ static
+ {
+ MarshalFactory.addMarshaller("test", new TestMarshaller(), new TestUnMarshaller());
+ }
+
+ public void addListener(InvokerCallbackHandler callbackHandler) {}
+
+ public Object invoke(final InvocationRequest invocation) throws Throwable
+ {
+ String s = (String) invocation.getParameter();
+ log.info("command: " + s);
+ if (RESET.equals(s))
+ {
+ log.info("doing reset");
+ TestMarshaller.marshallers.clear();
+ TestUnMarshaller.unmarshallers.clear();
+ log.info("TestMarshaller.marshallers: " + TestMarshaller.marshallers);
+ log.info("TestUnMarshaller.unmarshallers: " + TestUnMarshaller.unmarshallers);
+ }
+ else if (GET_NUMBER_OF_MARSHALLERS.equals(s))
+ {
+ return new Integer(TestMarshaller.marshallers.size());
+ }
+ else if (GET_NUMBER_OF_UNMARSHALLERS.equals(s))
+ {
+ return new Integer(TestUnMarshaller.unmarshallers.size());
+ }
+ else if (GET_NTH_MARSHALLER_TYPE.equals(s))
+ {
+ int n = Integer.valueOf((String)invocation.getRequestPayload().get(N)).intValue();
+ return ((TestMarshaller)TestMarshaller.marshallers.get(n)).type;
+ }
+ else if (GET_NTH_UNMARSHALLER_TYPE.equals(s))
+ {
+ int n = Integer.valueOf((String)invocation.getRequestPayload().get(N)).intValue();
+ return ((TestUnMarshaller)TestUnMarshaller.unmarshallers.get(n)).type;
+ }
+ else if ("abc".equals(s))
+ {
+ Map responseMap = invocation.getReturnPayload();
+ if (responseMap == null)
+ {
+ responseMap = new HashMap();
+ invocation.setReturnPayload(responseMap);
+ }
+ responseMap.put(HTTPMetadataConstants.CONTENTTYPE, "text/html");
+ return invocation.getParameter();
+ }
+
+ return invocation.getParameter();
+ }
+
+ public void removeListener(InvokerCallbackHandler callbackHandler) {}
+ public void setMBeanServer(MBeanServer server) {}
+ public void setInvoker(ServerInvoker invoker) {}
+}
\ No newline at end of file
Added: remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestMarshaller.java
===================================================================
--- remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestMarshaller.java (rev 0)
+++ remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestMarshaller.java 2009-08-30 00:45:44 UTC (rev 5405)
@@ -0,0 +1,66 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.test.remoting.transport.servlet.marshal;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ArrayList;
+
+import org.jboss.logging.Logger;
+import org.jboss.remoting.marshal.Marshaller;
+import org.jboss.remoting.marshal.http.HTTPMarshaller;
+import org.jboss.remoting.transport.http.HTTPMetadataConstants;
+
+
+/**
+ * Part of unit tests for JBREM-1145
+ *
+ * @author <a href="ron.sigal(a)jboss.com">Ron Sigal</a>
+ * @version $Rev$
+ * <p>
+ * Copyright Aug 20, 2009
+ * </p>
+ */
+public class TestMarshaller extends HTTPMarshaller
+{
+ private static Logger log = Logger.getLogger(TestMarshaller.class);
+
+ public static ArrayList marshallers = new ArrayList();
+ private static final long serialVersionUID = -7528137229006015488L;
+ public String type;
+
+ public void write(Object dataObject, OutputStream output, int version) throws IOException
+ {
+ log.info(this + " writing " + dataObject);
+ type = (dataObject instanceof String) ? HTTPMetadataConstants.REMOTING_CONTENT_TYPE_STRING : HTTPMetadataConstants.REMOTING_CONTENT_TYPE_NON_STRING;
+ super.write(dataObject, output, version);
+ }
+
+ public Marshaller cloneMarshaller() throws CloneNotSupportedException
+ {
+ TestMarshaller marshaller = new TestMarshaller();
+ marshallers.add(marshaller);
+ log.info("returning " + marshaller);
+ return marshaller;
+ }
+}
Added: remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestUnMarshaller.java
===================================================================
--- remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestUnMarshaller.java (rev 0)
+++ remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestUnMarshaller.java 2009-08-30 00:45:44 UTC (rev 5405)
@@ -0,0 +1,93 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.test.remoting.transport.servlet.marshal;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.jboss.remoting.marshal.UnMarshaller;
+import org.jboss.remoting.marshal.http.HTTPUnMarshaller;
+import org.jboss.remoting.transport.http.HTTPMetadataConstants;
+
+
+/**
+ * Part of unit tests for JBREM-1145.
+ *
+ * @author <a href="ron.sigal(a)jboss.com">Ron Sigal</a>
+ * @version $Rev$
+ * <p>
+ * Copyright Aug 20, 2009
+ * </p>
+ */
+public class TestUnMarshaller extends HTTPUnMarshaller
+{
+ public static ArrayList unmarshallers = new ArrayList();
+ private static final long serialVersionUID = -6422222480047910351L;
+ public String type;
+
+ public Object read(InputStream inputStream, Map metadata, int version) throws IOException, ClassNotFoundException
+ {
+ Object o = metadata.get(HTTPMetadataConstants.REMOTING_CONTENT_TYPE);
+ if (o instanceof List)
+ {
+ type = (String) ((List) o).get(0);
+ }
+ else if (o instanceof String)
+ {
+ type = (String) o;
+ }
+ else
+ {
+ o = metadata.get(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_LC);
+ log.info("remotingcontenttype: " + o);
+ if (o instanceof List)
+ {
+ type = (String) ((List) o).get(0);
+ }
+ else if (o instanceof String)
+ {
+ type = (String) o;
+ }
+ else
+ {
+ log.warn(this + " unrecognized remotingContentType: " + o);
+ }
+ }
+
+ o = super.read(inputStream, metadata, version);
+ log.info(this + " read " + o);
+ return o;
+ }
+
+ public UnMarshaller cloneUnMarshaller() throws CloneNotSupportedException
+ {
+ TestUnMarshaller unmarshaller = new TestUnMarshaller();
+ unmarshallers.add(unmarshaller);
+ unmarshaller.setClassLoader(this.customClassLoader);
+ log.info("returning " + unmarshaller, new Exception());
+ return unmarshaller;
+ }
+}
Added: remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/remoting-servlet-service.xml
===================================================================
--- remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/remoting-servlet-service.xml (rev 0)
+++ remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/servlet/marshal/remoting-servlet-service.xml 2009-08-30 00:45:44 UTC (rev 5405)
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<server>
+ <mbean code="org.jboss.remoting.transport.Connector"
+ name="jboss.remoting:service=Connector,transport=Servlet,useRemotingContentType=default"
+ display-name="Servlet transport Connector (default)">
+
+ <attribute name="Configuration">
+ <config>
+ <invoker transport="servlet">
+ <attribute name="serverBindAddress">127.0.0.1</attribute>
+ <attribute name="serverBindPort">8080</attribute>
+ <attribute name="path">servlet-invoker/ServerInvokerServlet/default</attribute>
+ <attribute name="datatype" isParam="true">test</attribute>
+ <attribute name="marshaller" isParam="true">org.jboss.test.remoting.transport.servlet.marshal.TestMarshaller</attribute>
+ <attribute name="unmarshaller" isParam="true">org.jboss.test.remoting.transport.servlet.marshal.TestUnMarshaller</attribute>
+ </invoker>
+ <handlers>
+ <handler subsystem="test">org.jboss.test.remoting.transport.servlet.marshal.TestInvocationHandler</handler>
+ </handlers>
+ </config>
+ </attribute>
+ </mbean>
+ <mbean code="org.jboss.remoting.transport.Connector"
+ name="jboss.remoting:service=Connector,transport=Servlet,useRemotingContentType=false"
+ display-name="Servlet transport Connector (false)">
+
+ <attribute name="Configuration">
+ <config>
+ <invoker transport="servlet">
+ <attribute name="serverBindAddress">127.0.0.1</attribute>
+ <attribute name="serverBindPort">8080</attribute>
+ <attribute name="path">servlet-invoker/ServerInvokerServlet/false</attribute>
+ <attribute name="datatype" isParam="true">test</attribute>
+ <attribute name="marshaller" isParam="true">org.jboss.test.remoting.transport.servlet.marshal.TestMarshaller</attribute>
+ <attribute name="unmarshaller" isParam="true">org.jboss.test.remoting.transport.servlet.marshal.TestUnMarshaller</attribute>
+ <attribute name="useRemotingContentType" isParam="true">false</attribute>
+ </invoker>
+ <handlers>
+ <handler subsystem="test">org.jboss.test.remoting.transport.servlet.marshal.TestInvocationHandler</handler>
+ </handlers>
+ </config>
+ </attribute>
+ </mbean>
+ <mbean code="org.jboss.remoting.transport.Connector"
+ name="jboss.remoting:service=Connector,transport=Servlet,useRemotingContentType=true"
+ display-name="Servlet transport Connector (true)">
+
+ <attribute name="Configuration">
+ <config>
+ <invoker transport="servlet">
+ <attribute name="serverBindAddress">127.0.0.1</attribute>
+ <attribute name="serverBindPort">8080</attribute>
+ <attribute name="path">servlet-invoker/ServerInvokerServlet/true</attribute>
+ <attribute name="datatype" isParam="true">test</attribute>
+ <attribute name="marshaller" isParam="true">org.jboss.test.remoting.transport.servlet.marshal.TestMarshaller</attribute>
+ <attribute name="unmarshaller" isParam="true">org.jboss.test.remoting.transport.servlet.marshal.TestUnMarshaller</attribute>
+ <attribute name="useRemotingContentType" isParam="true">true</attribute>
+ </invoker>
+ <handlers>
+ <handler subsystem="test">org.jboss.test.remoting.transport.servlet.marshal.TestInvocationHandler</handler>
+ </handlers>
+ </config>
+ </attribute>
+ </mbean>
+</server>
15 years, 3 months
JBoss Remoting SVN: r5404 - remoting2/branches/2.x/src/main/org/jboss/remoting/transport/coyote.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-08-29 20:43:11 -0400 (Sat, 29 Aug 2009)
New Revision: 5404
Modified:
remoting2/branches/2.x/src/main/org/jboss/remoting/transport/coyote/CoyoteInvoker.java
Log:
JBREM-1145: Fixed initialization of useRemotingContentType to not print warning for null value.
Modified: remoting2/branches/2.x/src/main/org/jboss/remoting/transport/coyote/CoyoteInvoker.java
===================================================================
--- remoting2/branches/2.x/src/main/org/jboss/remoting/transport/coyote/CoyoteInvoker.java 2009-08-30 00:41:05 UTC (rev 5403)
+++ remoting2/branches/2.x/src/main/org/jboss/remoting/transport/coyote/CoyoteInvoker.java 2009-08-30 00:43:11 UTC (rev 5404)
@@ -217,11 +217,11 @@
protocolHandlers.add(protocolHandler);
value = config.get(HTTPMetadataConstants.USE_REMOTING_CONTENT_TYPE);
- if (value != null && value instanceof String)
+ if (value instanceof String)
{
useRemotingContentType = (String) value;
}
- else
+ else if (value != null)
{
log.warn(HTTPMetadataConstants.USE_REMOTING_CONTENT_TYPE + " value should be a String: " + value);
}
15 years, 3 months
JBoss Remoting SVN: r5403 - remoting2/branches/2.2/src/main/org/jboss/remoting/transport/servlet.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-08-29 20:41:05 -0400 (Sat, 29 Aug 2009)
New Revision: 5403
Modified:
remoting2/branches/2.2/src/main/org/jboss/remoting/transport/servlet/ServletServerInvoker.java
Log:
JBREM-1145: Added useRemotingContentType variable and related processing.
Modified: remoting2/branches/2.2/src/main/org/jboss/remoting/transport/servlet/ServletServerInvoker.java
===================================================================
--- remoting2/branches/2.2/src/main/org/jboss/remoting/transport/servlet/ServletServerInvoker.java 2009-08-30 00:40:18 UTC (rev 5402)
+++ remoting2/branches/2.2/src/main/org/jboss/remoting/transport/servlet/ServletServerInvoker.java 2009-08-30 00:41:05 UTC (rev 5403)
@@ -67,6 +67,7 @@
private boolean unwrapSingletonArrays;
private boolean createUniqueObjectName;
+ private boolean useRemotingContentType;
public ServletServerInvoker(InvokerLocator locator)
{
@@ -118,6 +119,17 @@
val + " to a boolean value.");
}
}
+
+ val = configuration.get(HTTPMetadataConstants.USE_REMOTING_CONTENT_TYPE);
+ if (val instanceof String)
+ {
+ useRemotingContentType = Boolean.valueOf((String) val).booleanValue();
+ }
+ else if (val != null)
+ {
+ log.warn(HTTPMetadataConstants.USE_REMOTING_CONTENT_TYPE + " value should be a String: " + val);
+ }
+ log.debug(this + " useRemotingContentType: " + useRemotingContentType);
}
public String getMBeanObjectName()
@@ -328,6 +340,13 @@
if (path != null)
metadata.put(HTTPMetadataConstants.PATH, path);
+ metadata.put(HTTPMetadataConstants.USE_REMOTING_CONTENT_TYPE, Boolean.toString(useRemotingContentType));
+ String remotingContentType = (String) metadata.get(HTTPMetadataConstants.REMOTING_CONTENT_TYPE);
+ if (remotingContentType == null)
+ {
+ remotingContentType = (String) metadata.get(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_LC);
+ }
+
String requestContentType = request.getContentType();
@@ -369,7 +388,8 @@
}
else
{
- if(WebUtil.isBinary(requestContentType))
+ if((useRemotingContentType && HTTPMetadataConstants.REMOTING_CONTENT_TYPE_NON_STRING.equalsIgnoreCase(remotingContentType))
+ || (!useRemotingContentType && WebUtil.isBinary(requestContentType)))
{
invocationRequest = getInvocationRequest(metadata, obj);
}
@@ -471,7 +491,15 @@
retval = outputStream.toByteArray();
response.setContentLength(retval.length);
}
-
+
+ if (responseObject instanceof String)
+ {
+ response.addHeader(HTTPMetadataConstants.REMOTING_CONTENT_TYPE, HTTPMetadataConstants.REMOTING_CONTENT_TYPE_STRING);
+ }
+ else
+ {
+ response.addHeader(HTTPMetadataConstants.REMOTING_CONTENT_TYPE, HTTPMetadataConstants.REMOTING_CONTENT_TYPE_NON_STRING);
+ }
}
catch(ClassNotFoundException e)
{
15 years, 3 months
JBoss Remoting SVN: r5402 - remoting2/branches/2.2/src/main/org/jboss/remoting/transport/http.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-08-29 20:40:18 -0400 (Sat, 29 Aug 2009)
New Revision: 5402
Modified:
remoting2/branches/2.2/src/main/org/jboss/remoting/transport/http/HTTPClientInvoker.java
Log:
JBREM-1145: Uses copy of headers map.
Modified: remoting2/branches/2.2/src/main/org/jboss/remoting/transport/http/HTTPClientInvoker.java
===================================================================
--- remoting2/branches/2.2/src/main/org/jboss/remoting/transport/http/HTTPClientInvoker.java 2009-08-30 00:38:39 UTC (rev 5401)
+++ remoting2/branches/2.2/src/main/org/jboss/remoting/transport/http/HTTPClientInvoker.java 2009-08-30 00:40:18 UTC (rev 5402)
@@ -541,7 +541,7 @@
unmarshaller = new CompressingUnMarshaller(MarshalFactory.getUnMarshaller(SerializableUnMarshaller.DATATYPE));
}
- Map map = metadata == null ? headers : metadata;
+ Map map = metadata == null ? new HashMap(headers) : metadata;
// UnMarshaller may not be an HTTPUnMarshaller, in which case it
// can ignore this parameter.
15 years, 3 months
JBoss Remoting SVN: r5401 - in remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal: WEB-INF and 1 other directory.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-08-29 20:38:39 -0400 (Sat, 29 Aug 2009)
New Revision: 5401
Added:
remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/ContentTypeTestClient.java
remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestInvocationHandler.java
remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestMarshaller.java
remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestUnMarshaller.java
remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/WEB-INF/
remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/WEB-INF/web.xml
remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/remoting-servlet-service.xml
Log:
JBREM-1145: Added unit tests for servlet transport.
Added: remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/ContentTypeTestClient.java
===================================================================
--- remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/ContentTypeTestClient.java (rev 0)
+++ remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/ContentTypeTestClient.java 2009-08-30 00:38:39 UTC (rev 5401)
@@ -0,0 +1,132 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.remoting.transport.servlet.marshal;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.jboss.logging.Logger;
+import org.jboss.remoting.Client;
+import org.jboss.remoting.InvokerLocator;
+import org.jboss.remoting.transport.http.HTTPMetadataConstants;
+import org.jboss.test.remoting.transport.http.marshal.HttpContentTypeTestCase;
+
+
+/**
+ * Unit tests for JBREM-1145.
+ *
+ * @author <a href="ron.sigal(a)jboss.com">Ron Sigal</a>
+ * @version $Revision: 1.1 $
+ * <p>
+ * Copyright August 17, 2009
+ * </p>
+ */
+public class ContentTypeTestClient extends HttpContentTypeTestCase
+{
+ private static Logger log = Logger.getLogger(ContentTypeTestClient.class);
+
+
+ protected void validateOrdinaryInvocation(Client client) throws Throwable
+ {
+ // Local tests
+ log.info("TestMarshaller.marshallers.size(): " + TestMarshaller.marshallers.size());
+ log.info("TestMarshaller.unmarshallers.size(): " + TestUnMarshaller.unmarshallers.size());
+ assertEquals(2, TestMarshaller.marshallers.size());
+ assertEquals(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_NON_STRING, ((TestMarshaller)TestMarshaller.marshallers.get(1)).type);
+ assertEquals(2, TestUnMarshaller.unmarshallers.size());
+ assertEquals(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_NON_STRING, ((TestUnMarshaller)TestUnMarshaller.unmarshallers.get(1)).type);
+
+ // Remote tests
+ int serverMarshallerCount = ((Integer) client.invoke(TestInvocationHandler.GET_NUMBER_OF_MARSHALLERS)).intValue();
+ log.info("server side marshallers: " + serverMarshallerCount);
+ int serverUnmarshallerCount = ((Integer) client.invoke(TestInvocationHandler.GET_NUMBER_OF_UNMARSHALLERS)).intValue();
+ log.info("server side unmarshallers: " + serverUnmarshallerCount);
+ Map metadata = new HashMap();
+ metadata.put(TestInvocationHandler.N, Integer.toString(serverMarshallerCount - 1));
+ String type = (String) client.invoke(TestInvocationHandler.GET_NTH_MARSHALLER_TYPE, metadata);
+ assertEquals(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_NON_STRING, type);
+ metadata.put(TestInvocationHandler.N, Integer.toString(serverUnmarshallerCount - 1));
+ type = (String) client.invoke(TestInvocationHandler.GET_NTH_UNMARSHALLER_TYPE, metadata);
+ assertEquals(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_NON_STRING, type);
+ client.invoke(TestInvocationHandler.RESET);
+ }
+
+
+ protected void validateRawStringMessage(Client client) throws Throwable
+ {
+ // Local tests
+ log.info("TestMarshaller.marshallers.size(): " + TestMarshaller.marshallers.size());
+ log.info("TestMarshaller.unmarshallers.size(): " + TestUnMarshaller.unmarshallers.size());
+ assertEquals(2, TestMarshaller.marshallers.size());
+ assertEquals(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_STRING, ((TestMarshaller)TestMarshaller.marshallers.get(1)).type);
+ assertEquals(2, TestUnMarshaller.unmarshallers.size());
+ assertEquals(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_STRING, ((TestUnMarshaller)TestUnMarshaller.unmarshallers.get(1)).type);
+
+ // Remote tests
+ int serverMarshallerCount = ((Integer) client.invoke(TestInvocationHandler.GET_NUMBER_OF_MARSHALLERS)).intValue();
+ log.info("server side marshallers: " + serverMarshallerCount);
+ int serverUnmarshallerCount = ((Integer) client.invoke(TestInvocationHandler.GET_NUMBER_OF_UNMARSHALLERS)).intValue();
+ log.info("server side unmarshallers: " + serverUnmarshallerCount);
+ assertEquals(4, serverMarshallerCount);
+ assertEquals(6, serverUnmarshallerCount);
+ Map metadata = new HashMap();
+ metadata.put(TestInvocationHandler.N, "3");
+ String type = (String) client.invoke(TestInvocationHandler.GET_NTH_MARSHALLER_TYPE, metadata);
+ assertEquals(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_STRING, type);
+ metadata.put(TestInvocationHandler.N, "1");
+ type = (String) client.invoke(TestInvocationHandler.GET_NTH_UNMARSHALLER_TYPE, metadata);
+ assertEquals(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_STRING, type);
+ client.invoke(TestInvocationHandler.RESET);
+ }
+
+ protected String getTransport()
+ {
+ return "servlet";
+ }
+
+ protected void setupServer(boolean addUseRemotingContentType, boolean useRemotingContentType) throws Exception
+ {
+ String path = null;
+ String useRemotingContentTypeAttribute = null;
+ if (addUseRemotingContentType)
+ {
+ if (useRemotingContentType)
+ {
+ path = "servlet-invoker/ServerInvokerServlet/true";
+ useRemotingContentTypeAttribute = "&useRemotingContentType=true";
+ }
+ else
+ {
+ path = "servlet-invoker/ServerInvokerServlet/false";
+ useRemotingContentTypeAttribute = "&useRemotingContentType=false";
+ }
+ }
+ else
+ {
+ path = "servlet-invoker/ServerInvokerServlet/default";
+ useRemotingContentTypeAttribute = "";
+ }
+
+ String locatorURI = "servlet://127.0.0.1:8080/" + path + "/?datatype=test&marshaller=org.jboss.test.remoting.marshall.TestMarshaller&unmarshaller=org.jboss.test.remoting.marshall.TestUnmarshaller" + useRemotingContentTypeAttribute;
+ serverLocator = new InvokerLocator(locatorURI);
+ }
+}
\ No newline at end of file
Added: remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestInvocationHandler.java
===================================================================
--- remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestInvocationHandler.java (rev 0)
+++ remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestInvocationHandler.java 2009-08-30 00:38:39 UTC (rev 5401)
@@ -0,0 +1,114 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+
+package org.jboss.test.remoting.transport.servlet.marshal;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.management.MBeanServer;
+
+import org.jboss.logging.Logger;
+import org.jboss.remoting.InvocationRequest;
+import org.jboss.remoting.ServerInvocationHandler;
+import org.jboss.remoting.ServerInvoker;
+import org.jboss.remoting.callback.InvokerCallbackHandler;
+import org.jboss.remoting.marshal.MarshalFactory;
+import org.jboss.remoting.transport.http.HTTPMetadataConstants;
+
+
+/**
+ * For JBREM-1145.
+ *
+ * @author <a href="ron.sigal(a)jboss.com">Ron Sigal</a>
+ * @version $Revision: 1.1 $
+ * <p>
+ * Copyright August 17, 2009
+ * </p>
+ */
+public class TestInvocationHandler implements ServerInvocationHandler
+{
+ public static String GET_NUMBER_OF_MARSHALLERS = "getNumberOfMarshallers";
+ public static String GET_NUMBER_OF_UNMARSHALLERS = "getNumberOfUnmarshallers";
+ public static String GET_NTH_MARSHALLER_TYPE = "getNthMarshallerType";
+ public static String GET_NTH_UNMARSHALLER_TYPE = "getNthUnarshallerType";
+ public static String RESET = "reset";
+ public static String N = "n";
+
+ private static Logger log = Logger.getLogger(TestInvocationHandler.class);
+
+ static
+ {
+ MarshalFactory.addMarshaller("test", new TestMarshaller(), new TestUnMarshaller());
+ }
+
+ public void addListener(InvokerCallbackHandler callbackHandler) {}
+
+ public Object invoke(final InvocationRequest invocation) throws Throwable
+ {
+ String s = (String) invocation.getParameter();
+ log.info("command: " + s);
+ if (RESET.equals(s))
+ {
+ log.info("doing reset");
+ TestMarshaller.marshallers.clear();
+ TestUnMarshaller.unmarshallers.clear();
+ log.info("TestMarshaller.marshallers: " + TestMarshaller.marshallers);
+ log.info("TestUnMarshaller.unmarshallers: " + TestUnMarshaller.unmarshallers);
+ }
+ else if (GET_NUMBER_OF_MARSHALLERS.equals(s))
+ {
+ return new Integer(TestMarshaller.marshallers.size());
+ }
+ else if (GET_NUMBER_OF_UNMARSHALLERS.equals(s))
+ {
+ return new Integer(TestUnMarshaller.unmarshallers.size());
+ }
+ else if (GET_NTH_MARSHALLER_TYPE.equals(s))
+ {
+ int n = Integer.valueOf((String)invocation.getRequestPayload().get(N)).intValue();
+ return ((TestMarshaller)TestMarshaller.marshallers.get(n)).type;
+ }
+ else if (GET_NTH_UNMARSHALLER_TYPE.equals(s))
+ {
+ int n = Integer.valueOf((String)invocation.getRequestPayload().get(N)).intValue();
+ return ((TestUnMarshaller)TestUnMarshaller.unmarshallers.get(n)).type;
+ }
+ else if ("abc".equals(s))
+ {
+ Map responseMap = invocation.getReturnPayload();
+ if (responseMap == null)
+ {
+ responseMap = new HashMap();
+ invocation.setReturnPayload(responseMap);
+ }
+ responseMap.put(HTTPMetadataConstants.CONTENTTYPE, "text/html");
+ return invocation.getParameter();
+ }
+
+ return invocation.getParameter();
+ }
+
+ public void removeListener(InvokerCallbackHandler callbackHandler) {}
+ public void setMBeanServer(MBeanServer server) {}
+ public void setInvoker(ServerInvoker invoker) {}
+}
\ No newline at end of file
Added: remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestMarshaller.java
===================================================================
--- remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestMarshaller.java (rev 0)
+++ remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestMarshaller.java 2009-08-30 00:38:39 UTC (rev 5401)
@@ -0,0 +1,66 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.test.remoting.transport.servlet.marshal;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ArrayList;
+
+import org.jboss.logging.Logger;
+import org.jboss.remoting.marshal.Marshaller;
+import org.jboss.remoting.marshal.http.HTTPMarshaller;
+import org.jboss.remoting.transport.http.HTTPMetadataConstants;
+
+
+/**
+ * Part of unit tests for JBREM-1145
+ *
+ * @author <a href="ron.sigal(a)jboss.com">Ron Sigal</a>
+ * @version $Rev$
+ * <p>
+ * Copyright Aug 20, 2009
+ * </p>
+ */
+public class TestMarshaller extends HTTPMarshaller
+{
+ private static Logger log = Logger.getLogger(TestMarshaller.class);
+
+ public static ArrayList marshallers = new ArrayList();
+ private static final long serialVersionUID = -7528137229006015488L;
+ public String type;
+
+ public void write(Object dataObject, OutputStream output, int version) throws IOException
+ {
+ log.info(this + " writing " + dataObject);
+ type = (dataObject instanceof String) ? HTTPMetadataConstants.REMOTING_CONTENT_TYPE_STRING : HTTPMetadataConstants.REMOTING_CONTENT_TYPE_NON_STRING;
+ super.write(dataObject, output, version);
+ }
+
+ public Marshaller cloneMarshaller() throws CloneNotSupportedException
+ {
+ TestMarshaller marshaller = new TestMarshaller();
+ marshallers.add(marshaller);
+ log.info("returning " + marshaller);
+ return marshaller;
+ }
+}
Added: remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestUnMarshaller.java
===================================================================
--- remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestUnMarshaller.java (rev 0)
+++ remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/TestUnMarshaller.java 2009-08-30 00:38:39 UTC (rev 5401)
@@ -0,0 +1,93 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.test.remoting.transport.servlet.marshal;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.jboss.remoting.marshal.UnMarshaller;
+import org.jboss.remoting.marshal.http.HTTPUnMarshaller;
+import org.jboss.remoting.transport.http.HTTPMetadataConstants;
+
+
+/**
+ * Part of unit tests for JBREM-1145.
+ *
+ * @author <a href="ron.sigal(a)jboss.com">Ron Sigal</a>
+ * @version $Rev$
+ * <p>
+ * Copyright Aug 20, 2009
+ * </p>
+ */
+public class TestUnMarshaller extends HTTPUnMarshaller
+{
+ public static ArrayList unmarshallers = new ArrayList();
+ private static final long serialVersionUID = -6422222480047910351L;
+ public String type;
+
+ public Object read(InputStream inputStream, Map metadata, int version) throws IOException, ClassNotFoundException
+ {
+ Object o = metadata.get(HTTPMetadataConstants.REMOTING_CONTENT_TYPE);
+ if (o instanceof List)
+ {
+ type = (String) ((List) o).get(0);
+ }
+ else if (o instanceof String)
+ {
+ type = (String) o;
+ }
+ else
+ {
+ o = metadata.get(HTTPMetadataConstants.REMOTING_CONTENT_TYPE_LC);
+ log.info("remotingcontenttype: " + o);
+ if (o instanceof List)
+ {
+ type = (String) ((List) o).get(0);
+ }
+ else if (o instanceof String)
+ {
+ type = (String) o;
+ }
+ else
+ {
+ log.warn(this + " unrecognized remotingContentType: " + o);
+ }
+ }
+
+ o = super.read(inputStream, metadata, version);
+ log.info(this + " read " + o);
+ return o;
+ }
+
+ public UnMarshaller cloneUnMarshaller() throws CloneNotSupportedException
+ {
+ TestUnMarshaller unmarshaller = new TestUnMarshaller();
+ unmarshallers.add(unmarshaller);
+ unmarshaller.setClassLoader(this.customClassLoader);
+ log.info("returning " + unmarshaller, new Exception());
+ return unmarshaller;
+ }
+}
Added: remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/WEB-INF/web.xml
===================================================================
--- remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/WEB-INF/web.xml (rev 0)
+++ remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/WEB-INF/web.xml 2009-08-30 00:38:39 UTC (rev 5401)
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE web-app PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<!-- The the JBossRemoting server invoker servlet web.xml descriptor
+$Id: web.xml 4903 2009-03-24 07:33:10Z ron.sigal(a)jboss.com $
+-->
+<web-app>
+ <servlet>
+ <servlet-name>ServerInvokerServletDefault</servlet-name>
+ <description>The ServerInvokerServlet receives requests via HTTP
+ protocol from within a web container and passes it onto the
+ ServletServerInvoker for processing.
+ </description>
+ <servlet-class>org.jboss.remoting.transport.servlet.web.ServerInvokerServlet</servlet-class>
+ <init-param>
+ <param-name>locatorUrl</param-name>
+ <param-value>servlet://127.0.0.1:8080/servlet-invoker/ServerInvokerServlet/default/?datatype=test&marshaller=org.jboss.test.remoting.transport.servlet.marshal.TestMarshaller&unmarshaller=org.jboss.test.remoting.transport.servlet.marshal.TestUnmarshaller</param-value>
+ <description>The servlet server invoker locator url</description>
+ </init-param>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet>
+ <servlet-name>ServerInvokerServletFalse</servlet-name>
+ <description>The ServerInvokerServlet receives requests via HTTP
+ protocol from within a web container and passes it onto the
+ ServletServerInvoker for processing.
+ </description>
+ <servlet-class>org.jboss.remoting.transport.servlet.web.ServerInvokerServlet</servlet-class>
+ <init-param>
+ <param-name>locatorUrl</param-name>
+ <param-value>servlet://127.0.0.1:8080/servlet-invoker/ServerInvokerServlet/false/?datatype=test&marshaller=org.jboss.test.remoting.transport.servlet.marshal.TestMarshaller&unmarshaller=org.jboss.test.remoting.transport.servlet.marshal.TestUnmarshaller&useRemotingContentType=false</param-value>
+ <description>The servlet server invoker locator url</description>
+ </init-param>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet>
+ <servlet-name>ServerInvokerServletTrue</servlet-name>
+ <description>The ServerInvokerServlet receives requests via HTTP
+ protocol from within a web container and passes it onto the
+ ServletServerInvoker for processing.
+ </description>
+ <servlet-class>org.jboss.remoting.transport.servlet.web.ServerInvokerServlet</servlet-class>
+ <init-param>
+ <param-name>locatorUrl</param-name>
+ <param-value>servlet://127.0.0.1:8080/servlet-invoker/ServerInvokerServlet/true/?datatype=test&marshaller=org.jboss.test.remoting.transport.servlet.marshal.TestMarshaller&unmarshaller=org.jboss.test.remoting.transport.servlet.marshal.TestUnmarshaller&useRemotingContentType=true</param-value>
+ <description>The servlet server invoker locator url</description>
+ </init-param>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>ServerInvokerServletDefault</servlet-name>
+ <url-pattern>/ServerInvokerServlet/default/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>ServerInvokerServletFalse</servlet-name>
+ <url-pattern>/ServerInvokerServlet/false/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>ServerInvokerServletTrue</servlet-name>
+ <url-pattern>/ServerInvokerServlet/true/*</url-pattern>
+ </servlet-mapping>
+</web-app>
+
Added: remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/remoting-servlet-service.xml
===================================================================
--- remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/remoting-servlet-service.xml (rev 0)
+++ remoting2/branches/2.2/src/tests/org/jboss/test/remoting/transport/servlet/marshal/remoting-servlet-service.xml 2009-08-30 00:38:39 UTC (rev 5401)
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<server>
+ <mbean code="org.jboss.remoting.transport.Connector"
+ name="jboss.remoting:service=Connector,transport=Servlet,useRemotingContentType=default"
+ display-name="Servlet transport Connector (default)">
+
+ <attribute name="Configuration">
+ <config>
+ <invoker transport="servlet">
+ <attribute name="serverBindAddress">127.0.0.1</attribute>
+ <attribute name="serverBindPort">8080</attribute>
+ <attribute name="path">servlet-invoker/ServerInvokerServlet/default</attribute>
+ <attribute name="datatype" isParam="true">test</attribute>
+ <attribute name="marshaller" isParam="true">org.jboss.test.remoting.transport.servlet.marshal.TestMarshaller</attribute>
+ <attribute name="unmarshaller" isParam="true">org.jboss.test.remoting.transport.servlet.marshal.TestUnMarshaller</attribute>
+ </invoker>
+ <handlers>
+ <handler subsystem="test">org.jboss.test.remoting.transport.servlet.marshal.TestInvocationHandler</handler>
+ </handlers>
+ </config>
+ </attribute>
+ </mbean>
+ <mbean code="org.jboss.remoting.transport.Connector"
+ name="jboss.remoting:service=Connector,transport=Servlet,useRemotingContentType=false"
+ display-name="Servlet transport Connector (false)">
+
+ <attribute name="Configuration">
+ <config>
+ <invoker transport="servlet">
+ <attribute name="serverBindAddress">127.0.0.1</attribute>
+ <attribute name="serverBindPort">8080</attribute>
+ <attribute name="path">servlet-invoker/ServerInvokerServlet/false</attribute>
+ <attribute name="datatype" isParam="true">test</attribute>
+ <attribute name="marshaller" isParam="true">org.jboss.test.remoting.transport.servlet.marshal.TestMarshaller</attribute>
+ <attribute name="unmarshaller" isParam="true">org.jboss.test.remoting.transport.servlet.marshal.TestUnMarshaller</attribute>
+ <attribute name="useRemotingContentType" isParam="true">false</attribute>
+ </invoker>
+ <handlers>
+ <handler subsystem="test">org.jboss.test.remoting.transport.servlet.marshal.TestInvocationHandler</handler>
+ </handlers>
+ </config>
+ </attribute>
+ </mbean>
+ <mbean code="org.jboss.remoting.transport.Connector"
+ name="jboss.remoting:service=Connector,transport=Servlet,useRemotingContentType=true"
+ display-name="Servlet transport Connector (true)">
+
+ <attribute name="Configuration">
+ <config>
+ <invoker transport="servlet">
+ <attribute name="serverBindAddress">127.0.0.1</attribute>
+ <attribute name="serverBindPort">8080</attribute>
+ <attribute name="path">servlet-invoker/ServerInvokerServlet/true</attribute>
+ <attribute name="datatype" isParam="true">test</attribute>
+ <attribute name="marshaller" isParam="true">org.jboss.test.remoting.transport.servlet.marshal.TestMarshaller</attribute>
+ <attribute name="unmarshaller" isParam="true">org.jboss.test.remoting.transport.servlet.marshal.TestUnMarshaller</attribute>
+ <attribute name="useRemotingContentType" isParam="true">true</attribute>
+ </invoker>
+ <handlers>
+ <handler subsystem="test">org.jboss.test.remoting.transport.servlet.marshal.TestInvocationHandler</handler>
+ </handlers>
+ </config>
+ </attribute>
+ </mbean>
+</server>
15 years, 3 months