You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2008/11/14 08:25:48 UTC

svn commit: r713946 - in /activemq/camel/branches/camel-1.x: ./ components/camel-cxf/ components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/ components/camel-cxf/src/main/java/org/apache/camel/component/cxf/invoker/ components/...

Author: ningjiang
Date: Thu Nov 13 23:25:47 2008
New Revision: 713946

URL: http://svn.apache.org/viewvc?rev=713946&view=rev
Log:
Merged revisions 713944 via svnmerge from 
https://svn.apache.org/repos/asf/activemq/camel/trunk

........
  r713944 | ningjiang | 2008-11-14 15:17:40 +0800 (Fri, 14 Nov 2008) | 1 line
  
  CAMEL-1088 fixed the soap header bug of camel-cxf endpoint in PAYLOAD data format
........

Added:
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadSoapHeaderTest.java
      - copied unchanged from r713944, activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadSoapHeaderTest.java
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/PizzaImpl.java
      - copied unchanged from r713944, activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/PizzaImpl.java
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/PizzaEndpoints.xml
      - copied unchanged from r713944, activemq/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/PizzaEndpoints.xml
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/resources/pizza_service.wsdl
      - copied unchanged from r713944, activemq/camel/trunk/components/camel-cxf/src/test/resources/pizza_service.wsdl
Modified:
    activemq/camel/branches/camel-1.x/   (props changed)
    activemq/camel/branches/camel-1.x/components/camel-cxf/pom.xml
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageInInterceptor.java
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageInInterceptor.java
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageOutInterceptor.java
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageInInterceptor.java
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/invoker/PayloadInvokingContext.java
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/invoker/PayloadMessage.java
    activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadMessageRouterTest.java

Propchange: activemq/camel/branches/camel-1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Nov 13 23:25:47 2008
@@ -1 +1 @@
-/activemq/camel/trunk:709850,711200,711206,711219-711220,711523,711531,711756,711784,711859,711874,711962,711971,712064,712119,712148,712662,712692,712925,713013,713107,713136,713273,713290,713292,713295,713314,713475,713625,713932
+/activemq/camel/trunk:709850,711200,711206,711219-711220,711523,711531,711756,711784,711859,711874,711962,711971,712064,712119,712148,712662,712692,712925,713013,713107,713136,713273,713290,713292,713295,713314,713475,713625,713932,713944

Propchange: activemq/camel/branches/camel-1.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: activemq/camel/branches/camel-1.x/components/camel-cxf/pom.xml
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-cxf/pom.xml?rev=713946&r1=713945&r2=713946&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-cxf/pom.xml (original)
+++ activemq/camel/branches/camel-1.x/components/camel-cxf/pom.xml Thu Nov 13 23:25:47 2008
@@ -309,6 +309,13 @@
       							<extraarg>${basedir}/src/test/resources/person-non-wrapper-binding.xml</extraarg>
       						</extraargs>
       					</wsdlOption>
+      					<wsdlOption>
+      						<wsdl>${basedir}/src/test/resources/pizza_service.wsdl</wsdl>
+      						<extraargs>
+      							<extraarg>-exsh</extraarg>
+      							<extraarg>true</extraarg>
+      						</extraargs>
+      					</wsdlOption>
       				</wsdlOptions>
       			</configuration>
       			<goals>

Modified: activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageInInterceptor.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageInInterceptor.java?rev=713946&r1=713945&r2=713946&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageInInterceptor.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageInInterceptor.java Thu Nov 13 23:25:47 2008
@@ -116,9 +116,7 @@
         BindingMessageInfo bmi = isRequestor(message) ?  boi.getOutput() : boi.getInput();
         List<Element> partList = getPartList(message, payloadEl, bmi);
         message.put(List.class, partList);
-
-        Element header = getHeader(message);
-        message.put(Element.class, header);
+        
     }
 
     /**
@@ -160,11 +158,5 @@
      */
     protected abstract List<Element> getPartList(T inMessage, Element rootElement, BindingMessageInfo boi);
 
-    /**
-     * This method is called when the routing message interceptor has intercepted a inbound
-     * message as a DOM Content.  It retreives the header parts as DOM Element
-     * and returns a Element.
-     */
-    protected abstract Element getHeader(T inMessage);
-
+   
 }

Modified: activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageInInterceptor.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageInInterceptor.java?rev=713946&r1=713945&r2=713946&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageInInterceptor.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageInInterceptor.java Thu Nov 13 23:25:47 2008
@@ -16,10 +16,12 @@
  */
 package org.apache.camel.component.cxf.interceptors;
 
