camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ningji...@apache.org
Subject svn commit: r653177 - in /activemq/camel/trunk/components/camel-cxf/src: main/java/org/apache/camel/component/cxf/ test/java/org/apache/camel/component/cxf/
Date Sun, 04 May 2008 03:41:40 GMT
Author: ningjiang
Date: Sat May  3 20:41:40 2008
New Revision: 653177

URL: http://svn.apache.org/viewvc?rev=653177&view=rev
Log:
CAMEL-487, CAMEL488 Did some improvement on camel-cxf component

Added:
    activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java
  (with props)
Modified:
    activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CamelInvoker.java
    activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
    activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
    activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java

Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CamelInvoker.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CamelInvoker.java?rev=653177&r1=653176&r2=653177&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CamelInvoker.java
(original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CamelInvoker.java
Sat May  3 20:41:40 2008
@@ -165,6 +165,15 @@
             }
         } else {
             result = cxfExchange.getOut().getBody();
+            if (result != null) {
+                if (result instanceof MessageContentsList || result instanceof List || result.getClass().isArray())
{
+                    return result;
+                } else {
+                    MessageContentsList resList = new MessageContentsList();
+                    resList.add(result);
+                    return resList;
+                }
+            }
         }
         return result;
     }

Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java?rev=653177&r1=653176&r2=653177&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
(original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
Sat May  3 20:41:40 2008
@@ -83,7 +83,6 @@
         CxfMessage out = exchange.getOut();
         if (response != null) {
             out.setMessage(response);
-            out.setBody(response.getContent(InputStream.class));
         }
     }
 

Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java?rev=653177&r1=653176&r2=653177&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
(original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
Sat May  3 20:41:40 2008
@@ -42,6 +42,7 @@
     private String serviceName;
     private String dataFormat;
     private String beanId;
+    private boolean isWrapped;
     private boolean isSpringContextEndpoint;
     private boolean inOut = true;
     private ConfigurerImpl configurer;
@@ -143,6 +144,14 @@
         this.inOut = inOut;
     }
 
+    public boolean isWrapped() {
+        return isWrapped;
+    }
+
+    public void setWrapped(boolean wrapped) {
+        isWrapped = wrapped;
+    }
+
 
     public CxfComponent getComponent() {
         return component;

Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java?rev=653177&r1=653176&r2=653177&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java
(original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java
Sat May  3 20:41:40 2008
@@ -188,10 +188,18 @@
                     try {
                         Object[] result = null;
                         if (operationNameSpace == null) {
-                            result = client.invoke(operationName, parameters.toArray());
+                            if (endpoint.isWrapped()) {
+                                result = client.invokeWrapped(operationName, parameters.toArray());
+                            }else {
+                                result = client.invoke(operationName, parameters.toArray());
+                            }
                         } else {
                             QName operation = new QName(operationNameSpace, operationName);
-                            result = client.invoke(operation, parameters.toArray());
+                            if (endpoint.isWrapped()) {
+                                result = client.invokeWrapped(operation, parameters.toArray());
+                            } else {
+                                result = client.invoke(operation, parameters.toArray());
+                            }
                         }
                         response.setContent(Object[].class, result);
                         CxfBinding.storeCxfResponse(exchange, response);

Added: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java?rev=653177&view=auto
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java
(added)
+++ activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java
Sat May  3 20:41:40 2008
@@ -0,0 +1,80 @@
+/**
+ * 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;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Exchange;
+import org.apache.camel.Message;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.frontend.ClientFactoryBean;
+import org.apache.cxf.frontend.ClientProxyFactoryBean;
+
+
+public class CxfConsumerTest extends ContextTestSupport {
+    private static final transient Log LOG = LogFactory.getLog(CxfProducerRouterTest.class);
+    private static final String SIMPLE_ENDPOINT_ADDRESS = "http://localhost:28080/test";
+    private static final String SIMPLE_ENDPOINT_URI = "cxf://" + SIMPLE_ENDPOINT_ADDRESS
+                                                       + "?serviceClass=org.apache.camel.component.cxf.HelloService";
+    private static final String ECHO_OPERATION = "echo";
+    private static final String TEST_MESSAGE = "Hello World!";
+
+    // START SNIPPET: example
+    protected RouteBuilder createRouteBuilder() {
+        return new RouteBuilder() {
+            public void configure() {
+                from(SIMPLE_ENDPOINT_URI).process(new Processor() {
+                    public void process(final Exchange exchange) {
+                        Message in = exchange.getIn();
+                        // Get the parameter list
+                        List parameter = in.getBody(List.class);
+                        // Get the operation name
+                        String operation = (String)in.getHeader(CxfConstants.OPERATION_NAME);
+                        String result = operation + " " + (String)parameter.get(0);
+                        // Put the result back
+                        exchange.getOut().setBody(result);
+                    }
+                });
+            }
+        };
+    }
+    // END SNIPPET: example
+
+    public void testInvokingServiceFromCXFClient() throws Exception {
+        ClientProxyFactoryBean proxyFactory = new ClientProxyFactoryBean();
+        ClientFactoryBean clientBean = proxyFactory.getClientFactoryBean();
+        clientBean.setAddress(SIMPLE_ENDPOINT_ADDRESS);
+        clientBean.setServiceClass(HelloService.class);
+        clientBean.setBus(BusFactory.getDefaultBus());
+
+        HelloService client = (HelloService) proxyFactory.create();
+
+        String result = client.echo("hello world");
+        assertEquals("we should get the right answer from router", result, "echo hello world");
+
+    }
+
+
+
+}

Propchange: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date



Mime
View raw message