/** * 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.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) { return deleteDeployProcess(deploymentId); } public static RestResponse startBpmnProcess(ActivitiStartProcessRequest request) { return startProcess(request); } public static RestResponse deleteDeployProcess(String deploymentId) { RestResponse res = null; try { res = RestClient.post(null, null, Constants.DEPLOY_BPMNFILE_URL + "/" + deploymentId); } catch (Exception e) { logger.error("Exception: ",e); return null; } return res; } public static RestResponse startProcess(ActivitiStartProcessRequest request) { RestResponse res = null; try { res = RestClient.post(null, null, Constants.ACITIVI_START_INSTANCE_URL, request); } catch (Exception e) { logger.error("Exception: ",e); return null; } return res; } public static ActivitiDeployResponse deploybpmnfile(InputStream ins, String filename) throws IOException { try { return deployPackage2Activiti(ins, filename); } finally { ToolUtil.closeInputStream(ins); } } private static ActivitiDeployResponse deployPackage2Activiti(InputStream ins, String filename) throws 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; } }