+
+
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
-//import java.util.ResourceBundle;
+
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -30,10 +32,11 @@
 import org.w3c.dom.Node;
 
 
+import org.apache.camel.pizza.types.CallerIDHeaderType;
 import org.apache.cxf.binding.soap.SoapMessage;
 import org.apache.cxf.binding.soap.model.SoapBindingInfo;
 import org.apache.cxf.common.logging.LogUtils;
-//import org.apache.cxf.common.i18n.BundleUtils;
+
 
 import org.apache.cxf.helpers.DOMUtils;
 import org.apache.cxf.message.Exchange;
@@ -113,11 +116,8 @@
         return partList;
     }
 
-    protected Element getHeader(SoapMessage inMessage) {
-        // need to find out the soap header information
-        Element element = null;
-        return element;
-        // return inMessage.getHeaders(Element.class);
-    }
+   
+
+    
 
 }

Modified: activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageOutInterceptor.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageOutInterceptor.java?rev=713946&r1=713945&r2=713946&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageOutInterceptor.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageOutInterceptor.java Thu Nov 13 23:25:47 2008
@@ -57,64 +57,13 @@
     }
 
     @SuppressWarnings("unchecked")
-    public void handleMessage(SoapMessage message) throws Fault {
-        // header is not store as the element
-        Element header = message.get(Element.class);
+    public void handleMessage(SoapMessage message) throws Fault {        
 
         List<Element> payload = message.get(List.class);
         Exchange exchange = message.getExchange();
         BindingMessageInfo bmi = exchange.get(BindingMessageInfo.class);
+        //The soap header is handled by the SoapOutInterceptor
 
-
-        //Headers -represent as -Element,Body -represent as StaxStream.
-        //Check if BindingOperationInfo contains header
-        List<SoapHeaderInfo> bindingHdr = bmi.getExtensors(SoapHeaderInfo.class);
-        if (bindingHdr != null && !bindingHdr.isEmpty()) {
-            if (LOG.isLoggable(Level.INFO)) {
-                LOG.info("SoapMessageOutInterceptor BindingOperation header processing.");
-            }
-
-            List<Element> headerList = new ArrayList<Element>();
-            List<Element> newPayload = new ArrayList<Element>(payload);
-            //Look for headers in Payload.
-            for (SoapHeaderInfo shi : bindingHdr) {
-                List<Element> tmpList = new ArrayList<Element>();
-                MessagePartInfo mpi = shi.getPart();
-                QName hdrName = mpi.getConcreteName();
-                for (Element el : payload) {
-                    QName elName = new QName(el.getNamespaceURI(), el.getLocalName());
-                    if (elName.equals(hdrName)) {
-                        newPayload.remove(el);
-                        tmpList.add(el);
-                    }
-                }
-
-                if (tmpList.size() > 1) {
-                    throw new Fault(new org.apache.cxf.common.i18n.Message(
-                                    "MULTIPLE_HDR_PARTS", LOG, hdrName));
-                }
-                headerList.addAll(tmpList);
-            }
-
-            if (LOG.isLoggable(Level.INFO)) {
-                LOG.info("DOMOutInterceptor Copy Payload parts to SOAPHeaders");
-            }
-            if (headerList.size() != 0) {
-                SoapVersion version = ((SoapMessage)message).getVersion();
-                header = createElement(version.getHeader(), headerList);
-            }
-            payload = newPayload;
-        }
-
-        //Set SOAP Header Element.
-        //Child Elements Could be binding specified parts or user specified headers.
-        //REVISTED the soap headers
-        //message.setHeaders(Element.class, header);
-
-        //TODO Moving Parts from Header to Payload.
-        //For e.g Payload ROuting from SOAP11 <-> SOAP12
-
-        //So write payload and header to outbound message
         if (LOG.isLoggable(Level.INFO)) {
             LOG.info("SoapMessageOutInterceptor binding operation style processing.");
         }

Modified: activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageInInterceptor.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageInInterceptor.java?rev=713946&r1=713945&r2=713946&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageInInterceptor.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageInInterceptor.java Thu Nov 13 23:25:47 2008
@@ -141,8 +141,4 @@
         return partList;
     }
     
-    protected Element getHeader(XMLMessage inMessage) {
-        return null;
-    }
-    
 }

Modified: activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/invoker/PayloadInvokingContext.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/invoker/PayloadInvokingContext.java?rev=713946&r1=713945&r2=713946&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/invoker/PayloadInvokingContext.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/invoker/PayloadInvokingContext.java Thu Nov 13 23:25:47 2008
@@ -23,7 +23,11 @@
 import java.util.logging.Logger;
 import org.w3c.dom.Element;
 
