You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/08/05 09:04:46 UTC
camel git commit: CAMEL-10223: XmlRpc dataformat - Setting
request=true should also apply for marshal
Repository: camel
Updated Branches:
refs/heads/master 46d3e80af -> ede633299
CAMEL-10223: XmlRpc dataformat - Setting request=true should also apply for marshal
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ede63329
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ede63329
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ede63329
Branch: refs/heads/master
Commit: ede633299873f95e3fca9841ea22308f96dee39a
Parents: 46d3e80
Author: Claus Ibsen <da...@apache.org>
Authored: Fri Aug 5 11:04:35 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Aug 5 11:04:35 2016 +0200
----------------------------------------------------------------------
.../camel/model/dataformat/XmlRpcDataFormat.java | 2 +-
.../dataformat/xmlrpc/XmlRpcDataFormat.java | 10 ++++++++--
.../XmlRpcDataFormatConfiguration.java | 2 +-
.../dataformat/xmlrpc/XmlRpcDataFormatTest.java | 19 +++++++++++++++++--
4 files changed, 27 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/ede63329/camel-core/src/main/java/org/apache/camel/model/dataformat/XmlRpcDataFormat.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/dataformat/XmlRpcDataFormat.java b/camel-core/src/main/java/org/apache/camel/model/dataformat/XmlRpcDataFormat.java
index fa4acb3..b065876 100644
--- a/camel-core/src/main/java/org/apache/camel/model/dataformat/XmlRpcDataFormat.java
+++ b/camel-core/src/main/java/org/apache/camel/model/dataformat/XmlRpcDataFormat.java
@@ -52,7 +52,7 @@ public class XmlRpcDataFormat extends DataFormatDefinition {
}
/**
- * Whether to unmarshal request or response
+ * Whether to marshal/unmarshal request or response
* <p/>
* Is by default false
*/
http://git-wip-us.apache.org/repos/asf/camel/blob/ede63329/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormat.java b/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormat.java
index d04d651..0adac3b 100644
--- a/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormat.java
+++ b/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormat.java
@@ -76,8 +76,14 @@ public class XmlRpcDataFormat extends ServiceSupport implements DataFormat, Data
// need to check the object type
XMLWriter control = getXMLWriter(exchange, stream);
XmlRpcWriter writer = new XmlRpcWriter(xmlRpcStreamRequestConfig, control, typeFactory);
- if (graph instanceof XmlRpcRequest) {
- writer.writeRequest(xmlRpcStreamRequestConfig, (XmlRpcRequest)graph);
+
+ XmlRpcRequest request = null;
+ if (isRequest || graph instanceof XmlRpcRequest) {
+ request = exchange.getContext().getTypeConverter().mandatoryConvertTo(XmlRpcRequest.class, exchange, graph);
+ }
+
+ if (request != null) {
+ writer.writeRequest(xmlRpcStreamRequestConfig, request);
} else {
// write the result here directly
// TODO write the fault message here
http://git-wip-us.apache.org/repos/asf/camel/blob/ede63329/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/springboot/XmlRpcDataFormatConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/springboot/XmlRpcDataFormatConfiguration.java b/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/springboot/XmlRpcDataFormatConfiguration.java
index 40ee576..0311c42 100644
--- a/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/springboot/XmlRpcDataFormatConfiguration.java
+++ b/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/springboot/XmlRpcDataFormatConfiguration.java
@@ -27,7 +27,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
public class XmlRpcDataFormatConfiguration {
/**
- * Whether to unmarshal request or response Is by default false
+ * Whether to marshal/unmarshal request or response Is by default false
*/
private Boolean request = false;
http://git-wip-us.apache.org/repos/asf/camel/blob/ede63329/components/camel-xmlrpc/src/test/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormatTest.java
----------------------------------------------------------------------
diff --git a/components/camel-xmlrpc/src/test/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormatTest.java b/components/camel-xmlrpc/src/test/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormatTest.java
index d2345d7..381f499 100644
--- a/components/camel-xmlrpc/src/test/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormatTest.java
+++ b/components/camel-xmlrpc/src/test/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormatTest.java
@@ -18,6 +18,7 @@ package org.apache.camel.dataformat.xmlrpc;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.component.xmlrpc.XmlRpcConstants;
import org.apache.camel.component.xmlrpc.XmlRpcRequestImpl;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.apache.xmlrpc.XmlRpcRequest;
@@ -35,9 +36,23 @@ public class XmlRpcDataFormatTest extends CamelTestSupport {
assertEquals("Get a wrong request parameter size", 2, result.getParameterCount());
assertEquals("Get a wrong request parameter", 2, result.getParameter(1));
assertMockEndpointsSatisfied();
-
}
-
+
+ @Test
+ public void testRequestMessageFromList() throws Exception {
+ MockEndpoint mock = getMockEndpoint("mock:request");
+ mock.expectedMessageCount(1);
+
+ Object[] body = new Object[]{"you", 2};
+ XmlRpcRequest result = template.requestBodyAndHeader("direct:request", body, XmlRpcConstants.METHOD_NAME, "greet", XmlRpcRequest.class);
+ assertNotNull(result);
+
+ assertEquals("Get a wrong request operation name", "greet", result.getMethodName());
+ assertEquals("Get a wrong request parameter size", 2, result.getParameterCount());
+ assertEquals("Get a wrong request parameter", 2, result.getParameter(1));
+ assertMockEndpointsSatisfied();
+ }
+
@Test
public void testResponseMessage() throws Exception {
MockEndpoint mock = getMockEndpoint("mock:response");