/** * 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.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.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"; 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; } }