+import org.apache.camel.Headers;
+import org.apache.cxf.binding.soap.SoapHeader;
 import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.headers.Header;
+import org.apache.cxf.helpers.CastUtils;
 import org.apache.cxf.message.Exchange;
 import org.apache.cxf.message.Message;
 
@@ -41,14 +45,14 @@
 
         PayloadMessage request = (PayloadMessage)contents.get(PayloadMessage.class);
 
-        Element header = request.getHeader();
+        List<SoapHeader> headers = request.getHeaders();
         List<Element> payload = request.getPayload();
 
         if (LOG.isLoggable(Level.FINEST)) {
-            LOG.finest("header = " + header + ", paylaod = " + payload);
+            LOG.finest("header = " + headers + ", paylaod = " + payload);
         }
 
-        message.put(Element.class, header);
+        message.put(Header.HEADER_LIST, headers);
         message.put(List.class, payload);
     }
 
@@ -58,7 +62,7 @@
 
         Message msg = exchange.getInMessage();
         List<Element> payload = getResponseObject(msg , responseContext, List.class);
-        Element header = exchange.getInMessage().get(Element.class);
+        List<SoapHeader> header = CastUtils.cast((List<?>)exchange.getInMessage().get(Header.HEADER_LIST));
         payloadMsg = new PayloadMessage(payload, header);
 
         if (LOG.isLoggable(Level.FINEST)) {
@@ -90,7 +94,7 @@
                 LOG.finest(payloadMessage.toString());
             }
             outMessage.put(List.class, payloadMessage.getPayload());
-            outMessage.put(Element.class, payloadMessage.getHeader());
+            outMessage.put(Header.HEADER_LIST, payloadMessage.getHeaders());
         }
     }
 
@@ -98,14 +102,14 @@
     @SuppressWarnings("unchecked")
     public Map<Class, Object> getRequestContent(Message inMessage) {
         List<Element> payload = inMessage.get(List.class);
-        Element header = inMessage.get(Element.class);
+        List<SoapHeader> headers = CastUtils.cast((List<?>)inMessage.get(Header.HEADER_LIST));
 
         if (LOG.isLoggable(Level.FINEST)) {
-            LOG.finest("Header = " + header + ", Payload = " + payload);
+            LOG.finest("Header = " + headers + ", Payload = " + payload);
         }
 
         Map<Class, Object> contents = new IdentityHashMap<Class, Object>();
-        contents.put(PayloadMessage.class, new PayloadMessage(payload, header));
+        contents.put(PayloadMessage.class, new PayloadMessage(payload, headers));
 
         return contents;
     }

Modified: activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/invoker/PayloadMessage.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/invoker/PayloadMessage.java?rev=713946&r1=713945&r2=713946&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/invoker/PayloadMessage.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/invoker/PayloadMessage.java Thu Nov 13 23:25:47 2008
@@ -17,30 +17,32 @@
 package org.apache.camel.component.cxf.invoker;
 
 import java.util.List;
-
 import org.w3c.dom.Element;
+import org.apache.cxf.binding.soap.SoapHeader;
+
+
 
 public class PayloadMessage {
     private List<Element> payload;
-    private Element header;
+    private List<SoapHeader> headers;
     
-    public PayloadMessage(List<Element> payload, Element header) {
+    public PayloadMessage(List<Element> payload, List<SoapHeader> headers) {
         this.payload = payload;
-        this.header = header;
+        this.headers = headers;
     }
     
     public List<Element> getPayload() {
         return payload;
     }
     
-    public Element getHeader() {
-        return header;
+    public List<SoapHeader> getHeaders() {
+        return headers;
     }
     
     public String toString() {
         StringBuffer buf = new StringBuffer();
         buf.append("payload: " + payload);
-        buf.append(" header: " + header);
+        buf.append(" headers: " + headers);
         return buf.toString();
     }
 }

Modified: activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadMessageRouterTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadMessageRouterTest.java?rev=713946&r1=713945&r2=713946&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadMessageRouterTest.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadMessageRouterTest.java Thu Nov 13 23:25:47 2008
@@ -35,7 +35,7 @@
                 from(routerEndpointURI).process(new Processor() {
                     public void process(Exchange exchange) throws Exception {
                         Message inMessage = exchange.getIn();
-                        if(inMessage instanceof CxfMessage) {
+                        if (inMessage instanceof CxfMessage) {
                             CxfMessage message = (CxfMessage) inMessage;
                             List<Element> elements = message.getMessage().get(List.class);
                             assertNotNull("We should get the elements here" , elements);