Repository: camel Updated Branches: refs/heads/camel-2.18.x 7aecfac39 -> 44a21a106
CAMEL-10488: ServiceNow : add an option to configure teh API version Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/44a21a10 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/44a21a10 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/44a21a10 Branch: refs/heads/camel-2.18.x Commit: 44a21a106517222f225ecc2713b5dc2819e8312a Parents: 7aecfac Author: lburgazzoli <lburgazz...@gmail.com> Authored: Wed Nov 16 17:00:32 2016 +0100 Committer: lburgazzoli <lburgazz...@gmail.com> Committed: Wed Nov 16 17:01:54 2016 +0100 ---------------------------------------------------------------------- .../ServiceNowComponentConfiguration.java | 12 +++++++ .../src/main/docs/servicenow-component.adoc | 7 ++++- .../servicenow/AbstractServiceNowProcessor.java | 16 ++++++++++ .../component/servicenow/ServiceNowClient.java | 5 ++- .../servicenow/ServiceNowConfiguration.java | 13 ++++++++ .../servicenow/ServiceNowConstants.java | 1 + .../fuji/FujiServiceNowAggregateProcessor.java | 5 ++- .../fuji/FujiServiceNowImportSetProcessor.java | 12 ++++--- .../releases/fuji/FujiServiceNowProcessor.java | 14 ++++++--- .../fuji/FujiServiceNowTableProcessor.java | 28 ++++++++++------- .../HelsinkiServiceNowAggregateProcessor.java | 4 ++- .../HelsinkiServiceNowAttachmentProcessor.java | 22 +++++++++---- .../HelsinkiServiceNowImportSetProcessor.java | 11 ++++--- .../HelsinkiServiceNowMiscProcessor.java | 3 ++ .../HelsinkiServiceNowScorecardProcessor.java | 2 ++ ...iServiceNowServiceCatalogCartsProcessor.java | 12 +++++++ ...iceNowServiceCatalogCategoriesProcessor.java | 4 ++- ...iServiceNowServiceCatalogItemsProcessor.java | 21 ++++++++++--- ...lsinkiServiceNowServiceCatalogProcessor.java | 9 ++++-- .../HelsinkiServiceNowTableProcessor.java | 31 ++++++++++++------ .../component/servicenow/ServiceNowTest.java | 33 ++++++++++++++++++++ 21 files changed, 212 insertions(+), 53 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 c9f7b2a..1a41297 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 @@ -129,6 +129,10 @@ public class ServiceNowComponentConfiguration { */ private String apiUrl; /** + * The ServiceNow REST API version, default latest + */ + private String apiVersion; + /** * ServiceNow account password, MUST be provided */ private String password; @@ -286,6 +290,14 @@ public class ServiceNowComponentConfiguration { this.apiUrl = apiUrl; } + public String getApiVersion() { + return apiVersion; + } + + public void setApiVersion(String apiVersion) { + this.apiVersion = apiVersion; + } + public String getPassword() { return password; } http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 5ef7483..f87d24e6 100644 --- a/components/camel-servicenow/src/main/docs/servicenow-component.adoc +++ b/components/camel-servicenow/src/main/docs/servicenow-component.adoc @@ -57,7 +57,7 @@ The ServiceNow component supports 7 options which are listed below. // endpoint options: START -The ServiceNow component supports 32 endpoint options which are listed below: +The ServiceNow component supports 33 endpoint options which are listed below: {% raw %} [width="100%",cols="2,1,1m,1m,5",options="header"] @@ -87,6 +87,7 @@ The ServiceNow component supports 32 endpoint options which are listed below: | table | producer | | String | The default table can be overridden by header CamelServiceNowTable | target | producer | | Boolean | Set this parameter to true to return only scorecards that have a target. | topLevelOnly | producer | | Boolean | Gets only those categories whose parent is a catalog. +| apiVersion | advanced | | String | The ServiceNow REST API version default latest | mapper | advanced | | ObjectMapper | Sets Jackson's ObjectMapper to use for request/reply | synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | apiUrl | security | | String | The ServiceNow REST API url @@ -112,6 +113,8 @@ Headers |CamelServiceNowAction |String | - | - | The action to perform |CamelServiceNowActionSubject | - | - | String |The subject to which the action should be applied |CamelServiceNowModel |Class | - | - | The data model +|CamelServiceNowRequestModel |Class | - | - | The request data model +|CamelServiceNowResponseModel |Class | - | - | The response data model |CamelServiceNowOffsetNext | - | - | - | - |CamelServiceNowOffsetPrev | - | - | - | - |CamelServiceNowOffsetFirst | - | - | - | - @@ -170,6 +173,8 @@ Headers |CamelServiceNowBreakdownRelation | String | sysparm_breakdown_relation | - | - |CamelServiceNowDataSource | String | sysparm_data_source | - | - |CamelServiceNowTopLevelOnly | Boolean | sysparm_top_level_only | topLevelOnly | - +|CamelServiceNowApiVersion | String | - | - | The REST API version +|CamelServiceNowResponseMeta | Map | - | - | Meta data provided along with a response |=== [[ServiceNow-Fuji]] http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 a310eab..9fd57e4 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 @@ -239,6 +239,10 @@ public abstract class AbstractServiceNowProcessor implements Processor { return null; } + // ********************************* + // Helpers + // ********************************* + protected Object getRequestParamFromHeader(ServiceNowParam sysParam, Message message) { return message.getHeader( sysParam.getHeader(), @@ -291,6 +295,18 @@ public abstract class AbstractServiceNowProcessor implements Processor { : ObjectHelper.isEmpty(modelName) ? Map.class : config.getResponseModel(modelName, Map.class); } + protected String getApiVersion(Message message) { + return message.getHeader(ServiceNowConstants.API_VERSION, config.getApiVersion(), String.class); + } + + protected String getTableName(Message message) { + return message.getHeader(ServiceNowParams.PARAM_TABLE_NAME.getHeader(), config.getTable(), String.class); + } + + protected String getSysID(Message message) { + return message.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + } + // ************************************************************************* // Use ClassValue to lazy create and cache JavaType // ************************************************************************* http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowClient.java ---------------------------------------------------------------------- diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowClient.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowClient.java index b5f4136..d754568 100644 --- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowClient.java +++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowClient.java @@ -59,7 +59,10 @@ public class ServiceNowClient { } public ServiceNowClient path(Object path) { - client.path(path); + if (path != null) { + client.path(path); + } + return this; } http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 c82735b..db8a8be 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 @@ -51,6 +51,8 @@ public class ServiceNowConfiguration implements Cloneable { private String oauthTokenUrl; @UriParam(label = "security") private String apiUrl; + @UriParam(label = "advanced") + private String apiVersion; @UriParam private String resource; @UriParam @@ -120,6 +122,17 @@ public class ServiceNowConfiguration implements Cloneable { return apiUrl != null; } + public String getApiVersion() { + return apiVersion; + } + + /** + * The ServiceNow REST API version, default latest + */ + public void setApiVersion(String apiVersion) { + this.apiVersion = apiVersion; + } + /** * ServiceNow user account name, MUST be provided */ http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 72c3ccd..6c75b38 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 @@ -33,6 +33,7 @@ public final class ServiceNowConstants { 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 API_VERSION = "CamelServiceNowApiVersion"; public static final String ATTACHMENT_META_HEADER = "X-Attachment-Metadata"; http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 52966a4..0b4f32a 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<?> requestModel, Class<?> responseModel, String action, String tableName, String sysId) throws Exception { + protected void doProcess(Exchange exchange, Class<?> requestModel, Class<?> responseModel, String action, String apiVersion, String tableName, String sysId) throws Exception { Response response; if (ObjectHelper.equal(ServiceNowConstants.ACTION_RETRIEVE, action, true)) { response = retrieveStats(exchange.getIn(), tableName); @@ -47,9 +47,12 @@ class FujiServiceNowAggregateProcessor extends FujiServiceNowProcessor { } private Response retrieveStats(Message in, String tableName) throws Exception { + final String apiVersion = getApiVersion(in); + return client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("stats") .path(tableName) .query(ServiceNowParams.SYSPARM_QUERY, in) http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 36fad6e..2f09d3e 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,12 +34,12 @@ class FujiServiceNowImportSetProcessor extends FujiServiceNowProcessor { } @Override - protected void doProcess(Exchange exchange, Class<?> requestModel, Class<?> responseModel, String action, String tableName, String sysId) throws Exception { + protected void doProcess(Exchange exchange, Class<?> requestModel, Class<?> responseModel, String action, String apiVersion, String tableName, String sysId) throws Exception { Response response; if (ObjectHelper.equal(ServiceNowConstants.ACTION_RETRIEVE, action, true)) { - response = retrieveRecord(exchange.getIn(), tableName, sysId); + response = retrieveRecord(exchange.getIn(), apiVersion, tableName, sysId); } else if (ObjectHelper.equal(ServiceNowConstants.ACTION_CREATE, action, true)) { - response = createRecord(exchange.getIn(), requestModel, responseModel, tableName); + response = createRecord(exchange.getIn(), requestModel, responseModel, apiVersion, tableName); } else { throw new IllegalArgumentException("Unknown action " + action); } @@ -51,10 +51,11 @@ class FujiServiceNowImportSetProcessor extends FujiServiceNowProcessor { * GET * https://instance.service-now.com/api/now/import/{tableName}/{sys_id} */ - private Response retrieveRecord(Message in, String tableName, String sysId) throws Exception { + private Response retrieveRecord(Message in, String apiVersion, String tableName, String sysId) throws Exception { return client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("import") .path(tableName) .path(ObjectHelper.notNull(sysId, "sysId")) @@ -65,11 +66,12 @@ class FujiServiceNowImportSetProcessor extends FujiServiceNowProcessor { * POST * https://instance.service-now.com/api/now/import/{tableName} */ - private Response createRecord(Message in, Class<?> requestModel, Class<?> responseModell, String tableName) throws Exception { + private Response createRecord(Message in, Class<?> requestModel, Class<?> responseModell, String apiVersion, String tableName) throws Exception { validateBody(in, requestModel); return client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("import") .path(tableName) .invoke(HttpMethod.POST, in.getMandatoryBody()); http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 17d0960..52b81bb 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 @@ -22,7 +22,6 @@ import org.apache.camel.Message; import org.apache.camel.component.servicenow.AbstractServiceNowProcessor; import org.apache.camel.component.servicenow.ServiceNowConstants; import org.apache.camel.component.servicenow.ServiceNowEndpoint; -import org.apache.camel.component.servicenow.ServiceNowParams; import org.apache.camel.util.ObjectHelper; public abstract class FujiServiceNowProcessor extends AbstractServiceNowProcessor { @@ -33,24 +32,29 @@ public abstract class FujiServiceNowProcessor extends AbstractServiceNowProcesso @Override 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 String tableName = getTableName(in); final Class<?> requestModel = getRequestModel(in, tableName); final Class<?> responseModel = getResponseModel(in, tableName); + final String apiVersion = getApiVersion(in); final String action = in.getHeader(ServiceNowConstants.ACTION, String.class); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String sysId = getSysID(in); doProcess( exchange, ObjectHelper.notNull(requestModel, "requestModel"), ObjectHelper.notNull(responseModel, "responseModel"), + apiVersion, ObjectHelper.notNull(action, "action"), - ObjectHelper.notNull(tableName, "tableName"), sysId); + ObjectHelper.notNull(tableName, "tableName"), + sysId); } protected abstract void doProcess( Exchange exchange, Class<?> requestModel, - Class<?> responseModel, String action, + Class<?> responseModel, + String apiVersion, + String action, String tableName, String sysId) throws Exception; } http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 c6f305e..7fb7c2a 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,18 +34,18 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor { } @Override - protected void doProcess(Exchange exchange, Class<?> requestModel, Class<?> responseModel, String action, String tableName, String sysId) throws Exception { + protected void doProcess(Exchange exchange, Class<?> requestModel, Class<?> responseModel, String apiVersion, String action, String tableName, String sysId) throws Exception { Response response; if (ObjectHelper.equal(ServiceNowConstants.ACTION_RETRIEVE, action, true)) { - response = retrieveRecord(exchange.getIn(), requestModel, responseModel, tableName, sysId); + response = retrieveRecord(exchange.getIn(), requestModel, responseModel, apiVersion, tableName, sysId); } else if (ObjectHelper.equal(ServiceNowConstants.ACTION_CREATE, action, true)) { - response = createRecord(exchange.getIn(), requestModel, responseModel, tableName); + response = createRecord(exchange.getIn(), requestModel, responseModel, apiVersion, tableName); } else if (ObjectHelper.equal(ServiceNowConstants.ACTION_MODIFY, action, true)) { - response = modifyRecord(exchange.getIn(), requestModel, responseModel, tableName, sysId); + response = modifyRecord(exchange.getIn(), requestModel, responseModel, apiVersion, tableName, sysId); } else if (ObjectHelper.equal(ServiceNowConstants.ACTION_DELETE, action, true)) { - response = deleteRecord(exchange.getIn(), requestModel, responseModel, tableName, sysId); + response = deleteRecord(exchange.getIn(), requestModel, responseModel, apiVersion, tableName, sysId); } else if (ObjectHelper.equal(ServiceNowConstants.ACTION_UPDATE, action, true)) { - response = updateRecord(exchange.getIn(), requestModel, responseModel, tableName, sysId); + response = updateRecord(exchange.getIn(), requestModel, responseModel, apiVersion, tableName, sysId); } else { throw new IllegalArgumentException("Unknown action " + action); } @@ -58,11 +58,12 @@ 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<?> requestModel, Class<?> responseModel, String tableName, String sysId) throws Exception { + private Response retrieveRecord(Message in, Class<?> requestModel, Class<?> responseModel, String apiVersion, String tableName, String sysId) throws Exception { return ObjectHelper.isEmpty(sysId) ? client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("table") .path(tableName) .query(ServiceNowParams.SYSPARM_QUERY, in) @@ -75,6 +76,7 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor { : client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("table") .path(tableName) .path(sysId) @@ -89,11 +91,12 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor { * POST * https://instance.service-now.com/api/now/table/{tableName} */ - private Response createRecord(Message in, Class<?> requestModel, Class<?> responseModel, String tableName) throws Exception { + private Response createRecord(Message in, Class<?> requestModel, Class<?> responseModel, String apiVersion, String tableName) throws Exception { validateBody(in, requestModel); return client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("table") .path(tableName) .query(ServiceNowParams.SYSPARM_DISPLAY_VALUE, in) @@ -109,11 +112,12 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor { * PUT * https://instance.service-now.com/api/now/table/{tableName}/{sys_id} */ - private Response modifyRecord(Message in, Class<?> requestModel, Class<?> responseModel, String tableName, String sysId) throws Exception { + private Response modifyRecord(Message in, Class<?> requestModel, Class<?> responseModel, String apiVersion, String tableName, String sysId) throws Exception { validateBody(in, requestModel); return client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("table") .path(tableName) .path(ObjectHelper.notNull(sysId, "sysId")) @@ -130,10 +134,11 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor { * DELETE * https://instance.service-now.com/api/now/table/{tableName}/{sys_id} */ - private Response deleteRecord(Message in, Class<?> requestModel, Class<?> responseModel, String tableName, String sysId) throws Exception { + private Response deleteRecord(Message in, Class<?> requestModel, Class<?> responseModel, String apiVersion, String tableName, String sysId) throws Exception { return client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("table") .path(tableName) .path(ObjectHelper.notNull(sysId, "sysId")) @@ -144,11 +149,12 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor { * PATCH * http://instance.service-now.com/api/now/table/{tableName}/{sys_id} */ - private Response updateRecord(Message in, Class<?> requestModel, Class<?> responseModel, String tableName, String sysId) throws Exception { + private Response updateRecord(Message in, Class<?> requestModel, Class<?> responseModel, String apiVersion, String tableName, String sysId) throws Exception { validateBody(in, requestModel); return client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("table") .path(tableName) .path(ObjectHelper.notNull(sysId, "sysId")) http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 924d1d8..0cba535 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 @@ -48,12 +48,14 @@ 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 String tableName = getTableName(in); + final String apiVersion =getApiVersion(in); final Class<?> responseModel = getResponseModel(in, tableName); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("stats") .path(tableName) .query(ServiceNowParams.SYSPARM_QUERY, in) http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 1f70777..db1e451 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 @@ -58,14 +58,16 @@ 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 String tableName = getTableName(in); + final String apiVersion =getApiVersion(in); final Class<?> responseModel = getResponseModel(in, tableName); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String sysId = getSysID(in); Response response = ObjectHelper.isEmpty(sysId) ? client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("attachment") .query(ServiceNowParams.SYSPARM_QUERY, in) .query(ServiceNowParams.SYSPARM_LIMIT, in) @@ -74,6 +76,8 @@ public class HelsinkiServiceNowAttachmentProcessor extends AbstractServiceNowPro .invoke(HttpMethod.GET) : client.reset() .types(MediaType.APPLICATION_JSON_TYPE) + .path("now") + .path(apiVersion) .path("attachment") .path(ObjectHelper.notNull(sysId, "sysId")) .invoke(HttpMethod.GET); @@ -92,12 +96,14 @@ public class HelsinkiServiceNowAttachmentProcessor extends AbstractServiceNowPro */ private void retrieveContent(Exchange exchange) throws Exception { final Message in = exchange.getIn(); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String apiVersion = getApiVersion(in); + final String sysId = getSysID(in); Response response = client.reset() .type(MediaType.APPLICATION_JSON_TYPE) .accept("*/*") .path("now") + .path(apiVersion) .path("attachment") .path(ObjectHelper.notNull(sysId, "sysId")) .path("file") @@ -120,7 +126,8 @@ 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 String tableName = getTableName(in); + final String apiVersion = getApiVersion(in); final Class<?> responseModel = getResponseModel(in, tableName); Response response = client.reset() @@ -129,6 +136,7 @@ public class HelsinkiServiceNowAttachmentProcessor extends AbstractServiceNowPro ServiceNowConstants.CONTENT_TYPE)) .accept(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("attachment") .path("file") .query(ServiceNowParams.PARAM_FILE_NAME, in) @@ -151,13 +159,15 @@ 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 String tableName = getTableName(in); + final String apiVersion = getApiVersion(in); final Class<?> responseModel = getResponseModel(in, tableName); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String sysId = getSysID(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("attachment") .path(ObjectHelper.notNull(sysId, "sysId")) .invoke(HttpMethod.DELETE); http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 8cde09d..61dcf92 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 @@ -24,7 +24,6 @@ import org.apache.camel.Exchange; import org.apache.camel.Message; import org.apache.camel.component.servicenow.AbstractServiceNowProcessor; import org.apache.camel.component.servicenow.ServiceNowEndpoint; -import org.apache.camel.component.servicenow.ServiceNowParams; import org.apache.camel.util.ObjectHelper; import static org.apache.camel.component.servicenow.ServiceNowConstants.ACTION_CREATE; @@ -45,13 +44,15 @@ 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 String tableName = getTableName(in); + final String apiVersion = getApiVersion(in); final Class<?> responseModel = getResponseModel(in, tableName); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String sysId = getSysID(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("import") .path(ObjectHelper.notNull(tableName, "tableName")) .path(ObjectHelper.notNull(sysId, "sysId")) @@ -66,7 +67,8 @@ 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 String tableName = getTableName(in); + final String apiVersion = getApiVersion(in); final Class<?> requestModel = getRequestModel(in, tableName); final Class<?> responseModel = getResponseModel(in, tableName); @@ -74,6 +76,7 @@ class HelsinkiServiceNowImportSetProcessor extends AbstractServiceNowProcessor { Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("import") .path(tableName) .invoke(HttpMethod.POST, in.getMandatoryBody()); http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 f3b9585..5947532 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 @@ -53,6 +53,7 @@ class HelsinkiServiceNowMiscProcessor extends AbstractServiceNowProcessor { private void retrieveUserRoleInheritance(Exchange exchange) throws Exception { final Message in = exchange.getIn(); final Class<?> responseModel = getResponseModel(in); + final String apiVersion = getApiVersion(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) @@ -76,10 +77,12 @@ class HelsinkiServiceNowMiscProcessor extends AbstractServiceNowProcessor { private void uploadIdentifyReconcile(Exchange exchange) throws Exception { final Message in = exchange.getIn(); final Class<?> responseModel = getResponseModel(in); + final String apiVersion = getApiVersion(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("identifyreconcile") .query(ServiceNowParams.SYSPARM_DATA_SOURCE, in) .invoke(HttpMethod.POST, in.getMandatoryBody()); http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 5b959dd..cae4cd0 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 @@ -50,10 +50,12 @@ class HelsinkiServiceNowScorecardProcessor extends AbstractServiceNowProcessor { private void retrievePerformanceAnalytics(Exchange exchange) throws Exception { final Message in = exchange.getIn(); final Class<?> responseModel = getResponseModel(in); + final String apiVersion = getApiVersion(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("pa") .path("scorecards") .query(ServiceNowParams.SYSPARM_UUID, in) http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 9b6ab6e..490827f 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 @@ -59,10 +59,12 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP private void retrieveCarts(Exchange exchange) throws Exception { final Message in = exchange.getIn(); final Class<?> responseModel = getResponseModel(in); + final String apiVersion =getApiVersion(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("sn_sc") + .path(apiVersion) .path("servicecatalog") .path("cart") .invoke(HttpMethod.GET); @@ -82,10 +84,12 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP private void retrieveDeliveryAddress(Exchange exchange) throws Exception { final Message in = exchange.getIn(); final Class<?> responseModel = getResponseModel(in); + final String apiVersion =getApiVersion(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("sn_sc") + .path(apiVersion) .path("servicecatalog") .path("cart") .path("delivery_address") @@ -107,10 +111,12 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP private void updateCart(Exchange exchange) throws Exception { final Message in = exchange.getIn(); final Class<?> responseModel = getResponseModel(in); + final String apiVersion =getApiVersion(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("sn_sc") + .path(apiVersion) .path("servicecatalog") .path("cart") .path(getMandatoryRequestParamFromHeader(ServiceNowParams.PARAM_CART_ITEM_ID, in)) @@ -132,10 +138,12 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP private void deleteCart(Exchange exchange) throws Exception { final Message in = exchange.getIn(); final Class<?> responseModel = getResponseModel(in); + final String apiVersion =getApiVersion(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("sn_sc") + .path(apiVersion) .path("servicecatalog") .path("cart") .path(getMandatoryRequestParamFromHeader(ServiceNowParams.PARAM_SYS_ID, in)) @@ -161,10 +169,12 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP private void retrieveCheckoutCart(Exchange exchange) throws Exception { final Message in = exchange.getIn(); final Class<?> responseModel = getResponseModel(in); + final String apiVersion =getApiVersion(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("sn_sc") + .path(apiVersion) .path("servicecatalog") .path("cart") .path("checkout") @@ -186,10 +196,12 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP private void checkoutCart(Exchange exchange) throws Exception { final Message in = exchange.getIn(); final Class<?> responseModel = getResponseModel(in); + final String apiVersion =getApiVersion(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("sn_sc") + .path(apiVersion) .path("servicecatalog") .path("cart") .path("submit_order") http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 d3037f2..c12815c 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 @@ -50,11 +50,13 @@ class HelsinkiServiceNowServiceCatalogCategoriesProcessor extends AbstractServic private void retrieveCategory(Exchange exchange) throws Exception { final Message in = exchange.getIn(); final Class<?> responseModel = getResponseModel(in); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String sysId = getSysID(in); + final String apiVersion =getApiVersion(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("sn_sc") + .path(apiVersion) .path("servicecatalog") .path("categories") .path(ObjectHelper.notNull(sysId, "sysId")) http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 9204e6c..b8a27ca 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 @@ -61,12 +61,14 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP private void retrieveItems(Exchange exchange) throws Exception { final Message in = exchange.getIn(); final Class<?> responseModel = getResponseModel(in); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String sysId = getSysID(in); + final String apiVersion =getApiVersion(in); Response response = ObjectHelper.isEmpty(sysId) ? client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("sn_sc") + .path(apiVersion) .path("servicecatalog") .path("items") .query(ServiceNowParams.SYSPARM_CATEGORY, in) @@ -80,6 +82,7 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP : client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("sn_sc") + .path(apiVersion) .path("items") .path("items") .path(sysId) @@ -102,11 +105,13 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP private void submitItemGuide(Exchange exchange) throws Exception { final Message in = exchange.getIn(); final Class<?> responseModel = getResponseModel(in); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String sysId = getSysID(in); + final String apiVersion =getApiVersion(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("sn_sc") + .path(apiVersion) .path("servicecatalog") .path("items") .path(ObjectHelper.notNull(sysId, "sysId")) @@ -129,11 +134,13 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP private void checkoutItemGuide(Exchange exchange) throws Exception { final Message in = exchange.getIn(); final Class<?> responseModel = getResponseModel(in); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String sysId = getSysID(in); + final String apiVersion =getApiVersion(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("sn_sc") + .path(apiVersion) .path("servicecatalog") .path("items") .path(ObjectHelper.notNull(sysId, "sysId")) @@ -155,11 +162,13 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP private void addItemToCart(Exchange exchange) throws Exception { final Message in = exchange.getIn(); final Class<?> responseModel = getResponseModel(in); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String sysId = getSysID(in); + final String apiVersion =getApiVersion(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("sn_sc") + .path(apiVersion) .path("servicecatalog") .path("items") .path(ObjectHelper.notNull(sysId, "sysId")) @@ -182,11 +191,13 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP private void submitItemProducer(Exchange exchange) throws Exception { final Message in = exchange.getIn(); final Class<?> responseModel = getResponseModel(in); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String sysId = getSysID(in); + final String apiVersion =getApiVersion(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("sn_sc") + .path(apiVersion) .path("servicecatalog") .path("items") .path(ObjectHelper.notNull(sysId, "sysId")) http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 c7847ab..520aa37 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 @@ -54,12 +54,14 @@ class HelsinkiServiceNowServiceCatalogProcessor extends AbstractServiceNowProces private void retrieveCatalogs(Exchange exchange) throws Exception { final Message in = exchange.getIn(); final Class<?> responseModel = getResponseModel(in); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String sysId = getSysID(in); + final String apiVersion =getApiVersion(in); Response response = ObjectHelper.isEmpty(sysId) ? client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("sn_sc") + .path(apiVersion) .path("servicecatalog") .path("catalogs") .query(ServiceNowParams.SYSPARM_LIMIT, in) @@ -69,6 +71,7 @@ class HelsinkiServiceNowServiceCatalogProcessor extends AbstractServiceNowProces : client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("sn_sc") + .path(apiVersion) .path("servicecatalog") .path("catalogs") .path(sysId) @@ -90,11 +93,13 @@ class HelsinkiServiceNowServiceCatalogProcessor extends AbstractServiceNowProces private void retrieveCatalogsCategories(Exchange exchange) throws Exception { final Message in = exchange.getIn(); final Class<?> responseModel = getResponseModel(in); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String sysId = getSysID(in); + final String apiVersion =getApiVersion(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("sn_sc") + .path(apiVersion) .path("servicecatalog") .path("catalogs") .path(ObjectHelper.notNull(sysId, "sysId")) http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 5390121..05be850 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 @@ -51,14 +51,16 @@ 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 String tableName = getTableName(in); + final String apiVersion = getApiVersion(in); final Class<?> responseModel = getResponseModel(in, tableName); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String sysId = getSysID(in); Response response = ObjectHelper.isEmpty(sysId) ? client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("table") .path(tableName) .query(ServiceNowParams.SYSPARM_QUERY, in) @@ -73,6 +75,7 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor { : client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("table") .path(tableName) .path(sysId) @@ -91,15 +94,17 @@ 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 String tableName = getTableName(in); + final String apiVersion = getApiVersion(in); final Class<?> requestModel = getRequestModel(in, tableName); final Class<?> responseModel = getResponseModel(in, tableName); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String sysId = getSysID(in); validateBody(in, requestModel); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("table") .path(tableName) .query(ServiceNowParams.SYSPARM_DISPLAY_VALUE, in) @@ -119,15 +124,17 @@ 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 String tableName = getTableName(in); + final String apiVersion = getApiVersion(in); final Class<?> requestModel = getRequestModel(in, tableName); final Class<?> responseModel = getResponseModel(in, tableName); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String sysId = getSysID(in); validateBody(in, requestModel); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("table") .path(tableName) .path(ObjectHelper.notNull(sysId, "sysId")) @@ -148,13 +155,15 @@ 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 String tableName = getTableName(in); + final String apiVersion = getApiVersion(in); final Class<?> responseModel = getResponseModel(in, tableName); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String sysId = getSysID(in); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("table") .path(tableName) .path(ObjectHelper.notNull(sysId, "sysId")) @@ -169,15 +178,17 @@ 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 String tableName = getTableName(in); + final String apiVersion = getApiVersion(in); final Class<?> requestModel = getRequestModel(in, tableName); final Class<?> responseModel = getResponseModel(in, tableName); - final String sysId = in.getHeader(ServiceNowParams.PARAM_SYS_ID.getHeader(), String.class); + final String sysId = getSysID(in); validateBody(in, requestModel); Response response = client.reset() .types(MediaType.APPLICATION_JSON_TYPE) .path("now") + .path(apiVersion) .path("table") .path(tableName) .path(ObjectHelper.notNull(sysId, "sysId")) http://git-wip-us.apache.org/repos/asf/camel/blob/44a21a10/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 cf98c8e..d19b799 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 @@ -123,6 +123,39 @@ public class ServiceNowTest extends ServiceNowTestSupport { assertTrue(body instanceof JsonNode); } + @Test + public void testVersionedApiRequest() 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.API_VERSION, "v1") + .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); + } + // ************************************************************************* // // *************************************************************************