/** * 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.wrapper; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import javax.ws.rs.core.Response; import org.glassfish.jersey.media.multipart.FormDataContentDisposition; import org.onap.workflow.common.EnumStatus; import org.onap.workflow.common.RestResponse; import org.onap.workflow.entity.DeployBpmnFileResponse; import org.onap.workflow.entity.StartProcessRequest; import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiDeployResponse; import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiStartProcessRequest; import org.onap.workflow.externalservice.entity.activitientitiy.ActivitiStartProcessRequestParam; import org.onap.workflow.externalservice.service.activitiservice.ActivitiServiceConsumer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class WorkflowInstanceWrapper { private static final Logger logger = LoggerFactory.getLogger(WorkflowInstanceWrapper.class); private static WorkflowInstanceWrapper wrapper = new WorkflowInstanceWrapper(); public static WorkflowInstanceWrapper getInstance() { return wrapper; } public Response deployBpmnFile(String filename, InputStream fileInputStream, FormDataContentDisposition fileDetail) { try { ActivitiDeployResponse deployresult = ActivitiServiceConsumer.deploybpmnfile(fileInputStream, filename); if (deployresult != null) { DeployBpmnFileResponse result = new DeployBpmnFileResponse(); result.setStatus(EnumStatus.SUCCESS.ordinal()); result.setMessage(EnumStatus.SUCCESS.toString()); result.setDeployedId(deployresult.getId()); result.setProcessId(filename); return Response.ok(result).build(); } } catch (Exception e) { logger.error("deployBpmnFile fail.", e); } return Response.serverError().build(); } public RestResponse undeployBpmnFile(String deployId) { return ActivitiServiceConsumer.undeploybpmnfile(deployId); } public Response startProcess(StartProcessRequest request) { try { ActivitiStartProcessRequest bpmnrequest = new ActivitiStartProcessRequest(); bpmnrequest.setProcessDefinitionKey(request.getProcessDefinitionKey()); if (request.getParams() != null) { List paramlist = convertProcessRequest(request); bpmnrequest.setVariables(paramlist.toArray(new ActivitiStartProcessRequestParam[0])); } RestResponse result = ActivitiServiceConsumer.startBpmnProcess(bpmnrequest); return Response.ok(result.getResult()).build(); } catch (Exception e) { logger.error("startProcess fail.", e); } return Response.serverError().build(); } private List convertProcessRequest( StartProcessRequest request) { List paramlist = new ArrayList(); while (request.getParams().keySet().iterator().hasNext()) { String key = request.getParams().keySet().iterator().next(); ActivitiStartProcessRequestParam param = new ActivitiStartProcessRequestParam(); param.setName(key); param.setValue(request.getParams().get(key)); paramlist.add(param); } return paramlist; } }