summaryrefslogtreecommitdiffstats
path: root/activiti-extension/src/main/java/org/onap/workflow/activitiext/restservicetask/LowLevelRestApi.java
diff options
context:
space:
mode:
Diffstat (limited to 'activiti-extension/src/main/java/org/onap/workflow/activitiext/restservicetask/LowLevelRestApi.java')
-rw-r--r--activiti-extension/src/main/java/org/onap/workflow/activitiext/restservicetask/LowLevelRestApi.java79
1 files changed, 79 insertions, 0 deletions
diff --git a/activiti-extension/src/main/java/org/onap/workflow/activitiext/restservicetask/LowLevelRestApi.java b/activiti-extension/src/main/java/org/onap/workflow/activitiext/restservicetask/LowLevelRestApi.java
new file mode 100644
index 0000000..9171c31
--- /dev/null
+++ b/activiti-extension/src/main/java/org/onap/workflow/activitiext/restservicetask/LowLevelRestApi.java
@@ -0,0 +1,79 @@
+/**
+ * Copyright 2017 ZTE Corporation.
+ *
+ * Licensed 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.onap.workflow.activitiext.restservicetask;
+
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpMethod;
+
+/**
+ * This static-class eases HTTP-method execution by self-managed fault-handling and automated
+ * Response-information processing
+ */
+public class LowLevelRestApi {
+
+ // Local HttpClient used for every communication (Singleton implementation)
+ private static HttpClient httpClient = new HttpClient();
+
+
+ /**
+ * Executes a passed HttpMethod (Method type is either PUT, POST, GET or DELETE) and returns a
+ * HttpResponseMessage
+ *
+ * @param method Method to execute
+ * @return HttpResponseMessage which contains all information about the execution
+ */
+ public static HttpResponseMessage executeHttpMethod(HttpMethod method) {
+
+ HttpResponseMessage responseMessage = null;
+
+ try {
+
+ // Execute Request
+ LowLevelRestApi.httpClient.executeMethod(method);
+ responseMessage = LowLevelRestApi.extractResponseInformation(method);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+
+ // Release Connection anyway
+ method.releaseConnection();
+ }
+
+ // Extract response information and return
+ return responseMessage;
+ }
+
+ /**
+ * Extracts the response information from an executed HttpMethod
+ *
+ * @param method Executed Method
+ * @return Packaged response information
+ */
+ private static HttpResponseMessage extractResponseInformation(HttpMethod method) {
+ // Create and return HttpResponseMethod
+ HttpResponseMessage responseMessage = new HttpResponseMessage();
+ responseMessage.setStatusCode(method.getStatusCode());
+ try {
+ responseMessage.setResponseBody(method.getResponseBodyAsString());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return responseMessage;
+
+ }
+
+}