ソースを参照

lots of new stuff

Grega Bremec 2 年 前
コミット
bd25527f37

+ 9 - 0
pom.xml

@@ -65,6 +65,15 @@
       <artifactId>claims-model</artifactId>
       <version>1.0.3</version>
     </dependency>
+    <!-- Required for remote API -->
+    <dependency>
+      <groupId>org.kie.server</groupId>
+      <artifactId>kie-server-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.kie.server</groupId>
+      <artifactId>kie-server-client</artifactId>
+    </dependency>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>

+ 1 - 0
src/main/java/com/redhat/training/claims/ClarificationTaskHandler.java

@@ -128,6 +128,7 @@ public class ClarificationTaskHandler implements WorkItemHandler {
             default:
                 System.out.println("Unknown task! ABORTING!");
                 wim.abortWorkItem(wi.getId());
+                return;
         }
 
         System.out.println("Completing WorkItem " + wi.getId());

+ 14 - 0
src/main/java/com/redhat/training/claims/SubmitClaimEmbedded.java

@@ -10,6 +10,9 @@ import com.redhat.training.claims.model.Claimant;
 import com.redhat.training.claims.model.Gender;
 
 import org.kie.api.KieServices;
+import org.kie.api.builder.KieScanner;
+import org.kie.api.builder.ReleaseId;
+import org.kie.api.runtime.KieContainer;
 import org.kie.api.runtime.KieSession;
 import org.kie.api.runtime.process.ProcessInstance;
 
