[jboss-svn-commits] JBL Code SVN: r16167 - in labs/jbossesb/trunk/product: rosetta/src/org/jboss/soa/esb/listeners/gateway and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Oct 30 13:03:48 EDT 2007
Author: tfennelly
Date: 2007-10-30 13:03:48 -0400 (Tue, 30 Oct 2007)
New Revision: 16167
Added:
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/message/ResponseHeader.java
Modified:
labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/remoting/HttpMarshaller.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListener.java
labs/jbossesb/trunk/product/samples/quickstarts/webservice_producer/src/org/jboss/soa/esb/samples/quickstart/webserviceproducer/test/SendMessage.java
labs/jbossesb/trunk/product/samples/quickstarts/webservice_producer/src/org/jboss/soa/esb/samples/quickstart/webserviceproducer/webservice/GoodbyeWorldWS.java
labs/jbossesb/trunk/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/SOAPProcessor.java
Log:
http://jira.jboss.com/jira/browse/JBESB-1269
http://jira.jboss.com/jira/browse/JBESB-1271
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/remoting/HttpMarshaller.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/remoting/HttpMarshaller.java 2007-10-30 16:37:26 UTC (rev 16166)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/remoting/HttpMarshaller.java 2007-10-30 17:03:48 UTC (rev 16167)
@@ -19,11 +19,12 @@
*/
package org.jboss.internal.soa.esb.remoting;
+import org.jboss.remoting.marshal.Marshaller;
import org.jboss.remoting.marshal.http.HTTPMarshaller;
-import org.jboss.remoting.marshal.Marshaller;
+import org.jboss.remoting.InvocationResponse;
+import java.io.IOException;
import java.io.OutputStream;
-import java.io.IOException;
/**
* Extended version of the JBossRemoting HTTPMarshaller.
@@ -38,6 +39,14 @@
if(object instanceof byte[]) {
outputStream.write((byte[])object);
outputStream.flush();
+ } else if(object instanceof InvocationResponse) {
+ Object result = ((InvocationResponse)object).getResult();
+ if(result instanceof String) {
+ super.write(result, outputStream, version);
+ } else if(result instanceof byte[]) {
+ outputStream.write((byte[])result);
+ outputStream.flush();
+ }
} else {
super.write(object, outputStream, version);
}
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListener.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListener.java 2007-10-30 16:37:26 UTC (rev 16166)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListener.java 2007-10-30 17:03:48 UTC (rev 16167)
@@ -47,11 +47,9 @@
import org.jboss.soa.esb.listeners.message.AbstractMessageComposer;
import org.jboss.soa.esb.listeners.message.MessageDeliverException;
import org.jboss.soa.esb.listeners.message.UncomposedMessageDeliveryAdapter;
-import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.MessagePayloadProxy.NullPayloadHandling;
+import org.jboss.soa.esb.message.*;
import org.jboss.soa.esb.message.Properties;
-import org.jboss.soa.esb.message.MessagePayloadProxy;
-import org.jboss.soa.esb.message.MessagePayloadProxy.NullPayloadHandling;
-import org.jboss.soa.esb.message.Body;
import org.jboss.soa.esb.message.body.content.BytesBody;
import org.jboss.soa.esb.services.registry.RegistryException;
import org.jboss.soa.esb.services.registry.RegistryFactory;
@@ -319,6 +317,12 @@
if(logger.isDebugEnabled()) {
logger.debug("Returning response [" + response + "].");
}
+
+ /*
+ if(response instanceof String) {
+ response = ((String)response).getBytes("UTF-8");
+ }
+ */
return response;
} else {
@@ -480,15 +484,18 @@
responseMap = new LinkedHashMap();
invocationRequest.setReturnPayload(responseMap);
}
-
+
for(String name : propertyNames) {
Object value = properties.getProperty(name);
- if(value != null) {
- responseMap.put(name, value);
+
+ if(value instanceof ResponseHeader) {
+ ResponseHeader header = (ResponseHeader) value;
+ responseMap.put(header.getName(), header.getValue());
}
}
return super.decompose(message, invocationRequest);
}
}
+
}
Added: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/message/ResponseHeader.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/message/ResponseHeader.java (rev 0)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/message/ResponseHeader.java 2007-10-30 17:03:48 UTC (rev 16167)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.message;
+
+import java.io.Serializable;
+
+/**
+ * Response header.
+ * <p/>
+ * Simple name-value pair type that can be attached as a message property and used for
+ * setting response "headers" (protocol permitting) on the underlying response channel.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+*/
+public class ResponseHeader implements Serializable {
+ private String name;
+ private String value;
+
+ public ResponseHeader() {
+ }
+
+ public ResponseHeader(String name, String value) {
+ this.name = name;
+ this.value = value;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+}
Property changes on: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/message/ResponseHeader.java
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: labs/jbossesb/trunk/product/samples/quickstarts/webservice_producer/src/org/jboss/soa/esb/samples/quickstart/webserviceproducer/test/SendMessage.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_producer/src/org/jboss/soa/esb/samples/quickstart/webserviceproducer/test/SendMessage.java 2007-10-30 16:37:26 UTC (rev 16166)
+++ labs/jbossesb/trunk/product/samples/quickstarts/webservice_producer/src/org/jboss/soa/esb/samples/quickstart/webserviceproducer/test/SendMessage.java 2007-10-30 17:03:48 UTC (rev 16167)
@@ -70,6 +70,7 @@
// Deliver the message to the listener...
Object response = remotingClient.invoke(message);
+ System.out.println("JBR Class: " + response.getClass().getName());
System.out.println("Response from JBoss Remoting Listener '" + locatorURI + "' was '" + response + "'.");
} finally {
if(remotingClient != null) {
Modified: labs/jbossesb/trunk/product/samples/quickstarts/webservice_producer/src/org/jboss/soa/esb/samples/quickstart/webserviceproducer/webservice/GoodbyeWorldWS.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_producer/src/org/jboss/soa/esb/samples/quickstart/webserviceproducer/webservice/GoodbyeWorldWS.java 2007-10-30 16:37:26 UTC (rev 16166)
+++ labs/jbossesb/trunk/product/samples/quickstarts/webservice_producer/src/org/jboss/soa/esb/samples/quickstart/webserviceproducer/webservice/GoodbyeWorldWS.java 2007-10-30 17:03:48 UTC (rev 16167)
@@ -23,7 +23,7 @@
Message esbMessage = SOAPProcessor.getMessage();
if(esbMessage != null) {
- System.out.println("**** SOAPRequest perhaps mediated by ESB:\n" + esbMessage.getBody().get(ActionUtils.POST_ACTION_DATA));
+ System.out.println("**** SOAPRequest perhaps mediated by ESB:\n" + esbMessage.getBody().get());
// System.out.println("\n" + esbMessage.toString() + "\n");
}
System.out.println("Web Service Parameter - message=" + message);
@@ -34,7 +34,7 @@
public String sayAdios(String message) {
Message esbMessage = SOAPProcessor.getMessage();
if(esbMessage != null) {
- System.out.println("**** SOAPRequest perhaps mediated by ESB:\n" + esbMessage.getBody().get(ActionUtils.POST_ACTION_DATA));
+ System.out.println("**** SOAPRequest perhaps mediated by ESB:\n" + esbMessage.getBody().get());
// System.out.println("\n" + esbMessage.toString() + "\n");
}
System.out.println("Web Service Parameter - message=" + message);
@@ -47,7 +47,7 @@
Message esbMessage = SOAPProcessor.getMessage();
if(esbMessage != null) {
- System.out.println("**** SOAPRequest perhaps mediated by ESB:\n" + esbMessage.getBody().get(ActionUtils.POST_ACTION_DATA));
+ System.out.println("**** SOAPRequest perhaps mediated by ESB:\n" + esbMessage.getBody().get());
}
System.out.println("Web Service Parameter - message=" + message);
}
Modified: labs/jbossesb/trunk/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/SOAPProcessor.java
===================================================================
--- labs/jbossesb/trunk/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/SOAPProcessor.java 2007-10-30 16:37:26 UTC (rev 16166)
+++ labs/jbossesb/trunk/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/SOAPProcessor.java 2007-10-30 17:03:48 UTC (rev 16167)
@@ -35,6 +35,7 @@
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.message.MessagePayloadProxy;
+import org.jboss.soa.esb.message.ResponseHeader;
import org.jboss.soa.esb.message.body.content.BytesBody;
import org.jboss.wsf.spi.deployment.Endpoint;
import org.jboss.wsf.spi.invocation.BasicInvocationContext;
@@ -140,8 +141,9 @@
requestHandler.handleRequest(endpoint, new ByteArrayInputStream(soapMessage), os, invocationContext);
- if(message.getProperties().getProperty("Content-Type") == null) {
- message.getProperties().setProperty("Content-Type", "text/xml");
+ Object contentType = message.getProperties().getProperty("Content-Type");
+ if(!(contentType instanceof ResponseHeader)) {
+ message.getProperties().setProperty("Content-Type", new ResponseHeader("Content-Type", "text/xml"));
}
response = new String(os.toByteArray()).trim();
More information about the jboss-svn-commits
mailing list