From c0604184b2aa8cff924ca783ec6b36f1f5988775 Mon Sep 17 00:00:00 2001 From: Zhaoxing Date: Tue, 8 Aug 2017 14:02:53 +0800 Subject: init code Change-Id: Icd0948118397b256da70dfbcbbec5520dc5eafd4 Signed-off-by: Zhaoxing --- .../activitiservice/ActivitiServiceConsumer.java | 142 +++++++++++++++++++++ .../activitiservice/IActivitiRestService.java | 44 +++++++ .../service/activitiservice/package-info.java | 17 +++ 3 files changed, 203 insertions(+) create mode 100644 wfenginemgrservice/src/main/java/org/onap/workflow/externalservice/service/activitiservice/ActivitiServiceConsumer.java create mode 100644 wfenginemgrservice/src/main/java/org/onap/workflow/externalservice/service/activitiservice/IActivitiRestService.java create mode 100644 wfenginemgrservice/src/main/java/org/onap/workflow/externalservice/service/activitiservice/package-info.java (limited to 'wfenginemgrservice/src/main/java/org/onap/workflow/externalservice/service') diff --git a/wfenginemgrservice/src/main/java/org/onap/workflow/externalservice/service/activitiservice/ActivitiServiceConsumer.java b/wfenginemgrservice/src/main/java/org/onap/workflow/externalservice/service/activitiservice/ActivitiServiceConsumer.java new file mode 100644 index 0000000..017cf35 --- /dev/null +++ b/wfenginemgrservice/src/main/java/org/onap/workflow/externalservice/service/activitiservice/ActivitiServiceConsumer.java @@ -0,0 +1,142 @@ +/** + * 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.externalservice.service.activitiservice; + +import java.io.IOException; +import java.io.InputStream; + +import javax.ws.rs.core.Response; + +import org.apache.http.client.ClientProtocolException; +import org.glassfish.jersey.client.ClientConfig; +import org.onap.workflow.common.Config; +import org.onap.workflow.common.EnumModuleUrl; +import org.onap.workflow.common.RestClient; +import org.onap.workflow.common.RestClientUtils; +import org.onap.workflow.common.RestResponse; +import org.onap.workflow.common.ToolUtil; +import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiDeployResponse; +import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiStartProcessRequest; +import org.onap.workflow.tools.Constants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.eclipsesource.jaxrs.consumer.ConsumerFactory; +import com.google.gson.Gson; + +/** + * + * @author 10090474 + * + */ +public class ActivitiServiceConsumer { + private static final Logger logger = LoggerFactory.getLogger(ActivitiServiceConsumer.class); + private static final String DEPLOY_BPMNFILE_URL = + EnumModuleUrl.ACTIVITI.getApiRootDomain() + "/repository/deployments"; + + private static IActivitiRestService activitiServiceProxy = null; + + private static IActivitiRestService getActivitiService() { + if (activitiServiceProxy == null) { + ClientConfig config = new ClientConfig(); + activitiServiceProxy = ConsumerFactory.createConsumer( + EnumModuleUrl.getBaseUrl(EnumModuleUrl.ACTIVITI), config, IActivitiRestService.class); + + } + return activitiServiceProxy; + } + + public static RestResponse undeploybpmnfile(String deploymentId) { + /* + * IActivitiRestService activitiProxy = getActivitiService(); + * activitiProxy.undeployBpmnFile(deploymentId); + */ + RestResponse res = deleteDeployProcess(deploymentId); + // activitiProxy.startProcess(request); + + return res; + } + + public static RestResponse startBpmnProcess(ActivitiStartProcessRequest request) { + // IActivitiRestService activitiProxy = getActivitiService(); + // startProcess( request); + // activitiProxy.startProcess(request); + return startProcess(request); + } + + public static RestResponse deleteDeployProcess(String deploymentId) { + // TODO Auto-generated method stub + RestResponse res = null; + try { + res = RestClient.post(null, null, Constants.DEPLOY_BPMNFILE_URL + "/" + deploymentId); + } catch (ClientProtocolException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + return res; + } + + public static RestResponse startProcess(ActivitiStartProcessRequest request) { + // TODO Auto-generated method stub + RestResponse res = null; + try { + res = RestClient.post(null, null, Constants.ACITIVI_START_INSTANCE_URL, request); + } catch (ClientProtocolException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + // if (Response.Status.OK.getStatusCode() == res.getStatusCode() + // || Response.Status.CREATED.getStatusCode() == res.getStatusCode()) { + // Response response = new Gson().fromJson(res.getResult(), Response.class); + // return response; + // } + return res; + } + + public static ActivitiDeployResponse deploybpmnfile(InputStream ins, String filename) + throws ClientProtocolException, IOException { + try { + return deployPackage2Activiti(ins, filename); + } finally { + ToolUtil.closeInputStream(ins); + } + } + + private static ActivitiDeployResponse deployPackage2Activiti(InputStream ins, String filename) + throws ClientProtocolException, IOException { + String ip = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrIp(); + int port = Config.getWorkflowAppConfig().getMsbClientConfig().getMsbSvrPort(); + RestResponse res = RestClient.post(ip, port, DEPLOY_BPMNFILE_URL, + RestClientUtils.buildMultipartRequest(ins, filename)); + logger.info("deployfile to activiti return. {}", res); + + if (Response.Status.OK.getStatusCode() == res.getStatusCode() + || Response.Status.CREATED.getStatusCode() == res.getStatusCode()) { + ActivitiDeployResponse response = + new Gson().fromJson(res.getResult(), ActivitiDeployResponse.class); + return response; + } + return null; + } +} diff --git a/wfenginemgrservice/src/main/java/org/onap/workflow/externalservice/service/activitiservice/IActivitiRestService.java b/wfenginemgrservice/src/main/java/org/onap/workflow/externalservice/service/activitiservice/IActivitiRestService.java new file mode 100644 index 0000000..b2a8366 --- /dev/null +++ b/wfenginemgrservice/src/main/java/org/onap/workflow/externalservice/service/activitiservice/IActivitiRestService.java @@ -0,0 +1,44 @@ +/** + * 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.externalservice.service.activitiservice; + +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiStartProcessRequest; + +@Path("/") +public interface IActivitiRestService { + @Path("/repository/deployments/{deploymentId}") + @DELETE + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + Response undeployBpmnFile(@PathParam("deploymentId") String deploymentId); + + + @Path("/runtime/process-instances") + @POST + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + Response startProcess(ActivitiStartProcessRequest request); +} diff --git a/wfenginemgrservice/src/main/java/org/onap/workflow/externalservice/service/activitiservice/package-info.java b/wfenginemgrservice/src/main/java/org/onap/workflow/externalservice/service/activitiservice/package-info.java new file mode 100644 index 0000000..a32e966 --- /dev/null +++ b/wfenginemgrservice/src/main/java/org/onap/workflow/externalservice/service/activitiservice/package-info.java @@ -0,0 +1,17 @@ +/** + * Copyright 2017 [ZTE] and others. + * + * 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.externalservice.service.activitiservice; \ No newline at end of file -- cgit 1.2.3-korg