[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