From 86e0dea5dbddcee71c5571e54c2e9b02c52d2f3f Mon Sep 17 00:00:00 2001 From: Karel Suta Date: Wed, 13 Jul 2016 16:19:26 +0200 Subject: [PATCH] kie-server-tests: add update tests for drools and jbpm --- .../package-names-white-list | 1 + .../definition-project-101/pom.xml | 24 + .../definition-project-101/project.imports | 10 + .../resources/CreateProposal-taskform.form | 76 +++ .../main/resources/HRInterview-taskform.form | 91 +++ .../META-INF/kie-deployment-descriptor.xml | 48 ++ .../src/main/resources/META-INF/kmodule.xml | 1 + .../main/resources/SignContract-taskform.form | 68 +++ .../resources/TechInterview-taskform.form | 138 +++++ .../src/main/resources/WorkDefinitions.wid | 61 ++ .../src/main/resources/hiring-svg.svg | 1 + .../src/main/resources/hiring-taskform.form | 32 + .../src/main/resources/hiring.bpmn2 | 565 ++++++++++++++++++ .../ContainerUpdateUiIntegrationTest.java | 139 +++++ .../container-isolation-kjar101/pom.xml | 22 + .../java/org/kie/server/testing/Person.java | 32 + .../src/main/resources/META-INF/kmodule.xml | 6 + .../src/main/resources/kjar1/rules.drl | 23 + .../ContainerUpdateIntegrationTest.java | 102 ++++ .../package-names-white-list | 1 + .../definition-project-101/pom.xml | 24 + .../definition-project-101/project.imports | 10 + .../src/main/java/org.jbpm.data/Person.java | 48 ++ .../META-INF/kie-deployment-descriptor.xml | 48 ++ .../src/main/resources/META-INF/kmodule.xml | 1 + .../src/main/resources/WorkDefinitions.wid | 61 ++ .../src/main/resources/usertask.bpmn2 | 226 +++++++ .../jbpm/ContainerUpdateIntegrationTest.java | 114 ++++ 28 files changed, 1973 insertions(+) create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/package-names-white-list create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/pom.xml create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/project.imports create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/CreateProposal-taskform.form create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/HRInterview-taskform.form create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/META-INF/kie-deployment-descriptor.xml create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/META-INF/kmodule.xml create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/SignContract-taskform.form create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/TechInterview-taskform.form create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/WorkDefinitions.wid create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/hiring-svg.svg create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/hiring-taskform.form create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/hiring.bpmn2 create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/java/org/kie/server/integrationtests/jbpm/ContainerUpdateUiIntegrationTest.java create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/filtered-resources/kjars-sources/container-isolation-kjar101/pom.xml create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/filtered-resources/kjars-sources/container-isolation-kjar101/src/main/java/org/kie/server/testing/Person.java create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/filtered-resources/kjars-sources/container-isolation-kjar101/src/main/resources/META-INF/kmodule.xml create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/filtered-resources/kjars-sources/container-isolation-kjar101/src/main/resources/kjar1/rules.drl create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/java/org/kie/server/integrationtests/drools/ContainerUpdateIntegrationTest.java create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/package-names-white-list create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/pom.xml create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/project.imports create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/java/org.jbpm.data/Person.java create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/META-INF/kie-deployment-descriptor.xml create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/META-INF/kmodule.xml create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/WorkDefinitions.wid create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/usertask.bpmn2 create mode 100644 kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/java/org/kie/server/integrationtests/jbpm/ContainerUpdateIntegrationTest.java diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/package-names-white-list b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/package-names-white-list new file mode 100644 index 0000000000..7d9718a971 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/package-names-white-list @@ -0,0 +1 @@ +org.kie.server.testing.definition_project.** \ No newline at end of file diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/pom.xml b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/pom.xml new file mode 100644 index 0000000000..1c18c350e2 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/pom.xml @@ -0,0 +1,24 @@ + + + 4.0.0 + + + org.kie.server.testing + common-parent + 1.0.0.Final + + + definition-project + 1.0.1.Final + definition-project + + + + + org.kie + kie-maven-plugin + + + + \ No newline at end of file diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/project.imports b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/project.imports new file mode 100644 index 0000000000..6aa7e18adb --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/project.imports @@ -0,0 +1,10 @@ + + + + + java.lang.Number + + + + 1.0 + \ No newline at end of file diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/CreateProposal-taskform.form b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/CreateProposal-taskform.form new file mode 100644 index 0000000000..adb966e425 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/CreateProposal-taskform.form @@ -0,0 +1,76 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/HRInterview-taskform.form b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/HRInterview-taskform.form new file mode 100644 index 0000000000..45c5f8ce3a --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/HRInterview-taskform.form @@ -0,0 +1,91 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/META-INF/kie-deployment-descriptor.xml b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/META-INF/kie-deployment-descriptor.xml new file mode 100644 index 0000000000..0c93c609f8 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/META-INF/kie-deployment-descriptor.xml @@ -0,0 +1,48 @@ + + + org.jbpm.domain + org.jbpm.domain + JPA + JPA + SINGLETON + + + + + + + mvel + new org.jbpm.process.workitem.bpmn2.ServiceTaskHandler(ksession, classLoader) + + Service Task + + + mvel + new org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler() + + Log + + + mvel + new org.jbpm.process.instance.impl.demo.DoNothingWorkItemHandler() + + Email + + + mvel + new org.jbpm.process.workitem.webservice.WebServiceWorkItemHandler(ksession, classLoader) + + WebService + + + mvel + new org.jbpm.process.workitem.rest.RESTWorkItemHandler() + + Rest + + + + + + + diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/META-INF/kmodule.xml b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/META-INF/kmodule.xml new file mode 100644 index 0000000000..2ba4076c16 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/META-INF/kmodule.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/SignContract-taskform.form b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/SignContract-taskform.form new file mode 100644 index 0000000000..ebb093f3e5 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/SignContract-taskform.form @@ -0,0 +1,68 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/TechInterview-taskform.form b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/TechInterview-taskform.form new file mode 100644 index 0000000000..7c1db4031e --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/TechInterview-taskform.form @@ -0,0 +1,138 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/WorkDefinitions.wid b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/WorkDefinitions.wid new file mode 100644 index 0000000000..bab13059d0 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/WorkDefinitions.wid @@ -0,0 +1,61 @@ +import org.drools.core.process.core.datatype.impl.type.StringDataType; +import org.drools.core.process.core.datatype.impl.type.ObjectDataType; + +[ + [ + "name" : "Email", + "parameters" : [ + "From" : new StringDataType(), + "To" : new StringDataType(), + "Subject" : new StringDataType(), + "Body" : new StringDataType() + ], + "displayName" : "Email", + "icon" : "defaultemailicon.gif" + ], + + [ + "name" : "Log", + "parameters" : [ + "Message" : new StringDataType() + ], + "displayName" : "Log", + "icon" : "defaultlogicon.gif" + ], + + [ + "name" : "WebService", + "parameters" : [ + "Url" : new StringDataType(), + "Namespace" : new StringDataType(), + "Interface" : new StringDataType(), + "Operation" : new StringDataType(), + "Parameter" : new StringDataType(), + "Endpoint" : new StringDataType(), + "Mode" : new StringDataType() + ], + "results" : [ + "Result" : new ObjectDataType(), + ], + "displayName" : "WS", + "icon" : "defaultservicenodeicon.png" + ], + + [ + "name" : "Rest", + "parameters" : [ + "Url" : new StringDataType(), + "Method" : new StringDataType(), + "ConnectTimeout" : new StringDataType(), + "ReadTimeout" : new StringDataType(), + "Username" : new StringDataType(), + "Password" : new StringDataType() + ], + "results" : [ + "Result" : new ObjectDataType(), + ], + "displayName" : "REST", + "icon" : "defaultservicenodeicon.png" + ] + +] diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/hiring-svg.svg b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/hiring-svg.svg new file mode 100644 index 0000000000..af7c2a511c --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/hiring-svg.svg @@ -0,0 +1 @@ + Updated HR Interview Tweet New Hire Hiring a Developer v.1 (hiring) \ No newline at end of file diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/hiring-taskform.form b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/hiring-taskform.form new file mode 100644 index 0000000000..13c69faea5 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/hiring-taskform.form @@ -0,0 +1,32 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/hiring.bpmn2 b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/hiring.bpmn2 new file mode 100644 index 0000000000..a7527101db --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/hiring.bpmn2 @@ -0,0 +1,565 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _416C6A67-B7EC-400B-9F2B-0F53B3FEDEB4 + + + _416C6A67-B7EC-400B-9F2B-0F53B3FEDEB4 + _202CE0F7-63B3-4A5D-B5A9-9C9C5EB87468 + + + + + + + + + + + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_GroupIdInput + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_CommentInput + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_in_nameInput + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_TaskNameInput + + + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_out_nameOutput + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_out_ageOutput + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_out_mailOutput + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_out_scoreOutput + + + + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_TaskNameInput + + HRInterview + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_TaskNameInput + + + + name + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_in_nameInput + + + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_GroupIdInput + + HR + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_GroupIdInput + + + + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_CommentInput + + + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_CommentInput + + + + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_out_ageOutput + age + + + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_out_mailOutput + mail + + + _6998ACD3-21DC-421D-AC04-BA7D375B0B21_out_scoreOutput + hr_score + + + + + _202CE0F7-63B3-4A5D-B5A9-9C9C5EB87468 + _4976D9C3-B97A-48F7-B794-32307FF855D6 + + + + + + + + + + + + _FADFBC55-C369-4F58-B04B-3AD20337F215_in_nameInput + _FADFBC55-C369-4F58-B04B-3AD20337F215_in_ageInput + _FADFBC55-C369-4F58-B04B-3AD20337F215_in_mailInput + _FADFBC55-C369-4F58-B04B-3AD20337F215_GroupIdInput + _FADFBC55-C369-4F58-B04B-3AD20337F215_CommentInput + _FADFBC55-C369-4F58-B04B-3AD20337F215_TaskNameInput + + + _FADFBC55-C369-4F58-B04B-3AD20337F215_out_skillsOutput + _FADFBC55-C369-4F58-B04B-3AD20337F215_out_scoreOutput + _FADFBC55-C369-4F58-B04B-3AD20337F215_out_twitterOutput + + + + _FADFBC55-C369-4F58-B04B-3AD20337F215_TaskNameInput + + TechInterview + _FADFBC55-C369-4F58-B04B-3AD20337F215_TaskNameInput + + + + name + _FADFBC55-C369-4F58-B04B-3AD20337F215_in_nameInput + + + age + _FADFBC55-C369-4F58-B04B-3AD20337F215_in_ageInput + + + mail + _FADFBC55-C369-4F58-B04B-3AD20337F215_in_mailInput + + + _FADFBC55-C369-4F58-B04B-3AD20337F215_GroupIdInput + + IT + _FADFBC55-C369-4F58-B04B-3AD20337F215_GroupIdInput + + + + _FADFBC55-C369-4F58-B04B-3AD20337F215_CommentInput + + + _FADFBC55-C369-4F58-B04B-3AD20337F215_CommentInput + + + + _FADFBC55-C369-4F58-B04B-3AD20337F215_out_skillsOutput + skills + + + _FADFBC55-C369-4F58-B04B-3AD20337F215_out_scoreOutput + tech_score + + + _FADFBC55-C369-4F58-B04B-3AD20337F215_out_twitterOutput + twitter + + + + + _4976D9C3-B97A-48F7-B794-32307FF855D6 + _7C032B11-46FC-4599-94B7-8FCA9AA05437 + + + + + + + + + _12435ADA-3C57-414C-8DDD-5D236E462BD8_in_tech_scoreInput + _12435ADA-3C57-414C-8DDD-5D236E462BD8_in_hr_scoreInput + _12435ADA-3C57-414C-8DDD-5D236E462BD8_GroupIdInput + _12435ADA-3C57-414C-8DDD-5D236E462BD8_CommentInput + _12435ADA-3C57-414C-8DDD-5D236E462BD8_TaskNameInput + + + _12435ADA-3C57-414C-8DDD-5D236E462BD8_out_offeringOutput + + + + _12435ADA-3C57-414C-8DDD-5D236E462BD8_TaskNameInput + + CreateProposal + _12435ADA-3C57-414C-8DDD-5D236E462BD8_TaskNameInput + + + + tech_score + _12435ADA-3C57-414C-8DDD-5D236E462BD8_in_tech_scoreInput + + + hr_score + _12435ADA-3C57-414C-8DDD-5D236E462BD8_in_hr_scoreInput + + + _12435ADA-3C57-414C-8DDD-5D236E462BD8_GroupIdInput + + Accounting + _12435ADA-3C57-414C-8DDD-5D236E462BD8_GroupIdInput + + + + _12435ADA-3C57-414C-8DDD-5D236E462BD8_CommentInput + + + _12435ADA-3C57-414C-8DDD-5D236E462BD8_CommentInput + + + + _12435ADA-3C57-414C-8DDD-5D236E462BD8_out_offeringOutput + offering + + + + + _7C032B11-46FC-4599-94B7-8FCA9AA05437 + _3357BAA4-262A-41BA-9C29-7845432CCB8A + + + + + _3357BAA4-262A-41BA-9C29-7845432CCB8A + _B7EF3CD8-7D33-4464-81B4-69522F1799D5 + + + + + + + + + _D9B752FE-4900-4172-B8C9-31CC838E18A5_in_offeringInput + _D9B752FE-4900-4172-B8C9-31CC838E18A5_in_nameInput + _D9B752FE-4900-4172-B8C9-31CC838E18A5_GroupIdInput + _D9B752FE-4900-4172-B8C9-31CC838E18A5_CommentInput + _D9B752FE-4900-4172-B8C9-31CC838E18A5_TaskNameInput + + + _D9B752FE-4900-4172-B8C9-31CC838E18A5_out_signedOutput + + + + _D9B752FE-4900-4172-B8C9-31CC838E18A5_TaskNameInput + + SignContract + _D9B752FE-4900-4172-B8C9-31CC838E18A5_TaskNameInput + + + + offering + _D9B752FE-4900-4172-B8C9-31CC838E18A5_in_offeringInput + + + name + _D9B752FE-4900-4172-B8C9-31CC838E18A5_in_nameInput + + + _D9B752FE-4900-4172-B8C9-31CC838E18A5_GroupIdInput + + HR + _D9B752FE-4900-4172-B8C9-31CC838E18A5_GroupIdInput + + + + _D9B752FE-4900-4172-B8C9-31CC838E18A5_CommentInput + + + _D9B752FE-4900-4172-B8C9-31CC838E18A5_CommentInput + + + + _D9B752FE-4900-4172-B8C9-31CC838E18A5_out_signedOutput + signed + + + + + _B7EF3CD8-7D33-4464-81B4-69522F1799D5 + _AABB6FDC-F7B4-40FB-A691-969E83285E16 + + + + + + + _BB384E33-D98D-4809-9063-53675BC5D27E_TaskNameInput + + Twitter + _BB384E33-D98D-4809-9063-53675BC5D27E_TaskNameInput + + + + + + + _AABB6FDC-F7B4-40FB-A691-969E83285E16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _k9I54LzKEeKT6qCaqCIbfQ + _k9I54LzKEeKT6qCaqCIbfQ + + diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/java/org/kie/server/integrationtests/jbpm/ContainerUpdateUiIntegrationTest.java b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/java/org/kie/server/integrationtests/jbpm/ContainerUpdateUiIntegrationTest.java new file mode 100644 index 0000000000..fbf667b71a --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-all/src/test/java/org/kie/server/integrationtests/jbpm/ContainerUpdateUiIntegrationTest.java @@ -0,0 +1,139 @@ +/* + * Copyright 2015 Red Hat, Inc. and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * + * 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.kie.server.integrationtests.jbpm; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertNotEquals; + +import java.util.List; + +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.kie.server.api.model.ReleaseId; +import org.kie.server.api.model.instance.TaskSummary; +import org.kie.server.integrationtests.shared.KieServerAssert; +import org.kie.server.integrationtests.shared.KieServerDeployer; + +public class ContainerUpdateUiIntegrationTest extends JbpmKieServerBaseIntegrationTest { + + private static final ReleaseId releaseId = new ReleaseId("org.kie.server.testing", "definition-project", + "1.0.0.Final"); + private static final ReleaseId releaseId101 = new ReleaseId("org.kie.server.testing", "definition-project", + "1.0.1.Final"); + + private static final String CONTAINER_ID = "definition-project"; + private static final String HIRING_PROCESS_ID = "hiring"; + + @BeforeClass + public static void buildAndDeployArtifacts() { + KieServerDeployer.buildAndDeployCommonMavenParent(); + KieServerDeployer.buildAndDeployMavenProject(ClassLoader.class.getResource("/kjars-sources/definition-project").getFile()); + KieServerDeployer.buildAndDeployMavenProject(ClassLoader.class.getResource("/kjars-sources/definition-project-101").getFile()); + } + + @Before + public void cleanContainers() { + disposeAllContainers(); + createContainer(CONTAINER_ID, releaseId); + } + + @Test + public void testGetProcessFormAfterContainerUpdate() throws Exception { + String result = uiServicesClient.getProcessForm(CONTAINER_ID, HIRING_PROCESS_ID, "en"); + assertNotNull(result); + assertTrue("Form doesn't contain original label!", result.contains("Candidate Name")); + + // Update container to new version. + KieServerAssert.assertSuccess(client.updateReleaseId(CONTAINER_ID, releaseId101)); + + result = uiServicesClient.getProcessForm(CONTAINER_ID, HIRING_PROCESS_ID, "en"); + assertNotNull(result); + assertTrue("Form doesn't contain updated label!", result.contains("Candidate First Name And Surename")); + } + + @Test + public void testGetTaskFormAfterContainerUpdate() throws Exception { + long processInstanceId = processClient.startProcess(CONTAINER_ID, HIRING_PROCESS_ID); + assertTrue(processInstanceId > 0); + try { + String result = getFirstTaskForm(processInstanceId); + assertNotNull(result); + assertTrue("Form doesn't contain original label!", result.contains("Candidate Name")); + + // Update container to new version and restart process. + processClient.abortProcessInstance(CONTAINER_ID, processInstanceId); + KieServerAssert.assertSuccess(client.updateReleaseId(CONTAINER_ID, releaseId101)); + processInstanceId = processClient.startProcess(CONTAINER_ID, HIRING_PROCESS_ID); + + result = getFirstTaskForm(processInstanceId); + assertNotNull(result); + assertTrue("Form doesn't contain updated label!", result.contains("Candidate Whole Name")); + } finally { + processClient.abortProcessInstance(CONTAINER_ID, processInstanceId); + } + } + + @Test + public void testGetProcessImageViaUIClientTest() throws Exception { + String originalResult = uiServicesClient.getProcessImage(CONTAINER_ID, HIRING_PROCESS_ID); + assertNotNull(originalResult); + assertFalse(originalResult.isEmpty()); + + // Update container to new version. + KieServerAssert.assertSuccess(client.updateReleaseId(CONTAINER_ID, releaseId101)); + + String updatedResult = uiServicesClient.getProcessImage(CONTAINER_ID, HIRING_PROCESS_ID); + assertNotNull(updatedResult); + assertFalse(updatedResult.isEmpty()); + assertNotEquals("Process image wasn't updated!", originalResult, updatedResult); + } + + @Test + public void testGetProcessInstanceImageViaUIClientTest() throws Exception { + long processInstanceId = processClient.startProcess(CONTAINER_ID, HIRING_PROCESS_ID); + assertTrue(processInstanceId > 0); + try { + String originalResult = uiServicesClient.getProcessInstanceImage(CONTAINER_ID, processInstanceId); + assertNotNull(originalResult); + assertFalse(originalResult.isEmpty()); + + // Update container to new version and restart process. + processClient.abortProcessInstance(CONTAINER_ID, processInstanceId); + KieServerAssert.assertSuccess(client.updateReleaseId(CONTAINER_ID, releaseId101)); + processInstanceId = processClient.startProcess(CONTAINER_ID, HIRING_PROCESS_ID); + + String updatedResult = uiServicesClient.getProcessInstanceImage(CONTAINER_ID, processInstanceId); + assertNotNull(updatedResult); + assertFalse(updatedResult.isEmpty()); + assertNotEquals("Process instance image wasn't updated!", originalResult, updatedResult); + } finally { + processClient.abortProcessInstance(CONTAINER_ID, processInstanceId); + } + } + + private String getFirstTaskForm(long processInstanceId) { + List tasks = taskClient.findTasksByStatusByProcessInstanceId(processInstanceId, null, 0, 10); + assertNotNull(tasks); + assertEquals(1, tasks.size()); + + Long taskId = tasks.get(0).getId(); + return uiServicesClient.getTaskForm(CONTAINER_ID, taskId, "en"); + } +} diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/filtered-resources/kjars-sources/container-isolation-kjar101/pom.xml b/kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/filtered-resources/kjars-sources/container-isolation-kjar101/pom.xml new file mode 100644 index 0000000000..75a5d736f3 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/filtered-resources/kjars-sources/container-isolation-kjar101/pom.xml @@ -0,0 +1,22 @@ + + 4.0.0 + + org.kie.server.testing + common-parent + 1.0.0.Final + + + container-isolation-kjar1 + 1.0.1.Final + kjar + + + + + org.kie + kie-maven-plugin + + + + diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/filtered-resources/kjars-sources/container-isolation-kjar101/src/main/java/org/kie/server/testing/Person.java b/kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/filtered-resources/kjars-sources/container-isolation-kjar101/src/main/java/org/kie/server/testing/Person.java new file mode 100644 index 0000000000..1dfc9a36a8 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/filtered-resources/kjars-sources/container-isolation-kjar101/src/main/java/org/kie/server/testing/Person.java @@ -0,0 +1,32 @@ +/* + * Copyright 2015 Red Hat, Inc. and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * + * 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.kie.server.testing; + +public class Person { + private String id; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public void updateId() { + id = "Person from kjar101"; + } +} \ No newline at end of file diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/filtered-resources/kjars-sources/container-isolation-kjar101/src/main/resources/META-INF/kmodule.xml b/kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/filtered-resources/kjars-sources/container-isolation-kjar101/src/main/resources/META-INF/kmodule.xml new file mode 100644 index 0000000000..dceb13a1bd --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/filtered-resources/kjars-sources/container-isolation-kjar101/src/main/resources/META-INF/kmodule.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/filtered-resources/kjars-sources/container-isolation-kjar101/src/main/resources/kjar1/rules.drl b/kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/filtered-resources/kjars-sources/container-isolation-kjar101/src/main/resources/kjar1/rules.drl new file mode 100644 index 0000000000..940b8afec5 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/filtered-resources/kjars-sources/container-isolation-kjar101/src/main/resources/kjar1/rules.drl @@ -0,0 +1,23 @@ +/* + * Copyright 2015 Red Hat, Inc. and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * + * 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. +*/ + +import org.kie.server.testing.Person; + +rule "Update person's id" +when + $person : Person(id == null) +then + $person.updateId(); +end diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/java/org/kie/server/integrationtests/drools/ContainerUpdateIntegrationTest.java b/kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/java/org/kie/server/integrationtests/drools/ContainerUpdateIntegrationTest.java new file mode 100644 index 0000000000..a39bf263fb --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/java/org/kie/server/integrationtests/drools/ContainerUpdateIntegrationTest.java @@ -0,0 +1,102 @@ +/* + * Copyright 2015 Red Hat, Inc. and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * + * 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.kie.server.integrationtests.drools; + +import static org.junit.Assert.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.kie.api.KieServices; +import org.kie.api.command.BatchExecutionCommand; +import org.kie.api.command.Command; +import org.kie.api.runtime.ExecutionResults; +import org.kie.api.runtime.KieContainer; +import org.kie.server.api.model.ReleaseId; +import org.kie.server.api.model.ServiceResponse; +import org.kie.server.integrationtests.shared.KieServerAssert; +import org.kie.server.integrationtests.shared.KieServerDeployer; + +public class ContainerUpdateIntegrationTest extends DroolsKieServerBaseIntegrationTest { + private static final ReleaseId kjar1 = new ReleaseId("org.kie.server.testing", "container-isolation-kjar1", + "1.0.0.Final"); + private static final ReleaseId kjar101 = new ReleaseId("org.kie.server.testing", "container-isolation-kjar1", + "1.0.1.Final"); + + private static final String CONTAINER_ID = "container-update"; + private static final String KIE_SESSION_1 = "kjar1.session"; + private static final String KIE_SESSION_101 = "kjar101.session"; + private static final String PERSON_OUT_IDENTIFIER = "person"; + private static final String PERSON_CLASS_NAME = "org.kie.server.testing.Person"; + + @BeforeClass + public static void deployArtifacts() { + KieServerDeployer.buildAndDeployCommonMavenParent(); + KieServerDeployer.buildAndDeployMavenProject(ClassLoader.class.getResource("/kjars-sources/container-isolation-kjar1").getFile()); + KieServerDeployer.buildAndDeployMavenProject(ClassLoader.class.getResource("/kjars-sources/container-isolation-kjar101").getFile()); + } + + @Before + public void cleanContainers() { + disposeAllContainers(); + createContainer(CONTAINER_ID, kjar1); + } + + @Override + protected void addExtraCustomClasses(Map> extraClasses) throws Exception { + KieContainer kieContainer = KieServices.Factory.get().newKieContainer(kjar1); + extraClasses.put(PERSON_CLASS_NAME, Class.forName(PERSON_CLASS_NAME, true, kieContainer.getClassLoader())); + } + + @Test + public void testKieSessionWithUpdatedContainer() throws Exception { + Object person = createInstance(PERSON_CLASS_NAME); + List> commands = new ArrayList>(); + BatchExecutionCommand batchExecution1 = commandsFactory.newBatchExecution(commands, KIE_SESSION_1); + + commands.add(commandsFactory.newInsert(person, PERSON_OUT_IDENTIFIER)); + commands.add(commandsFactory.newFireAllRules()); + + ServiceResponse response1 = ruleClient.executeCommandsWithResults(CONTAINER_ID, batchExecution1); + KieServerAssert.assertSuccess(response1); + ExecutionResults result1 = response1.getResult(); + + Object outcome = result1.getValue(PERSON_OUT_IDENTIFIER); + assertEquals("Person's id should be 'Person from kjar1'!", "Person from kjar1", valueOf(outcome, "id")); + + // now update container with second release id. The rule in there should set different id + // (namely "Person from kjar101") for the inserted person + KieServerAssert.assertSuccess(client.updateReleaseId(CONTAINER_ID, kjar101)); + + person = createInstance(PERSON_CLASS_NAME); + commands = new ArrayList>(); + BatchExecutionCommand batchExecution2 = commandsFactory.newBatchExecution(commands, KIE_SESSION_101); + + commands.add(commandsFactory.newInsert(person, PERSON_OUT_IDENTIFIER)); + commands.add(commandsFactory.newFireAllRules()); + + ServiceResponse response2 = ruleClient.executeCommandsWithResults(CONTAINER_ID, batchExecution2); + KieServerAssert.assertSuccess(response2); + ExecutionResults result2 = response2.getResult(); + + Object outcome2 = result2.getValue(PERSON_OUT_IDENTIFIER); + assertEquals("Person's id should be 'Person from kjar101'!", "Person from kjar101", valueOf(outcome2, "id")); + } +} diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/package-names-white-list b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/package-names-white-list new file mode 100644 index 0000000000..7d9718a971 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/package-names-white-list @@ -0,0 +1 @@ +org.kie.server.testing.definition_project.** \ No newline at end of file diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/pom.xml b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/pom.xml new file mode 100644 index 0000000000..1c18c350e2 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/pom.xml @@ -0,0 +1,24 @@ + + + 4.0.0 + + + org.kie.server.testing + common-parent + 1.0.0.Final + + + definition-project + 1.0.1.Final + definition-project + + + + + org.kie + kie-maven-plugin + + + + \ No newline at end of file diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/project.imports b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/project.imports new file mode 100644 index 0000000000..6aa7e18adb --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/project.imports @@ -0,0 +1,10 @@ + + + + + java.lang.Number + + + + 1.0 + \ No newline at end of file diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/java/org.jbpm.data/Person.java b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/java/org.jbpm.data/Person.java new file mode 100644 index 0000000000..54963d01ba --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/java/org.jbpm.data/Person.java @@ -0,0 +1,48 @@ +/* + * Copyright 2015 Red Hat, Inc. and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * + * 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.jbpm.data; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name = "person-object") +@XmlAccessorType(XmlAccessType.FIELD) +public class Person implements java.io.Serializable { + + private String name; + + public Person() { + } + + public Person(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override public String toString() { + return "Person{" + + "name='" + name + '\'' + + '}'; + } +} diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/META-INF/kie-deployment-descriptor.xml b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/META-INF/kie-deployment-descriptor.xml new file mode 100644 index 0000000000..0c93c609f8 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/META-INF/kie-deployment-descriptor.xml @@ -0,0 +1,48 @@ + + + org.jbpm.domain + org.jbpm.domain + JPA + JPA + SINGLETON + + + + + + + mvel + new org.jbpm.process.workitem.bpmn2.ServiceTaskHandler(ksession, classLoader) + + Service Task + + + mvel + new org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler() + + Log + + + mvel + new org.jbpm.process.instance.impl.demo.DoNothingWorkItemHandler() + + Email + + + mvel + new org.jbpm.process.workitem.webservice.WebServiceWorkItemHandler(ksession, classLoader) + + WebService + + + mvel + new org.jbpm.process.workitem.rest.RESTWorkItemHandler() + + Rest + + + + + + + diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/META-INF/kmodule.xml b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/META-INF/kmodule.xml new file mode 100644 index 0000000000..2ba4076c16 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/META-INF/kmodule.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/WorkDefinitions.wid b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/WorkDefinitions.wid new file mode 100644 index 0000000000..bab13059d0 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/WorkDefinitions.wid @@ -0,0 +1,61 @@ +import org.drools.core.process.core.datatype.impl.type.StringDataType; +import org.drools.core.process.core.datatype.impl.type.ObjectDataType; + +[ + [ + "name" : "Email", + "parameters" : [ + "From" : new StringDataType(), + "To" : new StringDataType(), + "Subject" : new StringDataType(), + "Body" : new StringDataType() + ], + "displayName" : "Email", + "icon" : "defaultemailicon.gif" + ], + + [ + "name" : "Log", + "parameters" : [ + "Message" : new StringDataType() + ], + "displayName" : "Log", + "icon" : "defaultlogicon.gif" + ], + + [ + "name" : "WebService", + "parameters" : [ + "Url" : new StringDataType(), + "Namespace" : new StringDataType(), + "Interface" : new StringDataType(), + "Operation" : new StringDataType(), + "Parameter" : new StringDataType(), + "Endpoint" : new StringDataType(), + "Mode" : new StringDataType() + ], + "results" : [ + "Result" : new ObjectDataType(), + ], + "displayName" : "WS", + "icon" : "defaultservicenodeicon.png" + ], + + [ + "name" : "Rest", + "parameters" : [ + "Url" : new StringDataType(), + "Method" : new StringDataType(), + "ConnectTimeout" : new StringDataType(), + "ReadTimeout" : new StringDataType(), + "Username" : new StringDataType(), + "Password" : new StringDataType() + ], + "results" : [ + "Result" : new ObjectDataType(), + ], + "displayName" : "REST", + "icon" : "defaultservicenodeicon.png" + ] + +] diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/usertask.bpmn2 b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/usertask.bpmn2 new file mode 100644 index 0000000000..779be38d30 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/filtered-resources/kjars-sources/definition-project-101/src/main/resources/usertask.bpmn2 @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + + _7DD40B5F-AE51-4DEA-99E3-79E8B02542F4 + + + _7DD40B5F-AE51-4DEA-99E3-79E8B02542F4 + _3A18378C-AF7E-4A46-9E3F-439990743823 + + + + + + + + _44BE4412-91B0-4707-89DD-D45CECA36413__stringInputX + _44BE4412-91B0-4707-89DD-D45CECA36413__personInputX + _44BE4412-91B0-4707-89DD-D45CECA36413_SkippableInputX + + + _44BE4412-91B0-4707-89DD-D45CECA36413_string_OutputX + _44BE4412-91B0-4707-89DD-D45CECA36413_person_OutputX + + + + stringData + _44BE4412-91B0-4707-89DD-D45CECA36413__stringInputX + + + personData + _44BE4412-91B0-4707-89DD-D45CECA36413__personInputX + + + _44BE4412-91B0-4707-89DD-D45CECA36413_SkippableInputX + + false + _44BE4412-91B0-4707-89DD-D45CECA36413_SkippableInputX + + + + _44BE4412-91B0-4707-89DD-D45CECA36413_string_OutputX + stringData + + + _44BE4412-91B0-4707-89DD-D45CECA36413_person_OutputX + personData + + + + yoda + + + + + + _3A18378C-AF7E-4A46-9E3F-439990743823 + _75C9F602-54EC-4C49-8B5F-90A1527ED698 + + + + + + _87C563E0-EB8C-4184-BDB0-219E05780A0E_string2_InputX + _87C563E0-EB8C-4184-BDB0-219E05780A0E_person2_InputX + _87C563E0-EB8C-4184-BDB0-219E05780A0E_SkippableInputX + + + + + stringData + _87C563E0-EB8C-4184-BDB0-219E05780A0E_string2_InputX + + + personData + _87C563E0-EB8C-4184-BDB0-219E05780A0E_person2_InputX + + + _87C563E0-EB8C-4184-BDB0-219E05780A0E_SkippableInputX + + true + _87C563E0-EB8C-4184-BDB0-219E05780A0E_SkippableInputX + + + + + yoda + + + + + + _75C9F602-54EC-4C49-8B5F-90A1527ED698 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _u5JCEPpbEeSqMsMWx6c2wQ + _u5JCEPpbEeSqMsMWx6c2wQ + + diff --git a/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/java/org/kie/server/integrationtests/jbpm/ContainerUpdateIntegrationTest.java b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/java/org/kie/server/integrationtests/jbpm/ContainerUpdateIntegrationTest.java new file mode 100644 index 0000000000..a4786c63f5 --- /dev/null +++ b/kie-server-parent/kie-server-tests/kie-server-integ-tests-jbpm/src/test/java/org/kie/server/integrationtests/jbpm/ContainerUpdateIntegrationTest.java @@ -0,0 +1,114 @@ +/* + * Copyright 2015 Red Hat, Inc. and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * + * 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.kie.server.integrationtests.jbpm; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.util.List; + +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.kie.server.api.model.ReleaseId; +import org.kie.server.api.model.ServiceResponse; +import org.kie.server.api.model.definition.UserTaskDefinition; +import org.kie.server.api.model.definition.UserTaskDefinitionList; +import org.kie.server.api.model.instance.TaskSummary; +import org.kie.server.integrationtests.shared.KieServerAssert; +import org.kie.server.integrationtests.shared.KieServerDeployer; + +public class ContainerUpdateIntegrationTest extends JbpmKieServerBaseIntegrationTest { + + private static final ReleaseId releaseId = new ReleaseId("org.kie.server.testing", "definition-project", + "1.0.0.Final"); + private static final ReleaseId releaseId101 = new ReleaseId("org.kie.server.testing", "definition-project", + "1.0.1.Final"); + + @BeforeClass + public static void buildAndDeployArtifacts() { + KieServerDeployer.buildAndDeployCommonMavenParent(); + KieServerDeployer.buildAndDeployMavenProject(ClassLoader.class.getResource("/kjars-sources/definition-project").getFile()); + KieServerDeployer.buildAndDeployMavenProject(ClassLoader.class.getResource("/kjars-sources/definition-project-101").getFile()); + } + + @Before + public void cleanContainers() { + disposeAllContainers(); + createContainer(CONTAINER_ID, releaseId); + } + + @Test + public void testUserTaskWithUpdatedContainer() throws Exception { + Long processInstanceId = processClient.startProcess(CONTAINER_ID, PROCESS_ID_USERTASK); + + try { + List tasks = taskClient.findTasksAssignedAsPotentialOwner(USER_YODA, 0, 10); + assertEquals(1, tasks.size()); + assertEquals("First task", tasks.get(0).getName()); + assertTrue("Task should be skippable.", tasks.get(0).getSkipable().booleanValue()); + + // Update container to new version and restart process. + processClient.abortProcessInstance(CONTAINER_ID, processInstanceId); + KieServerAssert.assertSuccess(client.updateReleaseId(CONTAINER_ID, releaseId101)); + processInstanceId = processClient.startProcess(CONTAINER_ID, PROCESS_ID_USERTASK); + + tasks = taskClient.findTasksAssignedAsPotentialOwner(USER_YODA, 0, 10); + assertEquals(1, tasks.size()); + assertEquals("Updated first task", tasks.get(0).getName()); + assertFalse("Task shouldn't be skippable.", tasks.get(0).getSkipable().booleanValue()); + } finally { + processClient.abortProcessInstance(CONTAINER_ID, processInstanceId); + } + } + + @Test + public void testProcessDefinitionWithUpdatedContainer() throws Exception { + UserTaskDefinitionList userTaskDefinitions = processClient.getUserTaskDefinitions(CONTAINER_ID, PROCESS_ID_USERTASK); + assertEquals(2, userTaskDefinitions.getItems().size()); + + UserTaskDefinition firstTaskDefinition = userTaskDefinitions.getItems().get(0); + assertEquals("First task", firstTaskDefinition.getName()); + assertTrue("Task should be skippable.", firstTaskDefinition.isSkippable()); + + // Update container to new version. + KieServerAssert.assertSuccess(client.updateReleaseId(CONTAINER_ID, releaseId101)); + + userTaskDefinitions = processClient.getUserTaskDefinitions(CONTAINER_ID, PROCESS_ID_USERTASK); + assertEquals(2, userTaskDefinitions.getItems().size()); + + firstTaskDefinition = userTaskDefinitions.getItems().get(0); + assertEquals("Updated first task", firstTaskDefinition.getName()); + assertFalse("Task shouldn't be skippable.", firstTaskDefinition.isSkippable()); + } + + @Test + public void testUpdateContainerWithActiveProcessInstance() throws Exception { + Long processInstanceId = processClient.startProcess(CONTAINER_ID, PROCESS_ID_USERTASK); + + try { + ServiceResponse updateReleaseId = client.updateReleaseId(CONTAINER_ID, releaseId101); + KieServerAssert.assertSuccess(updateReleaseId); + + // TODO how it should behave in this case? Throwing error or keeping old container and returning failure? + assertEquals(ServiceResponse.ResponseType.FAILURE, updateReleaseId.getType()); + assertEquals("Cannot update container, active process instances found.", updateReleaseId.getMsg()); + } finally { + processClient.abortProcessInstance(CONTAINER_ID, processInstanceId); + } + } +}