You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2018/06/25 10:45:23 UTC
[camel] 02/02: CAMEL-12580: camel-servicenow: suport
java.lang.String as output model
This is an automated email from the ASF dual-hosted git repository.
lburgazzoli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 4aeadf86e833dd52c165aec089401f418ded80cc
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Mon Jun 25 12:42:03 2018 +0200
CAMEL-12580: camel-servicenow: suport java.lang.String as output model
---
.../servicenow/AbstractServiceNowProcessor.java | 8 +++++-
.../camel/component/servicenow/ServiceNowTest.java | 32 ++++++++++++++++++++++
2 files changed, 39 insertions(+), 1 deletion(-)
diff --git a/components/camel-servicenow/camel-servicenow-component/src/main/java/org/apache/camel/component/servicenow/AbstractServiceNowProcessor.java b/components/camel-servicenow/camel-servicenow-component/src/main/java/org/apache/camel/component/servicenow/AbstractServiceNowProcessor.java
index 366c532..348b368 100644
--- a/components/camel-servicenow/camel-servicenow-component/src/main/java/org/apache/camel/component/servicenow/AbstractServiceNowProcessor.java
+++ b/components/camel-servicenow/camel-servicenow-component/src/main/java/org/apache/camel/component/servicenow/AbstractServiceNowProcessor.java
@@ -158,7 +158,13 @@ public abstract class AbstractServiceNowProcessor implements Processor {
}
protected Object unwrap(JsonNode node, Class<?> model) throws IOException {
- Object result;
+ if (model == String.class) {
+ // If the model is a String, let's just serialize it as
+ // a json string
+ return mapper.writeValueAsString(node);
+ }
+
+ final Object result;
if (node.isArray()) {
if (model.isInstance(Map.class)) {
diff --git a/components/camel-servicenow/camel-servicenow-component/src/test/java/org/apache/camel/component/servicenow/ServiceNowTest.java b/components/camel-servicenow/camel-servicenow-component/src/test/java/org/apache/camel/component/servicenow/ServiceNowTest.java
index fc46ce3..45524ba 100644
--- a/components/camel-servicenow/camel-servicenow-component/src/test/java/org/apache/camel/component/servicenow/ServiceNowTest.java
+++ b/components/camel-servicenow/camel-servicenow-component/src/test/java/org/apache/camel/component/servicenow/ServiceNowTest.java
@@ -130,6 +130,38 @@ public class ServiceNowTest extends ServiceNowTestSupport {
}
@Test
+ public void testRequestResponseAsString() throws Exception {
+ MockEndpoint mock = getMockEndpoint("mock:servicenow");
+
+ mock.reset();
+ mock.expectedMessageCount(1);
+
+ Incident incident = new Incident();
+ incident.setDescription("my incident");
+ incident.setShortDescription("An incident");
+ incident.setSeverity(1);
+ incident.setImpact(1);
+
+ template().sendBodyAndHeaders(
+ "direct:servicenow",
+ incident,
+ kvBuilder()
+ .put(ServiceNowConstants.RESOURCE, ServiceNowConstants.RESOURCE_TABLE)
+ .put(ServiceNowConstants.ACTION, ServiceNowConstants.ACTION_CREATE)
+ .put(ServiceNowConstants.REQUEST_MODEL, Incident.class)
+ .put(ServiceNowConstants.RESPONSE_MODEL, String.class)
+ .put(ServiceNowParams.PARAM_TABLE_NAME, "incident")
+ .build()
+ );
+
+ mock.assertIsSatisfied();
+
+ Object body = mock.getExchanges().get(0).getIn().getBody();
+ assertNotNull(body);
+ assertTrue(body instanceof String);
+ }
+
+ @Test
public void testVersionedApiRequest() throws Exception {
MockEndpoint mock = getMockEndpoint("mock:servicenow");