summaryrefslogtreecommitdiffstats
path: root/bpmn/so-bpmn-building-blocks/src
diff options
context:
space:
mode:
Diffstat (limited to 'bpmn/so-bpmn-building-blocks/src')
-rw-r--r--bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/AssignVnfBB.bpmn3
-rw-r--r--bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/HomingBB.bpmn323
-rw-r--r--bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/SDNCHandler.bpmn259
-rw-r--r--bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/WorkflowActionBB.bpmn5
-rw-r--r--bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/BaseBPMNTest.java50
-rw-r--r--bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/HomingBBTest.java (renamed from bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/buildingblock/SniroHomingV2BBTest.java)33
-rw-r--r--bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/SDNCHandlerTest.java77
-rw-r--r--bpmn/so-bpmn-building-blocks/src/test/resources/SDNCClientPut200Response.json15
-rw-r--r--bpmn/so-bpmn-building-blocks/src/test/resources/SDNCClientPut200ResponseNotFinal.json15
-rw-r--r--bpmn/so-bpmn-building-blocks/src/test/resources/SDNCFlowRequest.json11
-rw-r--r--bpmn/so-bpmn-building-blocks/src/test/resources/SDNC_Client_Request.json28
-rw-r--r--bpmn/so-bpmn-building-blocks/src/test/resources/application-test.yaml2
12 files changed, 670 insertions, 151 deletions
diff --git a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/AssignVnfBB.bpmn b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/AssignVnfBB.bpmn
index d2c7f17b19..0991ab5c36 100644
--- a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/AssignVnfBB.bpmn
+++ b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/AssignVnfBB.bpmn
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.8.2">
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.7.1">
<bpmn:process id="AssignVnfBB" name="AssignVnfBB" isExecutable="true">
<bpmn:startEvent id="Start_AssignVnfBB">
<bpmn:outgoing>SequenceFlow_0zaz9o2</bpmn:outgoing>
@@ -38,7 +38,6 @@
<camunda:in source="gBuildingBlockExecution" target="gBuildingBlockExecution" />
<camunda:in source="mso-request-id" target="mso-request-id" />
<camunda:out source="generalBuildingBlock" target="gBBInput" />
- <camunda:out source="WorkflowException" target="WorkflowException" />
</bpmn:extensionElements>
<bpmn:incoming>SequenceFlow_1uiok7v</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_0v8d14a</bpmn:outgoing>
diff --git a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/HomingBB.bpmn b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/HomingBB.bpmn
index 344b7d8761..1fdf2f3c66 100644
--- a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/HomingBB.bpmn
+++ b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/HomingBB.bpmn
@@ -1,72 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
-<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="_vwRmIBsREeeIQtzUKIjH4g" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.16.2" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="_vwRmIBsREeeIQtzUKIjH4g" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.10.0" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
<bpmn2:process id="HomingBB" name="Homing" isExecutable="true">
- <bpmn2:startEvent id="StartEvent_1">
+ <bpmn2:startEvent id="start">
<bpmn2:outgoing>SequenceFlow_1x9usa6</bpmn2:outgoing>
</bpmn2:startEvent>
- <bpmn2:scriptTask id="callSniro" name="&#10;Call&#10;Sniro/Oof&#10;" scriptFormat="groovy">
- <bpmn2:incoming>SequenceFlow_1x9usa6</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_0lc15i7</bpmn2:outgoing>
- <bpmn2:script>import org.onap.so.bpmn.common.scripts.*
-if(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecution")).getVariable("homingService") == "oof"){
- OofHoming oofHoming = new OofHoming()
- oofHoming.callOof(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecution")))
-}else{
- SniroHomingV2 sniroHoming = new SniroHomingV2()
- SniroHoming.callSniro(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecution")))
-}</bpmn2:script>
- </bpmn2:scriptTask>
- <bpmn2:sequenceFlow id="SequenceFlow_1x9usa6" sourceRef="StartEvent_1" targetRef="callSniro" />
+ <bpmn2:sequenceFlow id="SequenceFlow_1x9usa6" sourceRef="start" targetRef="sniroOofCheck" />
<bpmn2:subProcess id="bpmnErrorSubprocess" name="Error Handling Subprocess" triggeredByEvent="true">
- <bpmn2:endEvent id="EndEvent_07tjq3v">
+ <bpmn2:endEvent id="endBpmnError">
<bpmn2:incoming>SequenceFlow_1rf4vs8</bpmn2:incoming>
<bpmn2:terminateEventDefinition />
</bpmn2:endEvent>
- <bpmn2:startEvent id="StartEvent_1qiitb2">
+ <bpmn2:startEvent id="startBpmnError">
<bpmn2:outgoing>SequenceFlow_00nlh7l</bpmn2:outgoing>
<bpmn2:errorEventDefinition />
</bpmn2:startEvent>
<bpmn2:scriptTask id="processMsoWorkflowException" name="Process Error" scriptFormat="groovy">
<bpmn2:incoming>SequenceFlow_00nlh7l</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_1rf4vs8</bpmn2:outgoing>
- <bpmn2:script>import org.onap.so.bpmn.common.scripts.*
+ <bpmn2:script><![CDATA[import org.onap.so.bpmn.common.scripts.*
ExceptionUtil ex = new ExceptionUtil()
-ex.processSubflowsBPMNException(execution)</bpmn2:script>
+ex.processSubflowsBPMNException(execution)]]></bpmn2:script>
</bpmn2:scriptTask>
- <bpmn2:sequenceFlow id="SequenceFlow_1rf4vs8" sourceRef="processMsoWorkflowException" targetRef="EndEvent_07tjq3v" />
- <bpmn2:sequenceFlow id="SequenceFlow_00nlh7l" sourceRef="StartEvent_1qiitb2" targetRef="processMsoWorkflowException" />
+ <bpmn2:sequenceFlow id="SequenceFlow_1rf4vs8" sourceRef="processMsoWorkflowException" targetRef="endBpmnError" />
+ <bpmn2:sequenceFlow id="SequenceFlow_00nlh7l" sourceRef="startBpmnError" targetRef="processMsoWorkflowException" />
</bpmn2:subProcess>
<bpmn2:subProcess id="javaExceptionSubProcess" name="Java Exception Sub Process" triggeredByEvent="true">
<bpmn2:scriptTask id="processJavaException" name="Process Error" scriptFormat="groovy">
<bpmn2:incoming>SequenceFlow_0kamg53</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_1o7154s</bpmn2:outgoing>
- <bpmn2:script>import org.onap.so.bpmn.common.scripts.*
+ <bpmn2:script><![CDATA[import org.onap.so.bpmn.common.scripts.*
ExceptionUtil ex = new ExceptionUtil()
-ex.processJavaException(execution)</bpmn2:script>
+ex.processJavaException(execution)]]></bpmn2:script>
</bpmn2:scriptTask>
- <bpmn2:startEvent id="StartEvent_1fbpeuw">
+ <bpmn2:startEvent id="startJavaError">
<bpmn2:outgoing>SequenceFlow_0kamg53</bpmn2:outgoing>
<bpmn2:errorEventDefinition errorRef="Error_1lwpypa" />
</bpmn2:startEvent>
- <bpmn2:endEvent id="EndEvent_0jbvnr0">
+ <bpmn2:endEvent id="endJavaError">
<bpmn2:incoming>SequenceFlow_1o7154s</bpmn2:incoming>
<bpmn2:terminateEventDefinition />
</bpmn2:endEvent>
- <bpmn2:sequenceFlow id="SequenceFlow_0kamg53" name="" sourceRef="StartEvent_1fbpeuw" targetRef="processJavaException" />
- <bpmn2:sequenceFlow id="SequenceFlow_1o7154s" name="" sourceRef="processJavaException" targetRef="EndEvent_0jbvnr0" />
+ <bpmn2:sequenceFlow id="SequenceFlow_0kamg53" name="" sourceRef="startJavaError" targetRef="processJavaException" />
+ <bpmn2:sequenceFlow id="SequenceFlow_1o7154s" name="" sourceRef="processJavaException" targetRef="endJavaError" />
</bpmn2:subProcess>
- <bpmn2:scriptTask id="processSniroHomingSolution" name="&#10;Process Solution&#10;" scriptFormat="groovy">
- <bpmn2:incoming>SequenceFlow_1fipbmk</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_01apjvo</bpmn2:outgoing>
- <bpmn2:script>import org.onap.so.bpmn.common.scripts.*
-if(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecution")).getVariable("homingService") == "oof"){
- OofHoming oofHoming = new OofHoming()
- oofHoming.processHomingSolution(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecution")))
-}else{
- SniroHomingV2 sniroHoming = new SniroHomingV2 ()
- sniroHoming.processSolution(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecution")), asyncResponse)
-}</bpmn2:script>
- </bpmn2:scriptTask>
<bpmn2:callActivity id="receiveAsyncCallback" name="Receive Async Callback" camunda:modelerTemplate="receiveWorkflowMessage" calledElement="ReceiveWorkflowMessage">
<bpmn2:extensionElements>
<camunda:in source="true" target="isDebugLogEnabled" />
@@ -74,135 +50,280 @@ if(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecu
<camunda:in source="asyncMessageType" target="RCVWFMSG_messageType" />
<camunda:in source="asyncCorrelator" target="RCVWFMSG_correlator" />
<camunda:in source="asyncTimeout" target="RCVWFMSG_timeout" />
- <camunda:out source="WorkflowResponse" target="asyncCallbackResponse" />
+ <camunda:out source="WorkflowResponse" target="asyncResponse" />
</bpmn2:extensionElements>
- <bpmn2:incoming>SequenceFlow_0lc15i7</bpmn2:incoming>
+ <bpmn2:incoming>SequenceFlow_1qbnm82</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_1fipbmk</bpmn2:outgoing>
</bpmn2:callActivity>
- <bpmn2:sequenceFlow id="SequenceFlow_1fipbmk" sourceRef="receiveAsyncCallback" targetRef="processSniroHomingSolution" />
- <bpmn2:sequenceFlow id="SequenceFlow_01apjvo" sourceRef="processSniroHomingSolution" targetRef="EndEvent_0rrbz2a" />
- <bpmn2:endEvent id="EndEvent_0rrbz2a">
- <bpmn2:incoming>SequenceFlow_01apjvo</bpmn2:incoming>
+ <bpmn2:sequenceFlow id="SequenceFlow_1fipbmk" sourceRef="receiveAsyncCallback" targetRef="sniroOofCheck2" />
+ <bpmn2:sequenceFlow id="SequenceFlow_01apjvo" sourceRef="processSniroSolution" targetRef="ExclusiveGateway_1kvzxpb" />
+ <bpmn2:endEvent id="end">
+ <bpmn2:incoming>SequenceFlow_1urt5i6</bpmn2:incoming>
<bpmn2:terminateEventDefinition />
</bpmn2:endEvent>
- <bpmn2:sequenceFlow id="SequenceFlow_0lc15i7" sourceRef="callSniro" targetRef="receiveAsyncCallback" />
+ <bpmn2:sequenceFlow id="SequenceFlow_0lc15i7" sourceRef="callSniro" targetRef="ExclusiveGateway_1ckp059" />
+ <bpmn2:sequenceFlow id="SequenceFlow_1dtador" name="Sniro" sourceRef="sniroOofCheck" targetRef="callSniro" />
+ <bpmn2:sequenceFlow id="SequenceFlow_1qbnm82" sourceRef="ExclusiveGateway_1ckp059" targetRef="receiveAsyncCallback" />
+ <bpmn2:sequenceFlow id="SequenceFlow_08k112s" name="Sniro" sourceRef="sniroOofCheck2" targetRef="processSniroSolution" />
+ <bpmn2:sequenceFlow id="SequenceFlow_0m6nhqg" name="Oof" sourceRef="sniroOofCheck" targetRef="callOof">
+ <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[${execution.getVariable("homingService") == "oof"}]]></bpmn2:conditionExpression>
+ </bpmn2:sequenceFlow>
+ <bpmn2:sequenceFlow id="SequenceFlow_0kvax6n" sourceRef="callOof" targetRef="ExclusiveGateway_1ckp059" />
+ <bpmn2:sequenceFlow id="SequenceFlow_0oixz4g" name="Oof" sourceRef="sniroOofCheck2" targetRef="processOofSolution">
+ <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[${execution.getVariable("homingService") == "oof"}]]></bpmn2:conditionExpression>
+ </bpmn2:sequenceFlow>
+ <bpmn2:sequenceFlow id="SequenceFlow_0ph4paa" sourceRef="processOofSolution" targetRef="ExclusiveGateway_1kvzxpb" />
+ <bpmn2:sequenceFlow id="SequenceFlow_1urt5i6" sourceRef="ExclusiveGateway_1kvzxpb" targetRef="end" />
+ <bpmn2:serviceTask id="callSniro" name="&#10;SNIRO&#10;Post&#10;(demands)&#10;" camunda:expression="${SniroHoming.callSniro(InjectExecution.execute(execution, execution.getVariable(&#34;gBuildingBlockExecution&#34;)))}">
+ <bpmn2:incoming>SequenceFlow_1dtador</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_0lc15i7</bpmn2:outgoing>
+ </bpmn2:serviceTask>
+ <bpmn2:serviceTask id="processSniroSolution" name="&#10;Process&#10;Solution&#10;" camunda:expression="${SniroHoming.processSolution(InjectExecution.execute(execution, execution.getVariable(&#34;gBuildingBlockExecution&#34;)), asyncResponse)}">
+ <bpmn2:incoming>SequenceFlow_08k112s</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_01apjvo</bpmn2:outgoing>
+ </bpmn2:serviceTask>
+ <bpmn2:serviceTask id="callOof" name="&#10;OOF&#10;Post&#10;(demands)&#10;" camunda:expression="${OofHoming.callSniro(InjectExecution.execute(execution, execution.getVariable(&#34;gBuildingBlockExecution&#34;)))}">
+ <bpmn2:incoming>SequenceFlow_0m6nhqg</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_0kvax6n</bpmn2:outgoing>
+ </bpmn2:serviceTask>
+ <bpmn2:serviceTask id="processOofSolution" name="&#10;Process&#10;Solution&#10;" camunda:expression="${OofHoming.processSolution(InjectExecution.execute(execution, execution.getVariable(&#34;gBuildingBlockExecution&#34;)), asyncResponse)}">
+ <bpmn2:incoming>SequenceFlow_0oixz4g</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_0ph4paa</bpmn2:outgoing>
+ </bpmn2:serviceTask>
+ <bpmn2:inclusiveGateway id="sniroOofCheck" name="Homing&#10;Service?&#10;" default="SequenceFlow_1dtador">
+ <bpmn2:incoming>SequenceFlow_1x9usa6</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_1dtador</bpmn2:outgoing>
+ <bpmn2:outgoing>SequenceFlow_0m6nhqg</bpmn2:outgoing>
+ </bpmn2:inclusiveGateway>
+ <bpmn2:inclusiveGateway id="ExclusiveGateway_1ckp059">
+ <bpmn2:incoming>SequenceFlow_0lc15i7</bpmn2:incoming>
+ <bpmn2:incoming>SequenceFlow_0kvax6n</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_1qbnm82</bpmn2:outgoing>
+ </bpmn2:inclusiveGateway>
+ <bpmn2:inclusiveGateway id="sniroOofCheck2" name="Homing&#10;Service?" default="SequenceFlow_08k112s">
+ <bpmn2:incoming>SequenceFlow_1fipbmk</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_08k112s</bpmn2:outgoing>
+ <bpmn2:outgoing>SequenceFlow_0oixz4g</bpmn2:outgoing>
+ </bpmn2:inclusiveGateway>
+ <bpmn2:inclusiveGateway id="ExclusiveGateway_1kvzxpb">
+ <bpmn2:incoming>SequenceFlow_01apjvo</bpmn2:incoming>
+ <bpmn2:incoming>SequenceFlow_0ph4paa</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_1urt5i6</bpmn2:outgoing>
+ </bpmn2:inclusiveGateway>
</bpmn2:process>
<bpmn2:error id="Error_10hit0u" name="MSO Workflow Exception" errorCode="MSOWorkflowException" />
<bpmn2:error id="Error_1lwpypa" name="Java Lang Exception" errorCode="java.lang.Exception" />
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
- <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Homing">
- <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
- <dc:Bounds x="147" y="275" width="36" height="36" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ScriptTask_0qmfpdr_di" bpmnElement="callSniro">
- <dc:Bounds x="313" y="253" width="100" height="80" />
+ <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="HomingBB">
+ <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="start">
+ <dc:Bounds x="135" y="275" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="108" y="311" width="90" height="20" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="SequenceFlow_1x9usa6_di" bpmnElement="SequenceFlow_1x9usa6">
- <di:waypoint x="183" y="293" />
- <di:waypoint x="313" y="293" />
+ <di:waypoint xsi:type="dc:Point" x="171" y="293" />
+ <di:waypoint xsi:type="dc:Point" x="291" y="293" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="203" y="278" width="90" height="0" />
+ <dc:Bounds x="186" y="278" width="90" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="SubProcess_16p12qo_di" bpmnElement="bpmnErrorSubprocess" isExpanded="true">
- <dc:Bounds x="254" y="449" width="409" height="168" />
+ <dc:Bounds x="254" y="496" width="409" height="168" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="SubProcess_12gjiy8_di" bpmnElement="javaExceptionSubProcess" isExpanded="true">
- <dc:Bounds x="284" y="632" width="350" height="159" />
+ <dc:Bounds x="284" y="679" width="350" height="159" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="EndEvent_07tjq3v_di" bpmnElement="EndEvent_07tjq3v">
- <dc:Bounds x="579" y="523" width="36" height="36" />
+ <bpmndi:BPMNShape id="EndEvent_07tjq3v_di" bpmnElement="endBpmnError">
+ <dc:Bounds x="579" y="570" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="552" y="564" width="90" height="0" />
+ <dc:Bounds x="552" y="611" width="90" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="StartEvent_1qiitb2_di" bpmnElement="StartEvent_1qiitb2">
- <dc:Bounds x="299" y="523" width="36" height="36" />
+ <bpmndi:BPMNShape id="StartEvent_1qiitb2_di" bpmnElement="startBpmnError">
+ <dc:Bounds x="299" y="570" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="272" y="564" width="90" height="0" />
+ <dc:Bounds x="272" y="611" width="90" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ScriptTask_03hs6s9_di" bpmnElement="processMsoWorkflowException">
- <dc:Bounds x="406" y="501" width="100" height="80" />
+ <dc:Bounds x="406" y="548" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ScriptTask_19gqykh_di" bpmnElement="processJavaException">
- <dc:Bounds x="410" y="680" width="100" height="80" />
+ <dc:Bounds x="410" y="727" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="StartEvent_1fbpeuw_di" bpmnElement="StartEvent_1fbpeuw">
- <dc:Bounds x="318" y="702" width="36" height="36" />
+ <bpmndi:BPMNShape id="StartEvent_1fbpeuw_di" bpmnElement="startJavaError">
+ <dc:Bounds x="318" y="749" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="291" y="743" width="90" height="0" />
+ <dc:Bounds x="291" y="790" width="90" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="EndEvent_0jbvnr0_di" bpmnElement="EndEvent_0jbvnr0">
- <dc:Bounds x="567" y="702" width="36" height="36" />
+ <bpmndi:BPMNShape id="EndEvent_0jbvnr0_di" bpmnElement="endJavaError">
+ <dc:Bounds x="567" y="749" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="540" y="743" width="90" height="0" />
+ <dc:Bounds x="540" y="790" width="90" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="SequenceFlow_1rf4vs8_di" bpmnElement="SequenceFlow_1rf4vs8">
- <di:waypoint x="506" y="541" />
- <di:waypoint x="579" y="541" />
+ <di:waypoint xsi:type="dc:Point" x="506" y="588" />
+ <di:waypoint xsi:type="dc:Point" x="579" y="588" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="498" y="526" width="90" height="0" />
+ <dc:Bounds x="498" y="573" width="90" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_00nlh7l_di" bpmnElement="SequenceFlow_00nlh7l">
- <di:waypoint x="335" y="541" />
- <di:waypoint x="363" y="541" />
- <di:waypoint x="363" y="541" />
- <di:waypoint x="406" y="541" />
+ <di:waypoint xsi:type="dc:Point" x="335" y="588" />
+ <di:waypoint xsi:type="dc:Point" x="363" y="588" />
+ <di:waypoint xsi:type="dc:Point" x="363" y="588" />
+ <di:waypoint xsi:type="dc:Point" x="406" y="588" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="333" y="541" width="90" height="0" />
+ <dc:Bounds x="333" y="588" width="90" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_0kamg53_di" bpmnElement="SequenceFlow_0kamg53">
- <di:waypoint x="354" y="720" />
- <di:waypoint x="410" y="720" />
+ <di:waypoint xsi:type="dc:Point" x="354" y="767" />
+ <di:waypoint xsi:type="dc:Point" x="410" y="767" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="337" y="705" width="90" height="0" />
+ <dc:Bounds x="337" y="752" width="90" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_1o7154s_di" bpmnElement="SequenceFlow_1o7154s">
- <di:waypoint x="510" y="720" />
- <di:waypoint x="567" y="720" />
+ <di:waypoint xsi:type="dc:Point" x="510" y="767" />
+ <di:waypoint xsi:type="dc:Point" x="567" y="767" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="494" y="705" width="90" height="0" />
+ <dc:Bounds x="494" y="752" width="90" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="ScriptTask_1aapkvq_di" bpmnElement="processSniroHomingSolution">
- <dc:Bounds x="597" y="253" width="100" height="80" />
- </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="CallActivity_031b5m3_di" bpmnElement="receiveAsyncCallback">
- <dc:Bounds x="455" y="253" width="100" height="80" />
+ <dc:Bounds x="547" y="253" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="SequenceFlow_1fipbmk_di" bpmnElement="SequenceFlow_1fipbmk">
- <di:waypoint x="555" y="293" />
- <di:waypoint x="597" y="293" />
+ <di:waypoint xsi:type="dc:Point" x="647" y="293" />
+ <di:waypoint xsi:type="dc:Point" x="677" y="293" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="531" y="272" width="90" height="12" />
+ <dc:Bounds x="617" y="272" width="90" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_01apjvo_di" bpmnElement="SequenceFlow_01apjvo">
- <di:waypoint x="697" y="293" />
- <di:waypoint x="860" y="293" />
+ <di:waypoint xsi:type="dc:Point" x="847" y="214" />
+ <di:waypoint xsi:type="dc:Point" x="885" y="214" />
+ <di:waypoint xsi:type="dc:Point" x="885" y="268" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="778.5" y="272" width="0" height="12" />
+ <dc:Bounds x="821" y="193" width="90" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="EndEvent_07i1a5x_di" bpmnElement="EndEvent_0rrbz2a">
- <dc:Bounds x="860" y="275" width="36" height="36" />
+ <bpmndi:BPMNShape id="EndEvent_07i1a5x_di" bpmnElement="end">
+ <dc:Bounds x="1034" y="275" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="877.17" y="315" width="0" height="12" />
+ <dc:Bounds x="1006" y="315" width="90" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="SequenceFlow_0lc15i7_di" bpmnElement="SequenceFlow_0lc15i7">
- <di:waypoint x="413" y="293" />
- <di:waypoint x="455" y="293" />
+ <di:waypoint xsi:type="dc:Point" x="462" y="214" />
+ <di:waypoint xsi:type="dc:Point" x="500" y="214" />
+ <di:waypoint xsi:type="dc:Point" x="500" y="267" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="436" y="193" width="90" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1dtador_di" bpmnElement="SequenceFlow_1dtador">
+ <di:waypoint xsi:type="dc:Point" x="316" y="268" />
+ <di:waypoint xsi:type="dc:Point" x="316" y="214" />
+ <di:waypoint xsi:type="dc:Point" x="362" y="214" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="322.2567567567568" y="221" width="25" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1qbnm82_di" bpmnElement="SequenceFlow_1qbnm82">
+ <di:waypoint xsi:type="dc:Point" x="525" y="292" />
+ <di:waypoint xsi:type="dc:Point" x="547" y="292" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="536" y="271" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_08k112s_di" bpmnElement="SequenceFlow_08k112s">
+ <di:waypoint xsi:type="dc:Point" x="702" y="268" />
+ <di:waypoint xsi:type="dc:Point" x="702" y="214" />
+ <di:waypoint xsi:type="dc:Point" x="747" y="214" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="707.7837837837837" y="221" width="25" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0m6nhqg_di" bpmnElement="SequenceFlow_0m6nhqg">
+ <di:waypoint xsi:type="dc:Point" x="316" y="318" />
+ <di:waypoint xsi:type="dc:Point" x="316" y="368" />
+ <di:waypoint xsi:type="dc:Point" x="362" y="368" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="434" y="272" width="0" height="12" />
+ <dc:Bounds x="323" y="344" width="19" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0kvax6n_di" bpmnElement="SequenceFlow_0kvax6n">
+ <di:waypoint xsi:type="dc:Point" x="462" y="368" />
+ <di:waypoint xsi:type="dc:Point" x="500" y="368" />
+ <di:waypoint xsi:type="dc:Point" x="500" y="317" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="481" y="347" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0oixz4g_di" bpmnElement="SequenceFlow_0oixz4g">
+ <di:waypoint xsi:type="dc:Point" x="702" y="318" />
+ <di:waypoint xsi:type="dc:Point" x="702" y="368" />
+ <di:waypoint xsi:type="dc:Point" x="747" y="368" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="708.3513513513514" y="345" width="19" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0ph4paa_di" bpmnElement="SequenceFlow_0ph4paa">
+ <di:waypoint xsi:type="dc:Point" x="847" y="368" />
+ <di:waypoint xsi:type="dc:Point" x="885" y="368" />
+ <di:waypoint xsi:type="dc:Point" x="885" y="318" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="866" y="347" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1urt5i6_di" bpmnElement="SequenceFlow_1urt5i6">
+ <di:waypoint xsi:type="dc:Point" x="910" y="293" />
+ <di:waypoint xsi:type="dc:Point" x="1034" y="293" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="972" y="272" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ServiceTask_0388svf_di" bpmnElement="callSniro">
+ <dc:Bounds x="362" y="174" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ServiceTask_1o0vjzl_di" bpmnElement="processSniroSolution">
+ <dc:Bounds x="747" y="174" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ServiceTask_0rcv8sl_di" bpmnElement="callOof">
+ <dc:Bounds x="362" y="328" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ServiceTask_0fs2fyg_di" bpmnElement="processOofSolution">
+ <dc:Bounds x="747" y="328" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="InclusiveGateway_0ssv6eg_di" bpmnElement="sniroOofCheck">
+ <dc:Bounds x="291" y="268" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="344" y="283" width="43" height="36" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="InclusiveGateway_0pf91to_di" bpmnElement="ExclusiveGateway_1ckp059">
+ <dc:Bounds x="475" y="267" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="500" y="321" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="InclusiveGateway_17vx4ua_di" bpmnElement="sniroOofCheck2">
+ <dc:Bounds x="677" y="268" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="730" y="281" width="43" height="24" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="InclusiveGateway_1610p1j_di" bpmnElement="ExclusiveGateway_1kvzxpb">
+ <dc:Bounds x="860" y="268" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="885" y="322" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn2:definitions>
diff --git a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/SDNCHandler.bpmn b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/SDNCHandler.bpmn
new file mode 100644
index 0000000000..d123153932
--- /dev/null
+++ b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/SDNCHandler.bpmn
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.10.0">
+ <bpmn:process id="SDNCHandler" name="SDNC" isExecutable="true">
+ <bpmn:startEvent id="SDNC_Start">
+ <bpmn:outgoing>SequenceFlow_1n0j3hz</bpmn:outgoing>
+ </bpmn:startEvent>
+ <bpmn:endEvent id="SDNC_End">
+ <bpmn:incoming>SequenceFlow_0i4u8g4</bpmn:incoming>
+ <bpmn:incoming>SequenceFlow_0puiqga</bpmn:incoming>
+ </bpmn:endEvent>
+ <bpmn:serviceTask id="Call_SDNC" name="Call SDNC" camunda:expression="${SDNCRequestTasks.callSDNC(execution)}">
+ <bpmn:incoming>SequenceFlow_0flbj8a</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_07vnhri</bpmn:outgoing>
+ </bpmn:serviceTask>
+ <bpmn:boundaryEvent id="BoundaryEvent_1lv4854" attachedToRef="Call_SDNC">
+ <bpmn:outgoing>SequenceFlow_0valp88</bpmn:outgoing>
+ <bpmn:errorEventDefinition camunda:errorCodeVariable="SDNCSyncError" />
+ </bpmn:boundaryEvent>
+ <bpmn:sequenceFlow id="SequenceFlow_0valp88" sourceRef="BoundaryEvent_1lv4854" targetRef="Task_1o29lpk" />
+ <bpmn:subProcess id="SubProcess_0y8yozw" name="Wait for Callback" camunda:asyncAfter="true" camunda:exclusive="false">
+ <bpmn:incoming>SequenceFlow_0rh24pq</bpmn:incoming>
+ <bpmn:incoming>SequenceFlow_0yve6l6</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1ecej8g</bpmn:outgoing>
+ <bpmn:intermediateCatchEvent id="IntermediateCatchEvent_0a9exm4" name="Catch Event" camunda:asyncBefore="true" camunda:asyncAfter="true">
+ <bpmn:incoming>SequenceFlow_1qxm8ot</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_05eggbt</bpmn:outgoing>
+ <bpmn:messageEventDefinition messageRef="Message_06oc4iz" />
+ </bpmn:intermediateCatchEvent>
+ <bpmn:startEvent id="Start_Async">
+ <bpmn:outgoing>SequenceFlow_1qxm8ot</bpmn:outgoing>
+ </bpmn:startEvent>
+ <bpmn:endEvent id="EndEvent_1qoir9i">
+ <bpmn:incoming>SequenceFlow_0oh3ye4</bpmn:incoming>
+ </bpmn:endEvent>
+ <bpmn:sequenceFlow id="SequenceFlow_1qxm8ot" name="" sourceRef="Start_Async" targetRef="IntermediateCatchEvent_0a9exm4" />
+ <bpmn:sequenceFlow id="SequenceFlow_05eggbt" name="" sourceRef="IntermediateCatchEvent_0a9exm4" targetRef="Task_14bzc51" />
+ <bpmn:sequenceFlow id="SequenceFlow_0oh3ye4" sourceRef="Task_14bzc51" targetRef="EndEvent_1qoir9i" />
+ <bpmn:serviceTask id="Task_14bzc51" name="Process Callback" camunda:expression="${SDNCRequestTasks.processCallback(execution)}">
+ <bpmn:incoming>SequenceFlow_05eggbt</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_0oh3ye4</bpmn:outgoing>
+ </bpmn:serviceTask>
+ </bpmn:subProcess>
+ <bpmn:boundaryEvent id="BoundaryEvent_1quvxva" name="Timeout" attachedToRef="SubProcess_0y8yozw">
+ <bpmn:outgoing>SequenceFlow_1yifu46</bpmn:outgoing>
+ <bpmn:timerEventDefinition>
+ <bpmn:timeDuration xsi:type="bpmn:tFormalExpression"><![CDATA[${execution.getVariable("sdncTimeout")}]]></bpmn:timeDuration>
+ </bpmn:timerEventDefinition>
+ </bpmn:boundaryEvent>
+ <bpmn:sequenceFlow id="SequenceFlow_1ecej8g" sourceRef="SubProcess_0y8yozw" targetRef="ExclusiveGateway_09ehhaf" />
+ <bpmn:exclusiveGateway id="ExclusiveGateway_09ehhaf">
+ <bpmn:incoming>SequenceFlow_1ecej8g</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_0rh24pq</bpmn:outgoing>
+ <bpmn:outgoing>SequenceFlow_0i4u8g4</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="SequenceFlow_0rh24pq" name="Final Ack = N" sourceRef="ExclusiveGateway_09ehhaf" targetRef="SubProcess_0y8yozw">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[${execution.getVariable("isCallbackCompleted")}]]></bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:sequenceFlow id="SequenceFlow_1yifu46" sourceRef="BoundaryEvent_1quvxva" targetRef="Task_1un0flc" />
+ <bpmn:sequenceFlow id="SequenceFlow_1n0j3hz" sourceRef="SDNC_Start" targetRef="SNDC_SetupCallback" />
+ <bpmn:exclusiveGateway id="isAsync_Gateway" default="SequenceFlow_0yve6l6">
+ <bpmn:incoming>SequenceFlow_07vnhri</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_0yve6l6</bpmn:outgoing>
+ <bpmn:outgoing>SequenceFlow_0puiqga</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="SequenceFlow_0yve6l6" name="Final Ack = N" sourceRef="isAsync_Gateway" targetRef="SubProcess_0y8yozw" />
+ <bpmn:sequenceFlow id="SequenceFlow_07vnhri" sourceRef="Call_SDNC" targetRef="isAsync_Gateway" />
+ <bpmn:sequenceFlow id="SequenceFlow_0flbj8a" sourceRef="SNDC_SetupCallback" targetRef="Call_SDNC" />
+ <bpmn:sequenceFlow id="SequenceFlow_0i4u8g4" name="Final Ack = Y" sourceRef="ExclusiveGateway_09ehhaf" targetRef="SDNC_End" />
+ <bpmn:sequenceFlow id="SequenceFlow_0puiqga" name="Final Ack = Y" sourceRef="isAsync_Gateway" targetRef="SDNC_End">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[${execution.getVariable("isSDNCCompleted")}]]></bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:serviceTask id="SNDC_SetupCallback" name="Setup Callback Variables" camunda:expression="${SDNCRequestTasks.createCorrelationVariables(execution)}">
+ <bpmn:incoming>SequenceFlow_1n0j3hz</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_0flbj8a</bpmn:outgoing>
+ </bpmn:serviceTask>
+ <bpmn:serviceTask id="Task_1un0flc" name="Handle Timeout" camunda:expression="${SDNCRequestTasks.handleTimeOutException(execution)}">
+ <bpmn:incoming>SequenceFlow_1yifu46</bpmn:incoming>
+ </bpmn:serviceTask>
+ <bpmn:serviceTask id="Task_1o29lpk" name="Handle Error" camunda:expression="${SDNCRequestTasks.handleSyncError(execution)}">
+ <bpmn:incoming>SequenceFlow_0valp88</bpmn:incoming>
+ </bpmn:serviceTask>
+ </bpmn:process>
+ <bpmn:message id="Message_06oc4iz" name="SDNCCallbackMessage" />
+ <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+ <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="SDNCHandler">
+ <bpmndi:BPMNShape id="StartEvent_0kxwniy_di" bpmnElement="SDNC_Start">
+ <dc:Bounds x="-267" y="134" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="-294" y="170" width="90" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="EndEvent_0qdq7wj_di" bpmnElement="SDNC_End">
+ <dc:Bounds x="780" y="174" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="753" y="214" width="90" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ServiceTask_1i5x1m6_di" bpmnElement="Call_SDNC">
+ <dc:Bounds x="15" y="112" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="BoundaryEvent_1wxlsn8_di" bpmnElement="BoundaryEvent_1lv4854">
+ <dc:Bounds x="97" y="174" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="452" y="520" width="90" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_0valp88_di" bpmnElement="SequenceFlow_0valp88">
+ <di:waypoint xsi:type="dc:Point" x="115" y="210" />
+ <di:waypoint xsi:type="dc:Point" x="115" y="278" />
+ <di:waypoint xsi:type="dc:Point" x="115" y="278" />
+ <di:waypoint xsi:type="dc:Point" x="115" y="312" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="85" y="271.5" width="90" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="SubProcess_0y8yozw_di" bpmnElement="SubProcess_0y8yozw" isExpanded="true">
+ <dc:Bounds x="278" y="-144" width="340" height="153" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="BoundaryEvent_1quvxva_di" bpmnElement="BoundaryEvent_1quvxva">
+ <dc:Bounds x="600" y="-162" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="669" y="-169" width="40" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="IntermediateCatchEvent_0a9exm4_di" bpmnElement="IntermediateCatchEvent_0a9exm4">
+ <dc:Bounds x="376" y="-90" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="364" y="-49" width="60" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="StartEvent_0z0iy13_di" bpmnElement="Start_Async">
+ <dc:Bounds x="311" y="-90" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="194" y="-49" width="90" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="EndEvent_1qoir9i_di" bpmnElement="EndEvent_1qoir9i">
+ <dc:Bounds x="562" y="-90" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="445" y="-49" width="90" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_1qxm8ot_di" bpmnElement="SequenceFlow_1qxm8ot">
+ <di:waypoint xsi:type="dc:Point" x="347" y="-72" />
+ <di:waypoint xsi:type="dc:Point" x="376" y="-72" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="316.5" y="-93.5" width="90" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_05eggbt_di" bpmnElement="SequenceFlow_05eggbt">
+ <di:waypoint xsi:type="dc:Point" x="412" y="-72" />
+ <di:waypoint xsi:type="dc:Point" x="438" y="-72" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="380" y="-93.5" width="90" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1ecej8g_di" bpmnElement="SequenceFlow_1ecej8g">
+ <di:waypoint xsi:type="dc:Point" x="618" y="-67" />
+ <di:waypoint xsi:type="dc:Point" x="798" y="-67" />
+ <di:waypoint xsi:type="dc:Point" x="798" y="28" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="663" y="-88.5" width="90" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ExclusiveGateway_09ehhaf_di" bpmnElement="ExclusiveGateway_09ehhaf" isMarkerVisible="true">
+ <dc:Bounds x="773" y="28" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="753" y="81" width="90" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_0rh24pq_di" bpmnElement="SequenceFlow_0rh24pq">
+ <di:waypoint xsi:type="dc:Point" x="773" y="53" />
+ <di:waypoint xsi:type="dc:Point" x="449" y="53" />
+ <di:waypoint xsi:type="dc:Point" x="449" y="9" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="579.9877300613497" y="32" width="66" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1yifu46_di" bpmnElement="SequenceFlow_1yifu46">
+ <di:waypoint xsi:type="dc:Point" x="636" y="-144" />
+ <di:waypoint xsi:type="dc:Point" x="748" y="-145" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="647" y="-166" width="90" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1n0j3hz_di" bpmnElement="SequenceFlow_1n0j3hz">
+ <di:waypoint xsi:type="dc:Point" x="-231" y="152" />
+ <di:waypoint xsi:type="dc:Point" x="-171" y="152" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="-201" y="130.5" width="0" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ExclusiveGateway_0gyjh0m_di" bpmnElement="isAsync_Gateway" isMarkerVisible="true">
+ <dc:Bounds x="228.4153846153846" y="127" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="253.4153846153846" y="180" width="0" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_0yve6l6_di" bpmnElement="SequenceFlow_0yve6l6">
+ <di:waypoint xsi:type="dc:Point" x="253" y="127" />
+ <di:waypoint xsi:type="dc:Point" x="253" y="92" />
+ <di:waypoint xsi:type="dc:Point" x="253" y="92" />
+ <di:waypoint xsi:type="dc:Point" x="253" y="-67" />
+ <di:waypoint xsi:type="dc:Point" x="278" y="-67" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="263" y="57" width="65" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_07vnhri_di" bpmnElement="SequenceFlow_07vnhri">
+ <di:waypoint xsi:type="dc:Point" x="115" y="152" />
+ <di:waypoint xsi:type="dc:Point" x="228" y="152" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="171.5" y="130" width="0" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0flbj8a_di" bpmnElement="SequenceFlow_0flbj8a">
+ <di:waypoint xsi:type="dc:Point" x="-71" y="152" />
+ <di:waypoint xsi:type="dc:Point" x="15" y="152" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="-28" y="130.5" width="0" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0i4u8g4_di" bpmnElement="SequenceFlow_0i4u8g4">
+ <di:waypoint xsi:type="dc:Point" x="798" y="78" />
+ <di:waypoint xsi:type="dc:Point" x="798" y="174" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="809" y="119" width="66" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0puiqga_di" bpmnElement="SequenceFlow_0puiqga">
+ <di:waypoint xsi:type="dc:Point" x="253" y="177" />
+ <di:waypoint xsi:type="dc:Point" x="253" y="192" />
+ <di:waypoint xsi:type="dc:Point" x="780" y="192" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="310" y="161" width="66" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0oh3ye4_di" bpmnElement="SequenceFlow_0oh3ye4">
+ <di:waypoint xsi:type="dc:Point" x="538" y="-72" />
+ <di:waypoint xsi:type="dc:Point" x="562" y="-72" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="550" y="-93.5" width="0" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ServiceTask_034ehsc_di" bpmnElement="SNDC_SetupCallback">
+ <dc:Bounds x="-171" y="112" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ServiceTask_0ribmhb_di" bpmnElement="Task_14bzc51">
+ <dc:Bounds x="438" y="-112" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ServiceTask_08b89dm_di" bpmnElement="Task_1un0flc">
+ <dc:Bounds x="748" y="-185" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ServiceTask_1cyot3r_di" bpmnElement="Task_1o29lpk">
+ <dc:Bounds x="65" y="312" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ </bpmndi:BPMNPlane>
+ </bpmndi:BPMNDiagram>
+</bpmn:definitions>
diff --git a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/WorkflowActionBB.bpmn b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/WorkflowActionBB.bpmn
index 8cda1d7c7b..d4330290ea 100644
--- a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/WorkflowActionBB.bpmn
+++ b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/WorkflowActionBB.bpmn
@@ -17,6 +17,7 @@
<camunda:in source="mso-request-id" target="mso-request-id" />
<camunda:in source="retryCount" target="retryCount" />
<camunda:out source="WorkflowExceptionErrorMessage" target="WorkflowExceptionErrorMessage" />
+ <camunda:in source="aLaCarte" target="aLaCarte" />
</bpmn:extensionElements>
<bpmn:incoming>SequenceFlow_0mew9im</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_07h9d4y</bpmn:outgoing>
@@ -98,7 +99,7 @@
</bpmn:serviceTask>
</bpmn:subProcess>
<bpmn:sequenceFlow id="SequenceFlow_0v588sm" name="Rollback = true" sourceRef="ExclusiveGateway_Finished" targetRef="Task_RollbackExecutionPath">
- <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[${execution.getVariable("handlingCode")=="Rollback"}]]></bpmn:conditionExpression>
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[${execution.getVariable("handlingCode")=="Rollback"||execution.getVariable("handlingCode")=="RollbackToAssigned"}]]></bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="SequenceFlow_1atzsgn" sourceRef="Task_RollbackExecutionPath" targetRef="Task_SelectBB">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[${execution.getVariable("isRollbackNeeded")==true}]]></bpmn:conditionExpression>
@@ -562,4 +563,4 @@
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
-</bpmn:definitions>
+</bpmn:definitions> \ No newline at end of file
diff --git a/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/BaseBPMNTest.java b/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/BaseBPMNTest.java
index f5fc8b091c..f9ff28a023 100644
--- a/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/BaseBPMNTest.java
+++ b/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/BaseBPMNTest.java
@@ -7,9 +7,9 @@
* 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.
@@ -34,6 +34,7 @@ import org.junit.After;
import org.junit.Before;
import org.junit.runner.RunWith;
import org.onap.so.TestApplication;
+import org.onap.so.bpmn.buildingblock.SniroHomingV2;
import org.onap.so.bpmn.common.DelegateExecutionImpl;
import org.onap.so.bpmn.common.validation.BuildingBlockValidatorRunner;
import org.onap.so.bpmn.infrastructure.aai.tasks.AAICommonTasks;
@@ -72,6 +73,7 @@ import org.onap.so.bpmn.sdno.tasks.SDNOHealthCheckTasks;
import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetup;
import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
import org.onap.so.bpmn.servicedecomposition.tasks.ExecuteBuildingBlockRainyDay;
+import org.onap.so.client.sdnc.SDNCClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.web.server.LocalServerPort;
@@ -91,9 +93,9 @@ public abstract class BaseBPMNTest {
@Autowired
private RepositoryService repositoryService;
-
+
protected Map<String, Object> variables = new HashMap<>();
-
+
protected List<String> mockedSubprocessList = new ArrayList<>();
protected TestRestTemplate restTemplate = new TestRestTemplate();
@@ -111,11 +113,11 @@ public abstract class BaseBPMNTest {
@MockBean
protected AAIDeleteTasks aaiDeleteTasks;
-
+
@MockBean
protected AAIFlagTasks aaiFlagTasks;
-
-
+
+
@MockBean
protected AppcRunTasks appcRunTasks;
@@ -154,7 +156,7 @@ public abstract class BaseBPMNTest {
@MockBean
protected AssignNetworkBBUtils assignNetworkBBUtils;
-
+
@MockBean
protected AssignNetwork assignNetwork;
@@ -181,37 +183,43 @@ public abstract class BaseBPMNTest {
@MockBean
protected OrchestrationStatusValidator orchestrationStatusValidator;
-
+
@MockBean
protected BBInputSetup bbInputSetup;
-
+
@MockBean
protected BBInputSetupUtils bbInputSetupUtils;
-
+
@MockBean
protected ExecuteBuildingBlockRainyDay executeBuildingBlockRainyDay;
-
+
@MockBean
protected WorkflowAction workflowAction;
@MockBean
protected WorkflowActionBBTasks workflowActionBBTasks;
-
+
@MockBean
protected GenericVnfHealthCheck genericVnfHealthCheck;
-
+
@MockBean
protected ConfigurationScaleOut configurationScaleOut;
-
+
@MockBean
protected FlowCompletionTasks flowCompletionTasks;
-
+
@MockBean
protected BuildingBlockValidatorRunner buildingBlockValidatorRunner;
-
+
@MockBean
protected SDNOHealthCheckTasks sdnoHealthCheckTasks;
-
+
+ @MockBean
+ protected SDNCClient sdncClient;
+
+ @MockBean
+ protected SniroHomingV2 sniroHoming;
+
@LocalServerPort
protected int port;
@@ -223,7 +231,7 @@ public abstract class BaseBPMNTest {
public void baseBefore() {
variables.put("gBuildingBlockExecution", new DelegateExecutionImpl(new HashMap<>()));
}
-
+
@After
public void baseAfter() {
for (String deploymentId : mockedSubprocessList) {
@@ -231,7 +239,7 @@ public abstract class BaseBPMNTest {
}
mockedSubprocessList.clear();
}
-
+
/**
* Create and deploy a process model with one logger delegate as service task.
*
@@ -268,7 +276,7 @@ public abstract class BaseBPMNTest {
for (String key : outParam.keySet()) {
builder.camundaOutputParameter(key, outParam.get(key));
}
-
+
BpmnModelInstance modelInstance = builder.endEvent().name("End_Event").done();
mockedSubprocessList.add(repositoryService.createDeployment().addModelInstance(fileName + ".bpmn", modelInstance).deploy().getId());
}
diff --git a/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/buildingblock/SniroHomingV2BBTest.java b/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/HomingBBTest.java
index a90d309630..0dde361b7e 100644
--- a/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/buildingblock/SniroHomingV2BBTest.java
+++ b/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/HomingBBTest.java
@@ -7,9 +7,9 @@
* 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.
@@ -18,7 +18,7 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.so.bpmn.buildingblock;
+package org.onap.so.bpmn.infrastructure.bpmn.subprocess;
import static org.camunda.bpm.engine.test.assertions.ProcessEngineAssertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
@@ -29,44 +29,29 @@ import org.camunda.bpm.engine.runtime.ProcessInstance;
import org.junit.Ignore;
import org.junit.Test;
import org.onap.so.bpmn.BaseBPMNTest;
+import org.onap.so.bpmn.buildingblock.SniroHomingV2;
import org.onap.so.bpmn.common.BuildingBlockExecution;
import org.springframework.boot.test.mock.mockito.MockBean;
- //these test run locally but fail when ran in conjunction with others in jenkins
-@Ignore
-public class SniroHomingV2BBTest extends BaseBPMNTest{
-
- @MockBean
- protected SniroHomingV2 sniroHoming;
+public class HomingBBTest extends BaseBPMNTest{
@Test
public void testHomingV2_success(){
mockSubprocess("ReceiveWorkflowMessage", "Mock ReceiveWorkflowMessage", "GenericStub");
- ProcessInstance pi = runtimeService.startProcessInstanceByKey("HomingV2", variables);
+ ProcessInstance pi = runtimeService.startProcessInstanceByKey("HomingBB", variables);
assertThat(pi).isNotNull();
- assertThat(pi).isStarted().hasPassedInOrder("start", "callSniro", "callReceiveAsync", "processSolution", "end");
+ assertThat(pi).isStarted().hasPassedInOrder("start", "sniroOofCheck", "callSniro", "ExclusiveGateway_1ckp059", "receiveAsyncCallback", "sniroOofCheck2", "processSniroSolution", "ExclusiveGateway_1kvzxpb", "end");
assertThat(pi).isEnded();
}
@Test
public void testHomingV2_error_bpmnError(){
doThrow(new BpmnError("MSOWorkflowException")).when(sniroHoming).callSniro(any(BuildingBlockExecution.class));
- ProcessInstance pi = runtimeService.startProcessInstanceByKey("HomingV2", variables);
- assertThat(pi).isNotNull();
- assertThat(pi).isStarted()
- .hasPassedInOrder("start", "catchBpmnError", "processBpmnError", "endBpmnError")
- .hasNotPassed("callReceiveAsync");
- assertThat(pi).isEnded();
- }
-
- @Test
- public void testHomingV2_error_javaException(){
- doThrow(new RuntimeException("Test")).when(sniroHoming).callSniro(any(BuildingBlockExecution.class));
- ProcessInstance pi = runtimeService.startProcessInstanceByKey("HomingV2", variables);
+ ProcessInstance pi = runtimeService.startProcessInstanceByKey("HomingBB", variables);
assertThat(pi).isNotNull();
assertThat(pi).isStarted()
- .hasPassedInOrder("start", "catchJavaException", "processJavaException", "endJavaException")
+ .hasPassedInOrder("start", "sniroOofCheck", "startBpmnError", "bpmnErrorSubprocess", "processMsoWorkflowException", "endBpmnError")
.hasNotPassed("callReceiveAsync");
assertThat(pi).isEnded();
}
diff --git a/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/SDNCHandlerTest.java b/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/SDNCHandlerTest.java
new file mode 100644
index 0000000000..ad9f97f951
--- /dev/null
+++ b/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/SDNCHandlerTest.java
@@ -0,0 +1,77 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.bpmn.infrastructure.bpmn.subprocess;
+
+import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareAssertions.assertThat;
+import static org.mockito.Mockito.doReturn;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.camunda.bpm.engine.runtime.ProcessInstance;
+import org.junit.Test;
+import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceOperationInformation;
+import org.onap.so.bpmn.BaseBPMNTest;
+import org.onap.so.client.exception.BadResponseException;
+import org.onap.so.client.exception.MapperException;
+import org.onap.so.client.sdnc.beans.SDNCRequest;
+import org.onap.so.client.sdnc.endpoint.SDNCTopology;
+
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class SDNCHandlerTest extends BaseBPMNTest{
+ @Test
+ public void sunnyDay_SDNCHandler_Sync_Final_Test() throws InterruptedException, MapperException, BadResponseException, IOException {
+ final String sdncResponse = new String(Files.readAllBytes(Paths.get("src/test/resources/SDNCClientPut200Response.json")));
+ doReturn(sdncResponse).when(sdncClient).post(createSDNCRequest().getSDNCPayload(),SDNCTopology.CONFIGURATION);
+ Map<String, Object> startVariables = new HashMap<>();
+ startVariables.put("SDNCRequest", createSDNCRequest());
+ ProcessInstance pi = runtimeService.startProcessInstanceByKey("SDNCHandler", startVariables);
+ assertThat(pi).isNotNull().isStarted().hasPassedInOrder("SDNC_Start","SNDC_SetupCallback","Call_SDNC","isAsync_Gateway","SDNC_End").isEnded();
+ }
+
+
+ public SDNCRequest createSDNCRequest(){
+ SDNCRequest request = new SDNCRequest();
+ request.setCorrelationName("correlationName");
+ request.setCorrelationValue("correlationValue");
+ request.setTopology(SDNCTopology.CONFIGURATION);
+ ObjectMapper mapper = new ObjectMapper();
+ try {
+ GenericResourceApiServiceOperationInformation sdncReq =
+ mapper.readValue(Files.readAllBytes(Paths.get("src/test/resources/SDNC_Client_Request.json")), GenericResourceApiServiceOperationInformation.class);
+ request.setSDNCPayload(sdncReq);
+ } catch (JsonParseException e) {
+
+ } catch (JsonMappingException e) {
+
+ } catch (IOException e) {
+
+ }
+
+ return request;
+ }
+}
diff --git a/bpmn/so-bpmn-building-blocks/src/test/resources/SDNCClientPut200Response.json b/bpmn/so-bpmn-building-blocks/src/test/resources/SDNCClientPut200Response.json
new file mode 100644
index 0000000000..286ce4c844
--- /dev/null
+++ b/bpmn/so-bpmn-building-blocks/src/test/resources/SDNCClientPut200Response.json
@@ -0,0 +1,15 @@
+{
+ "output": {
+ "svc-request-id": "5d24d40e-4c77-4c06-94a3-6d168c47a57c",
+ "network-response-information": {
+ "instance-id": "4063e0aa-af13-4872-8473-b40c94f9316b",
+ "object-path": "restconf/config/GENERIC-RESOURCE-API:services/service/2c9c7996-75a7-4f92-becc-9e13e8bd288a/service-data/networks/network/4063e0aa-af13-4872-8473-b40c94f9316b/network-data/network-topology/"
+ },
+ "response-code": "200",
+ "service-response-information": {
+ "instance-id": "2c9c7996-75a7-4f92-becc-9e13e8bd288a"
+ },
+ "response-message": "",
+ "ack-final-indicator": "Y"
+ }
+}
diff --git a/bpmn/so-bpmn-building-blocks/src/test/resources/SDNCClientPut200ResponseNotFinal.json b/bpmn/so-bpmn-building-blocks/src/test/resources/SDNCClientPut200ResponseNotFinal.json
new file mode 100644
index 0000000000..deb4de0219
--- /dev/null
+++ b/bpmn/so-bpmn-building-blocks/src/test/resources/SDNCClientPut200ResponseNotFinal.json
@@ -0,0 +1,15 @@
+{
+ "output": {
+ "svc-request-id": "5d24d40e-4c77-4c06-94a3-6d168c47a57c",
+ "network-response-information": {
+ "instance-id": "4063e0aa-af13-4872-8473-b40c94f9316b",
+ "object-path": "restconf/config/GENERIC-RESOURCE-API:services/service/2c9c7996-75a7-4f92-becc-9e13e8bd288a/service-data/networks/network/4063e0aa-af13-4872-8473-b40c94f9316b/network-data/network-topology/"
+ },
+ "response-code": "200",
+ "service-response-information": {
+ "instance-id": "2c9c7996-75a7-4f92-becc-9e13e8bd288a"
+ },
+ "response-message": "",
+ "ack-final-indicator": "N"
+ }
+}
diff --git a/bpmn/so-bpmn-building-blocks/src/test/resources/SDNCFlowRequest.json b/bpmn/so-bpmn-building-blocks/src/test/resources/SDNCFlowRequest.json
new file mode 100644
index 0000000000..41fdf98bd0
--- /dev/null
+++ b/bpmn/so-bpmn-building-blocks/src/test/resources/SDNCFlowRequest.json
@@ -0,0 +1,11 @@
+{
+ "timeOut":"PT1H",
+ "URI": "http:llasdfasdf",
+ "CorrelationValue": "randomUUID",
+ "CorrelationName": "MyCallbackVariableName",
+ "SDNCPayLoad": {
+ "test":"test",
+ "test2":"test",
+ "test3":"test"
+ }
+} \ No newline at end of file
diff --git a/bpmn/so-bpmn-building-blocks/src/test/resources/SDNC_Client_Request.json b/bpmn/so-bpmn-building-blocks/src/test/resources/SDNC_Client_Request.json
new file mode 100644
index 0000000000..f60767b85e
--- /dev/null
+++ b/bpmn/so-bpmn-building-blocks/src/test/resources/SDNC_Client_Request.json
@@ -0,0 +1,28 @@
+: {
+ "input": {
+ "request-information": {
+ "request-action": "CreateServiceInstance",
+ "source": "MSO",
+ "request-id": "5a09ab96-032b-41cd-ad81-4fb9ec5fade7"
+ },
+ "sdnc-request-header": {
+ "svc-request-id": "5a09ab96-032b-41cd-ad81-4fb9ec5fade7",
+ "svc-action": "assign"
+ },
+ "service-information": {
+ "onap-model-information": {
+ "model-name": "Vf zrdm5bpxmc02092017-Service",
+ "model-version": "1.0",
+ "model-uuid": "bad955c3-29b2-4a27-932e-28e942cc6480",
+ "model-invariant-uuid": "b16a9398-ffa3-4041-b78c-2956b8ad9c7b"
+ },
+ "subscription-service-type": "Robot_Test_Service_Type",
+ "service-id": "48121c5e-dde0-42a6-a78a-89556ff355d0",
+ "global-customer-id": "Robot_Test_Subscriber_ID",
+ "service-instance-id": "48121c5e-dde0-42a6-a78a-89556ff355d0"
+ },
+ "service-request-input": {
+ "service-instance-name": "Robot_SI_For_VolumeGroup"
+ }
+ }
+} \ No newline at end of file
diff --git a/bpmn/so-bpmn-building-blocks/src/test/resources/application-test.yaml b/bpmn/so-bpmn-building-blocks/src/test/resources/application-test.yaml
index 32d6435213..62e2c0a8c2 100644
--- a/bpmn/so-bpmn-building-blocks/src/test/resources/application-test.yaml
+++ b/bpmn/so-bpmn-building-blocks/src/test/resources/application-test.yaml
@@ -209,4 +209,4 @@ pnf:
topicName: pnfReady
consumerGroup: consumerGroup
consumerId: consumerId
- topicListenerDelayInSeconds: 5 \ No newline at end of file
+ topicListenerDelayInSeconds: 5