From ab102f5ea3be0051c1f41da44fc89487f2dc13f9 Mon Sep 17 00:00:00 2001 From: YuanHu Date: Thu, 12 Apr 2018 15:57:13 +0800 Subject: Fixed Error in Retrieving Data From SDC Retrieve extend activities from sdc Retrieve bpmn artifact from sdc Issue-ID: SDC-1215 Change-Id: I9122237bddb2a95ec406bc762dab1d293e8825dd Signed-off-by: YuanHu --- .../workflowdesigner/common/SDCProxyException.java | 33 ++++ .../common/WorkflowDesignerException.java | 33 ---- .../sdc/ActivitySpecServiceProxy.java | 12 +- .../externalservice/sdc/SDCServiceProxy.java | 14 +- .../resources/ExtendActivityResource.java | 172 +++++++++++++++++++-- .../resources/WorkflowModelerResource.java | 137 ++++++++++++---- .../resources/entity/ExtActivity.java | 116 ++++++++++++++ .../resources/entity/ExtendActivity.java | 116 -------------- .../resources/ExtendActivityResourceTest.java | 6 +- .../resources/WorkflowModelerResourceTest.java | 23 +-- .../resources/entity/ExtendActivityTest.java | 2 +- 11 files changed, 443 insertions(+), 221 deletions(-) create mode 100644 sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/common/SDCProxyException.java delete mode 100644 sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/common/WorkflowDesignerException.java create mode 100644 sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/resources/entity/ExtActivity.java delete mode 100644 sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/resources/entity/ExtendActivity.java diff --git a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/common/SDCProxyException.java b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/common/SDCProxyException.java new file mode 100644 index 00000000..8f596b0c --- /dev/null +++ b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/common/SDCProxyException.java @@ -0,0 +1,33 @@ +/** + * Copyright 2018 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.sdc.workflowdesigner.common; + +public class SDCProxyException extends Exception { + + private static final long serialVersionUID = 1L; + + public SDCProxyException() { + super(); + } + + public SDCProxyException(String msg, Exception e) { + super(msg, e); + } + + public SDCProxyException(String msg) { + super(msg); + } +} diff --git a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/common/WorkflowDesignerException.java b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/common/WorkflowDesignerException.java deleted file mode 100644 index 343df014..00000000 --- a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/common/WorkflowDesignerException.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Copyright 2018 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.sdc.workflowdesigner.common; - -public class WorkflowDesignerException extends Exception { - - private static final long serialVersionUID = 1L; - - public WorkflowDesignerException() { - super(); - } - - public WorkflowDesignerException(String msg, Exception e) { - super(msg, e); - } - - public WorkflowDesignerException(String msg) { - super(msg); - } -} diff --git a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/externalservice/sdc/ActivitySpecServiceProxy.java b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/externalservice/sdc/ActivitySpecServiceProxy.java index fa1987ef..e014b542 100644 --- a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/externalservice/sdc/ActivitySpecServiceProxy.java +++ b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/externalservice/sdc/ActivitySpecServiceProxy.java @@ -16,7 +16,7 @@ package org.onap.sdc.workflowdesigner.externalservice.sdc; import org.glassfish.jersey.client.ClientConfig; -import org.onap.sdc.workflowdesigner.common.WorkflowDesignerException; +import org.onap.sdc.workflowdesigner.common.SDCProxyException; import org.onap.sdc.workflowdesigner.config.AppConfig; import org.onap.sdc.workflowdesigner.externalservice.sdc.entity.ActivitySpec; import org.slf4j.Logger; @@ -35,11 +35,11 @@ public class ActivitySpecServiceProxy { private static final String X_ECOMP_INSTANCE_ID = AppConfig.getSdcServiceProxy().getxEcompInstanceId(); /** */ - private static final String Activity_ROOT_PATH = "/activityspec-api/v1.0"; + private static final String ACTIVITY_ROOT_PATH = "/activityspec-api/v1.0"; private static String getActivityRootPath() { - return AppConfig.getSdcServiceProxy().getServiceAddr() + Activity_ROOT_PATH; + return AppConfig.getSdcServiceProxy().getServiceAddr() + ACTIVITY_ROOT_PATH; } /** @@ -54,15 +54,15 @@ public class ActivitySpecServiceProxy { /** * * @return - * @throws WorkflowDesignerException + * @throws SDCProxyException */ - public ActivitySpec[] getActivitySpecs() throws WorkflowDesignerException { + public ActivitySpec[] getActivitySpecs() throws SDCProxyException { ActivitySpecService serviceProxy = getActivityServiceProxy(); try { return serviceProxy.getActivitySpecs(X_ECOMP_INSTANCE_ID, AUTHORIZATION); } catch (Exception e) { LOGGER.error("Get Activity Specifications Failed.", e); - throw new WorkflowDesignerException("Get Activity Specifications Failed.", e); + throw new SDCProxyException("Get Activity Specifications Failed.", e); } } diff --git a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/externalservice/sdc/SDCServiceProxy.java b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/externalservice/sdc/SDCServiceProxy.java index b925c03d..374bca7a 100644 --- a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/externalservice/sdc/SDCServiceProxy.java +++ b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/externalservice/sdc/SDCServiceProxy.java @@ -16,7 +16,7 @@ package org.onap.sdc.workflowdesigner.externalservice.sdc; import org.glassfish.jersey.client.ClientConfig; -import org.onap.sdc.workflowdesigner.common.WorkflowDesignerException; +import org.onap.sdc.workflowdesigner.common.SDCProxyException; import org.onap.sdc.workflowdesigner.config.AppConfig; import org.onap.sdc.workflowdesigner.externalservice.sdc.entity.WorkflowArtifactInfo; import org.slf4j.Logger; @@ -56,17 +56,17 @@ public class SDCServiceProxy { * @param operationId * @param workflowId * @param workflowArtifactInfo - * @throws WorkflowDesignerException + * @throws SDCProxyException */ public void saveWorkflowArtifact(String uuid, String operationId, String workflowId, - WorkflowArtifactInfo workflowArtifactInfo) throws WorkflowDesignerException { + WorkflowArtifactInfo workflowArtifactInfo) throws SDCProxyException { SDCService serviceProxy = getSDCServiceProxy(); try { serviceProxy.saveWorkflowArtifact(uuid, operationId, workflowId, X_ECOMP_INSTANCE_ID, AUTHORIZATION, workflowArtifactInfo); } catch (Exception e) { LOGGER.error("Save WorkflowArtifact Failed.", e); - throw new WorkflowDesignerException("Save WorkflowArtifact Failed.", e); + throw new SDCProxyException("Save WorkflowArtifact Failed.", e); } } @@ -76,17 +76,17 @@ public class SDCServiceProxy { * @param operationId * @param workflowId * @return - * @throws WorkflowDesignerException + * @throws SDCProxyException */ public WorkflowArtifactInfo getWorkflowArtifact(String uuid, String operationId, - String workflowId) throws WorkflowDesignerException { + String workflowId) throws SDCProxyException { SDCService serviceProxy = getSDCServiceProxy(); try { return serviceProxy.getWorkflowArtifact(uuid, operationId, workflowId, X_ECOMP_INSTANCE_ID, AUTHORIZATION); } catch (Exception e) { LOGGER.error("Get WorkflowArtifact Failed.", e); - throw new WorkflowDesignerException("Get WorkflowArtifact Failed.", e); + throw new SDCProxyException("Get WorkflowArtifact Failed.", e); } } diff --git a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/resources/ExtendActivityResource.java b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/resources/ExtendActivityResource.java index bd8a541f..46fef111 100644 --- a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/resources/ExtendActivityResource.java +++ b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/resources/ExtendActivityResource.java @@ -13,6 +13,8 @@ package org.onap.sdc.workflowdesigner.resources; import java.io.IOException; +import java.util.HashMap; +import java.util.Map; import javax.ws.rs.Consumes; import javax.ws.rs.GET; @@ -23,8 +25,18 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import org.eclipse.jetty.http.HttpStatus; +import org.onap.sdc.workflowdesigner.common.SDCProxyException; +import org.onap.sdc.workflowdesigner.config.AppConfig; +import org.onap.sdc.workflowdesigner.externalservice.sdc.ActivitySpecServiceProxy; +import org.onap.sdc.workflowdesigner.externalservice.sdc.entity.ActivitySpec; +import org.onap.sdc.workflowdesigner.externalservice.sdc.entity.Parameter; import org.onap.sdc.workflowdesigner.resources.entity.ExtActivityDisplayInfo; -import org.onap.sdc.workflowdesigner.resources.entity.ExtendActivity; +import org.onap.sdc.workflowdesigner.resources.entity.I18nString; +import org.onap.sdc.workflowdesigner.resources.entity.InputOutput; +import org.onap.sdc.workflowdesigner.resources.entity.NodeCategory; +import org.onap.sdc.workflowdesigner.resources.entity.CategoryData; +import org.onap.sdc.workflowdesigner.resources.entity.Content; +import org.onap.sdc.workflowdesigner.resources.entity.ExtActivity; import org.onap.sdc.workflowdesigner.utils.FileCommonUtils; import org.onap.sdc.workflowdesigner.utils.JsonUtils; import org.onap.sdc.workflowdesigner.utils.RestUtils; @@ -54,6 +66,11 @@ public class ExtendActivityResource { private static final String EXT_ACTIVITIES_FILE_NAME = "ext-activities.json"; + private static final CategoryData EXTENSION_TASK_CATEGORY = + new CategoryData(new I18nString("Extension Task", "Extension Task")); + + private static final String EXTENSION_TASK_CATEGORY_CATEGORY_ID = "extension_task_category_id"; + /** * test function. * @@ -63,7 +80,7 @@ public class ExtendActivityResource { @GET @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) - @ApiOperation(value = "Get Extend Activities.", response = ExtendActivity.class, + @ApiOperation(value = "Get Extend Activities.", response = ExtActivity.class, responseContainer = "List") @ApiResponses(value = { @ApiResponse(code = HttpStatus.NOT_FOUND_404, message = "microservice not found", @@ -74,25 +91,106 @@ public class ExtendActivityResource { response = String.class)}) @Timed public Response getExtActivities(@ApiParam(value = "sence") @QueryParam("sence") String sence) { + if (AppConfig.isSDCAdapter()) { + return getExtActivitiesfromSDC(); + } else { + return getExtActivitiesfromLocal(); + } + } + /** + * @return + */ + private Response getExtActivitiesfromLocal() { try { - ExtendActivity[] extActivities = retriveExtActivites(sence); + String json = FileCommonUtils.readString(EXT_ACTIVITIES_FILE_NAME); + ExtActivity[] extActivities = JsonUtils.fromJson(json, ExtActivity[].class); return Response.status(Response.Status.OK).entity(extActivities).build(); } catch (IOException e) { - LOGGER.error("Get ExtActivities failed.", e); + LOGGER.error("Get ExtActivities from local failed.", e); throw RestUtils.newInternalServerErrorException(e); } + } + /** + * @return + */ + private Response getExtActivitiesfromSDC() { + try { + ActivitySpecServiceProxy proxy = new ActivitySpecServiceProxy(); + ActivitySpec[] activitySpecs = proxy.getActivitySpecs(); + ExtActivity[] extActivities = convert2ExtActivities(activitySpecs); + return Response.status(Response.Status.OK).entity(extActivities).build(); + } catch (SDCProxyException e) { + LOGGER.error("Get ExtActivities from sdc failed.", e); + throw RestUtils.newInternalServerErrorException(e); + } } /** - * @param sence + * @param activitySpecs + * @return + */ + private ExtActivity[] convert2ExtActivities(ActivitySpec[] activitySpecs) { + ExtActivity[] extendActivities = new ExtActivity[activitySpecs.length]; + for (int i = 0; i < activitySpecs.length; i++) { + extendActivities[i] = convert2ExtActivity(activitySpecs[i]); + } + return extendActivities; + } + + /** + * @param activitySpec + * @return + */ + private ExtActivity convert2ExtActivity(ActivitySpec activitySpec) { + ExtActivity extActivity = new ExtActivity(); + extActivity.setId(activitySpec.getId()); + extActivity.setDisplayName(new I18nString(activitySpec.getName(), activitySpec.getName())); + extActivity.setDescription( + new I18nString(activitySpec.getDescription(), activitySpec.getDescription())); + extActivity.setType(activitySpec.getType()); + extActivity.setContent(buildContent(activitySpec)); + return extActivity; + } + + /** + * @param activitySpec + * @return + */ + private Content buildContent(ActivitySpec activitySpec) { + Content content = new Content(); + content.setClass(activitySpec.getContent().getClazz()); + content.setScript(activitySpec.getContent().getScript()); + content.setScriptFormat(activitySpec.getContent().getScriptFormat()); + content.setInputs(convert2InputOutputs(activitySpec.getInputs())); + content.setOutputs(convert2InputOutputs(activitySpec.getOutputs())); + return content; + } + + /** + * @param parameters + * @return + */ + private Map convert2InputOutputs(Parameter[] parameters) { + Map inputOutputs = new HashMap<>(); + for (Parameter parameter : parameters) { + inputOutputs.put(parameter.getName(), convert2InputOutput(parameter)); + } + return inputOutputs; + } + + /** + * @param parameter * @return - * @throws IOException */ - protected ExtendActivity[] retriveExtActivites(String sence) throws IOException { - String json = FileCommonUtils.readString(EXT_ACTIVITIES_FILE_NAME); - return JsonUtils.fromJson(json, ExtendActivity[].class); + private InputOutput convert2InputOutput(Parameter parameter) { + InputOutput inputOutput = new InputOutput(); + inputOutput.setDisplayName(new I18nString(parameter.getName(), parameter.getName())); + inputOutput.setType(parameter.getType()); + inputOutput.setDefault(parameter.getDefault()); + inputOutput.setValue(parameter.getValue()); + return inputOutput; } @@ -111,15 +209,69 @@ public class ExtendActivityResource { response = String.class)}) @Timed public Response getDisplayInfo(@ApiParam(value = "sence") @QueryParam("sence") String sence) { + if (AppConfig.isSDCAdapter()) { + return getDisplayInfofromSDC(); + } else { + return getDisplayInfofromLocal(sence); + } + } + + /** + * @param sence + * @return + */ + private Response getDisplayInfofromLocal(String sence) { try { ExtActivityDisplayInfo displayInfo = retriveDisplayInfo(sence); return Response.status(Response.Status.OK).entity(displayInfo).build(); } catch (IOException e) { - LOGGER.error("Get Extend Activities DisplayInfo failed.", e); + LOGGER.error("Get Extend Activities DisplayInfo from failed.", e); throw RestUtils.newInternalServerErrorException(e); } } + /** + * @return + */ + private Response getDisplayInfofromSDC() { + try { + ActivitySpecServiceProxy proxy = new ActivitySpecServiceProxy(); + ActivitySpec[] activitySpecs = proxy.getActivitySpecs(); + ExtActivityDisplayInfo displayInfo = convert2ExtActivityDisplayInfo(activitySpecs); + return Response.status(Response.Status.OK).entity(displayInfo).build(); + } catch (SDCProxyException e) { + LOGGER.error("Get Extend Activities DisplayInfo from sdc failed.", e); + throw RestUtils.newInternalServerErrorException(e); + } + } + + /** + * @param activitySpecs + * @return + */ + private ExtActivityDisplayInfo convert2ExtActivityDisplayInfo(ActivitySpec[] activitySpecs) { + ExtActivityDisplayInfo displayInfo = new ExtActivityDisplayInfo(); + + for (ActivitySpec activitySpec : activitySpecs) { + displayInfo.getNodes().put(activitySpec.getId(), buildNodeCategory(activitySpec)); + } + + displayInfo.getCategoryData().put(EXTENSION_TASK_CATEGORY_CATEGORY_ID, EXTENSION_TASK_CATEGORY); + + return displayInfo; + } + + /** + * @param activitySpec + * @return + */ + private NodeCategory buildNodeCategory(ActivitySpec activitySpec) { + NodeCategory nodeCategory = new NodeCategory(); + nodeCategory.setCategory(EXTENSION_TASK_CATEGORY_CATEGORY_ID); + + return nodeCategory; + } + /** * @param sence * @return diff --git a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/resources/WorkflowModelerResource.java b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/resources/WorkflowModelerResource.java index 0f0e2dd8..c08fcef5 100644 --- a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/resources/WorkflowModelerResource.java +++ b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/resources/WorkflowModelerResource.java @@ -14,9 +14,9 @@ package org.onap.sdc.workflowdesigner.resources; import java.io.IOException; import java.net.URI; -//import java.nio.file.Paths; +import java.nio.file.Paths; import java.util.List; -//import java.util.UUID; +import java.util.UUID; import javax.ws.rs.Consumes; import javax.ws.rs.GET; @@ -24,6 +24,7 @@ import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @@ -32,15 +33,17 @@ import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.eclipse.jetty.http.HttpStatus; -//import org.onap.sdc.workflowdesigner.common.WorkflowDesignerException; -//import org.onap.sdc.workflowdesigner.externalservice.sdc.SDCServiceProxy; -//import org.onap.sdc.workflowdesigner.externalservice.sdc.entity.WorkflowArtifactInfo; +import org.onap.sdc.workflowdesigner.common.SDCProxyException; +import org.onap.sdc.workflowdesigner.config.AppConfig; +import org.onap.sdc.workflowdesigner.externalservice.sdc.SDCServiceProxy; +import org.onap.sdc.workflowdesigner.externalservice.sdc.entity.WorkflowArtifactInfo; import org.onap.sdc.workflowdesigner.model.Process; import org.onap.sdc.workflowdesigner.parser.Bpmn4ToscaJsonParser; -//import org.onap.sdc.workflowdesigner.resources.entity.WorkflowInfo; +import org.onap.sdc.workflowdesigner.resources.entity.WorkflowInfo; import org.onap.sdc.workflowdesigner.utils.FileCommonUtils; -//import org.onap.sdc.workflowdesigner.utils.JsonUtils; +import org.onap.sdc.workflowdesigner.utils.JsonUtils; import org.onap.sdc.workflowdesigner.utils.RestUtils; +import org.onap.sdc.workflowdesigner.utils.ToolUtils; import org.onap.sdc.workflowdesigner.writer.BpmnPlanArtefactWriter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -63,7 +66,7 @@ public class WorkflowModelerResource { private static final Logger logger = LoggerFactory.getLogger(WorkflowModelerResource.class); private static final String WORKFLOW_JSON_TEMP_FILE_NAME = "temp_workflow.json"; -// private static final String WORKFLOW_XML_TEMP_FILE_NAME = "temp_workflow.xml"; + private static final String WORKFLOW_XML_TEMP_FILE_NAME = "temp_workflow.xml"; /** @@ -74,7 +77,7 @@ public class WorkflowModelerResource { @GET @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) - @ApiOperation(value = "Get Model", response = String.class) + @ApiOperation(value = "Get Model", response = WorkflowInfo.class) @ApiResponses(value = { @ApiResponse(code = HttpStatus.NOT_FOUND_404, message = "microservice not found", response = String.class), @@ -83,17 +86,78 @@ public class WorkflowModelerResource { @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = "server internal error", response = String.class)}) @Timed - public Response getModel(@ApiParam(value = "id") @PathParam("id") String id) { + public Response getModel(@ApiParam(value = "id") @PathParam("id") String id, + @ApiParam(value = "name") @QueryParam("name") String name, + @ApiParam(value = "uuid") @QueryParam("uuid") String uuid, + @ApiParam(value = "operationId") @QueryParam("operationId") String operationId) { + if (AppConfig.isSDCAdapter()) { + return getModelfromSDC(uuid, operationId, id, name); + } else { + return getModelfromLocal(); + } + + } + + /** + * @return + */ + private Response getModelfromLocal() { try { String json = FileCommonUtils.readString(WORKFLOW_JSON_TEMP_FILE_NAME); return Response.status(Response.Status.OK).entity(json).build(); } catch (IOException e) { - logger.error("get workflow failed.", e); + logger.error("get workflow from local failed.", e); throw RestUtils.newInternalServerErrorException(e); } } + /** + * @param uuid + * @param operationId + * @param id + * @param name + * @return + */ + private Response getModelfromSDC(String uuid, String operationId, String id, String name) { + try { + SDCServiceProxy sdcProxy = new SDCServiceProxy(); + WorkflowArtifactInfo wai = sdcProxy.getWorkflowArtifact(uuid, operationId, id); + String bpmn = wai.getPayloadData(); + String json = readJsonfromBPMN(bpmn); + if (ToolUtils.isEmpty(json)) { + WorkflowInfo wfi = newEmptyWorkflowInfo(uuid, operationId, id, name); + return Response.status(Response.Status.OK).entity(wfi).build(); + } + return Response.status(Response.Status.OK).entity(json).build(); + } catch (SDCProxyException e) { + logger.error("get workflow from sdc failed.", e); + throw RestUtils.newInternalServerErrorException(e); + } catch (DocumentException e) { + logger.error("get workflow from sdc failed.", e); + throw RestUtils.newInternalServerErrorException(e); + } + } + + /** + * @param id + * @param operationId + * @param uuid + * @param name + * @return + */ + private WorkflowInfo newEmptyWorkflowInfo(String uuid, String operationId, String id, + String name) { + WorkflowInfo wfi = new WorkflowInfo(); + wfi.setId(id); + wfi.setName(name); + wfi.setUuid(uuid); + wfi.setOperationId(operationId); + + return wfi; + } + + @Path("/{id}") @PUT @@ -112,15 +176,16 @@ public class WorkflowModelerResource { @ApiParam(value = "Model Content", required = true) String json) { try { FileCommonUtils.write(WORKFLOW_JSON_TEMP_FILE_NAME, json); - - // TODO for Nexus-IQ -// URI srcUri = Paths.get(".", WORKFLOW_JSON_TEMP_FILE_NAME).toUri(); -// String processName = "plan_" + UUID.randomUUID().toString(); -// String bpmn = buildBPMN(srcUri, processName); -// String jsonBpmn = insertJson2Bpmn(json, bpmn); -// save2SDC(json, jsonBpmn); -// FileCommonUtils.write(WORKFLOW_XML_TEMP_FILE_NAME, jsonBpmn); + URI srcUri = Paths.get(".", WORKFLOW_JSON_TEMP_FILE_NAME).toUri(); + String processName = "plan_" + UUID.randomUUID().toString(); + String bpmn = buildBPMN(srcUri, processName); + String jsonBpmn = insertJson2Bpmn(json, bpmn); + + if (AppConfig.isSDCAdapter()) { + save2SDC(json, jsonBpmn); + } + FileCommonUtils.write(WORKFLOW_XML_TEMP_FILE_NAME, jsonBpmn); return Response.status(Response.Status.OK).entity(json).build(); } catch (IOException e) { @@ -149,7 +214,11 @@ public class WorkflowModelerResource { * @return * @throws DocumentException */ - protected String readJsonfromBPMNFile(String bpmn) throws DocumentException { + protected String readJsonfromBPMN(String bpmn) throws DocumentException { + if (ToolUtils.isEmpty(bpmn)) { + return null; + } + Document doc = DocumentHelper.parseText(bpmn); List elementList = doc.content(); for (Object object : elementList) { @@ -163,20 +232,20 @@ public class WorkflowModelerResource { } -// /** -// * @param json -// * @param bpmn -// * @throws WorkflowDesignerException -// */ -// private void save2SDC(String json, String bpmn) throws WorkflowDesignerException { -// WorkflowInfo workflowInfo = JsonUtils.fromJson(json, WorkflowInfo.class); -// WorkflowArtifactInfo workflowArtifactInfo = -// new WorkflowArtifactInfo(workflowInfo.getName(), workflowInfo.getDescription(), bpmn); -// -// SDCServiceProxy sdcProxy = new SDCServiceProxy(); -// sdcProxy.saveWorkflowArtifact(workflowInfo.getUuid(), workflowInfo.getOperationId(), -// workflowInfo.getId(), workflowArtifactInfo); -// } + /** + * @param json + * @param bpmn + * @throws SDCProxyException + */ + private void save2SDC(String json, String bpmn) throws SDCProxyException { + WorkflowInfo workflowInfo = JsonUtils.fromJson(json, WorkflowInfo.class); + WorkflowArtifactInfo workflowArtifactInfo = + new WorkflowArtifactInfo(workflowInfo.getName(), workflowInfo.getDescription(), bpmn); + + SDCServiceProxy sdcProxy = new SDCServiceProxy(); + sdcProxy.saveWorkflowArtifact(workflowInfo.getUuid(), workflowInfo.getOperationId(), + workflowInfo.getId(), workflowArtifactInfo); + } /** * diff --git a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/resources/entity/ExtActivity.java b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/resources/entity/ExtActivity.java new file mode 100644 index 00000000..46661713 --- /dev/null +++ b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/resources/entity/ExtActivity.java @@ -0,0 +1,116 @@ +/** + * Copyright (c) 2018 ZTE Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the Apache License, Version 2.0 + * and the Eclipse Public License v1.0 which both accompany this distribution, + * and are available at http://www.eclipse.org/legal/epl-v10.html + * and http://www.apache.org/licenses/LICENSE-2.0 + * + * Contributors: + * ZTE - initial API and implementation and/or initial documentation + */ +package org.onap.sdc.workflowdesigner.resources.entity; + +/** + * + */ +public class ExtActivity { + private String id; + + private I18nString displayName; + + private I18nString description; + + private String type; + + private IconData icon; + + private Content content; + + /** + * @return the id + */ + public String getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(String id) { + this.id = id; + } + + /** + * @return the type + */ + public String getType() { + return type; + } + + /** + * @param type the type to set + */ + public void setType(String type) { + this.type = type; + } + + /** + * @return the icon + */ + public IconData getIcon() { + return icon; + } + + /** + * @param icon the icon to set + */ + public void setIcon(IconData icon) { + this.icon = icon; + } + + /** + * @return the content + */ + public Content getContent() { + return content; + } + + /** + * @param content the content to set + */ + public void setContent(Content content) { + this.content = content; + } + + /** + * @return the displayName + */ + public I18nString getDisplayName() { + return displayName; + } + + /** + * @param displayName the displayName to set + */ + public void setDisplayName(I18nString displayName) { + this.displayName = displayName; + } + + /** + * @return the description + */ + public I18nString getDescription() { + return description; + } + + /** + * @param description the description to set + */ + public void setDescription(I18nString description) { + this.description = description; + } + + + +} diff --git a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/resources/entity/ExtendActivity.java b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/resources/entity/ExtendActivity.java deleted file mode 100644 index 30e35c13..00000000 --- a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/resources/entity/ExtendActivity.java +++ /dev/null @@ -1,116 +0,0 @@ -/** - * Copyright (c) 2018 ZTE Corporation. - * All rights reserved. This program and the accompanying materials - * are made available under the Apache License, Version 2.0 - * and the Eclipse Public License v1.0 which both accompany this distribution, - * and are available at http://www.eclipse.org/legal/epl-v10.html - * and http://www.apache.org/licenses/LICENSE-2.0 - * - * Contributors: - * ZTE - initial API and implementation and/or initial documentation - */ -package org.onap.sdc.workflowdesigner.resources.entity; - -/** - * - */ -public class ExtendActivity { - private String id; - - private I18nString displayName; - - private I18nString description; - - private String type; - - private IconData icon; - - private Content content; - - /** - * @return the id - */ - public String getId() { - return id; - } - - /** - * @param id the id to set - */ - public void setId(String id) { - this.id = id; - } - - /** - * @return the type - */ - public String getType() { - return type; - } - - /** - * @param type the type to set - */ - public void setType(String type) { - this.type = type; - } - - /** - * @return the icon - */ - public IconData getIcon() { - return icon; - } - - /** - * @param icon the icon to set - */ - public void setIcon(IconData icon) { - this.icon = icon; - } - - /** - * @return the content - */ - public Content getContent() { - return content; - } - - /** - * @param content the content to set - */ - public void setContent(Content content) { - this.content = content; - } - - /** - * @return the displayName - */ - public I18nString getDisplayName() { - return displayName; - } - - /** - * @param displayName the displayName to set - */ - public void setDisplayName(I18nString displayName) { - this.displayName = displayName; - } - - /** - * @return the description - */ - public I18nString getDescription() { - return description; - } - - /** - * @param description the description to set - */ - public void setDescription(I18nString description) { - this.description = description; - } - - - -} diff --git a/sdc-workflow-designer-server/src/test/java/org/onap/sdc/workflowdesigner/resources/ExtendActivityResourceTest.java b/sdc-workflow-designer-server/src/test/java/org/onap/sdc/workflowdesigner/resources/ExtendActivityResourceTest.java index 899e2ee9..fcb71360 100644 --- a/sdc-workflow-designer-server/src/test/java/org/onap/sdc/workflowdesigner/resources/ExtendActivityResourceTest.java +++ b/sdc-workflow-designer-server/src/test/java/org/onap/sdc/workflowdesigner/resources/ExtendActivityResourceTest.java @@ -16,7 +16,7 @@ import static org.junit.Assert.assertEquals; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.onap.sdc.workflowdesigner.resources.entity.ExtendActivity; +import org.onap.sdc.workflowdesigner.resources.entity.ExtActivity; import org.onap.sdc.workflowdesigner.utils.FileCommonUtils; import org.onap.sdc.workflowdesigner.utils.JsonUtils; @@ -39,13 +39,13 @@ public class ExtendActivityResourceTest { public void tearDown() throws Exception {} /** - * Test method for {@link org.onap.sdc.workflowdesigner.resources.ExtendActivityResource#retriveExtActivites(java.lang.String)}. + * */ @Test public void testRetriveExtActivites() { try { String json = FileCommonUtils.readString(EXT_ACTIVITIES_FILE_NAME); - ExtendActivity[] extActivities = JsonUtils.fromJson(json, ExtendActivity[].class); + ExtActivity[] extActivities = JsonUtils.fromJson(json, ExtActivity[].class); FileCommonUtils.write("test.json", JsonUtils.toJson(extActivities)); assertEquals(extActivities.length == 0, false); diff --git a/sdc-workflow-designer-server/src/test/java/org/onap/sdc/workflowdesigner/resources/WorkflowModelerResourceTest.java b/sdc-workflow-designer-server/src/test/java/org/onap/sdc/workflowdesigner/resources/WorkflowModelerResourceTest.java index a67adbeb..ba399644 100644 --- a/sdc-workflow-designer-server/src/test/java/org/onap/sdc/workflowdesigner/resources/WorkflowModelerResourceTest.java +++ b/sdc-workflow-designer-server/src/test/java/org/onap/sdc/workflowdesigner/resources/WorkflowModelerResourceTest.java @@ -45,7 +45,8 @@ public class WorkflowModelerResourceTest { public void tearDown() throws Exception {} /** - * Test method for {@link org.onap.sdc.workflowdesigner.resources.WorkflowModelerResource#buildBPMN(java.net.URI, java.lang.String)}. + * Test method for + * {@link org.onap.sdc.workflowdesigner.resources.WorkflowModelerResource#buildBPMN(java.net.URI, java.lang.String)}. */ @Test public void testBuildBPMN() { @@ -65,25 +66,25 @@ public class WorkflowModelerResourceTest { } catch (IOException e) { } catch (Exception e) { } -// return null; - // TODO for Nexus-IQ - return " "; + + return null; } - + /** - * Test method for {@link org.onap.sdc.workflowdesigner.resources.WorkflowModelerResource#insertJson2Bpmn(java.lang.String, java.lang.String)}. + * Test method for + * {@link org.onap.sdc.workflowdesigner.resources.WorkflowModelerResource#insertJson2Bpmn(java.lang.String, java.lang.String)}. */ @Test public void testInsertJson2Bpmn() { String bpmn = parseBpmnfromJsonFile(); - + try { String json = FileCommonUtils.readString("src/main/assembly/" + WORKFLOW_JSON_TEMP_FILE_NAME); WorkflowModelerResource resource = new WorkflowModelerResource(); String combineBpmn = resource.insertJson2Bpmn(json, bpmn); - String json1 = resource.readJsonfromBPMNFile(combineBpmn); - + String json1 = resource.readJsonfromBPMN(combineBpmn); + assertEqualsJson(json, json1); } catch (IOException e) { } catch (DocumentException e) { @@ -97,12 +98,12 @@ public class WorkflowModelerResourceTest { private void assertEqualsJson(String json, String json1) { WorkflowInfo wi = JsonUtils.fromJson(json, WorkflowInfo.class); WorkflowInfo wi1 = JsonUtils.fromJson(json1, WorkflowInfo.class); - + String newJson = JsonUtils.toJson(wi); String newJson1 = JsonUtils.toJson(wi1); assertEquals(newJson1, newJson); - + } } diff --git a/sdc-workflow-designer-server/src/test/java/org/onap/sdc/workflowdesigner/resources/entity/ExtendActivityTest.java b/sdc-workflow-designer-server/src/test/java/org/onap/sdc/workflowdesigner/resources/entity/ExtendActivityTest.java index e8fa1e75..0c16807a 100644 --- a/sdc-workflow-designer-server/src/test/java/org/onap/sdc/workflowdesigner/resources/entity/ExtendActivityTest.java +++ b/sdc-workflow-designer-server/src/test/java/org/onap/sdc/workflowdesigner/resources/entity/ExtendActivityTest.java @@ -43,7 +43,7 @@ public class ExtendActivityTest { IconData icon = new IconData(); Content content = new Content(); - ExtendActivity ea = new ExtendActivity(); + ExtActivity ea = new ExtActivity(); ea.setContent(content); ea.setDescription(description); ea.setDisplayName(displayName); -- cgit 1.2.3-korg