Author: ningjiang
Date: Thu Mar 11 23:37:15 2010
New Revision: 922073

URL: http://svn.apache.org/viewvc?rev=922073&view=rev
Log:
CAMEL-2535 committed the CxfMessageHelper that I forgot

Added:
    
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfMessageHelper.java
   (with props)

Added: 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfMessageHelper.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfMessageHelper.java?rev=922073&view=auto
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfMessageHelper.java
 (added)
+++ 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfMessageHelper.java
 Thu Mar 11 23:37:15 2010
@@ -0,0 +1,98 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.cxf.util;
+
+import java.io.InputStream;
+
+import javax.xml.transform.Source;
+
+import org.apache.camel.InvalidPayloadException;
+import org.apache.camel.component.cxf.CxfConstants;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.cxf.message.ExchangeImpl;
+import org.apache.cxf.message.MessageImpl;
+
+public final class CxfMessageHelper {
+    private CxfMessageHelper() {
+        //Helper class
+    }
+    
+    public static org.apache.cxf.message.Message 
getCxfInMessage(HeaderFilterStrategy headerFilterStrategy,
+                                                                 
org.apache.camel.Exchange exchange,
+                                                                 boolean 
isClient) {
+        MessageImpl answer = new MessageImpl();
+        org.apache.cxf.message.Exchange cxfExchange = exchange
+            .getProperty(CxfConstants.CXF_EXCHANGE, 
org.apache.cxf.message.Exchange.class);
+        org.apache.camel.Message message;
+        if (isClient) {
+            message = exchange.getOut();
+        } else {
+            message = exchange.getIn();
+        }
+        assert message != null;
+        if (cxfExchange == null) {
+            cxfExchange = new ExchangeImpl();
+            exchange.setProperty(CxfConstants.CXF_EXCHANGE, cxfExchange);
+        }
+
+        CxfHeaderHelper.propagateCamelToCxf(headerFilterStrategy, 
message.getHeaders(), answer, exchange);
+
+        // body can be empty in case of GET etc.
+        InputStream body = message.getBody(InputStream.class);
+        if (body != null) {
+            answer.setContent(InputStream.class, body);
+        } else if (message.getBody() != null) {
+            // fallback and set the body as what it is
+            answer.setContent(Object.class, body);
+        }
+
+        answer.putAll(message.getHeaders());
+        answer.setExchange(cxfExchange);
+        cxfExchange.setInMessage(answer);
+        return answer;
+    }
+
+    public static org.apache.cxf.message.Message 
getCxfOutMessage(HeaderFilterStrategy headerFilterStrategy,
+                                                                  
org.apache.camel.Exchange exchange,
+                                                                  boolean 
isClient)
+        throws InvalidPayloadException {
+        org.apache.cxf.message.Exchange cxfExchange = exchange
+            .getProperty(CxfConstants.CXF_EXCHANGE, 
org.apache.cxf.message.Exchange.class);
+        assert cxfExchange != null;
+        org.apache.cxf.endpoint.Endpoint cxfEndpoint = cxfExchange
+            .get(org.apache.cxf.endpoint.Endpoint.class);
+        org.apache.cxf.message.Message outMessage = 
cxfEndpoint.getBinding().createMessage();
+        outMessage.setExchange(cxfExchange);
+        cxfExchange.setOutMessage(outMessage);
+
+        org.apache.camel.Message message;
+        if (isClient) {
+            message = exchange.getIn();
+        } else {
+            message = exchange.getOut();
+        }
+
+        CxfHeaderHelper.propagateCamelToCxf(headerFilterStrategy, 
message.getHeaders(), outMessage, exchange);
+
+        // send the body back
+        Source body = message.getMandatoryBody(Source.class);
+        outMessage.setContent(Source.class, body);
+        outMessage.putAll(message.getHeaders());
+        return outMessage;
+    }
+
+}

Propchange: 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfMessageHelper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfMessageHelper.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date


Reply via email to