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 2017/08/04 16:09:59 UTC
[08/19] camel git commit: CAMEL-11556: ServiceNow : add annotations
on the model to customize sysparms
CAMEL-11556: ServiceNow : add annotations on the model to customize sysparms
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/05aa433e
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/05aa433e
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/05aa433e
Branch: refs/heads/master
Commit: 05aa433ec8b59cdee7cfb929689b6455a9fc30ae
Parents: 79172c3
Author: lburgazzoli <lb...@gmail.com>
Authored: Tue Aug 1 19:50:17 2017 +0200
Committer: lburgazzoli <lb...@gmail.com>
Committed: Fri Aug 4 18:09:05 2017 +0200
----------------------------------------------------------------------
.../component/servicenow/ServiceNowClient.java | 29 ++++++++-
.../annotations/ServiceNowSysParm.java | 32 ++++++++++
.../annotations/ServiceNowSysParms.java | 28 +++++++++
.../fuji/FujiServiceNowAggregateProcessor.java | 5 +-
.../fuji/FujiServiceNowImportSetProcessor.java | 8 ++-
.../fuji/FujiServiceNowTableProcessor.java | 6 ++
.../HelsinkiServiceNowAggregateProcessor.java | 1 +
.../HelsinkiServiceNowAttachmentProcessor.java | 2 +
.../HelsinkiServiceNowImportSetProcessor.java | 2 +
.../HelsinkiServiceNowMiscProcessor.java | 2 +
.../HelsinkiServiceNowScorecardProcessor.java | 1 +
...iServiceNowServiceCatalogCartsProcessor.java | 6 ++
...iceNowServiceCatalogCategoriesProcessor.java | 1 +
...iServiceNowServiceCatalogItemsProcessor.java | 6 ++
...lsinkiServiceNowServiceCatalogProcessor.java | 3 +
.../HelsinkiServiceNowTableProcessor.java | 9 +++
.../servicenow/ServiceNowTableTest.java | 33 ++++++++++
.../servicenow/model/IncidentWithParms.java | 64 ++++++++++++++++++++
18 files changed, 232 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/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 6157ecf..5128797 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
@@ -26,15 +26,21 @@ import javax.ws.rs.core.Response;
import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import org.apache.camel.CamelContext;
import org.apache.camel.Message;
+import org.apache.camel.component.servicenow.annotations.ServiceNowSysParm;
import org.apache.camel.component.servicenow.auth.AuthenticationRequestFilter;
+import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.jsse.SSLContextParameters;
import org.apache.cxf.configuration.jsse.TLSClientParameters;
import org.apache.cxf.configuration.security.ProxyAuthorizationPolicy;
import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.cxf.transport.http.HTTPConduit;
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public final class ServiceNowClient {
+ private static final Logger LOGGER = LoggerFactory.getLogger(ServiceNowClient.class);
+
private final CamelContext camelContext;
private final ServiceNowConfiguration configuration;
private final WebClient client;
@@ -68,7 +74,7 @@ public final class ServiceNowClient {
}
public ServiceNowClient path(Object path) {
- if (path != null) {
+ if (ObjectHelper.isNotEmpty(path)) {
client.path(path);
}
@@ -114,6 +120,27 @@ public final class ServiceNowClient {
return this;
}
+ public ServiceNowClient query(Class<?> model) {
+ if (model != null) {
+ String name;
+ String value;
+
+ for (ServiceNowSysParm parm : model.getAnnotationsByType(ServiceNowSysParm.class)) {
+ name = parm.name();
+ value = parm.value();
+
+ // SysParms defined on model have precedence and replace query param
+ // with same name set via Message headers.
+ if (ObjectHelper.isNotEmpty(name) && ObjectHelper.isNotEmpty(value)) {
+ LOGGER.debug("Replace query param {} with value {}", name, value);
+ client.replaceQueryParam(name, value);
+ }
+ }
+ }
+
+ return this;
+ }
+
public Response invoke(String httpMethod) throws Exception {
return invoke(client, httpMethod, null);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/annotations/ServiceNowSysParm.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/annotations/ServiceNowSysParm.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/annotations/ServiceNowSysParm.java
new file mode 100644
index 0000000..361e741
--- /dev/null
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/annotations/ServiceNowSysParm.java
@@ -0,0 +1,32 @@
+/**
+ * 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.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Repeatable;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target({ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+@Repeatable(ServiceNowSysParms.class)
+public @interface ServiceNowSysParm {
+ String name();
+
+ String value();
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/annotations/ServiceNowSysParms.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/annotations/ServiceNowSysParms.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/annotations/ServiceNowSysParms.java
new file mode 100644
index 0000000..236ba8b
--- /dev/null
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/annotations/ServiceNowSysParms.java
@@ -0,0 +1,28 @@
+/**
+ * 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.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target({ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ServiceNowSysParms {
+ ServiceNowSysParm[] value();
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/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 0b4f32a..7fe9352 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
@@ -38,7 +38,7 @@ class FujiServiceNowAggregateProcessor extends FujiServiceNowProcessor {
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);
+ response = retrieveStats(exchange.getIn(), requestModel, responseModel, tableName);
} else {
throw new IllegalArgumentException("Unknown action " + action);
}
@@ -46,7 +46,7 @@ class FujiServiceNowAggregateProcessor extends FujiServiceNowProcessor {
setBodyAndHeaders(exchange.getIn(), responseModel, response);
}
- private Response retrieveStats(Message in, String tableName) throws Exception {
+ private Response retrieveStats(Message in, Class<?> requestModel, Class<?> responseModel, String tableName) throws Exception {
final String apiVersion = getApiVersion(in);
return client.reset()
@@ -66,6 +66,7 @@ class FujiServiceNowAggregateProcessor extends FujiServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_ORDER_BY, in)
.query(ServiceNowParams.SYSPARM_HAVING, in)
.query(ServiceNowParams.SYSPARM_DISPLAY_VALUE, in)
+ .query(responseModel)
.invoke(HttpMethod.GET);
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/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 2f09d3e..4bace68 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
@@ -37,7 +37,7 @@ class FujiServiceNowImportSetProcessor extends FujiServiceNowProcessor {
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(), apiVersion, 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, apiVersion, tableName);
} else {
@@ -51,7 +51,7 @@ class FujiServiceNowImportSetProcessor extends FujiServiceNowProcessor {
* GET
* https://instance.service-now.com/api/now/import/{tableName}/{sys_id}
*/
- private Response retrieveRecord(Message in, String apiVersion, String tableName, String sysId) throws Exception {
+ private Response retrieveRecord(Message in, Class<?> requestModel, Class<?> responseModel, String apiVersion, String tableName, String sysId) throws Exception {
return client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
.path("now")
@@ -59,6 +59,7 @@ class FujiServiceNowImportSetProcessor extends FujiServiceNowProcessor {
.path("import")
.path(tableName)
.path(ObjectHelper.notNull(sysId, "sysId"))
+ .query(responseModel)
.invoke(HttpMethod.GET);
}
@@ -66,7 +67,7 @@ class FujiServiceNowImportSetProcessor extends FujiServiceNowProcessor {
* POST
* https://instance.service-now.com/api/now/import/{tableName}
*/
- private Response createRecord(Message in, Class<?> requestModel, Class<?> responseModell, String apiVersion, 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)
@@ -74,6 +75,7 @@ class FujiServiceNowImportSetProcessor extends FujiServiceNowProcessor {
.path(apiVersion)
.path("import")
.path(tableName)
+ .query(responseModel)
.invoke(HttpMethod.POST, in.getMandatoryBody());
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/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 7fb7c2a..0781811 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
@@ -72,6 +72,7 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_FIELDS, in)
.query(ServiceNowParams.SYSPARM_LIMIT, in)
.query(ServiceNowParams.SYSPARM_VIEW, in)
+ .query(responseModel)
.invoke(HttpMethod.GET)
: client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
@@ -84,6 +85,7 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_EXCLUDE_REFERENCE_LINK, in)
.query(ServiceNowParams.SYSPARM_FIELDS, in)
.query(ServiceNowParams.SYSPARM_VIEW, in)
+ .query(responseModel)
.invoke(HttpMethod.GET);
}
@@ -105,6 +107,7 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_INPUT_DISPLAY_VALUE, in)
.query(ServiceNowParams.SYSPARM_SUPPRESS_AUTO_SYS_FIELD, in)
.query(ServiceNowParams.SYSPARM_VIEW, in)
+ .query(responseModel)
.invoke(HttpMethod.POST, in.getMandatoryBody());
}
@@ -127,6 +130,7 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_INPUT_DISPLAY_VALUE, in)
.query(ServiceNowParams.SYSPARM_SUPPRESS_AUTO_SYS_FIELD, in)
.query(ServiceNowParams.SYSPARM_VIEW, in)
+ .query(responseModel)
.invoke(HttpMethod.PUT, in.getMandatoryBody());
}
@@ -142,6 +146,7 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor {
.path("table")
.path(tableName)
.path(ObjectHelper.notNull(sysId, "sysId"))
+ .query(responseModel)
.invoke(HttpMethod.DELETE);
}
@@ -164,6 +169,7 @@ class FujiServiceNowTableProcessor extends FujiServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_INPUT_DISPLAY_VALUE, in)
.query(ServiceNowParams.SYSPARM_SUPPRESS_AUTO_SYS_FIELD, in)
.query(ServiceNowParams.SYSPARM_VIEW, in)
+ .query(responseModel)
.invoke("PATCH", in.getMandatoryBody());
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/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 be47129..d895718 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
@@ -69,6 +69,7 @@ class HelsinkiServiceNowAggregateProcessor extends AbstractServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_ORDER_BY, in)
.query(ServiceNowParams.SYSPARM_HAVING, in)
.query(ServiceNowParams.SYSPARM_DISPLAY_VALUE, in)
+ .query(responseModel)
.invoke(HttpMethod.GET);
setBodyAndHeaders(in, responseModel, response);
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/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 b57fe4a..b25bcc0 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
@@ -143,6 +143,7 @@ public class HelsinkiServiceNowAttachmentProcessor extends AbstractServiceNowPro
.query(ServiceNowParams.PARAM_TABLE_NAME, in)
.query(ServiceNowParams.PARAM_TABLE_SYS_ID, in)
.query(ServiceNowParams.PARAM_ENCRYPTION_CONTEXT, in)
+ .query(responseModel)
.invoke(HttpMethod.POST, in.getMandatoryBody(InputStream.class));
setBodyAndHeaders(in, responseModel, response);
@@ -170,6 +171,7 @@ public class HelsinkiServiceNowAttachmentProcessor extends AbstractServiceNowPro
.path(apiVersion)
.path("attachment")
.path(ObjectHelper.notNull(sysId, "sysId"))
+ .query(responseModel)
.invoke(HttpMethod.DELETE);
setBodyAndHeaders(in, responseModel, response);
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/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 61dcf92..c49f228 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
@@ -56,6 +56,7 @@ class HelsinkiServiceNowImportSetProcessor extends AbstractServiceNowProcessor {
.path("import")
.path(ObjectHelper.notNull(tableName, "tableName"))
.path(ObjectHelper.notNull(sysId, "sysId"))
+ .query(responseModel)
.invoke(HttpMethod.GET);
setBodyAndHeaders(in, responseModel, response);
@@ -79,6 +80,7 @@ class HelsinkiServiceNowImportSetProcessor extends AbstractServiceNowProcessor {
.path(apiVersion)
.path("import")
.path(tableName)
+ .query(responseModel)
.invoke(HttpMethod.POST, in.getMandatoryBody());
setBodyAndHeaders(in, responseModel, response);
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/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 5947532..c4e9d1b 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
@@ -60,6 +60,7 @@ class HelsinkiServiceNowMiscProcessor extends AbstractServiceNowProcessor {
.path("global")
.path("user_role_inheritance")
.query(ServiceNowParams.PARAM_USER_SYS_ID, in)
+ .query(responseModel)
.invoke(HttpMethod.GET);
setBodyAndHeaders(in, responseModel, response);
@@ -85,6 +86,7 @@ class HelsinkiServiceNowMiscProcessor extends AbstractServiceNowProcessor {
.path(apiVersion)
.path("identifyreconcile")
.query(ServiceNowParams.SYSPARM_DATA_SOURCE, in)
+ .query(responseModel)
.invoke(HttpMethod.POST, in.getMandatoryBody());
setBodyAndHeaders(in, responseModel, response);
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/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 cae4cd0..78cace8 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
@@ -79,6 +79,7 @@ class HelsinkiServiceNowScorecardProcessor extends AbstractServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_ELEMENTS_FILTER, in)
.query(ServiceNowParams.SYSPARM_BREAKDOWN_RELATION, in)
.query(ServiceNowParams.SYSPARM_INCLUDE_SCORE_NOTES, in)
+ .query(responseModel)
.invoke(HttpMethod.GET);
setBodyAndHeaders(in, responseModel, response);
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/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 99b1d52..d890172 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
@@ -67,6 +67,7 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
.path(apiVersion)
.path("servicecatalog")
.path("cart")
+ .query(responseModel)
.invoke(HttpMethod.GET);
setBodyAndHeaders(in, responseModel, response);
@@ -94,6 +95,7 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
.path("cart")
.path("delivery_address")
.path(getMandatoryRequestParamFromHeader(ServiceNowParams.PARAM_USER_ID, in))
+ .query(responseModel)
.invoke(HttpMethod.GET);
setBodyAndHeaders(in, responseModel, response);
@@ -120,6 +122,7 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
.path("servicecatalog")
.path("cart")
.path(getMandatoryRequestParamFromHeader(ServiceNowParams.PARAM_CART_ITEM_ID, in))
+ .query(responseModel)
.invoke(HttpMethod.POST, in.getMandatoryBody());
setBodyAndHeaders(in, responseModel, response);
@@ -148,6 +151,7 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
.path("cart")
.path(getMandatoryRequestParamFromHeader(ServiceNowParams.PARAM_SYS_ID, in))
.path("empty")
+ .query(responseModel)
.invoke(HttpMethod.DELETE);
setBodyAndHeaders(in, responseModel, response);
@@ -178,6 +182,7 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
.path("servicecatalog")
.path("cart")
.path("checkout")
+ .query(responseModel)
.invoke(HttpMethod.POST);
setBodyAndHeaders(in, responseModel, response);
@@ -205,6 +210,7 @@ class HelsinkiServiceNowServiceCatalogCartsProcessor extends AbstractServiceNowP
.path("servicecatalog")
.path("cart")
.path("submit_order")
+ .query(responseModel)
.invoke(HttpMethod.POST);
setBodyAndHeaders(in, responseModel, response);
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/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 e81ef73..bd5e905 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
@@ -61,6 +61,7 @@ class HelsinkiServiceNowServiceCatalogCategoriesProcessor extends AbstractServic
.path("categories")
.path(ObjectHelper.notNull(sysId, "sysId"))
.query(ServiceNowParams.SYSPARM_VIEW, in)
+ .query(responseModel)
.invoke(HttpMethod.GET);
setBodyAndHeaders(in, responseModel, response);
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/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 f8824ed..c0520c1 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
@@ -78,6 +78,7 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP
.query(ServiceNowParams.SYSPARM_OFFSET, in)
.query(ServiceNowParams.SYSPARM_CATALOG, in)
.query(ServiceNowParams.SYSPARM_VIEW, in)
+ .query(responseModel)
.invoke(HttpMethod.GET)
: client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
@@ -87,6 +88,7 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP
.path("items")
.path(sysId)
.query(ServiceNowParams.SYSPARM_VIEW, in)
+ .query(responseModel)
.invoke(HttpMethod.GET);
setBodyAndHeaders(in, responseModel, response);
@@ -117,6 +119,7 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP
.path(ObjectHelper.notNull(sysId, "sysId"))
.path("submit_guide")
.query(ServiceNowParams.SYSPARM_VIEW, in)
+ .query(responseModel)
.invoke(HttpMethod.POST, in.getMandatoryBody());
setBodyAndHeaders(in, responseModel, response);
@@ -145,6 +148,7 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP
.path("items")
.path(ObjectHelper.notNull(sysId, "sysId"))
.path("submit_guide")
+ .query(responseModel)
.invoke(HttpMethod.POST, in.getMandatoryBody());
setBodyAndHeaders(in, responseModel, response);
@@ -173,6 +177,7 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP
.path("items")
.path(ObjectHelper.notNull(sysId, "sysId"))
.path("add_to_cart")
+ .query(responseModel)
.invoke(HttpMethod.POST);
setBodyAndHeaders(in, responseModel, response);
@@ -203,6 +208,7 @@ class HelsinkiServiceNowServiceCatalogItemsProcessor extends AbstractServiceNowP
.path(ObjectHelper.notNull(sysId, "sysId"))
.path("submit_producer")
.query(ServiceNowParams.SYSPARM_VIEW, in)
+ .query(responseModel)
.invoke(HttpMethod.POST, in.getMandatoryBody());
setBodyAndHeaders(in, responseModel, response);
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/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 47d52b1..42b5da3 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
@@ -67,6 +67,7 @@ class HelsinkiServiceNowServiceCatalogProcessor extends AbstractServiceNowProces
.query(ServiceNowParams.SYSPARM_LIMIT, in)
.query(ServiceNowParams.SYSPARM_QUERY, in)
.query(ServiceNowParams.SYSPARM_VIEW, in)
+ .query(responseModel)
.invoke(HttpMethod.GET)
: client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
@@ -76,6 +77,7 @@ class HelsinkiServiceNowServiceCatalogProcessor extends AbstractServiceNowProces
.path("catalogs")
.path(sysId)
.query(ServiceNowParams.SYSPARM_VIEW, in)
+ .query(responseModel)
.invoke(HttpMethod.GET);
setBodyAndHeaders(in, responseModel, response);
@@ -108,6 +110,7 @@ class HelsinkiServiceNowServiceCatalogProcessor extends AbstractServiceNowProces
.query(ServiceNowParams.SYSPARM_LIMIT, in)
.query(ServiceNowParams.SYSPARM_VIEW, in)
.query(ServiceNowParams.SYSPARM_OFFSET, in)
+ .query(responseModel)
.invoke(HttpMethod.GET);
setBodyAndHeaders(in, responseModel, response);
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/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 05be850..8e62408 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
@@ -71,6 +71,7 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_LIMIT, in)
.query(ServiceNowParams.SYSPARM_OFFSET, in)
.query(ServiceNowParams.SYSPARM_VIEW, in)
+ .query(responseModel)
.invoke(HttpMethod.GET)
: client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
@@ -83,6 +84,7 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_EXCLUDE_REFERENCE_LINK, in)
.query(ServiceNowParams.SYSPARM_FIELDS, in)
.query(ServiceNowParams.SYSPARM_VIEW, in)
+ .query(responseModel)
.invoke(HttpMethod.GET);
setBodyAndHeaders(exchange.getIn(), responseModel, response);
@@ -101,6 +103,7 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
final String sysId = getSysID(in);
validateBody(in, requestModel);
+
Response response = client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
.path("now")
@@ -113,6 +116,7 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_INPUT_DISPLAY_VALUE, in)
.query(ServiceNowParams.SYSPARM_SUPPRESS_AUTO_SYS_FIELD, in)
.query(ServiceNowParams.SYSPARM_VIEW, in)
+ .query(responseModel)
.invoke(HttpMethod.POST, in.getMandatoryBody());
setBodyAndHeaders(exchange.getIn(), responseModel, response);
@@ -131,6 +135,7 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
final String sysId = getSysID(in);
validateBody(in, requestModel);
+
Response response = client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
.path("now")
@@ -144,6 +149,7 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_INPUT_DISPLAY_VALUE, in)
.query(ServiceNowParams.SYSPARM_SUPPRESS_AUTO_SYS_FIELD, in)
.query(ServiceNowParams.SYSPARM_VIEW, in)
+ .query(responseModel)
.invoke(HttpMethod.PUT, in.getMandatoryBody());
setBodyAndHeaders(exchange.getIn(), responseModel, response);
@@ -167,6 +173,7 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
.path("table")
.path(tableName)
.path(ObjectHelper.notNull(sysId, "sysId"))
+ .query(responseModel)
.invoke(HttpMethod.DELETE, null);
setBodyAndHeaders(exchange.getIn(), responseModel, response);
@@ -185,6 +192,7 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
final String sysId = getSysID(in);
validateBody(in, requestModel);
+
Response response = client.reset()
.types(MediaType.APPLICATION_JSON_TYPE)
.path("now")
@@ -198,6 +206,7 @@ class HelsinkiServiceNowTableProcessor extends AbstractServiceNowProcessor {
.query(ServiceNowParams.SYSPARM_INPUT_DISPLAY_VALUE, in)
.query(ServiceNowParams.SYSPARM_SUPPRESS_AUTO_SYS_FIELD, in)
.query(ServiceNowParams.SYSPARM_VIEW, in)
+ .query(responseModel)
.invoke("PATCH", in.getMandatoryBody());
setBodyAndHeaders(exchange.getIn(), responseModel, response);
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/ServiceNowTableTest.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/ServiceNowTableTest.java b/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/ServiceNowTableTest.java
index 62ba190..e775e85 100644
--- a/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/ServiceNowTableTest.java
+++ b/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/ServiceNowTableTest.java
@@ -23,6 +23,7 @@ import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.component.servicenow.model.Incident;
+import org.apache.camel.component.servicenow.model.IncidentWithParms;
import org.junit.Test;
public class ServiceNowTableTest extends ServiceNowTestSupport {
@@ -57,6 +58,38 @@ public class ServiceNowTableTest extends ServiceNowTestSupport {
}
@Test
+ public void testRetrieveSomeWithParams() throws Exception {
+ MockEndpoint mock = getMockEndpoint("mock:servicenow");
+ mock.expectedMessageCount(1);
+
+ template().sendBodyAndHeaders(
+ "direct:servicenow",
+ null,
+ kvBuilder()
+ .put(ServiceNowConstants.RESOURCE, "table")
+ .put(ServiceNowConstants.ACTION, ServiceNowConstants.ACTION_RETRIEVE)
+ .put(ServiceNowParams.SYSPARM_LIMIT, 10)
+ .put(ServiceNowParams.SYSPARM_EXCLUDE_REFERENCE_LINK, false)
+ .put(ServiceNowParams.PARAM_TABLE_NAME, "incident")
+ .put(ServiceNowConstants.MODEL, IncidentWithParms.class)
+ .build()
+ );
+
+ mock.assertIsSatisfied();
+
+ Exchange exchange = mock.getExchanges().get(0);
+ List<Incident> items = exchange.getIn().getBody(List.class);
+
+ assertNotNull(items);
+ assertFalse(items.isEmpty());
+ assertTrue(items.size() <= 10);
+ assertNotNull(exchange.getIn().getHeader(ServiceNowConstants.RESPONSE_TYPE));
+ assertNotNull(exchange.getIn().getHeader(ServiceNowConstants.OFFSET_FIRST));
+ assertNotNull(exchange.getIn().getHeader(ServiceNowConstants.OFFSET_NEXT));
+ assertNotNull(exchange.getIn().getHeader(ServiceNowConstants.OFFSET_LAST));
+ }
+
+ @Test
public void testRetrieveSomeWithDefaults() throws Exception {
MockEndpoint mock = getMockEndpoint("mock:servicenow-defaults");
mock.expectedMessageCount(1);
http://git-wip-us.apache.org/repos/asf/camel/blob/05aa433e/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/model/IncidentWithParms.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/model/IncidentWithParms.java b/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/model/IncidentWithParms.java
new file mode 100644
index 0000000..03ff9ff
--- /dev/null
+++ b/components/camel-servicenow/src/test/java/org/apache/camel/component/servicenow/model/IncidentWithParms.java
@@ -0,0 +1,64 @@
+/**
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.camel.component.servicenow.annotations.ServiceNowSysParm;
+
+@ServiceNowSysParm(name = "sysparm_exclude_reference_link", value = "true")
+@ServiceNowSysParm(name = "sysparm_fields", value = "id%2Cnumber%2Ccaller_id")
+@JsonIgnoreProperties(ignoreUnknown = true)
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class IncidentWithParms {
+ @JsonProperty("sys_id")
+ private String id;
+ @JsonProperty("number")
+ private String number;
+ @JsonProperty("caller_id")
+ private String callerId;
+
+ public IncidentWithParms() {
+ }
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getNumber() {
+ return number;
+ }
+
+ public void setNumber(String number) {
+ this.number = number;
+ }
+
+ public String getCallerId() {
+ return callerId;
+ }
+
+ public void setCallerId(String callerId) {
+ this.callerId = callerId;
+ }
+}