@@ -17,6 +20,17 @@ public class SubmitClaimEmbedded {
     public static void main(String... args) {
         KieSession session = KieServices.Factory.get().getKieClasspathContainer().newKieSession();
 
+        /*
+        // ...or load KB from a remote artifact
+        ReleaseId artifact = KieServices.Factory.get().newReleaseId("com.redhat.training", "claims", "LATEST");
+        KieContainer loadedFromArtifact = KieServices.Factory.get().newKieContainer(artifact);
+        // check for new versions every 30 min and update kiecontainer
+        KieScanner artifactScanner = KieServices.Factory.get().newKieScanner(loadedFromArtifact);
+        artifactScanner.start(1800000);
+        // every session created *after* an update will use the latest artifacts
+        KieSession remoteSession = loadedFromArtifact.newKieSession();
+        */
+
         Claimant c = new Claimant();
         c.setName("Tom Jones");
         c.setGender(Gender.MALE);

+ 67 - 0
src/main/java/com/redhat/training/claims/SubmitClaimRemoteKie.java

@@ -0,0 +1,67 @@
+package com.redhat.training.claims;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.redhat.training.claims.model.Claim;
+import com.redhat.training.claims.model.ClaimClarificationRequests;
+import com.redhat.training.claims.model.ClaimProcessingAborted;
+import com.redhat.training.claims.model.ClaimResults;
+import com.redhat.training.claims.model.Claimant;
+import com.redhat.training.claims.model.Gender;
+
+import org.kie.api.KieServices;
+import org.kie.api.command.Command;
+import org.kie.api.command.KieCommands;
+import org.kie.server.api.marshalling.MarshallingFormat;
+import org.kie.server.client.CredentialsProvider;
+import org.kie.server.client.KieServicesClient;
+import org.kie.server.client.KieServicesConfiguration;
+import org.kie.server.client.KieServicesFactory;
+import org.kie.server.client.ProcessServicesClient;
+import org.kie.server.client.credentials.EnteredCredentialsProvider;
+
+public class SubmitClaimRemoteKie {
+    private static final String KIE_SERVER_URL = "http://localhost:8080/kie-server/services/rest/server";
+    private static final String USERNAME = "adminUser";
+    private static final String PASSWORD = "test1234!";
+    private static final String CONTAINER = "claims";
+
+    public static void main(String... args) {
+        CredentialsProvider credentialsProvider = new EnteredCredentialsProvider(USERNAME, PASSWORD);
+        KieServicesConfiguration kieServicesConfig = KieServicesFactory.newRestConfiguration(KIE_SERVER_URL, credentialsProvider);
+        kieServicesConfig.setMarshallingFormat(MarshallingFormat.JSON);
+
+        KieServicesClient kieServicesClient = KieServicesFactory.newKieServicesClient(kieServicesConfig);
+        ProcessServicesClient client = kieServicesClient.getServicesClient(ProcessServicesClient.class);
+
+        Claimant c = new Claimant();
+        c.setName("Tom Jones");
+        c.setGender(Gender.MALE);
+
+        Claim cl = new Claim();
+        cl.setId(234);
+        cl.setAmount(500.00);
+        cl.setReason("Test 123");
+        cl.getInvolvedPersons().add(c);
+
+        c.getClaims().add(cl);
+
+        ClaimResults cr = new ClaimResults(cl.getId());
+        ClaimClarificationRequests ccr = new ClaimClarificationRequests(cl.getId());
+        ClaimProcessingAborted cpa = new ClaimProcessingAborted(cl.getId());
+
+        HashMap<String, Object> params = new HashMap<>();
+        params.put("claimant", c);
+        params.put("claim", cl);
+        params.put("claimResults", cr);
+        params.put("claimClarificationRequests", ccr);
+        params.put("claimProcessingAborted", cpa);
+
+        List<Command<?>> commands = new ArrayList<>();
+        KieServices kieServices = KieServices.Factory.get();
+        KieCommands commandFactory = kieServices.getCommands();
+        commands.add(commandFactory.newStartProcess("claims.ClaimRuleFlow", params));
+        commands.add(commandFactory.newFireAllRules());
+    }
+}

+ 16 - 22
src/main/resources/com/redhat/training/claims/ClaimRuleFlow.bpmn

@@ -1,5 +1,5 @@
 <?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:bpsim="http://www.bpsim.org/schemas/1.0" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:drools="http://www.jboss.org/drools" id="_-zkLYNWzEDqNXYTLd93myg" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd http://www.jboss.org/drools drools.xsd http://www.bpsim.org/schemas/1.0 bpsim.xsd http://www.omg.org/spec/DD/20100524/DC DC.xsd http://www.omg.org/spec/DD/20100524/DI DI.xsd " exporter="jBPM Process Modeler" exporterVersion="2.0" targetNamespace="http://www.omg.org/bpmn20">
+<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:bpsim="http://www.bpsim.org/schemas/1.0" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:drools="http://www.jboss.org/drools" id="_9fOSANXcEDqPFb4nAxvlng" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd http://www.jboss.org/drools drools.xsd http://www.bpsim.org/schemas/1.0 bpsim.xsd http://www.omg.org/spec/DD/20100524/DC DC.xsd http://www.omg.org/spec/DD/20100524/DI DI.xsd " exporter="jBPM Process Modeler" exporterVersion="2.0" targetNamespace="http://www.omg.org/bpmn20">
   <bpmn2:itemDefinition id="_claimantItem" structureRef="com.redhat.training.claims.model.Claimant"/>
   <bpmn2:itemDefinition id="_claimItem" structureRef="com.redhat.training.claims.model.Claim"/>
   <bpmn2:itemDefinition id="_claimResultsItem" structureRef="com.redhat.training.claims.model.ClaimResults"/>
@@ -13,8 +13,6 @@
   <bpmn2:itemDefinition id="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsInputXItem" structureRef="com.redhat.training.claims.model.ClaimResults"/>
   <bpmn2:itemDefinition id="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimClarificationReqsInputXItem" structureRef="com.redhat.training.claims.model.ClaimClarificationRequests"/>
   <bpmn2:itemDefinition id="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimProcAbortInputXItem" structureRef="com.redhat.training.claims.model.ClaimProcessingAborted"/>
-  <bpmn2:itemDefinition id="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsOutputXItem" structureRef="com.redhat.training.claims.model.ClaimResults"/>
-  <bpmn2:itemDefinition id="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimClarificationReqsOutputXItem" structureRef="com.redhat.training.claims.model.ClaimClarificationRequests"/>
   <bpmn2:itemDefinition id="__E3C7932A-6597-47A4-9B3A-179EF25F38D6_SkippableInputXItem" structureRef="Object"/>
   <bpmn2:itemDefinition id="__E3C7932A-6597-47A4-9B3A-179EF25F38D6_PriorityInputXItem" structureRef="Object"/>
   <bpmn2:itemDefinition id="__E3C7932A-6597-47A4-9B3A-179EF25F38D6_CommentInputXItem" structureRef="Object"/>
@@ -32,8 +30,8 @@
   <bpmn2:itemDefinition id="__E3C7932A-6597-47A4-9B3A-179EF25F38D6_tClaimOutputXItem" structureRef="com.redhat.training.claims.model.Claim"/>
   <bpmn2:itemDefinition id="__3681E98C-C5C2-47F0-8F8C-558E49A39ACD_tClaimProcAbortInputXItem" structureRef="com.redhat.training.claims.model.ClaimProcessingAborted"/>
   <bpmn2:error id="ERR_REJECTION" errorCode="ERR_REJECTION"/>
-  <bpmn2:collaboration id="_10E315D4-AFF3-418F-8EEC-136D3973F43B" name="Default Collaboration">
-    <bpmn2:participant id="_4B4FA501-75D8-43FB-B482-3DC1940FC40F" name="Pool Participant" processRef="claims.ClaimRuleFlow"/>
+  <bpmn2:collaboration id="_38A553DA-BBA9-404A-A7DB-27D5D0E3AA19" name="Default Collaboration">
+    <bpmn2:participant id="_3D6DB57F-3198-4753-8B20-FE9756DE0DAD" name="Pool Participant" processRef="claims.ClaimRuleFlow"/>
   </bpmn2:collaboration>
   <bpmn2:process id="claims.ClaimRuleFlow" drools:packageName="com.redhat.training.claims" drools:version="1.0" drools:adHoc="false" name="ClaimRuleFlow" isExecutable="true" processType="Public">
     <bpmn2:property id="claimant" itemSubjectRef="_claimantItem" name="claimant"/>
@@ -163,6 +161,11 @@ System.out.println("Cleared CCR reasons: " + claimClarificationRequests.getReque
         <bpmn2:sourceRef>_E3C7932A-6597-47A4-9B3A-179EF25F38D6_tClaimOutputX</bpmn2:sourceRef>
         <bpmn2:targetRef>claim</bpmn2:targetRef>
       </bpmn2:dataOutputAssociation>
+      <bpmn2:potentialOwner id="_9fXb8NXcEDqPFb4nAxvlng">
+        <bpmn2:resourceAssignmentExpression id="_9fXb8dXcEDqPFb4nAxvlng">
+          <bpmn2:formalExpression>#{invoker}</bpmn2:formalExpression>
+        </bpmn2:resourceAssignmentExpression>
+      </bpmn2:potentialOwner>
     </bpmn2:userTask>
     <bpmn2:scriptTask id="_BD49B16F-21C9-42A0-ACEC-039DA99282C3" name="Register Facts with Session" scriptFormat="http://www.java.com/java">
       <bpmn2:extensionElements>
@@ -172,7 +175,12 @@ System.out.println("Cleared CCR reasons: " + claimClarificationRequests.getReque
       </bpmn2:extensionElements>
       <bpmn2:incoming>_97F4B5CB-1DEC-4717-897E-847695EBE458</bpmn2:incoming>
       <bpmn2:outgoing>_6FFB03BF-7A48-4B42-82D8-98D055337563</bpmn2:outgoing>
-      <bpmn2:script>System.out.println("Registering facts with session.");</bpmn2:script>
+      <bpmn2:script>System.out.println("Registering facts with session.");
+kcontext.getKieRuntime().insert(claimant);
+kcontext.getKieRuntime().insert(claim);
+kcontext.getKieRuntime().insert(claimResults);
+System.out.println("Successfully registered facts.");
+</bpmn2:script>
     </bpmn2:scriptTask>
     <bpmn2:exclusiveGateway id="_6C623396-2499-4830-AAD0-D2C7469414DB" gatewayDirection="Diverging">
       <bpmn2:incoming>_6018778E-DA4F-4751-B950-10FBF9F2708B</bpmn2:incoming>
@@ -193,8 +201,6 @@ System.out.println("Cleared CCR reasons: " + claimClarificationRequests.getReque
         <bpmn2:dataInput id="_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsInputX" drools:dtype="com.redhat.training.claims.model.ClaimResults" itemSubjectRef="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsInputXItem" name="tClaimResults"/>
         <bpmn2:dataInput id="_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimClarificationReqsInputX" drools:dtype="com.redhat.training.claims.model.ClaimClarificationRequests" itemSubjectRef="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimClarificationReqsInputXItem" name="tClaimClarificationReqs"/>
         <bpmn2:dataInput id="_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimProcAbortInputX" drools:dtype="com.redhat.training.claims.model.ClaimProcessingAborted" itemSubjectRef="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimProcAbortInputXItem" name="tClaimProcAbort"/>
-        <bpmn2:dataOutput id="_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsOutputX" drools:dtype="com.redhat.training.claims.model.ClaimResults" itemSubjectRef="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsOutputXItem" name="tClaimResults"/>
-        <bpmn2:dataOutput id="_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimClarificationReqsOutputX" drools:dtype="com.redhat.training.claims.model.ClaimClarificationRequests" itemSubjectRef="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimClarificationReqsOutputXItem" name="tClaimClarificationReqs"/>
         <bpmn2:inputSet>
           <bpmn2:dataInputRefs>_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimantInputX</bpmn2:dataInputRefs>
           <bpmn2:dataInputRefs>_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimInputX</bpmn2:dataInputRefs>
@@ -202,10 +208,6 @@ System.out.println("Cleared CCR reasons: " + claimClarificationRequests.getReque
           <bpmn2:dataInputRefs>_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimClarificationReqsInputX</bpmn2:dataInputRefs>
           <bpmn2:dataInputRefs>_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimProcAbortInputX</bpmn2:dataInputRefs>
         </bpmn2:inputSet>
-        <bpmn2:outputSet>
-          <bpmn2:dataOutputRefs>_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsOutputX</bpmn2:dataOutputRefs>
-          <bpmn2:dataOutputRefs>_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimClarificationReqsOutputX</bpmn2:dataOutputRefs>
-        </bpmn2:outputSet>
       </bpmn2:ioSpecification>
       <bpmn2:dataInputAssociation>
         <bpmn2:sourceRef>claimant</bpmn2:sourceRef>
@@ -227,14 +229,6 @@ System.out.println("Cleared CCR reasons: " + claimClarificationRequests.getReque
         <bpmn2:sourceRef>claimProcessingAborted</bpmn2:sourceRef>
         <bpmn2:targetRef>_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimProcAbortInputX</bpmn2:targetRef>
       </bpmn2:dataInputAssociation>
-      <bpmn2:dataOutputAssociation>
-        <bpmn2:sourceRef>_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsOutputX</bpmn2:sourceRef>
-        <bpmn2:targetRef>claimResults</bpmn2:targetRef>
-      </bpmn2:dataOutputAssociation>
-      <bpmn2:dataOutputAssociation>
-        <bpmn2:sourceRef>_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimClarificationReqsOutputX</bpmn2:sourceRef>
-        <bpmn2:targetRef>claimClarificationRequests</bpmn2:targetRef>
-      </bpmn2:dataOutputAssociation>
     </bpmn2:businessRuleTask>
     <bpmn2:startEvent id="_69928F5A-82C2-45EE-9DE1-E54DC9C81260">
       <bpmn2:outgoing>_5B0B8901-C6B0-40A6-B5FF-706CCBD455C6</bpmn2:outgoing>
@@ -412,7 +406,7 @@ System.out.println("Cleared CCR reasons: " + claimClarificationRequests.getReque
         </bpsim:Scenario>
       </bpsim:BPSimData>
     </bpmn2:extensionElements>
-    <bpmn2:source>_-zkLYNWzEDqNXYTLd93myg</bpmn2:source>
-    <bpmn2:target>_-zkLYNWzEDqNXYTLd93myg</bpmn2:target>
+    <bpmn2:source>_9fOSANXcEDqPFb4nAxvlng</bpmn2:source>
+    <bpmn2:target>_9fOSANXcEDqPFb4nAxvlng</bpmn2:target>
   </bpmn2:relationship>
 </bpmn2:definitions>

+ 1 - 1
src/test/java/com/redhat/training/claims/ProcessSanityCheckTest.java

@@ -43,7 +43,7 @@ public class ProcessSanityCheckTest extends ClaimsTestSupport {
         ProcessInstance pi = this.session.startProcess("claims.ClaimRuleFlow", params);
         this.session.fireAllRules();
 
-        assertEquals("Process instance not Completed", ProcessInstance.STATE_ABORTED, pi.getState());
+        assertEquals("Process instance not Aborted due to error", ProcessInstance.STATE_ABORTED, pi.getState());
         assertEquals("Unexpected number of claim result reasons", 1, cr.getReasons().size());
         assertEquals("Unexpected number of claim rejection reasons", 1, cpa.getReasons().size());
         assertTrue("Expected reason not in claim result", cr.getReasons().contains("Claim amount too small to bother."));