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 2016/11/16 14:13:06 UTC
[1/3] camel git commit: CAMEL-10482: ServiceNow : add an option to
set inbound and outbound models
Repository: camel
Updated Branches:
refs/heads/camel-2.18.x 57dfcaf29 -> 7aecfac39
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowTableProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowTableProcessor.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowTableProcessor.java
index ee912ae..5390121 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowTableProcessor.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowTableProcessor.java
@@ -52,7 +52,7 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
private void retrieveRecord(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
final String tableName = in.getHeader(ServiceNowParams.PARAM_TABLE_NAME.getHeader(), config.getTable(), String.class);
- final Class<?> model = getModel(in, tableName);
+ final Class<?> responseModel = getResponseModel(in, tableName);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
Response response = ObjectHelper.isEmpty(sysId)
@@ -82,7 +82,7 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_VIEW, in)
.invoke(HttpMethod.GET);
- setBodyAndHeaders(exchange.getIn(), model, response);
+ setBodyAndHeaders(exchange.getIn(), responseModel, response);
}
/*
@@ -92,10 +92,11 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
private void createRecord(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
final String tableName = in.getHeader(ServiceNowParams.PARAM_TABLE_NAME.getHeader(), config.getTable(), String.class);
- final Class<?> model = getModel(in, tableName);
+ final Class<?> requestModel = getRequestModel(in, tableName);
+ final Class<?> responseModel = getResponseModel(in, tableName);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
- validateBody(in, model);
+ validateBody(in, requestModel);
Response response = client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
.path("now")
@@ -109,7 +110,7 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_VIEW, in)
.invoke(HttpMethod.POST, in.getMandatoryBody());
- setBodyAndHeaders(exchange.getIn(), model, response);
+ setBodyAndHeaders(exchange.getIn(), responseModel, response);
}
/*
@@ -119,10 +120,11 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
private void modifyRecord(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
final String tableName = in.getHeader(ServiceNowParams.PARAM_TABLE_NAME.getHeader(), config.getTable(), String.class);
- final Class<?> model = getModel(in, tableName);
+ final Class<?> requestModel = getRequestModel(in, tableName);
+ final Class<?> responseModel = getResponseModel(in, tableName);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
- validateBody(in, model);
+ validateBody(in, requestModel);
Response response = client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
.path("now")
@@ -137,7 +139,7 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_VIEW, in)
.invoke(HttpMethod.PUT, in.getMandatoryBody());
- setBodyAndHeaders(exchange.getIn(), model, response);
+ setBodyAndHeaders(exchange.getIn(), responseModel, response);
}
/*
@@ -147,7 +149,7 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
private void deleteRecord(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
final String tableName = in.getHeader(ServiceNowParams.PARAM_TABLE_NAME.getHeader(), config.getTable(), String.class);
- final Class<?> model = getModel(in, tableName);
+ final Class<?> responseModel = getResponseModel(in, tableName);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
Response response = client.reset()
@@ -158,7 +160,7 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
.path(ObjectHelper.notNull(sysId, "sysId"))
.invoke(HttpMethod.DELETE, null);
- setBodyAndHeaders(exchange.getIn(), model, response);
+ setBodyAndHeaders(exchange.getIn(), responseModel, response);
}
/*
@@ -168,10 +170,11 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
private void updateRecord(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
final String tableName = in.getHeader(ServiceNowParams.PARAM_TABLE_NAME.getHeader(), config.getTable(), String.class);
- final Class<?> model = getModel(in, tableName);
+ final Class<?> requestModel = getRequestModel(in, tableName);
+ final Class<?> responseModel = getResponseModel(in, tableName);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
- validateBody(in, model);
+ validateBody(in, requestModel);
Response response = client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
.path("now")
@@ -186,6 +189,6 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_VIEW, in)
.invoke("PATCH", in.getMandatoryBody());
- setBodyAndHeaders(exchange.getIn(), model, response);
+ setBodyAndHeaders(exchange.getIn(), responseModel, response);
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/ServiceNowImportSetTest.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/ServiceNowImportSetTest.java b/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/ServiceNowImportSetTest.java
new file mode 100644
index 0000000..098965c
--- /dev/null
+++ b/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/ServiceNowImportSetTest.java
@@ -0,0 +1,137 @@
+/**
+ * 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.servicenow;
+
+import java.util.List;
+import java.util.Map;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.camel.Message;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.junit.Ignore;
+import org.junit.Test;
+
+/**
+ * To set-up ServiceNow for this tests:
+ *
+ * 1. Create a new table with
+ * - id has to be set to u_imp_incidents (name does not matter)
+ * - inherit from sys_import_set_row
+ *
+ * 2. Add a new field to u_imp_incidents
+ * - name short_description
+ * - id should be automatically set to u_short_description
+ *
+ * 3. Create a new Transform Map
+ * - source table u_imp_incidents
+ * - target table incidents
+ * - Perform auto mapping, if it does not work map each field one by one
+ */
+@Ignore
+public class ServiceNowImportSetTest extends ServiceNowTestSupport {
+
+ @Test
+ public void testIncidentImport() throws Exception {
+ MockEndpoint mock = getMockEndpoint("mock:servicenow");
+
+ mock.reset();
+ mock.expectedMessageCount(1);
+
+ IncidentImportRequest incident = new IncidentImportRequest();
+ incident.shortDescription = "test";
+
+ template().sendBodyAndHeaders(
+ "direct:servicenow",
+ incident,
+ new KVBuilder()
+ .put(ServiceNowConstants.RESOURCE, ServiceNowConstants.RESOURCE_IMPORT)
+ .put(ServiceNowConstants.ACTION, ServiceNowConstants.ACTION_CREATE)
+ .put(ServiceNowConstants.REQUEST_MODEL, IncidentImportRequest.class)
+ .put(ServiceNowConstants.RESPONSE_MODEL, IncidentImportResponse.class)
+ .put(ServiceNowParams.PARAM_TABLE_NAME, "u_imp_incident")
+ .build()
+ );
+
+ mock.assertIsSatisfied();
+
+ Message in = mock.getExchanges().get(0).getIn();
+
+ // Meta data
+ Map<String, String> meta = in.getHeader(ServiceNowConstants.RESPONSE_META, Map.class);
+ assertNotNull(meta);
+ assertEquals("u_imp_incident", meta.get("staging_table"));
+
+ // Incidents
+ List<IncidentImportResponse> responses = in.getBody(List.class);
+ assertNotNull(responses);
+ assertEquals(1, responses.size());
+ assertEquals("inserted", responses.get(0).status);
+ assertEquals("imp_incidents", responses.get(0).transformMap);
+ assertEquals("incident", responses.get(0).table);
+ }
+
+ // *************************************************************************
+ //
+ // *************************************************************************
+
+ @Override
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ public void configure() {
+ from("direct:servicenow")
+ .to("servicenow:{{env:SERVICENOW_INSTANCE}}"
+ + "?userName={{env:SERVICENOW_USERNAME}}"
+ + "&password={{env:SERVICENOW_PASSWORD}}")
+ .to("log:org.apache.camel.component.servicenow?level=INFO&showAll=true")
+ .to("mock:servicenow");
+ }
+ };
+ }
+
+ // *************************************************************************
+ //
+ // *************************************************************************
+
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ private static final class IncidentImportRequest {
+ @JsonProperty("u_short_description")
+ public String shortDescription;
+ }
+
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ private static final class IncidentImportResponse {
+ @JsonProperty("transform_map")
+ public String transformMap;
+ @JsonProperty("table")
+ public String table;
+ @JsonProperty("display_name")
+ public String displayName;
+ @JsonProperty("display_value")
+ public String displayValue;
+ @JsonProperty("record_link")
+ public String recordLink;
+ @JsonProperty("status")
+ public String status;
+ @JsonProperty("sys_id")
+ public String sysId;
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/ServiceNowTest.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/ServiceNowTest.java b/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/ServiceNowTest.java
index 1f831c2..cf98c8e 100644
--- a/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/ServiceNowTest.java
+++ b/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/ServiceNowTest.java
@@ -14,13 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.camel.component.servicenow;
import java.util.UUID;
+import com.fasterxml.jackson.databind.JsonNode;
import org.apache.camel.CamelExecutionException;
import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.component.servicenow.model.Incident;
import org.junit.Test;
public class ServiceNowTest extends ServiceNowTestSupport {
@@ -89,6 +91,38 @@ public class ServiceNowTest extends ServiceNowTestSupport {
}
}
+ @Test
+ public void testRequestResponseModels() 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,
+ new KVBuilder()
+ .put(ServiceNowConstants.RESOURCE, ServiceNowConstants.RESOURCE_TABLE)
+ .put(ServiceNowConstants.ACTION, ServiceNowConstants.ACTION_CREATE)
+ .put(ServiceNowConstants.REQUEST_MODEL, Incident.class)
+ .put(ServiceNowConstants.RESPONSE_MODEL, JsonNode.class)
+ .put(ServiceNowParams.PARAM_TABLE_NAME, "incident")
+ .build()
+ );
+
+ mock.assertIsSatisfied();
+
+ Object body = mock.getExchanges().get(0).getIn().getBody();
+ assertNotNull(body);
+ assertTrue(body instanceof JsonNode);
+ }
+
// *************************************************************************
//
// *************************************************************************
@@ -100,10 +134,7 @@ public class ServiceNowTest extends ServiceNowTestSupport {
from("direct:servicenow")
.to("servicenow:{{env:SERVICENOW_INSTANCE}}"
+ "?userName={{env:SERVICENOW_USERNAME}}"
- + "&password={{env:SERVICENOW_PASSWORD}}"
- //+ "&oauthClientId={{env:SERVICENOW_OAUTH2_CLIENT_ID}}"
- //+ "&oauthClientSecret={{env:SERVICENOW_OAUTH2_CLIENT_SECRET}}"
- + "&model.incident=org.apache.camel.component.servicenow.model.Incident")
+ + "&password={{env:SERVICENOW_PASSWORD}}")
.to("log:org.apache.camel.component.servicenow?level=INFO&showAll=true")
.to("mock:servicenow");
}
[3/3] camel git commit: Fix Stringhelper vs ObjectHelper
Posted by lb...@apache.org.
Fix Stringhelper vs ObjectHelper
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/7aecfac3
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/7aecfac3
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/7aecfac3
Branch: refs/heads/camel-2.18.x
Commit: 7aecfac39b1fce87a5568561047b29b4a0671c1d
Parents: 6fa418d
Author: lburgazzoli <lb...@gmail.com>
Authored: Wed Nov 16 15:12:56 2016 +0100
Committer: lburgazzoli <lb...@gmail.com>
Committed: Wed Nov 16 15:12:56 2016 +0100
----------------------------------------------------------------------
.../camel/component/servicenow/AbstractServiceNowProcessor.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/7aecfac3/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/AbstractServiceNowProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/AbstractServiceNowProcessor.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/AbstractServiceNowProcessor.java
index 351eaec..a310eab 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/AbstractServiceNowProcessor.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/AbstractServiceNowProcessor.java
@@ -90,8 +90,8 @@ public abstract class AbstractServiceNowProcessor implements Processor {
}
// Sanitize parts
- String uri = StringHelper.between(parts[0], "<", ">");
- String rel = StringHelper.removeQuotes(StringHelper.after(parts[1], "="));
+ String uri = ObjectHelper.between(parts[0], "<", ">");
+ String rel = StringHelper.removeQuotes(ObjectHelper.after(parts[1], "="));
Map<String, Object> query = URISupport.parseQuery(uri);
Object offset = query.get(ServiceNowParams.SYSPARM_OFFSET.getId());
[2/3] camel git commit: CAMEL-10482: ServiceNow : add an option to
set inbound and outbound models
Posted by lb...@apache.org.
CAMEL-10482: ServiceNow : add an option to set inbound and outbound models
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/6fa418de
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/6fa418de
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/6fa418de
Branch: refs/heads/camel-2.18.x
Commit: 6fa418de99f9be769ad6fc5a92524f7e39fe3cb8
Parents: 57dfcaf
Author: lburgazzoli <lb...@gmail.com>
Authored: Wed Nov 16 15:05:15 2016 +0100
Committer: lburgazzoli <lb...@gmail.com>
Committed: Wed Nov 16 15:08:14 2016 +0100
----------------------------------------------------------------------
.../ServiceNowComponentConfiguration.java | 421 +++++++++++++++++++
.../src/main/docs/servicenow-component.adoc | 8 +-
.../servicenow/AbstractServiceNowProcessor.java | 113 +++--
.../servicenow/ServiceNowComponent.java | 83 ++--
.../servicenow/ServiceNowConfiguration.java | 144 +++++--
.../servicenow/ServiceNowConstants.java | 3 +
.../fuji/FujiServiceNowAggregateProcessor.java | 4 +-
.../fuji/FujiServiceNowImportSetProcessor.java | 10 +-
.../releases/fuji/FujiServiceNowProcessor.java | 13 +-
.../fuji/FujiServiceNowTableProcessor.java | 30 +-
.../HelsinkiServiceNowAggregateProcessor.java | 4 +-
.../HelsinkiServiceNowAttachmentProcessor.java | 13 +-
.../HelsinkiServiceNowImportSetProcessor.java | 11 +-
.../HelsinkiServiceNowMiscProcessor.java | 8 +-
.../HelsinkiServiceNowScorecardProcessor.java | 4 +-
...iServiceNowServiceCatalogCartsProcessor.java | 24 +-
...iceNowServiceCatalogCategoriesProcessor.java | 4 +-
...iServiceNowServiceCatalogItemsProcessor.java | 20 +-
...lsinkiServiceNowServiceCatalogProcessor.java | 8 +-
.../HelsinkiServiceNowTableProcessor.java | 29 +-
.../servicenow/ServiceNowImportSetTest.java | 137 ++++++
.../component/servicenow/ServiceNowTest.java | 41 +-
22 files changed, 926 insertions(+), 206 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components-starter/camel-servicenow-starter/src/main/java/org/apache/camel/component/servicenow/springboot/ServiceNowComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components-starter/camel-servicenow-starter/src/main/java/org/apache/camel/component/servicenow/springboot/ServiceNowComponentConfiguration.java b/components-starter/camel-servicenow-starter/src/main/java/org/apache/camel/component/servicenow/springboot/ServiceNowComponentConfiguration.java
index 76e8d4a..c9f7b2a 100644
--- a/components-starter/camel-servicenow-starter/src/main/java/org/apache/camel/component/servicenow/springboot/ServiceNowComponentConfiguration.java
+++ b/components-starter/camel-servicenow-starter/src/main/java/org/apache/camel/component/servicenow/springboot/ServiceNowComponentConfiguration.java
@@ -16,7 +16,12 @@
*/
package org.apache.camel.component.servicenow.springboot;
+import java.util.Map;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.camel.component.servicenow.ServiceNowComponent;
+import org.apache.camel.component.servicenow.ServiceNowRelease;
import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.context.properties.NestedConfigurationProperty;
/**
* The servicenow component is used to integrate Camel with ServiceNow cloud
@@ -28,6 +33,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
public class ServiceNowComponentConfiguration {
/**
+ * The ServiceNow default configuration
+ */
+ private ServiceNowConfigurationNestedConfiguration configuration;
+ /**
* The ServiceNow REST API url
*/
private String apiUrl;
@@ -52,6 +61,15 @@ public class ServiceNowComponentConfiguration {
*/
private String oauthTokenUrl;
+ public ServiceNowConfigurationNestedConfiguration getConfiguration() {
+ return configuration;
+ }
+
+ public void setConfiguration(
+ ServiceNowConfigurationNestedConfiguration configuration) {
+ this.configuration = configuration;
+ }
+
public String getApiUrl() {
return apiUrl;
}
@@ -99,4 +117,407 @@ public class ServiceNowComponentConfiguration {
public void setOauthTokenUrl(String oauthTokenUrl) {
this.oauthTokenUrl = oauthTokenUrl;
}
+
+ public static class ServiceNowConfigurationNestedConfiguration {
+ public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.servicenow.ServiceNowConfiguration.class;
+ /**
+ * ServiceNow user account name, MUST be provided
+ */
+ private String userName;
+ /**
+ * The ServiceNow REST API url
+ */
+ private String apiUrl;
+ /**
+ * ServiceNow account password, MUST be provided
+ */
+ private String password;
+ /**
+ * OAuth2 ClientID
+ */
+ private String oauthClientId;
+ /**
+ * OAuth2 ClientSecret
+ */
+ private String oauthClientSecret;
+ /**
+ * OAuth token Url
+ */
+ private String oauthTokenUrl;
+ /**
+ * The default resource, can be overridden by header
+ * CamelServiceNowResource
+ */
+ private String resource;
+ /**
+ * The default table, can be overridden by header CamelServiceNowTable
+ */
+ private String table;
+ /**
+ * True to exclude Table API links for reference fields (default: false)
+ */
+ private Boolean excludeReferenceLink;
+ /**
+ * True to suppress auto generation of system fields (default: false)
+ */
+ private Boolean suppressAutoSysField;
+ /**
+ * Set this value to true to remove the Link header from the response.
+ * The Link header allows you to request additional pages of data when
+ * the number of records matching your query exceeds the query limit
+ */
+ private Boolean suppressPaginationHeader;
+ /**
+ * Set this parameter to true to return all scores for a scorecard. If a
+ * value is not specified, this parameter defaults to false and returns
+ * only the most recent score value.
+ */
+ private Boolean includeScores;
+ /**
+ * Set this parameter to true to always return all available aggregates
+ * for an indicator, including when an aggregate has already been
+ * applied. If a value is not specified, this parameter defaults to
+ * false and returns no aggregates.
+ */
+ private Boolean includeAggregates;
+ /**
+ * Set this parameter to true to return all available breakdowns for an
+ * indicator. If a value is not specified, this parameter defaults to
+ * false and returns no breakdowns.
+ */
+ private Boolean includeAvailableBreakdowns;
+ /**
+ * Set this parameter to true to return all available aggregates for an
+ * indicator when no aggregate has been applied. If a value is not
+ * specified, this parameter defaults to false and returns no
+ * aggregates.
+ */
+ private Boolean includeAvailableAggregates;
+ /**
+ * Set this parameter to true to return all notes associated with the
+ * score. The note element contains the note text as well as the author
+ * and timestamp when the note was added.
+ */
+ private Boolean includeScoreNotes;
+ /**
+ * Set this parameter to true to return only scorecards that are
+ * favorites of the querying user.
+ */
+ private Boolean favorites;
+ /**
+ * Set this parameter to true to return only scorecards for key
+ * indicators.
+ */
+ private Boolean key;
+ /**
+ * Set this parameter to true to return only scorecards that have a
+ * target.
+ */
+ private Boolean target;
+ /**
+ * Set this parameter to true to return only scorecards where the
+ * indicator Display field is selected. Set this parameter to all to
+ * return scorecards with any Display field value. This parameter is
+ * true by default.
+ */
+ private String display = "true";
+ /**
+ * Enter the maximum number of scorecards each query can return. By
+ * default this value is 10, and the maximum is 100.
+ */
+ private Integer perPage;
+ /**
+ * Specify the value to use when sorting results. By default, queries
+ * sort records by value.
+ */
+ private String sortBy;
+ /**
+ * Specify the sort direction, ascending or descending. By default,
+ * queries sort records in descending order. Use sysparm_sortdir=asc to
+ * sort in ascending order.
+ */
+ private String sortDir;
+ /**
+ * Return the display value (true), actual value (false), or both (all)
+ * for reference fields (default: false)
+ */
+ private String displayValue = "false";
+ /**
+ * True to set raw value of input fields (default: false)
+ */
+ private Boolean inputDisplayValue;
+ /**
+ * Defines the request model
+ */
+ private Map requestModels;
+ /**
+ * Sets Jackson's ObjectMapper to use for request/reply
+ */
+ @NestedConfigurationProperty
+ private ObjectMapper mapper;
+ /**
+ * The ServiceNow release to target, default to Helsinki See
+ * https://docs.servicenow.com
+ */
+ private ServiceNowRelease release = ServiceNowRelease.HELSINKI;
+ /**
+ * Gets only those categories whose parent is a catalog.
+ */
+ private Boolean topLevelOnly;
+ private Map models;
+ /**
+ * Defines the response model
+ */
+ private Map responseModels;
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getApiUrl() {
+ return apiUrl;
+ }
+
+ public void setApiUrl(String apiUrl) {
+ this.apiUrl = apiUrl;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getOauthClientId() {
+ return oauthClientId;
+ }
+
+ public void setOauthClientId(String oauthClientId) {
+ this.oauthClientId = oauthClientId;
+ }
+
+ public String getOauthClientSecret() {
+ return oauthClientSecret;
+ }
+
+ public void setOauthClientSecret(String oauthClientSecret) {
+ this.oauthClientSecret = oauthClientSecret;
+ }
+
+ public String getOauthTokenUrl() {
+ return oauthTokenUrl;
+ }
+
+ public void setOauthTokenUrl(String oauthTokenUrl) {
+ this.oauthTokenUrl = oauthTokenUrl;
+ }
+
+ public String getResource() {
+ return resource;
+ }
+
+ public void setResource(String resource) {
+ this.resource = resource;
+ }
+
+ public String getTable() {
+ return table;
+ }
+
+ public void setTable(String table) {
+ this.table = table;
+ }
+
+ public Boolean getExcludeReferenceLink() {
+ return excludeReferenceLink;
+ }
+
+ public void setExcludeReferenceLink(Boolean excludeReferenceLink) {
+ this.excludeReferenceLink = excludeReferenceLink;
+ }
+
+ public Boolean getSuppressAutoSysField() {
+ return suppressAutoSysField;
+ }
+
+ public void setSuppressAutoSysField(Boolean suppressAutoSysField) {
+ this.suppressAutoSysField = suppressAutoSysField;
+ }
+
+ public Boolean getSuppressPaginationHeader() {
+ return suppressPaginationHeader;
+ }
+
+ public void setSuppressPaginationHeader(Boolean suppressPaginationHeader) {
+ this.suppressPaginationHeader = suppressPaginationHeader;
+ }
+
+ public Boolean getIncludeScores() {
+ return includeScores;
+ }
+
+ public void setIncludeScores(Boolean includeScores) {
+ this.includeScores = includeScores;
+ }
+
+ public Boolean getIncludeAggregates() {
+ return includeAggregates;
+ }
+
+ public void setIncludeAggregates(Boolean includeAggregates) {
+ this.includeAggregates = includeAggregates;
+ }
+
+ public Boolean getIncludeAvailableBreakdowns() {
+ return includeAvailableBreakdowns;
+ }
+
+ public void setIncludeAvailableBreakdowns(
+ Boolean includeAvailableBreakdowns) {
+ this.includeAvailableBreakdowns = includeAvailableBreakdowns;
+ }
+
+ public Boolean getIncludeAvailableAggregates() {
+ return includeAvailableAggregates;
+ }
+
+ public void setIncludeAvailableAggregates(
+ Boolean includeAvailableAggregates) {
+ this.includeAvailableAggregates = includeAvailableAggregates;
+ }
+
+ public Boolean getIncludeScoreNotes() {
+ return includeScoreNotes;
+ }
+
+ public void setIncludeScoreNotes(Boolean includeScoreNotes) {
+ this.includeScoreNotes = includeScoreNotes;
+ }
+
+ public Boolean getFavorites() {
+ return favorites;
+ }
+
+ public void setFavorites(Boolean favorites) {
+ this.favorites = favorites;
+ }
+
+ public Boolean getKey() {
+ return key;
+ }
+
+ public void setKey(Boolean key) {
+ this.key = key;
+ }
+
+ public Boolean getTarget() {
+ return target;
+ }
+
+ public void setTarget(Boolean target) {
+ this.target = target;
+ }
+
+ public String getDisplay() {
+ return display;
+ }
+
+ public void setDisplay(String display) {
+ this.display = display;
+ }
+
+ public Integer getPerPage() {
+ return perPage;
+ }
+
+ public void setPerPage(Integer perPage) {
+ this.perPage = perPage;
+ }
+
+ public String getSortBy() {
+ return sortBy;
+ }
+
+ public void setSortBy(String sortBy) {
+ this.sortBy = sortBy;
+ }
+
+ public String getSortDir() {
+ return sortDir;
+ }
+
+ public void setSortDir(String sortDir) {
+ this.sortDir = sortDir;
+ }
+
+ public String getDisplayValue() {
+ return displayValue;
+ }
+
+ public void setDisplayValue(String displayValue) {
+ this.displayValue = displayValue;
+ }
+
+ public Boolean getInputDisplayValue() {
+ return inputDisplayValue;
+ }
+
+ public void setInputDisplayValue(Boolean inputDisplayValue) {
+ this.inputDisplayValue = inputDisplayValue;
+ }
+
+ public Map getRequestModels() {
+ return requestModels;
+ }
+
+ public void setRequestModels(Map requestModels) {
+ this.requestModels = requestModels;
+ }
+
+ public ObjectMapper getMapper() {
+ return mapper;
+ }
+
+ public void setMapper(ObjectMapper mapper) {
+ this.mapper = mapper;
+ }
+
+ public ServiceNowRelease getRelease() {
+ return release;
+ }
+
+ public void setRelease(ServiceNowRelease release) {
+ this.release = release;
+ }
+
+ public Boolean getTopLevelOnly() {
+ return topLevelOnly;
+ }
+
+ public void setTopLevelOnly(Boolean topLevelOnly) {
+ this.topLevelOnly = topLevelOnly;
+ }
+
+ public Map getModels() {
+ return models;
+ }
+
+ public void setModels(Map models) {
+ this.models = models;
+ }
+
+ public Map getResponseModels() {
+ return responseModels;
+ }
+
+ public void setResponseModels(Map responseModels) {
+ this.responseModels = responseModels;
+ }
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/docs/servicenow-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/docs/servicenow-component.adoc b/components/camel-servicenow/src/main/docs/servicenow-component.adoc
index 7d15c0b..5ef7483 100644
--- a/components/camel-servicenow/src/main/docs/servicenow-component.adoc
+++ b/components/camel-servicenow/src/main/docs/servicenow-component.adoc
@@ -36,7 +36,7 @@ Options
// component options: START
-The ServiceNow component supports 6 options which are listed below.
+The ServiceNow component supports 7 options which are listed below.
@@ -44,6 +44,7 @@ The ServiceNow component supports 6 options which are listed below.
[width="100%",cols="2,1m,7",options="header"]
|=======================================================================
| Name | Java Type | Description
+| configuration | ServiceNowConfiguration | The ServiceNow default configuration
| apiUrl | String | The ServiceNow REST API url
| userName | String | ServiceNow user account name
| password | String | ServiceNow account password
@@ -56,7 +57,7 @@ The ServiceNow component supports 6 options which are listed below.
// endpoint options: START
-The ServiceNow component supports 31 endpoint options which are listed below:
+The ServiceNow component supports 32 endpoint options which are listed below:
{% raw %}
[width="100%",cols="2,1,1m,1m,5",options="header"]
@@ -74,10 +75,11 @@ The ServiceNow component supports 31 endpoint options which are listed below:
| includeScores | producer | | Boolean | Set this parameter to true to return all scores for a scorecard. If a value is not specified this parameter defaults to false and returns only the most recent score value.
| inputDisplayValue | producer | | Boolean | True to set raw value of input fields (default: false)
| key | producer | | Boolean | Set this parameter to true to return only scorecards for key indicators.
-| models | producer | | String | Defines the default model to use for a table
| perPage | producer | 10 | Integer | Enter the maximum number of scorecards each query can return. By default this value is 10 and the maximum is 100.
| release | producer | HELSINKI | ServiceNowRelease | The ServiceNow release to target default to Helsinki See https://docs.servicenow.com
+| requestModels | producer | | String | Defines the request model
| resource | producer | | String | The default resource can be overridden by header CamelServiceNowResource
+| responseModels | producer | | String | Defines the response model
| sortBy | producer | | String | Specify the value to use when sorting results. By default queries sort records by value.
| sortDir | producer | | String | Specify the sort direction ascending or descending. By default queries sort records in descending order. Use sysparm_sortdir=asc to sort in ascending order.
| suppressAutoSysField | producer | | Boolean | True to suppress auto generation of system fields (default: false)
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/AbstractServiceNowProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/AbstractServiceNowProcessor.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/AbstractServiceNowProcessor.java
index 56183b4..351eaec 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/AbstractServiceNowProcessor.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/AbstractServiceNowProcessor.java
@@ -18,6 +18,8 @@ package org.apache.camel.component.servicenow;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.ws.rs.core.HttpHeaders;
@@ -53,10 +55,10 @@ public abstract class AbstractServiceNowProcessor implements Processor {
this.dispatchers = new ArrayList<>();
}
- protected AbstractServiceNowProcessor setBodyAndHeaders(Message message, Class<?> model, Response response) throws Exception {
+ protected AbstractServiceNowProcessor setBodyAndHeaders(Message message, Class<?> responseModel, Response response) throws Exception {
if (response != null) {
- setHeaders(message, model, response);
- setBody(message, model, response);
+ setHeaders(message, responseModel, response);
+ setBody(message, responseModel, response);
}
return this;
@@ -78,7 +80,7 @@ public abstract class AbstractServiceNowProcessor implements Processor {
// *********************************
- protected AbstractServiceNowProcessor setHeaders(Message message, Class<?> model, Response response) throws Exception {
+ protected AbstractServiceNowProcessor setHeaders(Message message, Class<?> responseModel, Response response) throws Exception {
List<String> links = response.getStringHeaders().get(HttpHeaders.LINK);
if (links != null) {
for (String link : links) {
@@ -88,8 +90,8 @@ public abstract class AbstractServiceNowProcessor implements Processor {
}
// Sanitize parts
- String uri = ObjectHelper.between(parts[0], "<", ">");
- String rel = StringHelper.removeQuotes(ObjectHelper.after(parts[1], "="));
+ String uri = StringHelper.between(parts[0], "<", ">");
+ String rel = StringHelper.removeQuotes(StringHelper.after(parts[1], "="));
Map<String, Object> query = URISupport.parseQuery(uri);
Object offset = query.get(ServiceNowParams.SYSPARM_OFFSET.getId());
@@ -126,8 +128,9 @@ public abstract class AbstractServiceNowProcessor implements Processor {
copyHeader(response, HttpHeaders.CONTENT_TYPE, message, ServiceNowConstants.CONTENT_TYPE);
copyHeader(response, HttpHeaders.CONTENT_ENCODING, message, ServiceNowConstants.CONTENT_ENCODING);
- if (model != null) {
- message.getHeaders().putIfAbsent(ServiceNowConstants.MODEL, model.getName());
+ if (responseModel != null) {
+ message.getHeaders().putIfAbsent(ServiceNowConstants.MODEL, responseModel.getName());
+ message.getHeaders().putIfAbsent(ServiceNowConstants.RESPONSE_MODEL, responseModel.getName());
}
return this;
@@ -140,11 +143,33 @@ public abstract class AbstractServiceNowProcessor implements Processor {
protected AbstractServiceNowProcessor setBody(Message message, Class<?> model, Response response) throws Exception {
if (message != null && response != null) {
if (ObjectHelper.isNotEmpty(response.getHeaderString(HttpHeaders.CONTENT_TYPE))) {
- JsonNode node = response.readEntity(JsonNode.class);
- Object body = unwrap(node, model);
+ JsonNode root = response.readEntity(JsonNode.class);
+ Map<String, String> responseAttributes = null;
+
+ if (root != null) {
+ Iterator<Map.Entry<String, JsonNode>> fields = root.fields();
+ while(fields.hasNext()) {
+ final Map.Entry<String, JsonNode> entry = fields.next();
+ final String key = entry.getKey();
+ final JsonNode node = entry.getValue();
+
+ if (ObjectHelper.equal("result", key, true)) {
+ Object body = unwrap(node, model);
+ if (body != null) {
+ message.setBody(body);
+ }
+ } else {
+ if (responseAttributes == null) {
+ responseAttributes = new HashMap<>();
+ }
+
+ responseAttributes.put(key, node.textValue());
+ }
+ }
- if (body != null) {
- message.setBody(body);
+ if (responseAttributes != null) {
+ message.setHeader(ServiceNowConstants.RESPONSE_META, responseAttributes);
+ }
}
}
}
@@ -167,25 +192,20 @@ public abstract class AbstractServiceNowProcessor implements Processor {
return this;
}
- protected Object unwrap(JsonNode answer, Class<?> model) throws IOException {
- Object result = null;
-
- if (answer != null) {
- JsonNode node = answer.get("result");
- if (node != null) {
- if (node.isArray()) {
- if (model.isInstance(Map.class)) {
- // If the model is a Map, there's no need to use any
- // specific JavaType to instruct Jackson about the
- // expected element type
- result = mapper.treeToValue(node, List.class);
- } else {
- result = mapper.readValue(node.traverse(), javaTypeCache.get(model));
- }
- } else {
- result = mapper.treeToValue(node, model);
- }
+ protected Object unwrap(JsonNode node, Class<?> model) throws IOException {
+ Object result;
+
+ if (node.isArray()) {
+ if (model.isInstance(Map.class)) {
+ // If the model is a Map, there's no need to use any
+ // specific JavaType to instruct Jackson about the
+ // expected element type
+ result = mapper.treeToValue(node, List.class);
+ } else {
+ result = mapper.readValue(node.traverse(), javaTypeCache.get(model));
}
+ } else {
+ result = mapper.treeToValue(node, model);
}
return result;
@@ -241,15 +261,34 @@ public abstract class AbstractServiceNowProcessor implements Processor {
}
}
- protected Class<?> getModel(Message message) {
- return getModel(message, null);
+ protected Class<?> getRequestModel(Message message) {
+ return getRequestModel(message, null);
}
- protected Class<?> getModel(Message message, String modelName) {
- return message.getHeader(
- ServiceNowConstants.MODEL,
- ObjectHelper.isEmpty(modelName) ? Map.class : config.getModel(modelName, Map.class),
- Class.class);
+ protected Class<?> getRequestModel(Message message, String modelName) {
+ Class<?> model = message.getHeader(ServiceNowConstants.REQUEST_MODEL, Class.class);
+ if (model == null) {
+ model = message.getHeader(ServiceNowConstants.MODEL, Class.class);
+ }
+
+ return model != null
+ ? model
+ : ObjectHelper.isEmpty(modelName) ? Map.class : config.getRequestModel(modelName, Map.class);
+ }
+
+ protected Class<?> getResponseModel(Message message) {
+ return getRequestModel(message, null);
+ }
+
+ protected Class<?> getResponseModel(Message message, String modelName) {
+ Class<?> model = message.getHeader(ServiceNowConstants.RESPONSE_MODEL, Class.class);
+ if (model == null) {
+ model = message.getHeader(ServiceNowConstants.MODEL, Class.class);
+ }
+
+ return model != null
+ ? model
+ : ObjectHelper.isEmpty(modelName) ? Map.class : config.getResponseModel(modelName, Map.class);
}
// *************************************************************************
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowComponent.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowComponent.java
index 74efddf..4690eee 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowComponent.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowComponent.java
@@ -29,21 +29,18 @@ import org.apache.camel.util.IntrospectionSupport;
*/
public class ServiceNowComponent extends UriEndpointComponent {
- private String userName;
- private String password;
- private String oauthClientId;
- private String oauthClientSecret;
- private String oauthTokenUrl;
- private String apiUrl;
+ private ServiceNowConfiguration configuration;
public ServiceNowComponent() {
super(ServiceNowEndpoint.class);
+
+ this.configuration = new ServiceNowConfiguration();
}
@Override
protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
final CamelContext context = getCamelContext();
- final ServiceNowConfiguration configuration = new ServiceNowConfiguration();
+ final ServiceNowConfiguration configuration = this.configuration.copy();
Map<String, Object> models = IntrospectionSupport.extractProperties(parameters, "model.");
for (Map.Entry<String, Object> entry : models.entrySet()) {
@@ -52,97 +49,107 @@ public class ServiceNowComponent extends UriEndpointComponent {
EndpointHelper.resolveParameter(context, (String)entry.getValue(), Class.class));
}
- setProperties(configuration, parameters);
-
- if (configuration.getUserName() == null) {
- configuration.setUserName(userName);
- }
- if (configuration.getPassword() == null) {
- configuration.setPassword(password);
- }
- if (configuration.getOauthClientId() == null) {
- configuration.setOauthClientId(oauthClientId);
+ Map<String, Object> requestModels = IntrospectionSupport.extractProperties(parameters, "requestModel.");
+ for (Map.Entry<String, Object> entry : requestModels.entrySet()) {
+ configuration.addRequestModel(
+ entry.getKey(),
+ EndpointHelper.resolveParameter(context, (String)entry.getValue(), Class.class));
}
- if (configuration.getOauthClientSecret() == null) {
- configuration.setOauthClientSecret(oauthClientSecret);
+
+ Map<String, Object> responseModels = IntrospectionSupport.extractProperties(parameters, "responseModel.");
+ for (Map.Entry<String, Object> entry : requestModels.entrySet()) {
+ configuration.addResponseModel(
+ entry.getKey(),
+ EndpointHelper.resolveParameter(context, (String)entry.getValue(), Class.class));
}
+ setProperties(configuration, parameters);
+
String instanceName = getCamelContext().resolvePropertyPlaceholders(remaining);
if (!configuration.hasApiUrl()) {
- configuration.setApiUrl(apiUrl != null
- ? apiUrl
- : String.format("https://%s.service-now.com/api", instanceName)
- );
+ configuration.setApiUrl(String.format("https://%s.service-now.com/api", instanceName));
}
if (!configuration.hasOautTokenUrl()) {
- configuration.setOauthTokenUrl(oauthTokenUrl != null
- ? oauthTokenUrl
- : String.format("https://%s.service-now.com/oauth_token.do", instanceName)
- );
+ configuration.setOauthTokenUrl(String.format("https://%s.service-now.com/oauth_token.do", instanceName));
}
return new ServiceNowEndpoint(uri, this, configuration, instanceName);
}
+ public ServiceNowConfiguration getConfiguration() {
+ return configuration;
+ }
+
+ /**
+ * The ServiceNow default configuration
+ */
+ public void setConfiguration(ServiceNowConfiguration configuration) {
+ this.configuration = configuration;
+ }
+
public String getApiUrl() {
- return apiUrl;
+ return configuration.getApiUrl();
}
/**
* The ServiceNow REST API url
*/
public void setApiUrl(String apiUrl) {
- this.apiUrl = apiUrl;
+ configuration.setApiUrl(apiUrl);
}
public String getUserName() {
- return userName;
+ return configuration.getUserName();
}
/**
* ServiceNow user account name
*/
public void setUserName(String userName) {
- this.userName = userName;
+ configuration.setUserName(userName);
}
public String getPassword() {
- return password;
+ return configuration.getPassword();
}
/**
* ServiceNow account password
*/
public void setPassword(String password) {
- this.password = password;
+ configuration.setPassword(password);
}
public String getOauthClientId() {
- return oauthClientId;
+ return configuration.getOauthClientId();
}
/**
* OAuth2 ClientID
*/
public void setOauthClientId(String oauthClientId) {
- this.oauthClientId = oauthClientId;
+ configuration.setOauthClientId(oauthClientId);
+ }
+
+ public String getOauthClientSecret() {
+ return configuration.getOauthClientSecret();
}
/**
* OAuth2 ClientSecret
*/
public void setOauthClientSecret(String oauthClientSecret) {
- this.oauthClientSecret = oauthClientSecret;
+ configuration.setOauthClientSecret(oauthClientSecret);
}
public String getOauthTokenUrl() {
- return oauthTokenUrl;
+ return configuration.getOauthTokenUrl();
}
/**
* OAuth token Url
*/
public void setOauthTokenUrl(String oauthTokenUrl) {
- this.oauthTokenUrl = oauthTokenUrl;
+ configuration.setOauthTokenUrl(oauthTokenUrl);
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowConfiguration.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowConfiguration.java
index 9abfdfd..c82735b 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowConfiguration.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowConfiguration.java
@@ -22,13 +22,14 @@ import java.util.Map;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.camel.RuntimeCamelException;
import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.UriParam;
import org.apache.camel.spi.UriParams;
import org.apache.camel.util.ObjectHelper;
@UriParams
-public class ServiceNowConfiguration {
+public class ServiceNowConfiguration implements Cloneable {
private static final ObjectMapper MAPPER = new ObjectMapper()
.configure(
@@ -90,8 +91,10 @@ public class ServiceNowConfiguration {
private String displayValue = "false";
@UriParam
private Boolean inputDisplayValue = false;
- @UriParam(prefix = "model.", multiValue = true, javaType = "java.lang.String")
- private Map<String, Class<?>> models;
+ @UriParam(prefix = "request-model.", multiValue = true, javaType = "java.lang.String")
+ private Map<String, Class<?>> requestModels;
+ @UriParam(prefix = "response-model.", multiValue = true, javaType = "java.lang.String")
+ private Map<String, Class<?>> responseModels;
@UriParam(label = "advanced")
private ObjectMapper mapper = MAPPER;
@UriParam(defaultValue = "HELSINKI", enums = "FUJI,GENEVA,HELSINKI")
@@ -414,37 +417,8 @@ public class ServiceNowConfiguration {
this.inputDisplayValue = inputDisplayValue;
}
- public Map<String, Class<?>> getModels() {
- return models;
- }
-
- /**
- * Defines the default model to use for a table
- */
- public void setModels(Map<String, Class<?>> models) {
- this.models = models;
- }
-
- public void addModel(String name, Class<?> type) {
- if (this.models == null) {
- this.models = new HashMap<>();
- }
-
- this.models.put(name, type);
- }
-
- public Class<?> getModel(String name) {
- return getModel(name, null);
- }
-
- public Class<?> getModel(String name, Class<?> defaultType) {
- Class<?> model = defaultType;
-
- if (this.models != null && this.models.containsKey(name)) {
- model = this.models.get(name);
- }
-
- return model;
+ public Map<String, Class<?>> getRequestModels() {
+ return requestModels;
}
/**
@@ -485,4 +459,106 @@ public class ServiceNowConfiguration {
public void setTopLevelOnly(Boolean topLevelOnly) {
this.topLevelOnly = topLevelOnly;
}
+
+ // *************************************************
+ //
+ // *************************************************
+
+ public void setModels(Map<String, Class<?>> models) {
+ setRequestModels(models);
+ setResponseModels(models);
+ }
+
+ public void addModel(String name, Class<?> type) {
+ addRequestModel(name, type);
+ addResponseModel(name, type);
+ }
+
+ // *************************************************
+ // Request model
+ // *************************************************
+
+ /**
+ * Defines the request model
+ */
+ public void setRequestModels(Map<String, Class<?>> models) {
+ if (this.requestModels == null) {
+ this.requestModels = new HashMap<>();
+ }
+
+ this.requestModels.clear();
+ this.requestModels.putAll(models);
+ }
+
+ public void addRequestModel(String name, Class<?> type) {
+ if (this.requestModels == null) {
+ this.requestModels = new HashMap<>();
+ }
+
+ this.requestModels.put(name, type);
+ }
+
+ public Class<?> getRequestModel(String name) {
+ return getRequestModel(name, null);
+ }
+
+ public Class<?> getRequestModel(String name, Class<?> defaultType) {
+ Class<?> model = defaultType;
+
+ if (this.requestModels != null && this.requestModels.containsKey(name)) {
+ model = this.requestModels.get(name);
+ }
+
+ return model;
+ }
+
+ // *************************************************
+ // Response model
+ // *************************************************
+
+ /**
+ * Defines the response model
+ */
+ public void setResponseModels(Map<String, Class<?>> models) {
+ if (this.responseModels == null) {
+ this.responseModels = new HashMap<>();
+ }
+
+ this.responseModels.putAll(models);
+ }
+
+ public void addResponseModel(String name, Class<?> type) {
+ if (this.responseModels == null) {
+ this.responseModels = new HashMap<>();
+ }
+
+ this.responseModels.clear();
+ this.responseModels.put(name, type);
+ }
+
+ public Class<?> getResponseModel(String name) {
+ return getResponseModel(name, null);
+ }
+
+ public Class<?> getResponseModel(String name, Class<?> defaultType) {
+ Class<?> model = defaultType;
+
+ if (this.responseModels != null && this.responseModels.containsKey(name)) {
+ model = this.responseModels.get(name);
+ }
+
+ return model;
+ }
+
+ // *************************************************
+ //
+ // *************************************************
+
+ public ServiceNowConfiguration copy() {
+ try {
+ return (ServiceNowConfiguration)super.clone();
+ } catch (CloneNotSupportedException e) {
+ throw new RuntimeCamelException(e);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowConstants.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowConstants.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowConstants.java
index 5251fc7..72c3ccd 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowConstants.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowConstants.java
@@ -23,6 +23,8 @@ public final class ServiceNowConstants {
public static final String ACTION = "CamelServiceNowAction";
public static final String ACTION_SUBJECT = "CamelServiceNowActionSubject";
public static final String MODEL = "CamelServiceNowModel";
+ public static final String REQUEST_MODEL = "CamelServiceNowRequestModel";
+ public static final String RESPONSE_MODEL = "CamelServiceNowResponseModel";
public static final String OFFSET_NEXT = "CamelServiceNowOffsetNext";
public static final String OFFSET_PREV = "CamelServiceNowOffsetPrev";
public static final String OFFSET_FIRST = "CamelServiceNowOffsetFirst";
@@ -30,6 +32,7 @@ public final class ServiceNowConstants {
public static final String CONTENT_TYPE = "CamelServiceNowContentType";
public static final String CONTENT_ENCODING = "CamelServiceNowContentEncoding";
public static final String CONTENT_META = "CamelServiceNowContentMeta";
+ public static final String RESPONSE_META = "CamelServiceNowResponseMeta";
public static final String ATTACHMENT_META_HEADER = "X-Attachment-Metadata";
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowAggregateProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowAggregateProcessor.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowAggregateProcessor.java
index 925b16e..52966a4 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowAggregateProcessor.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowAggregateProcessor.java
@@ -35,7 +35,7 @@ class FujiServiceNowAggregateProcessor extends FujiServiceNowProcessor {
}
@Override
- protected void doProcess(Exchange exchange, Class<?> model, String action, String tableName, String sysId) throws Exception {
+ protected void doProcess(Exchange exchange, Class<?> requestModel, Class<?> responseModel, String action, String tableName, String sysId) throws Exception {
Response response;
if (ObjectHelper.equal(ServiceNowConstants.ACTION_RETRIEVE, action, true)) {
response = retrieveStats(exchange.getIn(), tableName);
@@ -43,7 +43,7 @@ class FujiServiceNowAggregateProcessor extends FujiServiceNowProcessor {
throw new IllegalArgumentException("Unknown action " + action);
}
- setBodyAndHeaders(exchange.getIn(), model, response);
+ setBodyAndHeaders(exchange.getIn(), responseModel, response);
}
private Response retrieveStats(Message in, String tableName) throws Exception {
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowImportSetProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowImportSetProcessor.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowImportSetProcessor.java
index e118bd0..36fad6e 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowImportSetProcessor.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowImportSetProcessor.java
@@ -34,17 +34,17 @@ class FujiServiceNowImportSetProcessor extends FujiServiceNowProcessor {
}
@Override
- protected void doProcess(Exchange exchange, Class<?> model, String action, String tableName, String sysId) throws Exception {
+ protected void doProcess(Exchange exchange, Class<?> requestModel, Class<?> responseModel, String action, String tableName, String sysId) throws Exception {
Response response;
if (ObjectHelper.equal(ServiceNowConstants.ACTION_RETRIEVE, action, true)) {
response = retrieveRecord(exchange.getIn(), tableName, sysId);
} else if (ObjectHelper.equal(ServiceNowConstants.ACTION_CREATE, action, true)) {
- response = createRecord(exchange.getIn(), model, tableName);
+ response = createRecord(exchange.getIn(), requestModel, responseModel, tableName);
} else {
throw new IllegalArgumentException("Unknown action " + action);
}
- setBodyAndHeaders(exchange.getIn(), model, response);
+ setBodyAndHeaders(exchange.getIn(), responseModel, response);
}
/*
@@ -65,8 +65,8 @@ class FujiServiceNowImportSetProcessor extends FujiServiceNowProcessor {
* POST
* https://instance.service-now.com/api/now/import/{tableName}
*/
- private Response createRecord(Message in, Class<?> model, String tableName) throws Exception {
- validateBody(in, model);
+ private Response createRecord(Message in, Class<?> requestModel, Class<?> responseModell, String tableName) throws Exception {
+ validateBody(in, requestModel);
return client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
.path("now")
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowProcessor.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowProcessor.java
index bfde592..17d0960 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowProcessor.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowProcessor.java
@@ -34,22 +34,23 @@ public abstract class FujiServiceNowProcessor extends AbstractServiceNowProcesso
public void process(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
final String tableName = in.getHeader(ServiceNowParams.PARAM_TABLE_NAME.getHeader(), config.getTable(), String.class);
- final Class<?> model = getModel(in, tableName);
+ final Class<?> requestModel = getRequestModel(in, tableName);
+ final Class<?> responseModel = getResponseModel(in, tableName);
final String action = in.getHeader(ServiceNowConstants.ACTION, String.class);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
doProcess(
exchange,
- ObjectHelper.notNull(model, "model"),
+ ObjectHelper.notNull(requestModel, "requestModel"),
+ ObjectHelper.notNull(responseModel, "responseModel"),
ObjectHelper.notNull(action, "action"),
- ObjectHelper.notNull(tableName, "tableName"),
- sysId);
+ ObjectHelper.notNull(tableName, "tableName"), sysId);
}
protected abstract void doProcess(
Exchange exchange,
- Class<?> model,
- String action,
+ Class<?> requestModel,
+ Class<?> responseModel, String action,
String tableName,
String sysId) throws Exception;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowTableProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowTableProcessor.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowTableProcessor.java
index 4cd25be..c6f305e 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowTableProcessor.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/fuji/FujiServiceNowTableProcessor.java
@@ -34,23 +34,23 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor {
}
@Override
- protected void doProcess(Exchange exchange, Class<?> model, String action, String tableName, String sysId) throws Exception {
+ protected void doProcess(Exchange exchange, Class<?> requestModel, Class<?> responseModel, String action, String tableName, String sysId) throws Exception {
Response response;
if (ObjectHelper.equal(ServiceNowConstants.ACTION_RETRIEVE, action, true)) {
- response = retrieveRecord(exchange.getIn(), model, tableName, sysId);
+ response = retrieveRecord(exchange.getIn(), requestModel, responseModel, tableName, sysId);
} else if (ObjectHelper.equal(ServiceNowConstants.ACTION_CREATE, action, true)) {
- response = createRecord(exchange.getIn(), model, tableName);
+ response = createRecord(exchange.getIn(), requestModel, responseModel, tableName);
} else if (ObjectHelper.equal(ServiceNowConstants.ACTION_MODIFY, action, true)) {
- response = modifyRecord(exchange.getIn(), model, tableName, sysId);
+ response = modifyRecord(exchange.getIn(), requestModel, responseModel, tableName, sysId);
} else if (ObjectHelper.equal(ServiceNowConstants.ACTION_DELETE, action, true)) {
- response = deleteRecord(exchange.getIn(), model, tableName, sysId);
+ response = deleteRecord(exchange.getIn(), requestModel, responseModel, tableName, sysId);
} else if (ObjectHelper.equal(ServiceNowConstants.ACTION_UPDATE, action, true)) {
- response = updateRecord(exchange.getIn(), model, tableName, sysId);
+ response = updateRecord(exchange.getIn(), requestModel, responseModel, tableName, sysId);
} else {
throw new IllegalArgumentException("Unknown action " + action);
}
- setBodyAndHeaders(exchange.getIn(), model, response);
+ setBodyAndHeaders(exchange.getIn(), responseModel, response);
}
/*
@@ -58,7 +58,7 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor {
* https://instance.service-now.com/api/now/table/{tableName}
* https://instance.service-now.com/api/now/table/{tableName}/{sys_id}
*/
- private Response retrieveRecord(Message in, Class<?> model, String tableName, String sysId) throws Exception {
+ private Response retrieveRecord(Message in, Class<?> requestModel, Class<?> responseModel, String tableName, String sysId) throws Exception {
return ObjectHelper.isEmpty(sysId)
? client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
@@ -89,8 +89,8 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor {
* POST
* https://instance.service-now.com/api/now/table/{tableName}
*/
- private Response createRecord(Message in, Class<?> model, String tableName) throws Exception {
- validateBody(in, model);
+ private Response createRecord(Message in, Class<?> requestModel, Class<?> responseModel, String tableName) throws Exception {
+ validateBody(in, requestModel);
return client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
.path("now")
@@ -109,8 +109,8 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor {
* PUT
* https://instance.service-now.com/api/now/table/{tableName}/{sys_id}
*/
- private Response modifyRecord(Message in, Class<?> model, String tableName, String sysId) throws Exception {
- validateBody(in, model);
+ private Response modifyRecord(Message in, Class<?> requestModel, Class<?> responseModel, String tableName, String sysId) throws Exception {
+ validateBody(in, requestModel);
return client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
.path("now")
@@ -130,7 +130,7 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor {
* DELETE
* https://instance.service-now.com/api/now/table/{tableName}/{sys_id}
*/
- private Response deleteRecord(Message in, Class<?> model, String tableName, String sysId) throws Exception {
+ private Response deleteRecord(Message in, Class<?> requestModel, Class<?> responseModel, String tableName, String sysId) throws Exception {
return client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
.path("now")
@@ -144,8 +144,8 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor {
* PATCH
* http://instance.service-now.com/api/now/table/{tableName}/{sys_id}
*/
- private Response updateRecord(Message in, Class<?> model, String tableName, String sysId) throws Exception {
- validateBody(in, model);
+ private Response updateRecord(Message in, Class<?> requestModel, Class<?> responseModel, String tableName, String sysId) throws Exception {
+ validateBody(in, requestModel);
return client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
.path("now")
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowAggregateProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowAggregateProcessor.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowAggregateProcessor.java
index 17dbfdb..924d1d8 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowAggregateProcessor.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowAggregateProcessor.java
@@ -49,7 +49,7 @@ class HelsinkiServiceNowAggregateProcessor extends AbstractServiceNowProcessor {
private void retrieveStats(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
final String tableName = in.getHeader(ServiceNowParams.PARAM_TABLE_NAME.getHeader(), config.getTable(), String.class);
- final Class<?> model = getModel(in, tableName);
+ final Class<?> responseModel = getResponseModel(in, tableName);
Response response = client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
@@ -69,6 +69,6 @@ class HelsinkiServiceNowAggregateProcessor extends AbstractServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_DISPLAY_VALUE, in)
.invoke(HttpMethod.GET);
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowAttachmentProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowAttachmentProcessor.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowAttachmentProcessor.java
index 097c220..1f70777 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowAttachmentProcessor.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowAttachmentProcessor.java
@@ -59,7 +59,7 @@ public class HelsinkiServiceNowAttachmentProcessor extends AbstractServiceNowPro
private void retrieveMeta(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
final String tableName = in.getHeader(ServiceNowParams.PARAM_TABLE_NAME.getHeader(), config.getTable(), String.class);
- final Class<?> model = getModel(in, tableName);
+ final Class<?> responseModel = getResponseModel(in, tableName);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
Response response = ObjectHelper.isEmpty(sysId)
@@ -78,7 +78,7 @@ public class HelsinkiServiceNowAttachmentProcessor extends AbstractServiceNowPro
.path(ObjectHelper.notNull(sysId, "sysId"))
.invoke(HttpMethod.GET);
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
/*
@@ -92,7 +92,6 @@ public class HelsinkiServiceNowAttachmentProcessor extends AbstractServiceNowPro
*/
private void retrieveContent(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final String tableName = in.getHeader(ServiceNowParams.PARAM_TABLE_NAME.getHeader(), config.getTable(), String.class);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
Response response = client.reset()
@@ -122,7 +121,7 @@ public class HelsinkiServiceNowAttachmentProcessor extends AbstractServiceNowPro
private void uploadContent(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
final String tableName = in.getHeader(ServiceNowParams.PARAM_TABLE_NAME.getHeader(), config.getTable(), String.class);
- final Class<?> model = getModel(in, tableName);
+ final Class<?> responseModel = getResponseModel(in, tableName);
Response response = client.reset()
.type(ObjectHelper.notNull(
@@ -138,7 +137,7 @@ public class HelsinkiServiceNowAttachmentProcessor extends AbstractServiceNowPro
.query(ServiceNowParams.PARAM_ENCRYPTION_CONTEXT, in)
.invoke(HttpMethod.POST, in.getMandatoryBody(InputStream.class));
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
/*
@@ -153,7 +152,7 @@ public class HelsinkiServiceNowAttachmentProcessor extends AbstractServiceNowPro
private void deleteContent(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
final String tableName = in.getHeader(ServiceNowParams.PARAM_TABLE_NAME.getHeader(), config.getTable(), String.class);
- final Class<?> model = getModel(in, tableName);
+ final Class<?> responseModel = getResponseModel(in, tableName);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
Response response = client.reset()
@@ -163,6 +162,6 @@ public class HelsinkiServiceNowAttachmentProcessor extends AbstractServiceNowPro
.path(ObjectHelper.notNull(sysId, "sysId"))
.invoke(HttpMethod.DELETE);
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowImportSetProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowImportSetProcessor.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowImportSetProcessor.java
index db35b9e..8cde09d 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowImportSetProcessor.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowImportSetProcessor.java
@@ -46,7 +46,7 @@ class HelsinkiServiceNowImportSetProcessor extends AbstractServiceNowProcessor {
private void retrieveRecord(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
final String tableName = in.getHeader(ServiceNowParams.PARAM_TABLE_NAME.getHeader(), config.getTable(), String.class);
- final Class<?> model = getModel(in, tableName);
+ final Class<?> responseModel = getResponseModel(in, tableName);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
Response response = client.reset()
@@ -57,7 +57,7 @@ class HelsinkiServiceNowImportSetProcessor extends AbstractServiceNowProcessor {
.path(ObjectHelper.notNull(sysId, "sysId"))
.invoke(HttpMethod.GET);
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
/*
@@ -67,9 +67,10 @@ class HelsinkiServiceNowImportSetProcessor extends AbstractServiceNowProcessor {
private void createRecord(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
final String tableName = in.getHeader(ServiceNowParams.PARAM_TABLE_NAME.getHeader(), config.getTable(), String.class);
- final Class<?> model = getModel(in, tableName);
+ final Class<?> requestModel = getRequestModel(in, tableName);
+ final Class<?> responseModel = getResponseModel(in, tableName);
- validateBody(in, model);
+ validateBody(in, requestModel);
Response response = client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
.path("now")
@@ -77,6 +78,6 @@ class HelsinkiServiceNowImportSetProcessor extends AbstractServiceNowProcessor {
.path(tableName)
.invoke(HttpMethod.POST, in.getMandatoryBody());
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowMiscProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowMiscProcessor.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowMiscProcessor.java
index 0511e03..f3b9585 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowMiscProcessor.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowMiscProcessor.java
@@ -52,7 +52,7 @@ class HelsinkiServiceNowMiscProcessor extends AbstractServiceNowProcessor {
*/
private void retrieveUserRoleInheritance(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final Class<?> model = getModel(in);
+ final Class<?> responseModel = getResponseModel(in);
Response response = client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
@@ -61,7 +61,7 @@ class HelsinkiServiceNowMiscProcessor extends AbstractServiceNowProcessor {
.query(ServiceNowParams.PARAM_USER_SYS_ID, in)
.invoke(HttpMethod.GET);
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
/*
@@ -75,7 +75,7 @@ class HelsinkiServiceNowMiscProcessor extends AbstractServiceNowProcessor {
*/
private void uploadIdentifyReconcile(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final Class<?> model = getModel(in);
+ final Class<?> responseModel = getResponseModel(in);
Response response = client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
@@ -84,6 +84,6 @@ class HelsinkiServiceNowMiscProcessor extends AbstractServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_DATA_SOURCE, in)
.invoke(HttpMethod.POST, in.getMandatoryBody());
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowScorecardProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowScorecardProcessor.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowScorecardProcessor.java
index 78afa77..5b959dd 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowScorecardProcessor.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowScorecardProcessor.java
@@ -49,7 +49,7 @@ class HelsinkiServiceNowScorecardProcessor extends AbstractServiceNowProcessor {
*/
private void retrievePerformanceAnalytics(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final Class<?> model = getModel(in);
+ final Class<?> responseModel = getResponseModel(in);
Response response = client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
@@ -79,6 +79,6 @@ class HelsinkiServiceNowScorecardProcessor extends AbstractServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_INCLUDE_SCORE_NOTES, in)
.invoke(HttpMethod.GET);
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogCartsProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogCartsProcessor.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogCartsProcessor.java
index 058dc5e..9b6ab6e 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogCartsProcessor.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogCartsProcessor.java
@@ -58,7 +58,7 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
*/
private void retrieveCarts(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final Class<?> model = getModel(in);
+ final Class<?> responseModel = getResponseModel(in);
Response response = client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
@@ -67,7 +67,7 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
.path("cart")
.invoke(HttpMethod.GET);
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
/*
@@ -81,7 +81,7 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
*/
private void retrieveDeliveryAddress(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final Class<?> model = getModel(in);
+ final Class<?> responseModel = getResponseModel(in);
Response response = client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
@@ -92,7 +92,7 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
.path(getMandatoryRequestParamFromHeader(ServiceNowParams.PARAM_USER_ID, in))
.invoke(HttpMethod.GET);
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
/*
@@ -106,7 +106,7 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
*/
private void updateCart(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final Class<?> model = getModel(in);
+ final Class<?> responseModel = getResponseModel(in);
Response response = client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
@@ -116,7 +116,7 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
.path(getMandatoryRequestParamFromHeader(ServiceNowParams.PARAM_CART_ITEM_ID, in))
.invoke(HttpMethod.POST, in.getMandatoryBody());
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
/*
@@ -131,7 +131,7 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
*/
private void deleteCart(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final Class<?> model = getModel(in);
+ final Class<?> responseModel = getResponseModel(in);
Response response = client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
@@ -142,7 +142,7 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
.path("empty")
.invoke(HttpMethod.DELETE);
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
/*
@@ -160,7 +160,7 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
*/
private void retrieveCheckoutCart(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final Class<?> model = getModel(in);
+ final Class<?> responseModel = getResponseModel(in);
Response response = client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
@@ -170,7 +170,7 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
.path("checkout")
.invoke(HttpMethod.POST);
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
/*
@@ -185,7 +185,7 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
*/
private void checkoutCart(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final Class<?> model = getModel(in);
+ final Class<?> responseModel = getResponseModel(in);
Response response = client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
@@ -195,6 +195,6 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
.path("submit_order")
.invoke(HttpMethod.POST);
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogCategoriesProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogCategoriesProcessor.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogCategoriesProcessor.java
index aa361dc..d3037f2 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogCategoriesProcessor.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogCategoriesProcessor.java
@@ -49,7 +49,7 @@ class HelsinkiServiceNowServiceCatalogCategoriesProcessor extends AbstractServic
*/
private void retrieveCategory(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final Class<?> model = getModel(in);
+ final Class<?> responseModel = getResponseModel(in);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
Response response = client.reset()
@@ -61,6 +61,6 @@ class HelsinkiServiceNowServiceCatalogCategoriesProcessor extends AbstractServic
.query(ServiceNowParams.SYSPARM_VIEW, in)
.invoke(HttpMethod.GET);
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogItemsProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogItemsProcessor.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogItemsProcessor.java
index 106f38d..9204e6c 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogItemsProcessor.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogItemsProcessor.java
@@ -60,7 +60,7 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP
*/
private void retrieveItems(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final Class<?> model = getModel(in);
+ final Class<?> responseModel = getResponseModel(in);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
Response response = ObjectHelper.isEmpty(sysId)
@@ -86,7 +86,7 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP
.query(ServiceNowParams.SYSPARM_VIEW, in)
.invoke(HttpMethod.GET);
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
/*
@@ -101,7 +101,7 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP
*/
private void submitItemGuide(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final Class<?> model = getModel(in);
+ final Class<?> responseModel = getResponseModel(in);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
Response response = client.reset()
@@ -114,7 +114,7 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP
.query(ServiceNowParams.SYSPARM_VIEW, in)
.invoke(HttpMethod.POST, in.getMandatoryBody());
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
/*
@@ -128,7 +128,7 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP
*/
private void checkoutItemGuide(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final Class<?> model = getModel(in);
+ final Class<?> responseModel = getResponseModel(in);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
Response response = client.reset()
@@ -140,7 +140,7 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP
.path("submit_guide")
.invoke(HttpMethod.POST, in.getMandatoryBody());
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
/*
@@ -154,7 +154,7 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP
*/
private void addItemToCart(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final Class<?> model = getModel(in);
+ final Class<?> responseModel = getResponseModel(in);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
Response response = client.reset()
@@ -166,7 +166,7 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP
.path("add_to_cart")
.invoke(HttpMethod.POST);
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
/*
@@ -181,7 +181,7 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP
*/
private void submitItemProducer(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final Class<?> model = getModel(in);
+ final Class<?> responseModel = getResponseModel(in);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
Response response = client.reset()
@@ -194,6 +194,6 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP
.query(ServiceNowParams.SYSPARM_VIEW, in)
.invoke(HttpMethod.POST, in.getMandatoryBody());
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/6fa418de/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogProcessor.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogProcessor.java
index 152b71f..c7847ab 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogProcessor.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/releases/helsinki/HelsinkiServiceNowServiceCatalogProcessor.java
@@ -53,7 +53,7 @@ class HelsinkiServiceNowServiceCatalogProcessor extends AbstractServiceNowProces
*/
private void retrieveCatalogs(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final Class<?> model = getModel(in);
+ final Class<?> responseModel = getResponseModel(in);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
Response response = ObjectHelper.isEmpty(sysId)
@@ -75,7 +75,7 @@ class HelsinkiServiceNowServiceCatalogProcessor extends AbstractServiceNowProces
.query(ServiceNowParams.SYSPARM_VIEW, in)
.invoke(HttpMethod.GET);
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
/*
@@ -89,7 +89,7 @@ class HelsinkiServiceNowServiceCatalogProcessor extends AbstractServiceNowProces
*/
private void retrieveCatalogsCategories(Exchange exchange) throws Exception {
final Message in = exchange.getIn();
- final Class<?> model = getModel(in);
+ final Class<?> responseModel = getResponseModel(in);
final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class);
Response response = client.reset()
@@ -105,6 +105,6 @@ class HelsinkiServiceNowServiceCatalogProcessor extends AbstractServiceNowProces
.query(ServiceNowParams.SYSPARM_OFFSET, in)
.invoke(HttpMethod.GET);
- setBodyAndHeaders(in, model, response);
+ setBodyAndHeaders(in, responseModel, response);
}
}