cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ff...@apache.org
Subject svn commit: r796660 - in /cxf/branches/2.0.x-fixes: ./ rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java
Date Wed, 22 Jul 2009 10:19:58 GMT
Author: ffang
Date: Wed Jul 22 10:19:57 2009
New Revision: 796660

URL: http://svn.apache.org/viewvc?rev=796660&view=rev
Log:
Merged revisions 796659 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/branches/2.1.x-fixes

................
  r796659 | ffang | 2009-07-22 18:14:21 +0800 (三, 22  7 2009) | 16 lines
  
  Merged revisions 796655 via svnmerge from 
  https://svn.apache.org/repos/asf/cxf/branches/2.2.x-fixes
  
  ................
    r796655 | ffang | 2009-07-22 17:59:34 +0800 (三, 22  7 2009) | 9 lines
    
    Merged revisions 796648 via svnmerge from 
    https://svn.apache.org/repos/asf/cxf/trunk
    
    ........
      r796648 | ffang | 2009-07-22 17:50:31 +0800 (三, 22  7 2009) | 1 line
      
      [CXF-2350]JBIConduitOutputStream should copy properties between JBI NormalizedMessage
and cxf message invocation context
    ........
  ................
................

Modified:
    cxf/branches/2.0.x-fixes/   (props changed)
    cxf/branches/2.0.x-fixes/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java

Propchange: cxf/branches/2.0.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.0.x-fixes/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java?rev=796660&r1=796659&r2=796660&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java
(original)
+++ cxf/branches/2.0.x-fixes/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIConduitOutputStream.java
Wed Jul 22 10:19:57 2009
@@ -21,8 +21,12 @@
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.Serializable;
 import java.lang.reflect.Member;
 import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
 import java.util.logging.Logger;
 
 import javax.jbi.messaging.DeliveryChannel;
@@ -121,19 +125,39 @@
                 xchng.setInterfaceName(interfaceName);
 
                 xchng.setOperation(bop.getName());
+                //copy context
+                Map<String, Object> invocationContext = 
+                    (Map<String, Object>) message.get(Message.INVOCATION_CONTEXT);
+                if (invocationContext != null) {
+                    for (Map.Entry<String, Object> ent : ((Map<String, Object>)
invocationContext
+                            .get("RequestContext")).entrySet()) {
+                        // check if value is Serializable, and if value is Map
+                        // or collection,
+                        // just exclude it since the entry of it may not be
+                        // Serializable as well
+                        if (ent.getValue() instanceof Serializable
+                                && !(ent.getValue() instanceof Map)
+                                && !(ent.getValue() instanceof Collection)) {
+                            inMsg.setProperty(ent.getKey(), ent.getValue());
+                        }
+                    }
+                }
                 xchng.setMessage(inMsg, "in");
                 LOG.info("sending message");
                 if (!isOneWay) {
                     channel.sendSync(xchng);
                     NormalizedMessage outMsg = ((InOut)xchng).getOutMessage();
                     Source content = null;
+                    Set normalizedMessageProps = null;
                     if (outMsg != null) {
                         content = outMsg.getContent();
+                        normalizedMessageProps = outMsg.getPropertyNames();
                     } else {
                         if (((InOut)xchng).getFault() == null) {
                             throw xchng.getError();
                         }
                         content = ((InOut)xchng).getFault().getContent();
+                        normalizedMessageProps = ((InOut)xchng).getFault().getPropertyNames();
                     }
                     Message inMessage = new MessageImpl();
                     message.getExchange().setInMessage(inMessage);
@@ -146,6 +170,14 @@
                     inMessage.put(MessageExchange.class, xchng);
                     
                     
+                    if (normalizedMessageProps != null) {
+                  
+                        for (Object name : normalizedMessageProps) {
+                            inMessage.put((String) name, outMsg
+                                    .getProperty((String) name));
+
+                        }
+                    }
                     conduit.getMessageObserver().onMessage(inMessage);
                     
                     xchng.setStatus(ExchangeStatus.DONE);



Mime
View raw message