From 7e40d0f99115a33a1d8c00a4dcaa03580069af7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mari=C3=A1n=20Macik?= Date: Mon, 3 Oct 2022 17:46:47 +0200 Subject: [PATCH] BAQE-2458 - Remove deprecated jBPM and KIE Server benchmarks modules --- .../jbpm-performance-tests/.gitignore | 24 - .../jbpm-performance-tests/README.md | 48 - .../jbpm-performance-tests/pom.xml | 298 ---- jbpm-benchmarks/jbpm-performance-tests/run.sh | 137 -- .../META-INF/persistence.xml | 78 -- .../filtered-resources/datasource.properties | 20 - .../bpms/examples/mortgage/Applicant.java | 80 -- .../bpms/examples/mortgage/Application.java | 134 -- .../bpms/examples/mortgage/Appraisal.java | 67 - .../bpms/examples/mortgage/Property.java | 54 - .../examples/mortgage/ValidationError.java | 35 - .../jbpm/GeneratingUserGroupCallback.java | 67 - .../test/performance/jbpm/JBPMController.java | 555 -------- .../test/performance/jbpm/JBPMTestConfig.java | 83 -- .../jbpm/constant/GroupStorage.java | 17 - .../jbpm/constant/ProcessStorage.java | 28 - .../jbpm/constant/RuleStorage.java | 17 - .../jbpm/constant/UserStorage.java | 17 - .../test/performance/jbpm/model/Response.java | 19 - .../test/performance/jbpm/model/UserFact.java | 38 - .../util/CloseSafeMemoryContextFactory.java | 48 - .../jbpm/wih/ManualTaskWorkItemHandler.java | 17 - .../performance/scenario/PrepareEngine.java | 32 - .../load/L1000HumanTasksComplete.java | 70 - .../load/L1000HumanTasksQueryPagination.java | 63 - .../scenario/load/L1000HumanTasksStart.java | 68 - .../scenario/load/L1000ProcessesSignal.java | 71 - .../scenario/load/LGroupHumanTaskProcess.java | 91 -- .../scenario/load/LHumanTaskProcess.java | 68 - .../load/LHumanTaskProcessWithListeners.java | 98 -- .../load/LIntermediateSignalProcess.java | 66 - .../load/LParallelGatewayProcess.java | 52 - .../load/LParallelGatewayTenTimesProcess.java | 52 - .../load/LParallelGatewayTwoTimesProcess.java | 54 - .../scenario/load/LRuleTaskProcess.java | 63 - .../scenario/load/LScriptTaskProcess.java | 52 - .../scenario/load/LStartEndProcess.java | 52 - .../scenario/soak/SHumanTaskProcess.java | 69 - .../scenario/soak/SMortgageProcess.java | 75 - .../soak/SParallelGatewayTenTimesProcess.java | 53 - .../ddl-scripts/perf-drop-tables.sql | 3 - .../src/main/resources/jndi.properties | 4 - .../src/main/resources/logback.xml | 61 - .../resources/processes/GroupHumanTask.bpmn2 | 77 -- .../resources/processes/GroupHumanTask.png | Bin 7689 -> 0 bytes .../main/resources/processes/HumanTask.bpmn2 | 65 - .../main/resources/processes/HumanTask.png | Bin 7158 -> 0 bytes .../processes/IntermediateSignal.bpmn2 | 58 - .../processes/IntermediateSignal.png | Bin 7562 -> 0 bytes .../processes/MortgageApplication.bpmn2 | 1212 ----------------- .../resources/processes/ParallelGateway.bpmn2 | 108 -- .../resources/processes/ParallelGateway.png | Bin 13016 -> 0 bytes .../processes/ParallelGatewayTenTimes.bpmn2 | 798 ----------- .../processes/ParallelGatewayTenTimes.png | Bin 40212 -> 0 bytes .../processes/ParallelGatewayTwoTimes.bpmn2 | 190 --- .../processes/ParallelGatewayTwoTimes.png | Bin 14748 -> 0 bytes .../main/resources/processes/RuleTask.bpmn2 | 130 -- .../src/main/resources/processes/RuleTask.png | Bin 6741 -> 0 bytes .../main/resources/processes/ScriptTask.bpmn2 | 50 - .../main/resources/processes/ScriptTask.png | Bin 8089 -> 0 bytes .../main/resources/processes/StartEnd.bpmn2 | 26 - .../src/main/resources/processes/StartEnd.png | Bin 4932 -> 0 bytes .../resources/rules/ValidationUserFact.drl | 12 - .../rules/mortgage/Jumbo Mortgage.rdrl | 13 - .../Low Down Payment based on Appraisal.rdrl | 19 - .../Low Down Payment before Appraisal.rdrl | 20 - .../rules/mortgage/Mortgage Calculation.drl | 200 --- .../rules/mortgage/Reset Validation.rdrl | 11 - .../Retract Facts After Calculation.drl | 41 - .../Retract Facts After Validation.drl | 41 - .../rules/mortgage/Validate Amortization.rdrl | 13 - .../rules/mortgage/Validate Down Payment.rdrl | 14 - .../rules/mortgage/Validate Income.rdrl | 13 - .../mortgage/Validate Property Price.rdrl | 13 - .../rules/mortgage/Validate SSN.rdrl | 13 - .../src/main/resources/usergroups.properties | 5 - .../src/main/resources/userinfo.properties | 1 - .../application-roles.properties | 25 - .../application-users.properties | 27 - .../kieserver-performance-tests/.gitignore | 24 - .../kieserver-performance-tests/README.md | 53 - .../kieserver-performance-tests/pom.xml | 282 ---- .../kieserver-performance-tests/run.sh | 159 --- .../test/performance/jbpm/model/Response.java | 19 - .../test/performance/jbpm/model/UserFact.java | 38 - .../kieserver/KieServerClient.java | 101 -- .../kieserver/KieServerTestConfig.java | 129 -- .../kieserver/constant/ProcessStorage.java | 19 - .../kieserver/constant/UserStorage.java | 23 - .../load/LServerGroupHumanTaskProcess.java | 93 -- .../load/LServerHumanTaskProcess.java | 91 -- ...LServerParallelGatewayTwoTimesProcess.java | 50 - .../scenario/load/LServerRuleTaskProcess.java | 56 - .../load/LServerStartEndNoCheckProcess.java | 35 - .../scenario/load/LServerStartEndProcess.java | 50 - .../taskassigning/TaskAssigning.java | 140 -- .../taskassigning/TaskStatisticsUtil.java | 66 - .../batch/TaskAssigningBatch.java | 131 -- .../batch/TaskAssigningBatch_300.java | 30 - .../batch/TaskAssigningBatch_3000.java | 30 - .../updates/TaskAssigningUpdates.java | 223 --- .../updates/TaskAssigningUpdates_1800.java | 30 - .../updates/TaskAssigningUpdates_3600.java | 30 - .../application-roles.properties | 25 - .../application-users.properties | 27 - .../ddl-scripts/perf-drop-tables.sql | 3 - .../src/main/resources/logback.xml | 75 - .../taskassigning/TaskStatisticsUtilTest.java | 103 -- jbpm-benchmarks/pom.xml | 2 - 109 files changed, 8430 deletions(-) delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/.gitignore delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/README.md delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/pom.xml delete mode 100755 jbpm-benchmarks/jbpm-performance-tests/run.sh delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/filtered-resources/META-INF/persistence.xml delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/filtered-resources/datasource.properties delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/Applicant.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/Application.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/Appraisal.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/Property.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/ValidationError.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/GeneratingUserGroupCallback.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/JBPMController.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/JBPMTestConfig.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/constant/GroupStorage.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/constant/ProcessStorage.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/constant/RuleStorage.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/constant/UserStorage.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/model/Response.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/model/UserFact.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/util/CloseSafeMemoryContextFactory.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/wih/ManualTaskWorkItemHandler.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/PrepareEngine.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/L1000HumanTasksComplete.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/L1000HumanTasksQueryPagination.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/L1000HumanTasksStart.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/L1000ProcessesSignal.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LGroupHumanTaskProcess.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LHumanTaskProcess.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LHumanTaskProcessWithListeners.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LIntermediateSignalProcess.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LParallelGatewayProcess.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LParallelGatewayTenTimesProcess.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LParallelGatewayTwoTimesProcess.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LRuleTaskProcess.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LScriptTaskProcess.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LStartEndProcess.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/soak/SHumanTaskProcess.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/soak/SMortgageProcess.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/soak/SParallelGatewayTenTimesProcess.java delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/ddl-scripts/perf-drop-tables.sql delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/jndi.properties delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/logback.xml delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/GroupHumanTask.bpmn2 delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/GroupHumanTask.png delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/HumanTask.bpmn2 delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/HumanTask.png delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/IntermediateSignal.bpmn2 delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/IntermediateSignal.png delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/MortgageApplication.bpmn2 delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGateway.bpmn2 delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGateway.png delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGatewayTenTimes.bpmn2 delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGatewayTenTimes.png delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGatewayTwoTimes.bpmn2 delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGatewayTwoTimes.png delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/RuleTask.bpmn2 delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/RuleTask.png delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ScriptTask.bpmn2 delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ScriptTask.png delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/StartEnd.bpmn2 delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/StartEnd.png delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/ValidationUserFact.drl delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Jumbo Mortgage.rdrl delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Low Down Payment based on Appraisal.rdrl delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Low Down Payment before Appraisal.rdrl delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Mortgage Calculation.drl delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Reset Validation.rdrl delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Retract Facts After Calculation.drl delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Retract Facts After Validation.drl delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate Amortization.rdrl delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate Down Payment.rdrl delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate Income.rdrl delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate Property Price.rdrl delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate SSN.rdrl delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/usergroups.properties delete mode 100644 jbpm-benchmarks/jbpm-performance-tests/src/main/resources/userinfo.properties delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/${env.JBOSS_HOME}/standalone/configuration/application-roles.properties delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/${env.JBOSS_HOME}/standalone/configuration/application-users.properties delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/.gitignore delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/README.md delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/pom.xml delete mode 100755 jbpm-benchmarks/kieserver-performance-tests/run.sh delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/model/Response.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/model/UserFact.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/kieserver/KieServerClient.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/kieserver/KieServerTestConfig.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/kieserver/constant/ProcessStorage.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/kieserver/constant/UserStorage.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerGroupHumanTaskProcess.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerHumanTaskProcess.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerParallelGatewayTwoTimesProcess.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerRuleTaskProcess.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerStartEndNoCheckProcess.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerStartEndProcess.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/TaskAssigning.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/TaskStatisticsUtil.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/batch/TaskAssigningBatch.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/batch/TaskAssigningBatch_300.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/batch/TaskAssigningBatch_3000.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/updates/TaskAssigningUpdates.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/updates/TaskAssigningUpdates_1800.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/updates/TaskAssigningUpdates_3600.java delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/resources-eap-6/configuration/application-roles.properties delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/resources-eap-6/configuration/application-users.properties delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/resources/ddl-scripts/perf-drop-tables.sql delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/main/resources/logback.xml delete mode 100644 jbpm-benchmarks/kieserver-performance-tests/src/test/java/org/jbpm/test/performance/taskassigning/TaskStatisticsUtilTest.java diff --git a/jbpm-benchmarks/jbpm-performance-tests/.gitignore b/jbpm-benchmarks/jbpm-performance-tests/.gitignore deleted file mode 100644 index f85165a..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -/target -/local -/bin - -*.class - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.jar -*.war -*.ear - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* - -# Eclipse, Netbeans and IntelliJ files -/.* -!.gitignore -/nbproject -/*.ipr -/*.iws -/*.iml \ No newline at end of file diff --git a/jbpm-benchmarks/jbpm-performance-tests/README.md b/jbpm-benchmarks/jbpm-performance-tests/README.md deleted file mode 100644 index 78c4731..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# JBPM Engine Performance Tests - -This module uses kie-performance-kit as a basis for the jbpm engine scenarios kept in org.jbpm.test.performance.scenario. - -The tests should be executed via `run.sh` bash script since this script is by default used for running selected test suite when no scenario is selected. - -1. Setup KIE-Performance-Kit and JBPM engine in `pom.xml` -2. [optional] Setup JVM in `pom.xml` by adding arguments into *exec-maven-plugin* -3. Execute `run.sh` or manually *mvn clean install exec:exec -Dscenario=[scenario]* - -## KIE-Performance-Kit Setup - -All configuration goes into `pom.xml` - -* Select suite and scenario - * Available suites = `LoadSuite, ConcurrentLoadSuite` - * To run the whole suite, comment scenario property to be null and make sure that `startScriptLocation` is set correctly. - * Be aware that `ConcurrentLoadSuite` requires warm up when it is run with more than 1 thread and Runtime Manager Strategy set to PerProcessInstance or PerRequest -* Select run type of the test suite - * Available run types - `Duration, Iteration` - * If Duration run type is chose, every scenario will run given given time according to time set into `duration` property (measured in seconds). - * If Iteration run type is chose, every scenario will run given number of iterations according to number set into `iterations` property. -* Turn ON/OFF warm up before scenario - * To enable warm up, set true to `warmUp` property. - * Every scenario will run X times according to `warmUpCount` property -* Running scenarios concurrently in threads - * When ConcurrentLoadSuite is used we are able to set number threads in which the test suites should run. - * The total number of tests = `threads` * iterations -* Reporting - * Types of reporters = Console, CSVSingle, CSV - * `Console` - * `CSV` - reports periodiacally after X seconds into CSV files for every metrics - * `CSVSingle` - reports scenario CSV files containing the metrics results - * `PerfRepo` - creates test definitions and test executions, reports results to remote PerfRepo (requires JDK 1.8, see https://github.com/PerfRepo/PerfRepo) -* Additional metrics - * `MemoryUsage` - HEAP and pools usage (Eden, Old Gen, etc.) - * `ThreadStates` - number of threads and their states (waited, runnable, new, blocked, etc.), deadlocks, ... - * `FileDescriptors` - number of opened descriptors, percentage of usage - * `CPUUsage` - histogram of cpu usage of the process/scenario (count, min, max, mean, median, ...) useful only when scenario iterations/duration takes longer than 300ms - * Set any of the metrics above as a list into *measure* property - -## JBPM Engine KIE-Performance-Kit Setup - -* Runtime Manager Strategy = Singleton, PerProcessInstance, PerRequest -* Persistence = true/false -* JBPM Locking = optimistic/pessimistic -* Human Task Eager = true/false - diff --git a/jbpm-benchmarks/jbpm-performance-tests/pom.xml b/jbpm-benchmarks/jbpm-performance-tests/pom.xml deleted file mode 100644 index 154876e..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/pom.xml +++ /dev/null @@ -1,298 +0,0 @@ - - 4.0.0 - - - org.jbpm - jbpm-benchmarks - 7.74.0-SNAPSHOT - - - org.jbpm - jbpm-performance-tests - - jBPM Performance Tests - - - ${version.org.kie} - 3.1.0 - - - - BPM Suite - LoadSuite - - ./run.sh - - - Iteration - 300 - 1 - 30 - - false - 1 - 30 - true - - - 4 - - - - Console - 5 - reportData - - - localhost - - - - - - MemoryUsage,FileDescriptors,ThreadStates,CPUUsage - - - - - PerProcessInstance - true - 2 - - - optimistic - - - true - - - 16 - - - - - - org.kie - kie-performance-kit - ${kit.version} - - - io.dropwizard.metrics - metrics-core - ${metrics.version} - - - io.dropwizard.metrics - metrics-jvm - ${metrics.version} - - - - - - - org.kie - kie-api - - - org.kie - kie-internal - - - org.kie - kie-performance-kit - - - org.hibernate.javax.persistence - hibernate-jpa-2.1-api - - - - - io.dropwizard.metrics - metrics-core - - - io.dropwizard.metrics - metrics-jvm - - - org.jbpm - jbpm-persistence-jpa - - - org.jbpm - jbpm-human-task-core - - - org.jbpm - jbpm-human-task-audit - - - org.jbpm - jbpm-runtime-manager - - - org.jbpm - jbpm-kie-services - - - org.jbpm - jbpm-executor - - - org.jbpm - jbpm-flow - - - org.drools - drools-workbench-models-guided-dtable - - - com.h2database - h2 - - - org.hibernate - hibernate-entitymanager - - - org.hibernate - hibernate-core - - - jakarta.persistence - jakarta.persistence-api - - - org.jboss.narayana.jta - narayana-jta - - - org.apache.tomcat - tomcat-dbcp - - - simple-jndi - simple-jndi - compile - - - org.kie - kie-test-util - - - jakarta.transaction - jakarta.transaction-api - - - org.slf4j - slf4j-api - - - - - - - src/main/resources - false - - - src/main/filtered-resources - true - - - - - org.apache.maven.plugins - maven-compiler-plugin - - 1.8 - 1.8 - - - - org.codehaus.mojo - exec-maven-plugin - - java - - -DprojectName=${projectName} - -Dsuite=${suite} - -Dscenario=${scenario} - -DstartScriptLocation=${startScriptLocation} - -DrunType=${runType} - -Dduration=${duration} - -Diterations=${iterations} - -DexpectedRate=${expectedRate} - -DwarmUp=${warmUp} - -DwarmUpCount=${warmUpCount} - -DwarmUpTime=${warmUpTime} - -DauditLogging=${auditLogging} - -Dthreads=${threads} - -DreporterType=${reporterType} - -Dperiodicity=${periodicity} - -DreportDataLocation=${reportDataLocation} - -Dmeasure=${measure} - - -DperfRepo.host=${perfRepo.host} - -DperfRepo.urlPath=${perfRepo.urlPath} - -DperfRepo.username=${perfRepo.username} - -DperfRepo.password=${perfRepo.password} - - -DdatabaseName=${maven.jdbc.db.name} - - -Djbpm.runtimeManagerStrategy=${jbpm.runtimeManagerStrategy} - -Djbpm.persistence=${jbpm.persistence} - -Djbpm.concurrentUsersCount=${jbpm.concurrentUsersCount} - -Djbpm.locking=${jbpm.locking} - -Djbpm.ht.eager=${jbpm.ht.eager} - - -classpath - - org.kie.perf.Executor - - - - - - - - - h2 - - - !perfdb - - - - - H2 - create-drop - org.hibernate.dialect.H2Dialect - org.h2.jdbcx.JdbcDataSource - org.h2.Driver - - sa - - - jdbc:h2:mem:test;MVCC=true - - - - - - - Ivo Bek - bekivo@gmail.com - - - Marián Macik - mmacik@redhat.com - - - - diff --git a/jbpm-benchmarks/jbpm-performance-tests/run.sh b/jbpm-benchmarks/jbpm-performance-tests/run.sh deleted file mode 100755 index f5bb926..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/run.sh +++ /dev/null @@ -1,137 +0,0 @@ -#!/bin/sh -x - -PARAMS="" - -if [ -n "$suite" ] -then - PARAMS="$PARAMS -Dsuite=$suite" -fi - -if [ -n "$scenario" ] -then - PARAMS="$PARAMS -Dscenario=$scenario" -elif [ -n "$1" ] -then - PARAMS="$PARAMS -Dscenario=$1" -fi - -if [ -n "$startScriptLocation" ] -then - PARAMS="$PARAMS -DstartScriptLocation=$startScriptLocation" -fi - -if [ -n "$runType" ] -then - PARAMS="$PARAMS -DrunType=$runType" -fi - -if [ -n "$duration" ] -then - PARAMS="$PARAMS -Dduration=$duration" -fi - -if [ -n "$iterations" ] -then - PARAMS="$PARAMS -Diterations=$iterations" -fi - -if [ -n "$expectedRate" ] -then - PARAMS="$PARAMS -DexpectedRate=$expectedRate" -fi - -if [ -n "$warmUp" ] -then - PARAMS="$PARAMS -DwarmUp=$warmUp" -fi - -if [ -n "$warmUpCount" ] -then - PARAMS="$PARAMS -DwarmUpCount=$warmUpCount" -fi - -if [ -n "$warmUpTime" ] -then - PARAMS="$PARAMS -DwarmUpTime=$warmUpTime" -fi - -if [ -n "$auditLogging" ] -then - PARAMS="$PARAMS -DauditLogging=$auditLogging" -fi - -if [ -n "$threads" ] -then - PARAMS="$PARAMS -Dthreads=$threads" -fi - -if [ -n "$reporterType" ] -then - PARAMS="$PARAMS -DreporterType=$reporterType" -fi - -if [ -n "$periodicity" ] -then - PARAMS="$PARAMS -Dperiodicity=$periodicity" -fi - -if [ -n "$reportDataLocation" ] -then - PARAMS="$PARAMS -DreportDataLocation=$reportDataLocation" -fi - -if [ -n "$perfRepo_host" ] -then - PARAMS="$PARAMS -DperfRepo.host=$perfRepo_host" -fi - -if [ -n "$perfRepo_urlPath" ] -then - PARAMS="$PARAMS -DperfRepo.urlPath=$perfRepo_urlPath" -fi - -if [ -n "$perfRepo_username" ] -then - PARAMS="$PARAMS -DperfRepo.username=$perfRepo_username" -fi - -if [ -n "$perfRepo_password" ] -then - PARAMS="$PARAMS -DperfRepo.password=$perfRepo_password" -fi - -if [ -n "$jbpm_runtimeManagerStrategy" ] -then - PARAMS="$PARAMS -Djbpm.runtimeManagerStrategy=$jbpm_runtimeManagerStrategy" -fi - -if [ -n "$jbpm_persistence" ] -then - PARAMS="$PARAMS -Djbpm.persistence=$jbpm_persistence" -fi - -if [ -n "$jbpm_concurrentUsersCount" ] -then - PARAMS="$PARAMS -Djbpm.concurrentUsersCount=$jbpm_concurrentUsersCount" -fi - -if [ -n "$jbpm_locking" ] -then - PARAMS="$PARAMS -Djbpm.locking=$jbpm_locking" -fi - -if [ -n "$jbpm_ht_eager" ] -then - PARAMS="$PARAMS -Djbpm.ht.eager=$jbpm_ht_eager" -fi - -# If we are running only one scenario (so we won't fork run for each scenario as we do when nothing is specified), we want to run also DB cleaning -if [ -n "$scenario" ] || [ -n "$1" ] -then - ACTIVATE_DB_PROFILE="-Dperfdb" -fi - -# Provide Nexus location, group and Maven local repository directory to settings.xml -PARAMS="$PARAMS -Dnexus.host=$LOCAL_NEXUS_IP -Dnexus.group=$NEXUS_GROUP -Dlocal.repo.dir=$WORKSPACE/maven-repo" - -mvn clean install -s settings.xml $ACTIVATE_DB_PROFILE exec:exec $PARAMS diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/filtered-resources/META-INF/persistence.xml b/jbpm-benchmarks/jbpm-performance-tests/src/main/filtered-resources/META-INF/persistence.xml deleted file mode 100644 index c55d1e0..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/filtered-resources/META-INF/persistence.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - org.hibernate.jpa.HibernatePersistenceProvider - jdbc/jbpm-ds - - META-INF/Executor-orm.xml - META-INF/JBPMorm.xml - META-INF/Taskorm.xml - META-INF/TaskAuditorm.xml - - org.jbpm.executor.entities.ErrorInfo - org.jbpm.executor.entities.RequestInfo - - org.drools.persistence.info.SessionInfo - org.jbpm.persistence.processinstance.ProcessInstanceInfo - org.drools.persistence.info.WorkItemInfo - org.jbpm.persistence.correlation.CorrelationKeyInfo - org.jbpm.persistence.correlation.CorrelationPropertyInfo - - org.jbpm.process.audit.ProcessInstanceLog - org.jbpm.process.audit.NodeInstanceLog - org.jbpm.process.audit.VariableInstanceLog - - - org.jbpm.runtime.manager.impl.jpa.ContextMappingInfo - - org.jbpm.services.task.impl.model.AttachmentImpl - org.jbpm.services.task.impl.model.ContentImpl - org.jbpm.services.task.impl.model.BooleanExpressionImpl - org.jbpm.services.task.impl.model.CommentImpl - org.jbpm.services.task.impl.model.DeadlineImpl - org.jbpm.services.task.impl.model.DelegationImpl - org.jbpm.services.task.impl.model.EscalationImpl - org.jbpm.services.task.impl.model.GroupImpl - org.jbpm.services.task.impl.model.I18NTextImpl - org.jbpm.services.task.impl.model.NotificationImpl - org.jbpm.services.task.impl.model.EmailNotificationImpl - org.jbpm.services.task.impl.model.EmailNotificationHeaderImpl - org.jbpm.services.task.impl.model.PeopleAssignmentsImpl - org.jbpm.services.task.impl.model.ReassignmentImpl - - org.jbpm.services.task.impl.model.TaskImpl - org.jbpm.services.task.impl.model.TaskDataImpl - org.jbpm.services.task.impl.model.UserImpl - - - org.jbpm.services.task.audit.impl.model.BAMTaskSummaryImpl - - - org.jbpm.services.task.audit.impl.model.TaskEventImpl - - - org.jbpm.services.task.audit.impl.model.AuditTaskImpl - org.jbpm.services.task.audit.impl.model.TaskVariableImpl - - true - - - - - - - - - - - - - - - - diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/filtered-resources/datasource.properties b/jbpm-benchmarks/jbpm-performance-tests/src/main/filtered-resources/datasource.properties deleted file mode 100644 index 6629f0c..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/filtered-resources/datasource.properties +++ /dev/null @@ -1,20 +0,0 @@ -# JDBC/Database properties that are set in the maven pom -# -# the below variable names (i.e. "${maven.datasource.classname}) are -# automatically replaced with their values (defined in the pom.xml) -# because of the fact that is set to true in for the -# src/main/resources directory in the pom. -# -className=${maven.datasource.classname} -driverClassName=${maven.jdbc.driver.class} -user=${maven.jdbc.username} -password=${maven.jdbc.password} -connectionUrl=${maven.jdbc.url} -serverName=${maven.jdbc.db.server} -portNumber=${maven.jdbc.db.port} -databaseName=${maven.jdbc.db.name} - -# Tomcat DBCP 2 pooling properties -initialSize=${maven.dbcp2.poolSize} -minIdle=${maven.dbcp2.poolSize} -maxTotal=${maven.dbcp2.poolSize} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/Applicant.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/Applicant.java deleted file mode 100644 index 149daea..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/Applicant.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.redhat.bpms.examples.mortgage; - -/** - * This class was automatically generated by the data modeler tool. - */ -@org.kie.api.definition.type.Label(value = "Mortgage Applicant") -public class Applicant implements java.io.Serializable { - -static final long serialVersionUID = 1L; - - @org.kie.api.definition.type.Label(value = "Credit Score") - @org.kie.api.definition.type.Position(value = 3) - private java.lang.Integer creditScore; - - @org.kie.api.definition.type.Label(value = "Annual Income") - @org.kie.api.definition.type.Position(value = 2) - private java.lang.Integer income; - - @org.kie.api.definition.type.Label(value = "Applicant Name") - @org.kie.api.definition.type.Position(value = 0) - private java.lang.String name; - - @org.kie.api.definition.type.Label(value = "Social Security Number") - @org.kie.api.definition.type.Position(value = 1) - private java.lang.Integer ssn; - - public Applicant() { - } - - public Applicant(java.lang.String name, java.lang.Integer ssn, java.lang.Integer income, java.lang.Integer creditScore) { - this.name = name; - this.ssn = ssn; - this.income = income; - this.creditScore = creditScore; - } - - - - public java.lang.Integer getCreditScore() { - return this.creditScore; - } - - public void setCreditScore( java.lang.Integer creditScore ) { - this.creditScore = creditScore; - } - - public java.lang.Integer getIncome() { - return this.income; - } - - public void setIncome( java.lang.Integer income ) { - this.income = income; - } - - public java.lang.String getName() { - return this.name; - } - - public void setName( java.lang.String name ) { - this.name = name; - } - - public java.lang.Integer getSsn() { - return this.ssn; - } - - public void setSsn( java.lang.Integer ssn ) { - this.ssn = ssn; - } - - @Override - public String toString() - { - return "Applicant [creditScore=" + creditScore + ", income=" + income + ", name=" + name + ", ssn=" + ssn + "]"; - } - - - - -} \ No newline at end of file diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/Application.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/Application.java deleted file mode 100644 index f2eb21f..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/Application.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.redhat.bpms.examples.mortgage; - -/** - * This class was automatically generated by the data modeler tool. - */ -@org.kie.api.definition.type.Label(value = "Mortgage Application") -public class Application implements java.io.Serializable { - -static final long serialVersionUID = 1L; - - @org.kie.api.definition.type.Label(value = "Validation Errors") - @org.kie.api.definition.type.Position(value = 7) - private java.util.List validationErrors; - - @org.kie.api.definition.type.Label(value = "Mortgage Interest APR") - @org.kie.api.definition.type.Position(value = 6) - private java.lang.Double apr; - - @org.kie.api.definition.type.Label(value = "Mortgage Amount") - @org.kie.api.definition.type.Position(value = 5) - private java.lang.Integer mortgageAmount; - - @org.kie.api.definition.type.Label(value = "Applicant") - @org.kie.api.definition.type.Position(value = 0) - private com.redhat.bpms.examples.mortgage.Applicant applicant; - - @org.kie.api.definition.type.Label(value = "Mortgage Amortization") - @org.kie.api.definition.type.Position(value = 4) - private java.lang.Integer amortization; - - @org.kie.api.definition.type.Label(value = "Down Payment") - @org.kie.api.definition.type.Position(value = 3) - private java.lang.Integer downPayment; - - @org.kie.api.definition.type.Label(value = "Property") - @org.kie.api.definition.type.Position(value = 1) - private com.redhat.bpms.examples.mortgage.Property property; - - @org.kie.api.definition.type.Label(value = "Appraisal") - @org.kie.api.definition.type.Position(value = 2) - private com.redhat.bpms.examples.mortgage.Appraisal appraisal; - - public Application() { - } - - public Application(com.redhat.bpms.examples.mortgage.Applicant applicant, com.redhat.bpms.examples.mortgage.Property property, com.redhat.bpms.examples.mortgage.Appraisal appraisal, java.lang.Integer downPayment, java.lang.Integer amortization, java.lang.Integer mortgageAmount, java.lang.Double apr, java.util.List validationErrors) { - this.applicant = applicant; - this.property = property; - this.appraisal = appraisal; - this.downPayment = downPayment; - this.amortization = amortization; - this.mortgageAmount = mortgageAmount; - this.apr = apr; - this.validationErrors = validationErrors; - } - - - - public java.util.List getValidationErrors() { - return this.validationErrors; - } - - public void setValidationErrors( java.util.List validationErrors ) { - this.validationErrors = validationErrors; - } - - public java.lang.Double getApr() { - return this.apr; - } - - public void setApr( java.lang.Double apr ) { - this.apr = apr; - } - - public java.lang.Integer getMortgageAmount() { - return this.mortgageAmount; - } - - public void setMortgageAmount( java.lang.Integer mortgageAmount ) { - this.mortgageAmount = mortgageAmount; - } - - public com.redhat.bpms.examples.mortgage.Applicant getApplicant() { - return this.applicant; - } - - public void setApplicant( com.redhat.bpms.examples.mortgage.Applicant applicant ) { - this.applicant = applicant; - } - - public java.lang.Integer getAmortization() { - return this.amortization; - } - - public void setAmortization( java.lang.Integer amortization ) { - this.amortization = amortization; - } - - public java.lang.Integer getDownPayment() { - return this.downPayment; - } - - public void setDownPayment( java.lang.Integer downPayment ) { - this.downPayment = downPayment; - } - - public com.redhat.bpms.examples.mortgage.Property getProperty() { - return this.property; - } - - public void setProperty( com.redhat.bpms.examples.mortgage.Property property ) { - this.property = property; - } - - public com.redhat.bpms.examples.mortgage.Appraisal getAppraisal() { - return this.appraisal; - } - - public void setAppraisal( com.redhat.bpms.examples.mortgage.Appraisal appraisal ) { - this.appraisal = appraisal; - } - - @Override - public String toString() - { - return "Application [validationErrors=" + validationErrors + ", apr=" + apr + ", mortgageAmount=" + mortgageAmount + ", applicant=" - + applicant + ", amortization=" + amortization + ", downPayment=" + downPayment + ", property=" + property + ", appraisal=" - + appraisal + "]"; - } - - - - -} \ No newline at end of file diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/Appraisal.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/Appraisal.java deleted file mode 100644 index 1ab3e41..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/Appraisal.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.redhat.bpms.examples.mortgage; - -/** - * This class was automatically generated by the data modeler tool. - */ -@org.kie.api.definition.type.Label(value = "Appraisal") -public class Appraisal implements java.io.Serializable { - -static final long serialVersionUID = 1L; - - @org.kie.api.definition.type.Label(value = "Appraised Value") - @org.kie.api.definition.type.Position(value = 2) - private java.lang.Integer value; - - @org.kie.api.definition.type.Label(value = "Appraised Property") - @org.kie.api.definition.type.Position(value = 0) - private com.redhat.bpms.examples.mortgage.Property property; - - @org.kie.api.definition.type.Label(value = "Appraisal Date") - @org.kie.api.definition.type.Position(value = 1) - private java.util.Date date; - - public Appraisal() { - } - - public Appraisal(com.redhat.bpms.examples.mortgage.Property property, java.util.Date date, java.lang.Integer value) { - this.property = property; - this.date = date; - this.value = value; - } - - - - public java.lang.Integer getValue() { - return this.value; - } - - public void setValue( java.lang.Integer value ) { - this.value = value; - } - - public com.redhat.bpms.examples.mortgage.Property getProperty() { - return this.property; - } - - public void setProperty( com.redhat.bpms.examples.mortgage.Property property ) { - this.property = property; - } - - public java.util.Date getDate() { - return this.date; - } - - public void setDate( java.util.Date date ) { - this.date = date; - } - - @Override - public String toString() - { - return "Appraisal [value=" + value + ", property=" + property + ", date=" + date + "]"; - } - - - - -} \ No newline at end of file diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/Property.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/Property.java deleted file mode 100644 index 9175974..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/Property.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.redhat.bpms.examples.mortgage; - -/** - * This class was automatically generated by the data modeler tool. - */ -@org.kie.api.definition.type.Label(value = "Property") -public class Property implements java.io.Serializable { - -static final long serialVersionUID = 1L; - - @org.kie.api.definition.type.Label(value = "Sale Price") - @org.kie.api.definition.type.Position(value = 1) - private java.lang.Integer price; - - @org.kie.api.definition.type.Label(value = "Property Address") - @org.kie.api.definition.type.Position(value = 0) - private java.lang.String address; - - public Property() { - } - - public Property(java.lang.String address, java.lang.Integer price) { - this.address = address; - this.price = price; - } - - - - public java.lang.Integer getPrice() { - return this.price; - } - - public void setPrice( java.lang.Integer price ) { - this.price = price; - } - - public java.lang.String getAddress() { - return this.address; - } - - public void setAddress( java.lang.String address ) { - this.address = address; - } - - @Override - public String toString() - { - return "Property [price=" + price + ", address=" + address + "]"; - } - - - - -} \ No newline at end of file diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/ValidationError.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/ValidationError.java deleted file mode 100644 index 8942dc9..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/com/redhat/bpms/examples/mortgage/ValidationError.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.redhat.bpms.examples.mortgage; - -/** - * This class was automatically generated by the data modeler tool. - */ -@org.kie.api.definition.type.Label(value = "Validation Error") -public class ValidationError implements java.io.Serializable { - -static final long serialVersionUID = 1L; - - @org.kie.api.definition.type.Label(value = "Cause of Error") - @org.kie.api.definition.type.Position(value = 0) - private java.lang.String cause; - - public ValidationError() { - } - - public ValidationError(java.lang.String cause) { - this.cause = cause; - } - - - - public java.lang.String getCause() { - return this.cause; - } - - public void setCause( java.lang.String cause ) { - this.cause = cause; - } - - - - -} \ No newline at end of file diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/GeneratingUserGroupCallback.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/GeneratingUserGroupCallback.java deleted file mode 100644 index 91ce655..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/GeneratingUserGroupCallback.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.jbpm.test.performance.jbpm; - -import java.util.Collections; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; - -import org.kie.api.task.UserGroupCallback; - -public class GeneratingUserGroupCallback implements UserGroupCallback { - - private final Set users; - private final Set groups; - private final String originalGroup; - - public GeneratingUserGroupCallback(final String baseName, final String group, final int count) { - if (count <= 0) { - throw new IllegalArgumentException("count must be positive integer"); - } - - if (isEmptyStr(group)) { - throw new IllegalArgumentException("group must be non-empty string"); - } - - if (isEmptyStr(baseName)) { - throw new IllegalArgumentException("baseName must be non-empty string"); - } - - originalGroup = group; - groups = new HashSet(2); - groups.add(group); - groups.add("Administrators"); - - users = new HashSet(count + 1); - for (int i = 0; i < count; i++) { - users.add(String.format("%s_%d", baseName, i)); - } - } - - public Set getUsers() { - return Collections.unmodifiableSet(users); - } - - private boolean isEmptyStr(final String str) { - return str == null || "".equals(str.trim()); - } - - @Override - public boolean existsUser(String user) { - return users.contains(user); - } - - @Override - public boolean existsGroup(String group) { - return this.groups.contains(group); - } - - @Override - public List getGroupsForUser(String user) { - List groupsForUser = new LinkedList(); - if (users.contains(user)) { - groupsForUser.add(originalGroup); - } - return groupsForUser; - } -} \ No newline at end of file diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/JBPMController.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/JBPMController.java deleted file mode 100644 index 65deaac..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/JBPMController.java +++ /dev/null @@ -1,555 +0,0 @@ -package org.jbpm.test.performance.jbpm; - -import java.io.File; -import java.io.FilenameFilter; -import java.io.IOException; -import java.io.InputStream; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Properties; - -import javax.naming.InitialContext; -import javax.persistence.EntityManagerFactory; -import javax.persistence.Persistence; -import javax.transaction.Status; -import javax.transaction.UserTransaction; - -import com.arjuna.ats.arjuna.recovery.RecoveryManager; -import org.drools.persistence.jta.JtaTransactionManager; -import org.jbpm.runtime.manager.impl.DefaultRegisterableItemsFactory; -import org.jbpm.runtime.manager.impl.jpa.EntityManagerFactoryManager; -import org.jbpm.services.task.identity.JBossUserGroupCallbackImpl; -import org.kie.api.event.process.ProcessEventListener; -import org.kie.api.event.rule.AgendaEventListener; -import org.kie.api.io.ResourceType; -import org.kie.api.runtime.EnvironmentName; -import org.kie.api.runtime.manager.RuntimeEngine; -import org.kie.api.runtime.manager.RuntimeEnvironment; -import org.kie.api.runtime.manager.RuntimeEnvironmentBuilder; -import org.kie.api.runtime.manager.RuntimeManager; -import org.kie.api.runtime.manager.RuntimeManagerFactory; -import org.kie.api.runtime.process.WorkItemHandler; -import org.kie.api.task.TaskLifeCycleEventListener; -import org.kie.api.task.UserGroupCallback; -import org.kie.internal.io.ResourceFactory; -import org.kie.internal.runtime.manager.context.EmptyContext; -import org.kie.internal.runtime.manager.context.ProcessInstanceIdContext; -import org.kie.test.util.db.DataSourceFactory; -import org.kie.test.util.db.PoolingDataSourceWrapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class JBPMController { - - public enum Strategy { - SINGLETON, PERREQUEST, PERPROCESSINSTANCE; - } - - protected static final Logger log = LoggerFactory.getLogger(JBPMController.class); - - protected static boolean persistence = false; - protected static final String DATASOURCE_PROPERTIES = "/datasource.properties"; - - private String persistenceUnitName = "org.jbpm.persistence.jpa"; - - private EntityManagerFactory emf; - private PoolingDataSourceWrapper ds; - - private RuntimeManagerFactory managerFactory = RuntimeManagerFactory.Factory.get(); - protected RuntimeManager manager; - protected Strategy strategy; - - protected UserGroupCallback userGroupCallback = new JBossUserGroupCallbackImpl("classpath:/usergroups.properties"); - - protected Map customHandlers = new HashMap(); - protected ProcessEventListener customProcessListener; - protected AgendaEventListener customAgendaListener; - protected TaskLifeCycleEventListener customTaskListener; - protected Map customEnvironmentEntries = new HashMap(); - - private static JBPMController instance; - - private JBPMController() { - persistence = JBPMTestConfig.getInstance().isPersistence(); - } - - public static JBPMController getInstance() { - if (instance == null) { - instance = new JBPMController(); - instance.setUp(); - } - return instance; - } - - public void setUp() { - if (persistence) { - ds = setupPoolingDataSource(); - emf = Persistence.createEntityManagerFactory(persistenceUnitName); - } - cleanupSingletonSessionId(); - } - - public void clear() { - clearCustomEntries(); - disposeRuntimeManager(); - } - - public void tearDown() { - clear(); - if (persistence) { - try { - if (emf != null) { - emf.close(); - emf = null; - EntityManagerFactoryManager.get().clear(); - } - if (ds != null) { - ds.close(); - ds = null; - } - - InitialContext context = new InitialContext(); - UserTransaction ut = (UserTransaction) context.lookup(JtaTransactionManager.DEFAULT_USER_TRANSACTION_NAME); - if (ut.getStatus() != Status.STATUS_NO_TRANSACTION) { - ut.setRollbackOnly(); - ut.rollback(); - } - } catch (Exception e) { - log.error("There has been an exception in the tearDown() method", e); - } finally { - // Terminate Narayana Recovery Manager - try { - RecoveryManager.manager().terminate(); - } catch (IllegalStateException e) { - log.info("RecoveryManager is already closed."); - log.debug("Exception thrown when terminating RecoveryManager", e); - } - } - } - } - - public void setProcessEventListener(ProcessEventListener listener) { - customProcessListener = listener; - } - - public void setAgendaEventListener(AgendaEventListener listener) { - customAgendaListener = listener; - } - - public void setTaskEventListener(TaskLifeCycleEventListener listener) { - customTaskListener = listener; - } - - public void addWorkItemHandler(String name, WorkItemHandler handler) { - customHandlers.put(name, handler); - } - - public void addEnvironmentEntry(String name, Object value) { - customEnvironmentEntries.put(name, value); - } - - public void setUserGroupCallback(UserGroupCallback userGroupCallback) { - this.userGroupCallback = userGroupCallback; - } - - public void clearCustomEntries() { - this.customAgendaListener = null; - this.customHandlers.clear(); - this.customProcessListener = null; - this.customTaskListener = null; - this.customEnvironmentEntries.clear(); - this.userGroupCallback = new JBossUserGroupCallbackImpl("classpath:/usergroups.properties"); - } - - /** - * This sets up a PoolingDataSourceWrapper of a Tomcat DBCP 2 BasicManagedDataSource with Narayana - * used as a transaction manager. - * - * @return PoolingDataSourceWrapper that represents the datasource - */ - protected PoolingDataSourceWrapper setupPoolingDataSource() { - Properties dsProps = getDatasourceProperties(); - // We cannot use url directly because of sql-maven-plugin, since url Maven property always contains project url - dsProps.put("url", dsProps.getProperty("connectionUrl")); - return DataSourceFactory.setupPoolingDataSource("jdbc/jbpm-ds", dsProps, dsProps); - } - - /** - * Return the default database/datasource properties - These properties use - * an in-memory H2 database - * - * @return Properties containing the default properties - */ - protected static Properties getDefaultProperties() { - Properties defaultProperties; - String[] keyArr = { "serverName", "portNumber", "databaseName", "connectionUrl", "user", "password", "driverClassName", - "className", "initialSize", "minIdle", "maxTotal" }; - String[] defaultPropArr = { "", "", "", "jdbc:h2:mem:test;MVCC=true", "sa", "", "org.h2.Driver", - "org.h2.jdbcx.JdbcDataSource", "16", "16", "16" }; - if (keyArr.length != defaultPropArr.length) { - throw new RuntimeException("Unequal number of keys for default properties"); - } - defaultProperties = new Properties(); - for (int i = 0; i < keyArr.length; ++i) { - defaultProperties.put(keyArr[i], defaultPropArr[i]); - } - - return defaultProperties; - } - - /** - * This reads in the (maven filtered) datasource properties from the - * resource directory. - * - * @return Properties containing the datasource properties. - */ - protected static Properties getDatasourceProperties() { - String propertiesNotFoundMessage = "Unable to load datasource properties [" + DATASOURCE_PROPERTIES + "]"; - boolean propertiesNotLoaded = false; - - // Central place to set additional H2 properties - System.setProperty("h2.lobInDatabase", "true"); - - InputStream propsInputStream = JBPMController.class.getResourceAsStream(DATASOURCE_PROPERTIES); - if (propsInputStream == null) { - throw new RuntimeException(propertiesNotFoundMessage); - } - Properties props = new Properties(); - try { - props.load(propsInputStream); - } catch (IOException ioe) { - propertiesNotLoaded = true; - log.warn("Unable to load properties, using default H2 properties: {}", ioe.getMessage()); - log.warn("Stacktrace:", ioe); - } - - String password = props.getProperty("password"); - if ("${maven.jdbc.password}".equals(password) || propertiesNotLoaded) { - props = getDefaultProperties(); - } - - return props; - } - - /** - * Creates default configuration of RuntimeManager with - * SINGLETON strategy and all processes being added to - * knowledge base.
- * There should be only one RuntimeManager created during - * single test. - * - * @param process - * - processes that shall be added to knowledge base - * @return new instance of RuntimeManager - */ - public RuntimeManager createRuntimeManager(String... process) { - return createRuntimeManager(Strategy.valueOf(JBPMTestConfig.getInstance().getRuntimeManagerStrategy() - .toUpperCase()), null, process); - } - - /** - * Creates default configuration of RuntimeManager with given - * strategy and all processes being added to - * knowledge base.
- * There should be only one RuntimeManager created during - * single test. - * - * @param strategy - * - selected strategy of those that are supported - * @param identifier - * - identifies the runtime manager - * @param process - * - processes that shall be added to knowledge base - * @return new instance of RuntimeManager - */ - public RuntimeManager createRuntimeManager(Strategy strategy, String identifier, String... process) { - Map resources = new HashMap(); - for (String p : process) { - resources.put(p, ResourceType.BPMN2); - } - return createRuntimeManager(strategy, resources, identifier); - } - - /** - * Creates default configuration of RuntimeManager with - * SINGLETON strategy and all resources being added to - * knowledge base.
- * There should be only one RuntimeManager created during - * single test. - * - * @param resources - * - resources (processes, rules, etc) that shall be added to - * knowledge base - * @return new instance of RuntimeManager - */ - public RuntimeManager createRuntimeManager(Map resources) { - return createRuntimeManager(Strategy.valueOf(JBPMTestConfig.getInstance().getRuntimeManagerStrategy() - .toUpperCase()), resources, null); - } - - /** - * Creates default configuration of RuntimeManager with - * SINGLETON strategy and all resources being added to - * knowledge base.
- * There should be only one RuntimeManager created during - * single test. - * - * @param resources - * - resources (processes, rules, etc) that shall be added to - * knowledge base - * @param identifier - * - identifies the runtime manager - * @return new instance of RuntimeManager - */ - protected RuntimeManager createRuntimeManager(Map resources, String identifier) { - return createRuntimeManager(Strategy.valueOf(JBPMTestConfig.getInstance().getRuntimeManagerStrategy() - .toUpperCase()), resources, identifier); - } - - /** - * Creates default configuration of RuntimeManager with given - * strategy and all resources being added to - * knowledge base.
- * There should be only one RuntimeManager created during - * single test. - * - * @param strategy - * - selected strategy of those that are supported - * @param resources - * - resources that shall be added to knowledge base - * @return new instance of RuntimeManager - */ - protected RuntimeManager createRuntimeManager(Strategy strategy, Map resources) { - return createRuntimeManager(strategy, resources, null); - } - - /** - * Creates default configuration of RuntimeManager with given - * strategy and all resources being added to - * knowledge base.
- * There should be only one RuntimeManager created during - * single test. - * - * @param strategy - * - selected strategy of those that are supported - * @param resources - * - resources that shall be added to knowledge base - * @param identifier - * - identifies the runtime manager - * @return new instance of RuntimeManager - */ - protected RuntimeManager createRuntimeManager(Strategy strategy, Map resources, - String identifier) { - if (manager != null) { - return manager; - } - - RuntimeEnvironmentBuilder builder = null; - if (persistence) { - builder = RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder().entityManagerFactory(emf) - .registerableItemsFactory(new DefaultRegisterableItemsFactory() { - - @Override - public Map getWorkItemHandlers(RuntimeEngine runtime) { - Map handlers = new HashMap(); - handlers.putAll(super.getWorkItemHandlers(runtime)); - handlers.putAll(customHandlers); - return handlers; - } - - @Override - public List getProcessEventListeners(RuntimeEngine runtime) { - List listeners = super.getProcessEventListeners(runtime); - if (customProcessListener != null) { - listeners.add(customProcessListener); - } - return listeners; - } - - @Override - public List getAgendaEventListeners(RuntimeEngine runtime) { - List listeners = super.getAgendaEventListeners(runtime); - if (customAgendaListener != null) { - listeners.add(customAgendaListener); - } - return listeners; - } - - @Override - public List getTaskListeners() { - List listeners = super.getTaskListeners(); - if (customTaskListener != null) { - listeners.add(customTaskListener); - } - return listeners; - } - - }); - } else { - builder = RuntimeEnvironmentBuilder.Factory.get().newDefaultInMemoryBuilder().registerableItemsFactory( - new DefaultRegisterableItemsFactory() { - - @Override - public Map getWorkItemHandlers(RuntimeEngine runtime) { - Map handlers = new HashMap(); - handlers.putAll(super.getWorkItemHandlers(runtime)); - handlers.putAll(customHandlers); - return handlers; - } - - @Override - public List getProcessEventListeners(RuntimeEngine runtime) { - List listeners = super.getProcessEventListeners(runtime); - if (customProcessListener != null) { - listeners.add(customProcessListener); - } - return listeners; - } - - @Override - public List getAgendaEventListeners(RuntimeEngine runtime) { - List listeners = super.getAgendaEventListeners(runtime); - if (customAgendaListener != null) { - listeners.add(customAgendaListener); - } - return listeners; - } - - @Override - public List getTaskListeners() { - List listeners = super.getTaskListeners(); - if (customTaskListener != null) { - listeners.add(customTaskListener); - } - return listeners; - } - - }); - } - - builder.addEnvironmentEntry(EnvironmentName.USE_PESSIMISTIC_LOCKING, JBPMTestConfig.getInstance() - .isPessimisticLocking()); - builder.userGroupCallback(userGroupCallback); - - for (Entry envEntry : customEnvironmentEntries.entrySet()) { - builder.addEnvironmentEntry(envEntry.getKey(), envEntry.getValue()); - } - - for (Map.Entry entry : resources.entrySet()) { - builder.addAsset(ResourceFactory.newClassPathResource(entry.getKey()), entry.getValue()); - } - - return createRuntimeManager(strategy, resources, builder.get(), identifier); - } - - /** - * The lowest level of creation of RuntimeManager that expects - * to get RuntimeEnvironment to be given as argument. It does - * not assume any particular configuration as it's considered manual - * creation that allows to configure every single piece of - * RuntimeManager.
- * Use this only when you know what you do! - * - * @param strategy - * - selected strategy of those that are supported - * @param resources - * - resources that shall be added to knowledge base - * @param environment - * - runtime environment used for RuntimeManager - * creation - * @param identifier - * - identifies the runtime manager - * @return new instance of RuntimeManager - */ - protected RuntimeManager createRuntimeManager(Strategy strategy, Map resources, - RuntimeEnvironment environment, String identifier) { - if (manager != null) { - return manager; - } - - this.strategy = strategy; - switch (strategy) { - case SINGLETON: - if (identifier == null) { - manager = managerFactory.newSingletonRuntimeManager(environment); - } else { - manager = managerFactory.newSingletonRuntimeManager(environment, identifier); - } - break; - case PERREQUEST: - if (identifier == null) { - manager = managerFactory.newPerRequestRuntimeManager(environment); - } else { - manager = managerFactory.newPerRequestRuntimeManager(environment, identifier); - } - break; - case PERPROCESSINSTANCE: - if (identifier == null) { - manager = managerFactory.newPerProcessInstanceRuntimeManager(environment); - } else { - manager = managerFactory.newPerProcessInstanceRuntimeManager(environment, identifier); - } - break; - default: - if (identifier == null) { - manager = managerFactory.newSingletonRuntimeManager(environment); - } else { - manager = managerFactory.newSingletonRuntimeManager(environment, identifier); - } - break; - } - - return manager; - } - - public RuntimeEngine getRuntimeEngine() { - return getRuntimeEngine(null); - } - - public RuntimeEngine getRuntimeEngine(Long pid) { - if (strategy == Strategy.PERPROCESSINSTANCE) { - if (pid == null) { - return manager.getRuntimeEngine(ProcessInstanceIdContext.get()); - } - return manager.getRuntimeEngine(ProcessInstanceIdContext.get(pid)); - } - return manager.getRuntimeEngine(EmptyContext.get()); - } - - public String getRuntimeManagerIdentifier() { - return manager.getIdentifier(); - } - - public EntityManagerFactory getEmf() { - return emf; - } - - public void disposeRuntimeManager() { - if (manager != null) { - manager.close(); - manager = null; - } - } - - protected static void cleanupSingletonSessionId() { - File tempDir = new File(System.getProperty("java.io.tmpdir")); - if (tempDir.exists()) { - - String[] jbpmSerFiles = tempDir.list(new FilenameFilter() { - - @Override - public boolean accept(File dir, String name) { - - return name.endsWith("-jbpmSessionId.ser"); - } - }); - for (String file : jbpmSerFiles) { - - new File(tempDir, file).delete(); - } - } - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/JBPMTestConfig.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/JBPMTestConfig.java deleted file mode 100644 index ef690c1..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/JBPMTestConfig.java +++ /dev/null @@ -1,83 +0,0 @@ -package org.jbpm.test.performance.jbpm; - -import java.util.Properties; - -import org.kie.perf.TestConfig; - -public class JBPMTestConfig extends TestConfig { - - protected String runtimeManagerStrategy; - - protected boolean persistence; - - protected boolean pessimisticLocking; - - protected int concurrentUsersCount; - - protected boolean humanTaskEager; - - protected JBPMTestConfig() { - - } - - public static JBPMTestConfig getInstance() { - if (tc == null || !(tc instanceof JBPMTestConfig)) { - tc = new JBPMTestConfig(); - try { - tc.loadProperties(); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - return (JBPMTestConfig) tc; - } - - @Override - public Properties loadProperties() throws Exception { - super.loadProperties(); - - databaseName = System.getProperty("databaseName"); - properties.put("databaseName", databaseName); - addTag(databaseName); - - runtimeManagerStrategy = System.getProperty("jbpm.runtimeManagerStrategy"); - properties.put("jbpm.runtimeManagerStrategy", runtimeManagerStrategy); - addTag(runtimeManagerStrategy); - - persistence = Boolean.valueOf(System.getProperty("jbpm.persistence")); - properties.put("jbpm.persistence", persistence); - - String locking = System.getProperty("jbpm.locking"); - pessimisticLocking = locking.toLowerCase().equals("pessimistic"); - properties.put("jbpm.pessimisticLocking", pessimisticLocking); - - concurrentUsersCount = Integer.valueOf(System.getProperty("jbpm.concurrentUsersCount")); - properties.put("jbpm.concurrentUsersCount", concurrentUsersCount); - - humanTaskEager = Boolean.valueOf(System.getProperty("jbpm.ht.eager")); - properties.put("jbpm.ht.eager", humanTaskEager); - - return properties; - } - - public String getRuntimeManagerStrategy() { - return runtimeManagerStrategy; - } - - public boolean isPersistence() { - return persistence; - } - - public boolean isPessimisticLocking() { - return pessimisticLocking; - } - - public int getConcurrentUsersCount() { - return concurrentUsersCount; - } - - public boolean isHumanTaskEager() { - return humanTaskEager; - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/constant/GroupStorage.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/constant/GroupStorage.java deleted file mode 100644 index 0ee9928..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/constant/GroupStorage.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.jbpm.test.performance.jbpm.constant; - -public enum GroupStorage { - - Engineering("engineering"); - - private String groupId; - - private GroupStorage(String groupId) { - this.groupId = groupId; - } - - public String getGroupId() { - return groupId; - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/constant/ProcessStorage.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/constant/ProcessStorage.java deleted file mode 100644 index 368a2a7..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/constant/ProcessStorage.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.jbpm.test.performance.jbpm.constant; - -public enum ProcessStorage { - - HumanTask("HumanTask.bpmn2", "org.kie.perf.HumanTask"), GroupHumanTask("GroupHumanTask.bpmn2", "org.kie.perf.GroupHumanTask"), ParallelGateway( - "ParallelGateway.bpmn2", "org.kie.perf.ParallelGateway"), ParallelGatewayTenTimes("ParallelGatewayTenTimes.bpmn2", - "org.kie.perf.ParallelGatewayTenTimes"), ParallelGatewayTwoTimes("ParallelGatewayTwoTimes.bpmn2", "org.kie.perf.ParallelGatewayTwoTimes"), RuleTask( - "RuleTask.bpmn2", "org.kie.perf.RuleTask"), ScriptTask("ScriptTask.bpmn2", "org.kie.perf.ScriptTask"), IntermediateSignal( - "IntermediateSignal.bpmn2", "org.kie.perf.IntermediateSignal"), StartEnd("StartEnd.bpmn2", "org.kie.perf.StartEnd"), IntermediateTimer( - "IntermediateTimer.bpmn2", "org.kie.perf.IntermediateTimer"), MortgageApplication("MortgageApplication.bpmn2", "com.redhat.bpms.examples.mortgage.MortgageApplication"); - - private String path; - private String processDefinitionId; - - private ProcessStorage(String name, String processDefinitionId) { - this.path = "processes/" + name; - this.processDefinitionId = processDefinitionId; - } - - public String getPath() { - return path; - } - - public String getProcessDefinitionId() { - return processDefinitionId; - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/constant/RuleStorage.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/constant/RuleStorage.java deleted file mode 100644 index 07dd510..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/constant/RuleStorage.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.jbpm.test.performance.jbpm.constant; - -public enum RuleStorage { - - ValidationUserFact("ValidationUserFact.drl"), ; - - private String path; - - private RuleStorage(String name) { - this.path = "rules/" + name; - } - - public String getPath() { - return path; - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/constant/UserStorage.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/constant/UserStorage.java deleted file mode 100644 index 502bffb..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/constant/UserStorage.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.jbpm.test.performance.jbpm.constant; - -public enum UserStorage { - - PerfUser("perfUser"), EngUser("engUser"); - - private String userId; - - private UserStorage(String userId) { - this.userId = userId; - } - - public String getUserId() { - return userId; - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/model/Response.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/model/Response.java deleted file mode 100644 index 3ebae3d..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/model/Response.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.jbpm.test.performance.jbpm.model; - -import java.io.Serializable; - -public class Response implements Serializable { - - private static final long serialVersionUID = -3803154270051215845L; - - private String message; - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/model/UserFact.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/model/UserFact.java deleted file mode 100644 index ef056a0..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/model/UserFact.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.jbpm.test.performance.jbpm.model; - -import java.io.Serializable; - -public class UserFact implements Serializable { - - private static final long serialVersionUID = -7364964864697675450L; - - private String id; - - private int age; - - public UserFact() { - - } - - public UserFact(String id, int age) { - this.id = id; - this.age = age; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public int getAge() { - return age; - } - - public void setAge(int age) { - this.age = age; - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/util/CloseSafeMemoryContextFactory.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/util/CloseSafeMemoryContextFactory.java deleted file mode 100644 index d43d918..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/util/CloseSafeMemoryContextFactory.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2017 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jbpm.test.performance.jbpm.util; - -import java.util.Hashtable; - -import javax.naming.Context; -import javax.naming.NamingException; -import javax.naming.spi.InitialContextFactory; - -import org.osjava.sj.memory.MemoryContext; - -public class CloseSafeMemoryContextFactory implements InitialContextFactory { - - @SuppressWarnings("rawtypes") - public Context getInitialContext(Hashtable environment) throws NamingException { - - return new MemoryContext((Hashtable)environment.clone()) { - @Override - public Object lookup(String name) throws NamingException { - Object toReturn = super.lookup(name); - if (toReturn == null) { - throw new NamingException("Name not found: " + name); - } - return toReturn; - } - - @Override - public void close() throws NamingException { - // simple-jndi will close your context: http://meri-stuff.blogspot.co.uk/2012/01/running-jndi-and-jpa-without-j2ee.html - } - }; - } -} \ No newline at end of file diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/wih/ManualTaskWorkItemHandler.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/wih/ManualTaskWorkItemHandler.java deleted file mode 100644 index 8e594e8..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/wih/ManualTaskWorkItemHandler.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.jbpm.test.performance.jbpm.wih; - -import org.kie.api.runtime.process.WorkItem; -import org.kie.api.runtime.process.WorkItemHandler; -import org.kie.api.runtime.process.WorkItemManager; - -public class ManualTaskWorkItemHandler implements WorkItemHandler { - - public void executeWorkItem(WorkItem workItem, WorkItemManager manager) { - manager.completeWorkItem(workItem.getId(), null); - } - - public void abortWorkItem(WorkItem workItem, WorkItemManager manager) { - manager.abortWorkItem(workItem.getId()); - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/PrepareEngine.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/PrepareEngine.java deleted file mode 100644 index 35a8285..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/PrepareEngine.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.jbpm.test.performance.scenario; - -import java.io.StringReader; -import java.util.ArrayList; -import java.util.List; - -import org.jbpm.test.performance.jbpm.constant.UserStorage; -import org.jbpm.services.task.impl.factories.TaskFactory; -import org.kie.api.task.TaskService; -import org.kie.api.task.model.Task; - -public class PrepareEngine { - - public static List createNewTasks(boolean start, int count, TaskService taskService, String runtimeManagerIdentifier) { - String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { deploymentId = '" + runtimeManagerIdentifier + "' } ), "; - str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('" + UserStorage.PerfUser.getUserId() - + "')], businessAdministrators = [ new User('Administrator') ], }),"; - str += "names = [ new I18NText( 'en-UK', 'perf-sample-task')] })"; - List taskIds = new ArrayList(); - while (count > 0) { - Task task = TaskFactory.evalTask(new StringReader(str)); - long taskId = taskService.addTask(task, null); - taskIds.add(taskId); - if (start) { - taskService.start(taskId, UserStorage.PerfUser.getUserId()); - } - count--; - } - return taskIds; - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/L1000HumanTasksComplete.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/L1000HumanTasksComplete.java deleted file mode 100644 index f8ea176..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/L1000HumanTasksComplete.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import java.util.List; - -import org.jbpm.test.performance.jbpm.JBPMController; -import org.jbpm.test.performance.jbpm.constant.UserStorage; -import org.jbpm.test.performance.scenario.PrepareEngine; -import org.jbpm.services.task.events.DefaultTaskEventListener; -import org.kie.api.task.TaskEvent; -import org.kie.api.task.TaskService; -import org.kie.perf.SharedMetricRegistry; -import org.kie.perf.annotation.KPKLimit; -import org.kie.perf.scenario.IPerfTest; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; - -@KPKLimit(1000) -public class L1000HumanTasksComplete implements IPerfTest { - - private JBPMController jc; - - private TaskService taskService; - - private Meter taskCompleted; - - private List taskIds; - - @Override - public void init() { - - jc = JBPMController.getInstance(); - - jc.setTaskEventListener(new DefaultTaskEventListener() { - @Override - public void afterTaskCompletedEvent(TaskEvent event) { - taskCompleted.mark(); - } - }); - - jc.createRuntimeManager(); - - taskService = jc.getRuntimeEngine().getTaskService(); - - } - - @Override - public void initMetrics() { - taskId = 0; - taskIds = PrepareEngine.createNewTasks(true, 1000, taskService, jc.getRuntimeManagerIdentifier()); - - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - taskCompleted = metrics.meter(MetricRegistry.name(L1000HumanTasksComplete.class, "scenario.task.completed")); - } - - static int taskId = 0; - - @Override - public void execute() { - Long tid = taskIds.get(taskId); - taskService.complete(tid, UserStorage.PerfUser.getUserId(), null); - taskId++; - } - - @Override - public void close() { - jc.tearDown(); - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/L1000HumanTasksQueryPagination.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/L1000HumanTasksQueryPagination.java deleted file mode 100644 index 319cb5c..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/L1000HumanTasksQueryPagination.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import java.util.ArrayList; -import java.util.List; - -import org.jbpm.test.performance.jbpm.JBPMController; -import org.jbpm.test.performance.jbpm.constant.UserStorage; -import org.jbpm.services.task.audit.TaskAuditServiceFactory; -import org.jbpm.services.task.audit.service.TaskAuditService; -import org.jbpm.services.task.audit.service.TaskAuditServiceImpl; -import org.kie.api.task.TaskService; -import org.kie.internal.query.QueryFilter; -import org.kie.internal.task.api.AuditTask; -import org.kie.perf.SharedMetricRegistry; -import org.kie.perf.annotation.KPKLimit; -import org.kie.perf.scenario.IPerfTest; -import org.jbpm.test.performance.scenario.PrepareEngine; - -import com.codahale.metrics.Gauge; -import com.codahale.metrics.MetricRegistry; - -@KPKLimit(1000) -public class L1000HumanTasksQueryPagination implements IPerfTest { - - private JBPMController jc; - - private TaskService taskService; - - private List tasks = new ArrayList(); - - @Override - public void init() { - jc = JBPMController.getInstance(); - jc.createRuntimeManager(); - - taskService = jc.getRuntimeEngine().getTaskService(); - - PrepareEngine.createNewTasks(false, 1000, taskService, jc.getRuntimeManagerIdentifier()); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - metrics.register(MetricRegistry.name(L1000HumanTasksQueryPagination.class, "scenario.tasks.query.page.size"), new Gauge() { - @Override - public Integer getValue() { - return tasks.size(); - } - }); - } - - @Override - public void execute() { - TaskAuditService taskAuditService = TaskAuditServiceFactory.newTaskAuditServiceConfigurator().setTaskService(taskService).getTaskAuditService(); - tasks = taskAuditService.getAllAuditTasksByUser(UserStorage.PerfUser.getUserId(), new QueryFilter(0, 100)); - } - - @Override - public void close() { - jc.tearDown(); - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/L1000HumanTasksStart.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/L1000HumanTasksStart.java deleted file mode 100644 index 3c1ed39..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/L1000HumanTasksStart.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import java.util.List; - -import org.jbpm.services.task.events.DefaultTaskEventListener; -import org.kie.api.task.TaskEvent; -import org.kie.api.task.TaskService; -import org.kie.perf.SharedMetricRegistry; -import org.kie.perf.annotation.KPKLimit; -import org.jbpm.test.performance.jbpm.JBPMController; -import org.jbpm.test.performance.jbpm.constant.UserStorage; -import org.kie.perf.scenario.IPerfTest; -import org.jbpm.test.performance.scenario.PrepareEngine; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; - -@KPKLimit(1000) -public class L1000HumanTasksStart implements IPerfTest { - - private JBPMController jc; - - private TaskService taskService; - - private Meter taskStarted; - - private List taskIds; - - @Override - public void init() { - jc = JBPMController.getInstance(); - - jc.setTaskEventListener(new DefaultTaskEventListener() { - @Override - public void afterTaskStartedEvent(TaskEvent event) { - taskStarted.mark(); - } - }); - - jc.createRuntimeManager(); - - taskService = jc.getRuntimeEngine().getTaskService(); - } - - @Override - public void initMetrics() { - taskId = 0; - taskIds = PrepareEngine.createNewTasks(false, 1000, taskService, jc.getRuntimeManagerIdentifier()); - - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - taskStarted = metrics.meter(MetricRegistry.name(L1000HumanTasksStart.class, "scenario.task.started")); - } - - static int taskId = 0; - - @Override - public void execute() { - Long tid = taskIds.get(taskId); - taskService.start(tid, UserStorage.PerfUser.getUserId()); - taskId++; - } - - @Override - public void close() { - jc.tearDown(); - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/L1000ProcessesSignal.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/L1000ProcessesSignal.java deleted file mode 100644 index e0b7755..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/L1000ProcessesSignal.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import org.jbpm.test.performance.jbpm.constant.ProcessStorage; -import org.kie.api.event.process.DefaultProcessEventListener; -import org.kie.api.event.process.ProcessCompletedEvent; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.manager.RuntimeEngine; -import org.kie.perf.SharedMetricRegistry; -import org.kie.perf.annotation.KPKConstraint; -import org.jbpm.test.performance.jbpm.JBPMController; -import org.kie.perf.scenario.IPerfTest; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; -import com.codahale.metrics.Timer; - -@KPKConstraint({ "jbpm.runtimeManagerStrategy!=PerRequest" }) -public class L1000ProcessesSignal implements IPerfTest { - - private JBPMController jc; - - private Timer startProcess; - private Timer signalDuration; - private Meter completedProcess; - - @Override - public void init() { - jc = JBPMController.getInstance(); - - jc.setProcessEventListener(new DefaultProcessEventListener() { - @Override - public void afterProcessCompleted(ProcessCompletedEvent event) { - completedProcess.mark(); - } - }); - - jc.createRuntimeManager(ProcessStorage.IntermediateSignal.getPath()); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - completedProcess = metrics.meter(MetricRegistry.name(L1000ProcessesSignal.class, "scenario.process.completed")); - startProcess = metrics.timer(MetricRegistry.name(L1000ProcessesSignal.class, "scenario.process.started.1000.duration")); - signalDuration = metrics.timer(MetricRegistry.name(L1000ProcessesSignal.class, "scenario.signal.duration")); - } - - @Override - public void execute() { - Timer.Context context; - - context = startProcess.time(); - KieSession ksession = null; - for (int i = 0; i < 1000; ++i) { - RuntimeEngine runtimeEngine = jc.getRuntimeEngine(); - ksession = runtimeEngine.getKieSession(); - ksession.startProcess(ProcessStorage.IntermediateSignal.getProcessDefinitionId()); - } - context.stop(); - - context = signalDuration.time(); - ksession.signalEvent("MySignal", "value"); - context.stop(); - } - - @Override - public void close() { - jc.tearDown(); - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LGroupHumanTaskProcess.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LGroupHumanTaskProcess.java deleted file mode 100644 index 0f92603..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LGroupHumanTaskProcess.java +++ /dev/null @@ -1,91 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import java.util.List; - -import org.jbpm.test.performance.jbpm.JBPMController; -import org.jbpm.test.performance.jbpm.constant.ProcessStorage; -import org.jbpm.test.performance.jbpm.constant.UserStorage; -import org.kie.api.event.process.DefaultProcessEventListener; -import org.kie.api.event.process.ProcessCompletedEvent; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.manager.RuntimeEngine; -import org.kie.api.runtime.process.ProcessInstance; -import org.kie.api.task.TaskService; -import org.kie.perf.SharedMetricRegistry; -import org.kie.perf.scenario.IPerfTest; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; -import com.codahale.metrics.Timer; - -public class LGroupHumanTaskProcess implements IPerfTest { - - private JBPMController jc; - - private Timer startProcess; - private Timer queryTaskDuration; - private Timer claimTaskDuration; - private Timer startTaskDuration; - private Timer completeTaskDuration; - private Meter completedProcess; - - @Override - public void init() { - - jc = JBPMController.getInstance(); - jc.setProcessEventListener(new DefaultProcessEventListener() { - @Override - public void afterProcessCompleted(ProcessCompletedEvent event) { - completedProcess.mark(); - } - }); - - jc.createRuntimeManager(ProcessStorage.GroupHumanTask.getPath()); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - completedProcess = metrics.meter(MetricRegistry.name(LGroupHumanTaskProcess.class, "scenario.process.completed")); - startProcess = metrics.timer(MetricRegistry.name(LGroupHumanTaskProcess.class, "scenario.process.start.duration")); - queryTaskDuration = metrics.timer(MetricRegistry.name(LGroupHumanTaskProcess.class, "scenario.task.query.duration")); - claimTaskDuration = metrics.timer(MetricRegistry.name(LGroupHumanTaskProcess.class, "scenario.task.claim.duration")); - startTaskDuration = metrics.timer(MetricRegistry.name(LGroupHumanTaskProcess.class, "scenario.task.start.duration")); - completeTaskDuration = metrics.timer(MetricRegistry.name(LGroupHumanTaskProcess.class, "scenario.task.complete.duration")); - } - - @Override - public void execute() { - Timer.Context context; - - context = startProcess.time(); - RuntimeEngine runtimeEngine = jc.getRuntimeEngine(); - KieSession ksession = runtimeEngine.getKieSession(); - ProcessInstance pi = ksession.startProcess(ProcessStorage.GroupHumanTask.getProcessDefinitionId()); - context.stop(); - - context = queryTaskDuration.time(); - TaskService taskService = runtimeEngine.getTaskService(); - List tasks = taskService.getTasksByProcessInstanceId(pi.getId()); - Long taskSummaryId = tasks.get(0); - context.stop(); - - context = claimTaskDuration.time(); - taskService.claim(taskSummaryId, UserStorage.EngUser.getUserId()); - context.stop(); - - context = startTaskDuration.time(); - taskService.start(taskSummaryId, UserStorage.EngUser.getUserId()); - context.stop(); - - context = completeTaskDuration.time(); - taskService.complete(taskSummaryId, UserStorage.EngUser.getUserId(), null); - context.stop(); - } - - @Override - public void close() { - jc.tearDown(); - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LHumanTaskProcess.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LHumanTaskProcess.java deleted file mode 100644 index 60da51e..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LHumanTaskProcess.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import java.util.List; - -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.manager.RuntimeEngine; -import org.kie.api.runtime.process.ProcessInstance; -import org.kie.api.task.TaskService; -import org.kie.perf.SharedMetricRegistry; -import org.jbpm.test.performance.jbpm.JBPMController; -import org.jbpm.test.performance.jbpm.constant.ProcessStorage; -import org.jbpm.test.performance.jbpm.constant.UserStorage; -import org.kie.perf.scenario.IPerfTest; - -import com.codahale.metrics.MetricRegistry; -import com.codahale.metrics.Timer; - -public class LHumanTaskProcess implements IPerfTest { - - private JBPMController jc; - - private Timer startProcess; - private Timer startTaskDuration; - private Timer completeTaskDuration; - - @Override - public void init() { - jc = JBPMController.getInstance(); - jc.createRuntimeManager(ProcessStorage.HumanTask.getPath()); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - startProcess = metrics.timer(MetricRegistry.name(LHumanTaskProcess.class, "scenario.process.start.duration")); - startTaskDuration = metrics.timer(MetricRegistry.name(LHumanTaskProcess.class, "scenario.task.start.duration")); - completeTaskDuration = metrics.timer(MetricRegistry.name(LHumanTaskProcess.class, "scenario.task.complete.duration")); - } - - @Override - public void execute() { - Timer.Context context; - - context = startProcess.time(); - RuntimeEngine runtimeEngine = jc.getRuntimeEngine(); - KieSession ksession = runtimeEngine.getKieSession(); - ProcessInstance pi = ksession.startProcess(ProcessStorage.HumanTask.getProcessDefinitionId()); - context.stop(); - - TaskService taskService = runtimeEngine.getTaskService(); - List tasks = taskService.getTasksByProcessInstanceId(pi.getId()); - Long taskSummaryId = tasks.get(0); - - context = startTaskDuration.time(); - taskService.start(taskSummaryId, UserStorage.PerfUser.getUserId()); - context.stop(); - - context = completeTaskDuration.time(); - taskService.complete(taskSummaryId, UserStorage.PerfUser.getUserId(), null); - context.stop(); - } - - @Override - public void close() { - jc.tearDown(); - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LHumanTaskProcessWithListeners.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LHumanTaskProcessWithListeners.java deleted file mode 100644 index dca33a9..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LHumanTaskProcessWithListeners.java +++ /dev/null @@ -1,98 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import java.util.List; - -import org.jbpm.test.performance.jbpm.constant.ProcessStorage; -import org.jbpm.services.task.events.DefaultTaskEventListener; -import org.kie.api.event.process.DefaultProcessEventListener; -import org.kie.api.event.process.ProcessCompletedEvent; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.manager.RuntimeEngine; -import org.kie.api.runtime.process.ProcessInstance; -import org.kie.api.task.TaskEvent; -import org.kie.api.task.TaskService; -import org.kie.perf.SharedMetricRegistry; -import org.jbpm.test.performance.jbpm.JBPMController; -import org.jbpm.test.performance.jbpm.constant.UserStorage; -import org.kie.perf.scenario.IPerfTest; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; -import com.codahale.metrics.Timer; - -public class LHumanTaskProcessWithListeners implements IPerfTest { - - private JBPMController jc; - - private Timer startProcess; - private Timer startTaskDuration; - private Timer completeTaskDuration; - private Meter completedProcess; - - private Meter taskStarted; - private Meter taskCompleted; - - @Override - public void init() { - jc = JBPMController.getInstance(); - jc.setProcessEventListener(new DefaultProcessEventListener() { - @Override - public void afterProcessCompleted(ProcessCompletedEvent event) { - completedProcess.mark(); - } - }); - jc.setTaskEventListener(new DefaultTaskEventListener() { - @Override - public void afterTaskStartedEvent(TaskEvent event) { - taskStarted.mark(); - } - - @Override - public void afterTaskCompletedEvent(TaskEvent event) { - taskCompleted.mark(); - } - }); - - jc.createRuntimeManager(ProcessStorage.HumanTask.getPath()); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - startProcess = metrics.timer(MetricRegistry.name(LHumanTaskProcessWithListeners.class, "scenario.process.start.duration")); - startTaskDuration = metrics.timer(MetricRegistry.name(LHumanTaskProcessWithListeners.class, "scenario.task.start.duration")); - completeTaskDuration = metrics.timer(MetricRegistry.name(LHumanTaskProcessWithListeners.class, "scenario.task.complete.duration")); - completedProcess = metrics.meter(MetricRegistry.name(LHumanTaskProcessWithListeners.class, "scenario.process.completed")); - taskStarted = metrics.meter(MetricRegistry.name(L1000HumanTasksStart.class, "scenario.task.started")); - taskCompleted = metrics.meter(MetricRegistry.name(L1000HumanTasksComplete.class, "scenario.task.completed")); - } - - @Override - public void execute() { - Timer.Context context; - - context = startProcess.time(); - RuntimeEngine runtimeEngine = jc.getRuntimeEngine(); - KieSession ksession = runtimeEngine.getKieSession(); - ProcessInstance pi = ksession.startProcess(ProcessStorage.HumanTask.getProcessDefinitionId()); - context.stop(); - - TaskService taskService = runtimeEngine.getTaskService(); - List tasks = taskService.getTasksByProcessInstanceId(pi.getId()); - Long taskSummaryId = tasks.get(0); - - context = startTaskDuration.time(); - taskService.start(taskSummaryId, UserStorage.PerfUser.getUserId()); - context.stop(); - - context = completeTaskDuration.time(); - taskService.complete(taskSummaryId, UserStorage.PerfUser.getUserId(), null); - context.stop(); - } - - @Override - public void close() { - jc.tearDown(); - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LIntermediateSignalProcess.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LIntermediateSignalProcess.java deleted file mode 100644 index aadf59a..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LIntermediateSignalProcess.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import org.kie.api.event.process.DefaultProcessEventListener; -import org.kie.api.event.process.ProcessCompletedEvent; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.manager.RuntimeEngine; -import org.kie.api.runtime.process.ProcessInstance; -import org.kie.perf.SharedMetricRegistry; -import org.jbpm.test.performance.jbpm.JBPMController; -import org.jbpm.test.performance.jbpm.constant.ProcessStorage; -import org.kie.perf.scenario.IPerfTest; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; -import com.codahale.metrics.Timer; - -public class LIntermediateSignalProcess implements IPerfTest { - - private JBPMController jc; - - private Timer startProcess; - private Timer signalDuration; - private Meter completedProcess; - - @Override - public void init() { - jc = JBPMController.getInstance(); - jc.setProcessEventListener(new DefaultProcessEventListener() { - @Override - public void afterProcessCompleted(ProcessCompletedEvent event) { - completedProcess.mark(); - } - }); - - jc.createRuntimeManager(ProcessStorage.IntermediateSignal.getPath()); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - completedProcess = metrics.meter(MetricRegistry.name(LIntermediateSignalProcess.class, "scenario.process.completed")); - startProcess = metrics.timer(MetricRegistry.name(LIntermediateSignalProcess.class, "scenario.process.start.duration")); - signalDuration = metrics.timer(MetricRegistry.name(LIntermediateSignalProcess.class, "scenario.signal.duration")); - } - - @Override - public void execute() { - Timer.Context context; - - context = startProcess.time(); - RuntimeEngine runtimeEngine = jc.getRuntimeEngine(); - KieSession ksession = runtimeEngine.getKieSession(); - ProcessInstance pi = ksession.startProcess(ProcessStorage.IntermediateSignal.getProcessDefinitionId()); - context.stop(); - - context = signalDuration.time(); - ksession.signalEvent("MySignal", "value", pi.getId()); - context.stop(); - } - - @Override - public void close() { - jc.tearDown(); - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LParallelGatewayProcess.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LParallelGatewayProcess.java deleted file mode 100644 index 1c61b79..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LParallelGatewayProcess.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import org.jbpm.test.performance.jbpm.JBPMController; -import org.jbpm.test.performance.jbpm.constant.ProcessStorage; -import org.kie.api.event.process.DefaultProcessEventListener; -import org.kie.api.event.process.ProcessCompletedEvent; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.manager.RuntimeEngine; -import org.kie.perf.SharedMetricRegistry; -import org.kie.perf.scenario.IPerfTest; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; - -public class LParallelGatewayProcess implements IPerfTest { - - private JBPMController jc; - - private Meter completedProcess; - - @Override - public void init() { - jc = JBPMController.getInstance(); - jc.setProcessEventListener(new DefaultProcessEventListener() { - @Override - public void afterProcessCompleted(ProcessCompletedEvent event) { - completedProcess.mark(); - } - }); - - jc.createRuntimeManager(ProcessStorage.ParallelGateway.getPath()); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - completedProcess = metrics.meter(MetricRegistry.name(LParallelGatewayProcess.class, "scenario.process.completed")); - } - - @Override - public void execute() { - RuntimeEngine runtimeEngine = jc.getRuntimeEngine(); - KieSession ksession = runtimeEngine.getKieSession(); - ksession.startProcess(ProcessStorage.ParallelGateway.getProcessDefinitionId()); - } - - @Override - public void close() { - jc.tearDown(); - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LParallelGatewayTenTimesProcess.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LParallelGatewayTenTimesProcess.java deleted file mode 100644 index 7880fc6..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LParallelGatewayTenTimesProcess.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import org.jbpm.test.performance.jbpm.constant.ProcessStorage; -import org.kie.api.event.process.DefaultProcessEventListener; -import org.kie.api.event.process.ProcessCompletedEvent; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.manager.RuntimeEngine; -import org.kie.perf.SharedMetricRegistry; -import org.jbpm.test.performance.jbpm.JBPMController; -import org.kie.perf.scenario.IPerfTest; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; - -public class LParallelGatewayTenTimesProcess implements IPerfTest { - - private JBPMController jc; - - private Meter completedProcess; - - @Override - public void init() { - jc = JBPMController.getInstance(); - jc.setProcessEventListener(new DefaultProcessEventListener() { - @Override - public void afterProcessCompleted(ProcessCompletedEvent event) { - completedProcess.mark(); - } - }); - - jc.createRuntimeManager(ProcessStorage.ParallelGatewayTenTimes.getPath()); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - completedProcess = metrics.meter(MetricRegistry.name(LParallelGatewayTenTimesProcess.class, "scenario.process.completed")); - } - - @Override - public void execute() { - RuntimeEngine runtimeEngine = jc.getRuntimeEngine(); - KieSession ksession = runtimeEngine.getKieSession(); - ksession.startProcess(ProcessStorage.ParallelGatewayTenTimes.getProcessDefinitionId()); - } - - @Override - public void close() { - jc.tearDown(); - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LParallelGatewayTwoTimesProcess.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LParallelGatewayTwoTimesProcess.java deleted file mode 100644 index a7ac04c..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LParallelGatewayTwoTimesProcess.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import org.jbpm.test.performance.jbpm.JBPMController; -import org.jbpm.test.performance.jbpm.constant.ProcessStorage; -import org.jbpm.test.performance.jbpm.wih.ManualTaskWorkItemHandler; -import org.kie.api.event.process.DefaultProcessEventListener; -import org.kie.api.event.process.ProcessCompletedEvent; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.manager.RuntimeEngine; -import org.kie.perf.SharedMetricRegistry; -import org.kie.perf.scenario.IPerfTest; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; - -public class LParallelGatewayTwoTimesProcess implements IPerfTest { - - private JBPMController jc; - - private Meter completedProcess; - - @Override - public void init() { - jc = JBPMController.getInstance(); - jc.setProcessEventListener(new DefaultProcessEventListener() { - @Override - public void afterProcessCompleted(ProcessCompletedEvent event) { - completedProcess.mark(); - } - }); - jc.addWorkItemHandler("Manual Task", new ManualTaskWorkItemHandler()); - - jc.createRuntimeManager(ProcessStorage.ParallelGatewayTwoTimes.getPath()); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - completedProcess = metrics.meter(MetricRegistry.name(LParallelGatewayTwoTimesProcess.class, "scenario.process.completed")); - } - - @Override - public void execute() { - RuntimeEngine runtimeEngine = jc.getRuntimeEngine(); - KieSession ksession = runtimeEngine.getKieSession(); - ksession.startProcess(ProcessStorage.ParallelGatewayTwoTimes.getProcessDefinitionId()); - } - - @Override - public void close() { - jc.tearDown(); - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LRuleTaskProcess.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LRuleTaskProcess.java deleted file mode 100644 index b2f349b..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LRuleTaskProcess.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import java.util.HashMap; -import java.util.Map; - -import org.jbpm.test.performance.jbpm.constant.ProcessStorage; -import org.kie.api.event.process.DefaultProcessEventListener; -import org.kie.api.event.process.ProcessCompletedEvent; -import org.kie.api.io.ResourceType; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.manager.RuntimeEngine; -import org.kie.perf.SharedMetricRegistry; -import org.jbpm.test.performance.jbpm.JBPMController; -import org.jbpm.test.performance.jbpm.constant.RuleStorage; -import org.jbpm.test.performance.jbpm.model.UserFact; -import org.kie.perf.scenario.IPerfTest; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; - -public class LRuleTaskProcess implements IPerfTest { - - private JBPMController jc; - - private Meter completedProcess; - - @Override - public void init() { - jc = JBPMController.getInstance(); - jc.setProcessEventListener(new DefaultProcessEventListener() { - @Override - public void afterProcessCompleted(ProcessCompletedEvent event) { - completedProcess.mark(); - } - }); - - Map res = new HashMap(); - res.put(ProcessStorage.RuleTask.getPath(), ResourceType.BPMN2); - res.put(RuleStorage.ValidationUserFact.getPath(), ResourceType.DRL); - jc.createRuntimeManager(res); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - completedProcess = metrics.meter(MetricRegistry.name(LRuleTaskProcess.class, "scenario.process.completed")); - } - - @Override - public void execute() { - RuntimeEngine runtimeEngine = jc.getRuntimeEngine(); - KieSession ksession = runtimeEngine.getKieSession(); - Map params = new HashMap(); - params.put("user", new UserFact("user", 15)); - ksession.startProcess(ProcessStorage.RuleTask.getProcessDefinitionId(), params); - } - - @Override - public void close() { - jc.tearDown(); - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LScriptTaskProcess.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LScriptTaskProcess.java deleted file mode 100644 index c44d8f9..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LScriptTaskProcess.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import org.jbpm.test.performance.jbpm.constant.ProcessStorage; -import org.kie.api.event.process.DefaultProcessEventListener; -import org.kie.api.event.process.ProcessCompletedEvent; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.manager.RuntimeEngine; -import org.kie.perf.SharedMetricRegistry; -import org.jbpm.test.performance.jbpm.JBPMController; -import org.kie.perf.scenario.IPerfTest; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; - -public class LScriptTaskProcess implements IPerfTest { - - private JBPMController jc; - - private Meter completedProcess; - - @Override - public void init() { - jc = JBPMController.getInstance(); - jc.setProcessEventListener(new DefaultProcessEventListener() { - @Override - public void afterProcessCompleted(ProcessCompletedEvent event) { - completedProcess.mark(); - } - }); - - jc.createRuntimeManager(ProcessStorage.ScriptTask.getPath()); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - completedProcess = metrics.meter(MetricRegistry.name(LScriptTaskProcess.class, "scenario.process.completed")); - } - - @Override - public void execute() { - RuntimeEngine runtimeEngine = jc.getRuntimeEngine(); - KieSession ksession = runtimeEngine.getKieSession(); - ksession.startProcess(ProcessStorage.ScriptTask.getProcessDefinitionId()); - } - - @Override - public void close() { - jc.tearDown(); - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LStartEndProcess.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LStartEndProcess.java deleted file mode 100644 index 7b068ba..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LStartEndProcess.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import org.jbpm.test.performance.jbpm.JBPMController; -import org.jbpm.test.performance.jbpm.constant.ProcessStorage; -import org.kie.api.event.process.DefaultProcessEventListener; -import org.kie.api.event.process.ProcessCompletedEvent; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.manager.RuntimeEngine; -import org.kie.perf.SharedMetricRegistry; -import org.kie.perf.scenario.IPerfTest; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; - -public class LStartEndProcess implements IPerfTest { - - private JBPMController jc; - - private Meter completedProcess; - - @Override - public void init() { - jc = JBPMController.getInstance(); - jc.setProcessEventListener(new DefaultProcessEventListener() { - @Override - public void afterProcessCompleted(ProcessCompletedEvent event) { - completedProcess.mark(); - } - }); - - jc.createRuntimeManager(ProcessStorage.StartEnd.getPath()); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - completedProcess = metrics.meter(MetricRegistry.name(LStartEndProcess.class, "scenario.process.completed")); - } - - @Override - public void execute() { - RuntimeEngine runtimeEngine = jc.getRuntimeEngine(); - KieSession ksession = runtimeEngine.getKieSession(); - ksession.startProcess(ProcessStorage.StartEnd.getProcessDefinitionId()); - } - - @Override - public void close() { - jc.tearDown(); - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/soak/SHumanTaskProcess.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/soak/SHumanTaskProcess.java deleted file mode 100644 index 35dba44..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/soak/SHumanTaskProcess.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.jbpm.test.performance.scenario.soak; - -import java.util.List; - -import org.jbpm.test.performance.jbpm.JBPMController; -import org.jbpm.test.performance.jbpm.constant.ProcessStorage; -import org.jbpm.test.performance.jbpm.constant.UserStorage; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.manager.RuntimeEngine; -import org.kie.api.runtime.process.ProcessInstance; -import org.kie.api.task.TaskService; -import org.kie.perf.SharedMetricRegistry; -import org.kie.perf.scenario.IPerfTest; - -import com.codahale.metrics.MetricRegistry; -import com.codahale.metrics.Timer; - -public class SHumanTaskProcess implements IPerfTest { - - private JBPMController jc; - - private Timer startProcess; - private Timer startTaskDuration; - private Timer completeTaskDuration; - - @Override - public void init() { - jc = JBPMController.getInstance(); - jc.clear(); - jc.createRuntimeManager(ProcessStorage.HumanTask.getPath()); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - startProcess = metrics.timer(MetricRegistry.name(SHumanTaskProcess.class, "scenario.process.start.duration")); - startTaskDuration = metrics.timer(MetricRegistry.name(SHumanTaskProcess.class, "scenario.task.start.duration")); - completeTaskDuration = metrics.timer(MetricRegistry.name(SHumanTaskProcess.class, "scenario.task.complete.duration")); - } - - @Override - public void execute() { - Timer.Context context; - - context = startProcess.time(); - RuntimeEngine runtimeEngine = jc.getRuntimeEngine(); - KieSession ksession = runtimeEngine.getKieSession(); - ProcessInstance pi = ksession.startProcess(ProcessStorage.HumanTask.getProcessDefinitionId()); - context.stop(); - - TaskService taskService = runtimeEngine.getTaskService(); - List tasks = taskService.getTasksByProcessInstanceId(pi.getId()); - Long taskSummaryId = tasks.get(0); - - context = startTaskDuration.time(); - taskService.start(taskSummaryId, UserStorage.PerfUser.getUserId()); - context.stop(); - - context = completeTaskDuration.time(); - taskService.complete(taskSummaryId, UserStorage.PerfUser.getUserId(), null); - context.stop(); - } - - @Override - public void close() { - jc.tearDown(); - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/soak/SMortgageProcess.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/soak/SMortgageProcess.java deleted file mode 100644 index a8b0a78..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/soak/SMortgageProcess.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.jbpm.test.performance.scenario.soak; - -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -import org.kie.api.io.ResourceType; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.manager.RuntimeEngine; -import org.jbpm.test.performance.jbpm.JBPMController; -import org.jbpm.test.performance.jbpm.constant.ProcessStorage; -import org.kie.perf.scenario.IPerfTest; - -import com.redhat.bpms.examples.mortgage.Applicant; -import com.redhat.bpms.examples.mortgage.Application; -import com.redhat.bpms.examples.mortgage.Appraisal; -import com.redhat.bpms.examples.mortgage.Property; - -public class SMortgageProcess implements IPerfTest { - - private static final String RULES_LOCATION = "rules/mortgage/"; - - private JBPMController jc; - - @Override - public void init() { - jc = JBPMController.getInstance(); - jc.clear(); - - Map res = new HashMap(); - res.put(ProcessStorage.MortgageApplication.getPath(), ResourceType.BPMN2); - res.put(RULES_LOCATION + "Jumbo Mortgage.rdrl", ResourceType.RDRL); - res.put(RULES_LOCATION + "Low Down Payment based on Appraisal.rdrl", ResourceType.RDRL); - res.put(RULES_LOCATION + "Low Down Payment before Appraisal.rdrl", ResourceType.RDRL); - res.put(RULES_LOCATION + "Mortgage Calculation.drl", ResourceType.DRL); - res.put(RULES_LOCATION + "Retract Facts After Calculation.drl", ResourceType.DRL); - res.put(RULES_LOCATION + "Retract Facts After Validation.drl", ResourceType.DRL); - res.put(RULES_LOCATION + "Validate Amortization.rdrl", ResourceType.RDRL); - res.put(RULES_LOCATION + "Validate Down Payment.rdrl", ResourceType.RDRL); - res.put(RULES_LOCATION + "Validate Income.rdrl", ResourceType.RDRL); - res.put(RULES_LOCATION + "Validate Property Price.rdrl", ResourceType.RDRL); - res.put(RULES_LOCATION + "Validate SSN.rdrl", ResourceType.RDRL); - jc.createRuntimeManager(res); - } - - @Override - public void initMetrics() { - - } - - @Override - public void execute() { - RuntimeEngine runtimeEngine = jc.getRuntimeEngine(); - KieSession ksession = runtimeEngine.getKieSession(); - Map params = getProcessArgs( "Amy", "12301 Wilshire", 333224449, 100000, 500000, 100000, 30 ); - ksession.startProcess(ProcessStorage.MortgageApplication.getProcessDefinitionId(), params); - } - - @Override - public void close() { - jc.tearDown(); - } - - private static Map getProcessArgs(String name, String address, int ssn, int income, int price, int downPayment, int amortization) - { - Map processVariables = new HashMap(); - Applicant applicant = new Applicant( name, ssn, income, null ); - Property property = new Property( address, price ); - Appraisal appraisal = new Appraisal(property, new Date(System.currentTimeMillis()), price + 10000); - Application application = new Application( applicant, property, appraisal, downPayment, amortization, null, null, null ); - processVariables.put( "application", application ); - return processVariables; - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/soak/SParallelGatewayTenTimesProcess.java b/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/soak/SParallelGatewayTenTimesProcess.java deleted file mode 100644 index 57b0902..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/java/org/jbpm/test/performance/scenario/soak/SParallelGatewayTenTimesProcess.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.jbpm.test.performance.scenario.soak; - -import org.jbpm.test.performance.jbpm.JBPMController; -import org.jbpm.test.performance.jbpm.constant.ProcessStorage; -import org.kie.api.event.process.DefaultProcessEventListener; -import org.kie.api.event.process.ProcessCompletedEvent; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.manager.RuntimeEngine; -import org.kie.perf.SharedMetricRegistry; -import org.kie.perf.scenario.IPerfTest; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; - -public class SParallelGatewayTenTimesProcess implements IPerfTest { - - private JBPMController jc; - - private Meter completedProcess; - - @Override - public void init() { - jc = JBPMController.getInstance(); - jc.clear(); - jc.setProcessEventListener(new DefaultProcessEventListener() { - @Override - public void afterProcessCompleted(ProcessCompletedEvent event) { - completedProcess.mark(); - } - }); - - jc.createRuntimeManager(ProcessStorage.ParallelGatewayTenTimes.getPath()); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - completedProcess = metrics.meter(MetricRegistry.name(SParallelGatewayTenTimesProcess.class, "scenario.process.completed")); - } - - @Override - public void execute() { - RuntimeEngine runtimeEngine = jc.getRuntimeEngine(); - KieSession ksession = runtimeEngine.getKieSession(); - ksession.startProcess(ProcessStorage.ParallelGatewayTenTimes.getProcessDefinitionId()); - } - - @Override - public void close() { - jc.tearDown(); - } - -} diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/ddl-scripts/perf-drop-tables.sql b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/ddl-scripts/perf-drop-tables.sql deleted file mode 100644 index bf7c6df..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/ddl-scripts/perf-drop-tables.sql +++ /dev/null @@ -1,3 +0,0 @@ -DROP SCHEMA IF EXISTS JBPM CASCADE; -CREATE SCHEMA JBPM; -GRANT ALL ON SCHEMA JBPM TO PUBLIC; diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/jndi.properties b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/jndi.properties deleted file mode 100644 index ff70921..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/jndi.properties +++ /dev/null @@ -1,4 +0,0 @@ -java.naming.factory.initial=org.jbpm.test.performance.jbpm.util.CloseSafeMemoryContextFactory -org.osjava.sj.root=target/test-classes/config -org.osjava.jndi.delimiter=/ -org.osjava.sj.jndi.shared=true \ No newline at end of file diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/logback.xml b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/logback.xml deleted file mode 100644 index a2dbb3c..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/logback.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - target/log.out - false - - %d [%t] [%c] %-5p %m%n - - - - 300 - - - - - - - %d [%t] [%c] %-5p %m%n - - - - 300 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/GroupHumanTask.bpmn2 b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/GroupHumanTask.bpmn2 deleted file mode 100644 index 11e3903..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/GroupHumanTask.bpmn2 +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - _238EE188-9791-441B-99CD-C273F7416113 - - - _238EE188-9791-441B-99CD-C273F7416113 - _F15B511A-1099-4E26-96A9-00FA2860E7A6 - - - - - - _FBC7AA37-AC05-434A-98B3-C2CDB1BA1267_GroupIdInputX - _FBC7AA37-AC05-434A-98B3-C2CDB1BA1267_SkippableInputX - - - - - _FBC7AA37-AC05-434A-98B3-C2CDB1BA1267_TaskNameInputX - - Task1 - _FBC7AA37-AC05-434A-98B3-C2CDB1BA1267_TaskNameInputX - - - - _FBC7AA37-AC05-434A-98B3-C2CDB1BA1267_GroupIdInputX - - - _FBC7AA37-AC05-434A-98B3-C2CDB1BA1267_GroupIdInputX - - - - _FBC7AA37-AC05-434A-98B3-C2CDB1BA1267_SkippableInputX - - true - _FBC7AA37-AC05-434A-98B3-C2CDB1BA1267_SkippableInputX - - - - - - _F15B511A-1099-4E26-96A9-00FA2860E7A6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/GroupHumanTask.png b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/GroupHumanTask.png deleted file mode 100644 index c8f71ccd4b70607beb4ca0770040a3cccb165d57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7689 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 SQ|a(!GXO$P1zrp@_4^+fq - - - - - - - _9B85CC76-12C5-43AC-8F34-54D9E0452FBD - - - _9B85CC76-12C5-43AC-8F34-54D9E0452FBD - _D409F1EB-382E-4B98-ABBB-B1C3CA48AB58 - - - - - - - _E4906EEE-6F73-4A8A-9E8E-E046EE35C10F_TaskNameInput - - HelloTask - _E4906EEE-6F73-4A8A-9E8E-E046EE35C10F_TaskNameInput - - - - - perfUser - - - - - - _D409F1EB-382E-4B98-ABBB-B1C3CA48AB58 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/HumanTask.png b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/HumanTask.png deleted file mode 100644 index f03fdd97bda7d205163aeb0ccf6505aad368192f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7158 zcmeHMS5y?+wrwOM3L+o^LeoH#bCN7AAUR2nHqbOp4o%LIB`G;6L6O+x93=^oGm;v~ zIV+$9Uvusm_uTvOKF-Jccw?OU*tM(X+_UzcwMLD#c13EaJ-b6hO#}b{?kFnAY5@RP zc$mH=!7WU?LrWNoIfZ*`>m#+G9zZ7-M=OLK42bk{f&pQk2rB@8nygWi$Y1Gie#i+HOA{9D;w9S|u5o@!!5XuZ|8rRo~; zxJwmA-Q`pXAJz3Ar@+q75Epabjo))&wdEPiwaN2lye>5t_1h@-@VdZ~QRbw7L4z+3 z01)9JFjLZ3RS~mrwC9FeI-0|{J?)(^a|Hk-q&=OW7Pc@X&>RLwI7osHn%Y1>gry`% zPe_$l)#)kB8lm9r0(3DQ^906ukefdK`%1-W^-S{GSq-D@l+w66qwy z!{g!M!R;Zy?dSsM;S&`V<>BS$;pgYVFt}X39FR~?E(ce}8;O5u$iiGLTo6u3grfuS zMiXl8=!TR8fiO7mPw^Z3|E=!e`lksPJ9uso9zJefp8upH5mx^T{Ra7qelu811K|m? z)0aiq!yH^OQ;-Dl3-kXW_7`gKA1EI$?;q%ml9-}B6b{ovSR$?e8uk~U07Jm7F)R76 zA?hv&7{-H})nX73&yABje_DxoGd%x(H8=kJ-yi=xmR%R zmIHr_{7-cK|FVndujCHqfXV1QFsU0$275Lp?ZbA3C~6ZB5X>#9e**yS5h}{cXnW4? zz4bDF-ZR^?!9)cSR#15YlzF0oRh&zKrHQ4dUHvMsX{x1l4>f1YK~C;9X^Yxxv2WNz z`ANI2yu{IXQv8A=w|A;&LbpPP6n4KO{WT6G{^Z)3w}uo5J-V~{(|~KIYc~E;E*x?g}A}r~1{EZ$&P}Zc^tT+|VFe?T-=^7B+45O$#wG zYC%dNGsC2$(brz>F9El2yAnTr)DhKJnXgXg7AsQw$;yb+xSsdQ3d4$iX;m2AY2^{2 z&6YH$$J3AyK*JylO1LlJviB@T*y?FJ)Tnoj>zgSJiGDa~tLx6fOWNgtdczjqSontE z=Ler!gz03EMf=gpU%vM1)Al&iwq;~V&Wz(<61@(o_!@CHq;ziio8T;T!W!I9%fRGd zWA~hu*BT5Yd_Ng7hjaF@YMmp=zALLcE{YNtC7Vt7I%L$4Q0%S2Q8O|mh6@s5BVWwv zqt@|+^fPY#^qvej>Fwom!pqEz_wr3-d`fw*Y=xEwM9kJLO)%c>3n_H4&f9`~Pk!g56!6K4IdVvopDmOqoX1jg-GAfRPNPkz$%LqT%BowX50gL3*RrJdoG@ z^O?rnjCWNEty~%gqUD3-vE!-wbaM^nyEf)(YHH(qEo+qWP_Cg2Ax^aLDp4+ewmVE% z@l<2+pGZ5xG+94>oKSv1mdt6Er^P1z0by5=(hr*w_9Y61d@s!z4P*+d1}mh>&PR|I z6_%1m(Ioc8hUMnusDbT2jy@!d{K|^|;t84jlyk@AHf2L5e{`;$t?iqBoxWII$mm$E zwY_~(KRJpko8WbqMhZ@tyl5Qd=Xaot)M#gCj^>0#xecPp=}2v*H77a}Lt+K<&HK&X z*b+DZrlWjZOfYt3Jz@cD0(M8R056z7DFJ|y+`cyv8wd{cPYF>%^>GcWUP%h&b3S9D z&{1F~XAfnZ8;y6^`f^50`)HHv5S-8(EORfLFxxTyb=?;W|5u_eI}wa?Z`Kv6PHJ5( z8Y)sbLtg8Hk|UTK)*9etnfCYV_ReP7Ec)(NL9GrWf`agRj*6N*ek&+*v^YQ2(qS$v zctTKd?i*H9b2X4=LCHh6v>&^*``ElOU{w43Nxg_gSvU&cgE~b#b52!B6UDlto7`;Z zZ@wQ1oCbFK#r{XH`;aq`Rkiv8gHY#gm)ce{__)KY0s8 z{I(>7TJM>0T*PlKG|!0RhZmM{TPROmhJMI9$$;9m|*=^sQ9Ikzn zATpO*Crjbawb|K|UY+}@rY~u4J1O@Q?(bKv4-F0v4t^PuC-`DxJ3N$8x4x}|FWpv3 zbO1dSJA#_eJ36D4n^nWp;`v;7Zn;spxs7b6nwgW)gQ>IM1oCd4ZWII@Gw}%~j$ntj ze=T?0L9!<)g9WBVqCJXoXz4nMxMF;oZ=xG(j-o z8}CP{f>sJIdXtNd3=_Gs2}fkjs!Peof3b{~+)+$GCdu|4u;~uz ze(*Pulp6Ay&v_Qkzsrxe`LlG+Yb3t^C{xfOr%j}%!0$nX`aIoA+N|Z9I14W#FUF!LL zNyI=-=eJA$j6^V!89vOClB72~8?8^%7;O(N)hc9+_2swU&Jd||jia{_VPsGG)fxOu zFPt+*T`6xIkui-budS3Nh-4nD=(w$}+`o%cn=uuZu31=Sm7kV|P@5Q3MYNpnD^D4x z25HY!m2fTxmT3SJ&}I5=NM{Bn&Ga-;0T4vbELYyJv+CQA6h;}GQd~XGdu{L3@;?}O z7iaVCer=n&+ZL#*%+ERck{tTokixK0cdbckW3fa=f6=;?$(C$N)u|0D+j!X=YU?W^S z;hs!f7FpOCPj#%Znl|>*6UqCr?8f$x!4jymeyv5uc^9AYtQD5-I;Xd(_&pvcRHfai zB*2f53{aF%ZLr5S2i~~F5t@v?@tdv%Zqc3413!oy2-});z3hmRLDkcum%67R$BDY zE3*Q(i0AAH{11uKjMe-^$vZ7aIz4`;6c!@lbcZs#ODHGF=m;PM&6ThEp&qVBV#yLt z9MB&{l{}>^lal_?q+}vO&OSS)j3MdF@u%JuwNn`+e)Kj5P-@Lhcba;loi}{SG32aY$0Zd)(x>pPhTy$(ENepI? z)Tq){y3UdO-@i`LWh73<-84hGD>ka!9O%Q>b(Ei3@`NJ04R6!#?0O2Yw4qercyYj^ ztDbI*x1_JRUq1@X6%s#S>3MStH0BmP{=-PrzOS}9>%iaZ7`d^VzQT-EHEdR|ZNjKk zlsMeiw-P@_i9Z0o#)ORz=g*o!QA%%KFT`VMUqms+wjZfzMlmkas>&W?158=Bs!X-};K_~FHuat?R zuDj5&ZNf;zS$=KpvK;MIw9I?^0G}kVPYEyc?ufJSoNxD-+`_8gxSvF@nlwdYD}vR-(dUg)70 zo4g#Q(Z1((OYmDm#PixFho@Kf7vz0ZkbWn39@OF%_jH;0`;Lrwe>vC}x3<>%vELeu zJ?lKy(pR*PzB*g|(sk5&&?>Mu8Ggs`!`KRq2wBhE{`@E=7@`h-R39Po3gU-X&iV&a zqWX5yx0`X%*m_>@YiEtJ8Qae9z!;nMMpGT(j)k}4?wouKhj(t?7DVgB6DEk{9&Nff#)P3B&p{L#5RUKIB`zY*;T~MjzAvw|F$smE2TIM`FroNamGEt#G-kA*X zHb+OMCQ=ou%%&tQX<;=#l6)RvfaeT7zg`5bYprz;GvN5y+AFl0PGr0oS^{!2~UhL1AG?BZALLyXh za9EhiAJI0lw{6rsAN3!N3yI4$f8PP=&=*WL)mvn;74y9=$6Wvo@!X{~$Zm5wJTc06 z_l}g7vlt~uu<$Cbje=g<87(0$BGO*(ye>f(yAm@wIoaLK>~TP8b=h#7{(0@R(;bH@ zj4(L#P1>6#wf)%|%V|#^6F9rS-|0?d6w77LMb?QpydYyLkQI;Pw6)df_#|Pvgsp#& z*_>#6{PuX05uEGr*pQNDF2-*}hb)9W_v$^1fx7p`viOkj(9YFV+^Sn$#&d+~*4Dtd zdeJ+(j5@A9p+2W94pwvCPIu(I=Y_kbi;I})7^(TuPZb&(AG5{LprEPQb^2d2WL;DfbO(~+k{;_x8+li6 zPP2@DBdi??>d7F`h)-N#rMnjnV%sRi!|*$XC2NpF1%BLM=umTgn|7ovtK{7G>z^}Z^mqjA$Y zqXsB`r$?q6xY-9&q+rKn(-alirXkZc7b=gq?`EwDtQC)UJeaI0Cvnls`B-~hToqa6 zD-m6MFftk55GJ9N$1Wwb;yv_8v5LGTNS6vZySqh~6J=%F>PUjwRd|n$F2eqgy@mhU eb~tQ2m%f! - - - - - - - - _040283F7-721B-4296-B2E9-5661FCED174F - - - _D729DD41-74A8-4FE4-8FDB-571F3F60EDC8 - - - _040283F7-721B-4296-B2E9-5661FCED174F - _D729DD41-74A8-4FE4-8FDB-571F3F60EDC8 - - - _52E41FC3-A79B-4A61-B502-97AE000A1C55_event - x - - - _52E41FC3-A79B-4A61-B502-97AE000A1C55_event - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/IntermediateSignal.png b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/IntermediateSignal.png deleted file mode 100644 index 8b6cd128b01abc687d7e640b41eee2761562edde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7562 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _876EB580-9313-42B2-88C9-93F5BF6B1E72 - - - - - - - - _D279073F-0496-4E5E-8296-73A229E3DCCC - _3FC2B32E-BF4E-4705-BDCE-278131C78F88 - _6C7FEBC7-4C47-4202-B0D9-62D78AEC9CBB - _530A84FA-BBA3-4ECE-ABA2-7A16A027CC54 - - - - - - - - - _373C9BED-C045-4482-9FB3-5E62561DC449 - _3CE622AC-C5D0-4DEC-9159-BDAC382A9ED4 - SequenceFlow_3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _3F631AC8-F4FA-487A-9F03-19DE815D7079 - _B3FE1D36-A77A-438F-8DF8-69091E69848D - - - - - - - - _B3FE1D36-A77A-438F-8DF8-69091E69848D - _8387AE77-43B7-42F2-BFF4-8C7E46BEDDAD - tempDouble); -kcontext.setVariable("borrowerQualified", Boolean.valueOf(qualified));]]> - - - - _BCBB0EE0-BE50-4EDB-8917-E8F17A7091FA - _1BB41991-81F2-449B-AE5C-7C8DED9E4ECD - _1FDD9A50-5B6E-4E00-ABB1-829BA483EA77 - _3F631AC8-F4FA-487A-9F03-19DE815D7079 - - - - - - - - - _8387AE77-43B7-42F2-BFF4-8C7E46BEDDAD - _443FB506-8F6C-4CAD-879C-EEF20C4368D2 - _DB8784FD-392B-4D04-AA48-2F5B3179A93F - - - - - - - - - - - - _DB8784FD-392B-4D04-AA48-2F5B3179A93F - _2D38D9EA-E8C3-45F9-A2DC-B8A7D0AD0484 - _53108B3E-D7EA-4E31-A109-7C8B4B594B50 - - - - - - - - - - - - _829DE2F3-D148-46B1-8995-282765E87D68 - _FDCFE52B-824A-44CA-B525-4DBE8EA72CB5 - _1BB41991-81F2-449B-AE5C-7C8DED9E4ECD - - - - - - - - _8B29FB87-BC5C-4950-B5E2-78A73187A204 - _4B459B12-254A-4AAE-ACE9-E40D11349BD0 - - - - - - - - - = application.getProperty().getPrice());]]> - - - - - - - - - - - - _32DC8F6A-733D-4581-902C-B7179EE6880D - _FDCFE52B-824A-44CA-B525-4DBE8EA72CB5 - _8B29FB87-BC5C-4950-B5E2-78A73187A204 - - - - - - - - - - - - - - - - - _53108B3E-D7EA-4E31-A109-7C8B4B594B50 - _5BD8EAEA-70DC-46A4-AD41-3A6917EB8528 - _32DC8F6A-733D-4581-902C-B7179EE6880D - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _29DD6215-8056-409F-A550-799DEA480E63 - _373C9BED-C045-4482-9FB3-5E62561DC449 - - - - - - - - - - - - - - - _5BD8EAEA-70DC-46A4-AD41-3A6917EB8528 - _829DE2F3-D148-46B1-8995-282765E87D68 - - - - - - - - _E8451731-3BAE-414A-82E1-F913124DB37A_GroupIdInputX - _E8451731-3BAE-414A-82E1-F913124DB37A_taskInputApplicationInputX - _E8451731-3BAE-414A-82E1-F913124DB37A_SkippableInputX - _E8451731-3BAE-414A-82E1-F913124DB37A_TaskNameInputX - - - _E8451731-3BAE-414A-82E1-F913124DB37A_taskOutputApplicationOutputX - - - - _E8451731-3BAE-414A-82E1-F913124DB37A_TaskNameInputX - - Appraisal - _E8451731-3BAE-414A-82E1-F913124DB37A_TaskNameInputX - - - - application - _E8451731-3BAE-414A-82E1-F913124DB37A_taskInputApplicationInputX - - - _E8451731-3BAE-414A-82E1-F913124DB37A_GroupIdInputX - - - _E8451731-3BAE-414A-82E1-F913124DB37A_GroupIdInputX - - - - _E8451731-3BAE-414A-82E1-F913124DB37A_SkippableInputX - - true - _E8451731-3BAE-414A-82E1-F913124DB37A_SkippableInputX - - - - _E8451731-3BAE-414A-82E1-F913124DB37A_taskOutputApplicationOutputX - application - - - - - - - - - - - - - - - - - - - - - _4B459B12-254A-4AAE-ACE9-E40D11349BD0 - - - - - - - - _92462582-2607-4C73-B175-5F7E33623CC7 - _2D38D9EA-E8C3-45F9-A2DC-B8A7D0AD0484 - _BED78DFB-4416-4383-8747-E4EA13CFE4D0 - - - - - - - - - - - - - - - - - - - - - - - - _BED78DFB-4416-4383-8747-E4EA13CFE4D0 - _031E1C08-BD01-4596-BDFE-33CBD683C53F - - - - - - - - - - - - - _031E1C08-BD01-4596-BDFE-33CBD683C53F - - - - - - - - - - - - - - - - - - - - - - SequenceFlow_2 - _D1A7E788-25CD-400B-A3DE-4395FC53AC73 - _29DD6215-8056-409F-A550-799DEA480E63 - - - - - - - - - - - - _D1A7E788-25CD-400B-A3DE-4395FC53AC73 - - - - - - - - - _3CE622AC-C5D0-4DEC-9159-BDAC382A9ED4 - _1FDD9A50-5B6E-4E00-ABB1-829BA483EA77 - - - - - - - - - - _73F75A7C-8B6B-40A3-BF44-2B83FBDADC45 - _92462582-2607-4C73-B175-5F7E33623CC7 - - - - - - - - _876EB580-9313-42B2-88C9-93F5BF6B1E72_GroupIdInputX - _876EB580-9313-42B2-88C9-93F5BF6B1E72_taskInputApplicationInputX - _876EB580-9313-42B2-88C9-93F5BF6B1E72_SkippableInputX - _876EB580-9313-42B2-88C9-93F5BF6B1E72_TaskNameInputX - - - _876EB580-9313-42B2-88C9-93F5BF6B1E72_brokerOverrideTaskOutputOutputX - - - - _876EB580-9313-42B2-88C9-93F5BF6B1E72_TaskNameInputX - - FinancialReview - _876EB580-9313-42B2-88C9-93F5BF6B1E72_TaskNameInputX - - - - application - _876EB580-9313-42B2-88C9-93F5BF6B1E72_taskInputApplicationInputX - - - _876EB580-9313-42B2-88C9-93F5BF6B1E72_GroupIdInputX - - - _876EB580-9313-42B2-88C9-93F5BF6B1E72_GroupIdInputX - - - - _876EB580-9313-42B2-88C9-93F5BF6B1E72_SkippableInputX - - true - _876EB580-9313-42B2-88C9-93F5BF6B1E72_SkippableInputX - - - - _876EB580-9313-42B2-88C9-93F5BF6B1E72_brokerOverrideTaskOutputOutputX - brokerOverride - - - - - - - - - SequenceFlow_1 - SequenceFlow_2 - - - - - - - - _D279073F-0496-4E5E-8296-73A229E3DCCC_GroupIdInputX - _D279073F-0496-4E5E-8296-73A229E3DCCC_taskInputApplicationInputX - _D279073F-0496-4E5E-8296-73A229E3DCCC_SkippableInputX - _D279073F-0496-4E5E-8296-73A229E3DCCC_TaskNameInputX - - - _D279073F-0496-4E5E-8296-73A229E3DCCC_taskOutputApplicationOutputX - - - - _D279073F-0496-4E5E-8296-73A229E3DCCC_TaskNameInputX - - DataCorrection - _D279073F-0496-4E5E-8296-73A229E3DCCC_TaskNameInputX - - - - application - _D279073F-0496-4E5E-8296-73A229E3DCCC_taskInputApplicationInputX - - - _D279073F-0496-4E5E-8296-73A229E3DCCC_GroupIdInputX - - - _D279073F-0496-4E5E-8296-73A229E3DCCC_GroupIdInputX - - - - _D279073F-0496-4E5E-8296-73A229E3DCCC_SkippableInputX - - true - _D279073F-0496-4E5E-8296-73A229E3DCCC_SkippableInputX - - - - _D279073F-0496-4E5E-8296-73A229E3DCCC_taskOutputApplicationOutputX - application - - - - - - - - - - - - - - - _443FB506-8F6C-4CAD-879C-EEF20C4368D2 - _31BCC7BC-321F-4C32-9D39-0783D3A289A3 - - - - - - - - _3FC2B32E-BF4E-4705-BDCE-278131C78F88_GroupIdInputX - _3FC2B32E-BF4E-4705-BDCE-278131C78F88_taskInputApplicationInputX - _3FC2B32E-BF4E-4705-BDCE-278131C78F88_SkippableInputX - _3FC2B32E-BF4E-4705-BDCE-278131C78F88_TaskNameInputX - - - _3FC2B32E-BF4E-4705-BDCE-278131C78F88_taskOutputApplicationOutputX - - - - _3FC2B32E-BF4E-4705-BDCE-278131C78F88_TaskNameInputX - - IncreaseDownPayment - _3FC2B32E-BF4E-4705-BDCE-278131C78F88_TaskNameInputX - - - - application - _3FC2B32E-BF4E-4705-BDCE-278131C78F88_taskInputApplicationInputX - - - _3FC2B32E-BF4E-4705-BDCE-278131C78F88_GroupIdInputX - - - _3FC2B32E-BF4E-4705-BDCE-278131C78F88_GroupIdInputX - - - - _3FC2B32E-BF4E-4705-BDCE-278131C78F88_SkippableInputX - - true - _3FC2B32E-BF4E-4705-BDCE-278131C78F88_SkippableInputX - - - - _3FC2B32E-BF4E-4705-BDCE-278131C78F88_taskOutputApplicationOutputX - application - - - - - - - - - _31BCC7BC-321F-4C32-9D39-0783D3A289A3 - _BCBB0EE0-BE50-4EDB-8917-E8F17A7091FA - _73F75A7C-8B6B-40A3-BF44-2B83FBDADC45 - - - - - - - - SequenceFlow_3 - SequenceFlow_1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _6M964MtNEeWFGc2OmJDzFA - _6M964MtNEeWFGc2OmJDzFA - - \ No newline at end of file diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGateway.bpmn2 b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGateway.bpmn2 deleted file mode 100644 index 07c7d23..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGateway.bpmn2 +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - SequenceFlow_2 - - - SequenceFlow_2 - SequenceFlow_3 - SequenceFlow_4 - - - - - SequenceFlow_3 - SequenceFlow_5 - - - - - SequenceFlow_4 - SequenceFlow_6 - - - - - - SequenceFlow_5 - SequenceFlow_6 - SequenceFlow_7 - - - - SequenceFlow_7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGateway.png b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGateway.png deleted file mode 100644 index b00d78278fa672b3e8c30e0c89c84c366233ca70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13016 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 HVZi?Y%!!Uz diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGatewayTenTimes.bpmn2 b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGatewayTenTimes.bpmn2 deleted file mode 100644 index 10b7a06..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGatewayTenTimes.bpmn2 +++ /dev/null @@ -1,798 +0,0 @@ - - - - - - SequenceFlow_7 - - - - SequenceFlow_7 - SequenceFlow_8 - SequenceFlow_12 - - - - SequenceFlow_8 - SequenceFlow_14 - - - - - SequenceFlow_12 - SequenceFlow_15 - - - - - SequenceFlow_14 - SequenceFlow_15 - SequenceFlow_95 - - - - SequenceFlow_18 - SequenceFlow_20 - SequenceFlow_96 - - - SequenceFlow_95 - SequenceFlow_19 - SequenceFlow_21 - - - - - SequenceFlow_19 - SequenceFlow_18 - - - - - SequenceFlow_21 - SequenceFlow_20 - - - - - SequenceFlow_97 - SequenceFlow_39 - SequenceFlow_41 - - - - - SequenceFlow_33 - SequenceFlow_32 - - - - - SequenceFlow_96 - SequenceFlow_27 - SequenceFlow_33 - - - - - SequenceFlow_32 - SequenceFlow_26 - SequenceFlow_97 - - - SequenceFlow_27 - SequenceFlow_26 - - - - - SequenceFlow_43 - SequenceFlow_42 - - - - - SequenceFlow_41 - SequenceFlow_40 - - - - - SequenceFlow_98 - SequenceFlow_43 - SequenceFlow_45 - - - - - SequenceFlow_51 - SequenceFlow_50 - - - - - SequenceFlow_39 - SequenceFlow_38 - - - - - SequenceFlow_45 - SequenceFlow_44 - - - - - SequenceFlow_42 - SequenceFlow_44 - SequenceFlow_99 - - - SequenceFlow_57 - SequenceFlow_56 - - - - - SequenceFlow_100 - SequenceFlow_63 - SequenceFlow_69 - - - - - SequenceFlow_69 - SequenceFlow_68 - - - - - SequenceFlow_40 - SequenceFlow_38 - SequenceFlow_98 - - - SequenceFlow_63 - SequenceFlow_62 - - - - - SequenceFlow_99 - SequenceFlow_51 - SequenceFlow_57 - - - - - SequenceFlow_86 - SequenceFlow_85 - - - - - SequenceFlow_75 - SequenceFlow_74 - - - - - SequenceFlow_85 - SequenceFlow_74 - SequenceFlow_103 - - - SequenceFlow_101 - SequenceFlow_75 - SequenceFlow_86 - - - - - SequenceFlow_87 - SequenceFlow_89 - SequenceFlow_104 - - - SequenceFlow_90 - SequenceFlow_89 - - - - - SequenceFlow_103 - SequenceFlow_88 - SequenceFlow_90 - - - - - SequenceFlow_88 - SequenceFlow_87 - - - - - SequenceFlow_92 - SequenceFlow_91 - - - - - SequenceFlow_94 - SequenceFlow_93 - - - - - SequenceFlow_104 - SequenceFlow_92 - SequenceFlow_94 - - - - - SequenceFlow_91 - SequenceFlow_93 - SequenceFlow_105 - - - - - - - - SequenceFlow_50 - SequenceFlow_56 - SequenceFlow_100 - - - - SequenceFlow_68 - SequenceFlow_62 - SequenceFlow_101 - - - - - - - SequenceFlow_105 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGatewayTenTimes.png b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGatewayTenTimes.png deleted file mode 100644 index feed16c8c0d3ff8edfce8b7de57b55fc08f6ba86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40212 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�cpN&`@9Vi3r3Q^26VhQ(x*S@@;XUH!h_@9pzwlps&j2_0MOa0) z{)BtbZ1opE-#U-Y>`)&-+^irA#hA&{XM|%++gi)>r%&hweDaepfcGE$o!F)KI^DtK zi+7aWXqhy)Ndmf2I1sx&igSmcx=mF%)!Nq5>{q<*5hourDr_Ovu^-lGj!&_(gRKtL z-Xh7ZwvUQjj5x}zJQ_uIxMn+0>~OIx_L#`JX!T&5(*dYaRmH^p@eH0z=XB3+=QQZA z-RD!)2gVc>0Ox1=@qmYu^W2GX&W77dAkyx#!k_uFN;EbA0L8_tsAR zhcF;?^20kVz*got`^Mo>8!HLB8Io&n;!YLJR`%)aZO5SY)iDs@8#Eu!md>mY@*L-( zdcv}pimyUqZ6zQlr>pMrY3YvH>>S9PCwAp=I4If{ z=@g6{1R7Eh>>e%O9w~S51y=lF;Q*Kz7B&u+Nnb0XO)%R^8dmW<^w#>- z=6zD`^<>$%9@iRhR>{UQs#Kqx%*;=07ia%uvUjM^5P^>lA{l2KzsqN`@k~NU*ct;t zu4nK1uPqJyYUE}ea=vx0fGK9(=xq~r7dI%rYj&2JJr1+UD#u}0sa!8+9amrZe8ZTX zm&MvBYA`zh0Qc=?zNb+*{VM9uPY#WUP-0FMFB;wH1?4pVJCHguDElu+-91`P>SEtt zMxZWabCUUiBoF7CwO97eI|0y)@SJr%tBnn-}L>_#rLbN0$~qd2}!#pm9Y} zrEjg6A$=g-l_z2~RT{D}mH-gvsVV=TXmfB8%4IO=??Bl^GGuS9BcK4Dt&ppqlB~`f zZg*5Sm)S_2(nzh_m~v6YLSjz{K*(o+G5Y@pLjHe(jaxnY?_uNqk13)b|BbU<=uFdp zP}l6f{|g}auE_sA5Ii&6OFA3dv2-(+45VV=jZa%Tp&OSRNcCG-14 z?I%-`Bc^PnZBA&|Uws38ovu2xe+q;o)i%ERtoKi-Wwx}IPtDA|)Sh0Hn)m^N@h6Uu z70u(DG2BB_LA?H8qBu4WW>9!2oP=LVMM20}npgc35R{!0M(ZgU#58U)f8D=gWw zWP`9<4QtWaQ&s)BmS9#gsY1cP6KT`?UT$e^P6=#%<<_A~{I|SIAuk`iCKWD=1CD7o zaNeSQK5!rv1;`7aO@LVGy?gf$R`0SN#SR0dVwt0N@Yhw_sRVv%>XbVPwey(EP5uE; zROnm|L+6Jl4Pqfhn=!8NozYWe-2TQu(t>5g9ypjS^E*2wn-D97_SvX6+1LRAWR-er zsk)ifd)wPTn0O~n^WtDpASa;PwOaLPY|MMH>dC*rFOuH)J7O%yv)BGXaskxU zz+t=SUs#u8H@IHp51Ma*-&Y#@5Bv*8UPM&<_p2Fx-zR8)U}CYD^l$0^HsSDJns{uB zwuFX-1z2%-?*iTY2U6JVP9TBy2Y1GUt4x~le~mk{Nfa;(Oen{03N#xmRdB6V7Pyh zf6WRa=|F`)FWa!tl70!aet%_FkY*;5@ffU diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGatewayTwoTimes.bpmn2 b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGatewayTwoTimes.bpmn2 deleted file mode 100644 index 5afeaa5..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGatewayTwoTimes.bpmn2 +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - SequenceFlow_8 - - - SequenceFlow_8 - SequenceFlow_14 - SequenceFlow_15 - - - - - SequenceFlow_14 - SequenceFlow_16 - - - - - SequenceFlow_15 - SequenceFlow_17 - - - - - - SequenceFlow_19 - SequenceFlow_18 - - - - - SequenceFlow_21 - SequenceFlow_20 - - - - - SequenceFlow_22 - SequenceFlow_19 - SequenceFlow_21 - - - - - SequenceFlow_16 - SequenceFlow_17 - SequenceFlow_22 - - - - SequenceFlow_18 - SequenceFlow_20 - SequenceFlow_23 - - - - SequenceFlow_23 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGatewayTwoTimes.png b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ParallelGatewayTwoTimes.png deleted file mode 100644 index fdfb5b903f2eb967796cc73b89934f37e13a8d46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14748 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%0D_*iSJ{q9`<1RH12 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 - - - - - - - - - - - _0BC82C2A-8A47-485A-9C1D-01CAA40BDD98 - - - - - - - - _0BC82C2A-8A47-485A-9C1D-01CAA40BDD98 - _3790D2FB-21CA-4C51-B897-135FF4FC7C1E - - - - - - _234827E1-D28E-41B9-93CE-B4D1686C29EA_userFInputX - _234827E1-D28E-41B9-93CE-B4D1686C29EA_responseFInputX - - - _234827E1-D28E-41B9-93CE-B4D1686C29EA_responseFOutputX - - - - user - _234827E1-D28E-41B9-93CE-B4D1686C29EA_userFInputX - - - response - _234827E1-D28E-41B9-93CE-B4D1686C29EA_responseFInputX - - - _234827E1-D28E-41B9-93CE-B4D1686C29EA_responseFOutputX - response - - - - - _3790D2FB-21CA-4C51-B897-135FF4FC7C1E - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _3Z0kQBEFEeWHAOmy5Ksi-w - _3Z0kQBEFEeWHAOmy5Ksi-w - - diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/RuleTask.png b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/RuleTask.png deleted file mode 100644 index 105843f46c17246e3ac0d26e653191d8f1dfd291..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6741 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 diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ScriptTask.bpmn2 b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ScriptTask.bpmn2 deleted file mode 100644 index ea79302..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ScriptTask.bpmn2 +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - _DA0951B7-5BC8-49AE-9E35-AA855177BBB6 - - - _DA0951B7-5BC8-49AE-9E35-AA855177BBB6 - _6BF9DBC4-39E3-48DF-ABBC-896E9E534ECC - kcontext.getVariable("initiator"); - - - - _6BF9DBC4-39E3-48DF-ABBC-896E9E534ECC - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ScriptTask.png b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/ScriptTask.png deleted file mode 100644 index 96cffbac5af86b3870efdf81e622236f29d67487..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8089 zcmeHsXH-*Nw{8F_f)wc>(xfAVD!q5W8{d1*k2~&of7~B;j5j0MYwi8a_3SmDwRZMgb4BXus1Xy=69NDLVhwfW zXPELD^8*oJV~#6Eec_lQ+~3f|^O>~|v#Yy{J=ht|4OnbTVgke6#DP;vIG*-&a}iKL2WRkRrU}l)K0`z?=}DEv$sV#bL&p9BTA^ zV#_h>W&5HdSE^SwxiDD24mQ@kFwWn^wJSnv3MnWm({t&1H}EUycvrja@Hf7`@Z;Ay zMv8F&03jY2(<2jYElFD!D8IFxiw%h17wU@XDgYoY=j&>13jujD+khOvFd5eUrZ!e) zu$>I+b5U&pZC53bBUs(v9c19IV`%FSv6Zl6m6Iiu_LamCKtZ0?%)U@(n1`gV4C}vm zB{B8e%RpA@bgii-3^>c#8l9`2~Rg)7%qm|9>#QMgB6s zZ7it=_60ecD1)IOm8sGxx0ztCGINe!sA1L!%}&eQR)W`6@!$fpGn9$9yH2N+k?8EU;)G#CG2vx zJ8j98E&V+=N9BYa2A>&T4z%bo_YU}Sk{y`+!WA?DysF-|qWau{Qy86`Ov$O68Mr;J z5z%T`9BZy?^eizjFwOmD3b)n%-KxlE&otBizP=2(Ur0T!X&-4tFXkLlKsFEe6A{c*tVRp>y5y04-+zRxa7v5ow(*9Z=msP+WF3><`f5a?YaO&0sTA-q!@N>e ztxGl2#h#g*Fk_+Rs(v@z6{9l|{Ej1fi$U5A%i;oy|IaH{N`@2sX%QO2T)7_%j9gq> z2l5^IOtI&f$p}6@$;rlJJCBDKG3Ed%?-~#ptO~6>BYZ~dta`sRf^!YcjV>lP;&Y^~ zz^gF!$EIX z87-a^F)C&;K7>y#wXIxT*qc(((P6%g8X6i33OwQA-W?s`nVA`v*q+2!z4ZwYim5b6 z+QrbZ5##vfLq=a7i{7i;v8Mk_50!{jcqL;3bsp+WPmErN4 z2IAe@<73UmMG+#RN{`Lt<70nfc!J4V@RZ!j5`olnDd-n(#BV1ar!ncm_4Q4@FLhfW zG>XsLEdCnHoRc)SsDbVJTX}9GIRK!o1mC7~5H(66(JVhAU8LJtGTuv|C`1lqEsQth zYfE)YEg9E@x0cMw{%!{u8j3>AZJJ>Qt{1pX{``aV=iZHSQsBh+ z9woWht5s6r9J06`9C~dVVS+fOk0p}d$H%Q#x@yPAlM$p?fDxpNM{(gQc)2&J!Qooyr|3ms=0UiAdPjysDqOF?l z9|--Svk?Aj`9`fJdYd#X$l)s+epB0x&&D&Y`49DIY*{8mcP@I0VsARGCKLVB>tq9Z z2f#qxx$J%)Q0Hud2rR)E5Znn}NqlzWRocb`a+g^q!ER6Vs{sI->hOw6i=RMB(fZvM zEfO<*);|kQey^70*;eL63RX=yXdTUO>~A_kD107Ofs3bH7E_SV2h#TV!XVOL3y95i z8_HFt?wQ=okv-h~8Cjp8lNFRT46(HzvJcBv%O;y8(Ess0tqIV$-oKlH**D7L9wQ*AAGdComqk}38SeqZLZV;m!ZRIAp#e#pb zXet$dGyI89eN(WxK@%wU)iok>=!+3*gfcLDS6;=-0`T;E-p57zB_)s%WueGF8|IQVu^>tJuI=?`w*2a&!>1?|T)M#OlX@wY zz5V9fn!5N-RP1M=;h{nNC4vj|=;#|T*l`}UU~Z~ie)On3>dUz<5p_0*=$XM-US1RW zCzHCARRvf!S+;g_Q`iu~rJX^2%@!Clk#;RNhzsB{NO68V2z@+wL=-)wW^rbF;tl{H zP~E8hC#A2oSXubCIqydj0F?ctkth{OC-cP2l%xm2tKJfMp*@?L-)RP}e|dioyF$cr z>-8EGilfmY{KDxiw5vOgh+1=&rq&Q;W@Z4{`dw%5E3xI9=looIw+CV+23+Rl z3QA^kHkW^T`uYHv2L>zL!lGP9Xzszu8&>PyPO_FNe;K;{4|vF5{2!QL)KRbDO${@t z@s=iR9WXs3^Os;{_NQ_}4P`|fe_G-bHrAZV z#m=$zW$(p?<8Gq9^On@+K!?lpcOCv;@AO4EprdKby?rt72Tv+5QA3e0n=AGA=y~X$ zQs$3;9dF&9914(j6N4=@CykG^Lw~qdvd@oBOe&6f)ouYTS_X&s2xcf2(<-lLRyE*< zZ&B-V{+DsF)DN}U$k$9CdtWfdrA1YjL{-akeff~C$kzMZcmnWhM=tPk{eur{f-jko z1{<~J(_${(fX2p`Ul=S6P);v$KC*=6_@5eN9r%WRM8usSwnAhNeeEj=U$%1ZXbr@a zq|K7VEcJYQQeiuk6~{^5)I*=CE+QzV_Vdhj_XTn^ZZN`V?D@}f7AE3H$7;@gZTXd7 zJ|B(En~q6qKJ5?n*_)%T%Nnf6+CzsIG-u+oL8yWpqRyBdeu?FW2Sg28*nx| z*f{!qY=Yfxzr))c{$oS>S8t?nK<5o(ZYdOMOf_Z(-2v^qOEkh=pfzs`E3L zn=n=J_4_=Jc`{elMi3Q2ekw*USFW7un}o&rR~qaFkZq^)60?q}+0L5a9{WG*XtY}0>3r?H1Y94XremyX`8-;_9VuMGQwq^m zyC?hrEb?95k`d_h117S4AOL}+M0Q~u>9G;55GpP8p@S1wDW!U8fpFK= zZ(7llz;g)BL=}Z12O12vsd|5z`%D#dLMo!U1@mz!Z zqDb`UqqSe|kVh zs%cK9lxmQY8W`l`<{|(bY+u6*{f^cM7ThGooqw0&la4fWBy*dqF2NfvD#e1jV}A~U z_fT;_U8$_SQrPaYNPW7#-`X0ky?I9c+{cLbkfyLJ0a`7-B(IH?l%4rNDBoarO(6=k zN_q+Z@~-biqpWME3rYk}jDNV?gvQs^AzPj8aIPAK8blvXC|A+?Hff)C97}1y#zN;# z86+Eo$p8l|!kj#NczL-|B_FqT_naLCJ{Hp{Fb4Cma;jv;?aM=_PsPQD2g_T;3ud_{6?9L1-{Yf&U| z?1Msu9EI=o=gm%QqUgF)KBpLamM-p2#_(=xf1(?s+f#VH=TLVKS;-zG_g#G2#Rz7R zBhTD!BR~Kc{Urvb5A$)pHb?42xB1~?{XlltU;&n;a76J-pES9=>9!Jo3Db8o{c&y? zDDzS;;MTE3rI@!Zf)k*x6@0;3pK4+w8fOO{|2~JBOF}OSM9=+atHeeIKbnvrq5)*o z4Ha_^vrXI5rvShmg`KbmOe=n#XYTsm-p|c5a?8rpkib0AX_vXlNdwm1oVac)v6wkZ zFS(L>hAT}Cr1Up`D>5xhF9_-K@DLxZ1BgEkSzlj89z3fT|4Yyzbk{_}RN}(T*kvjB z4s`Fkv(|mWHx#?h2kyQUww;(i*Gbr&8_sI*p!@1Fo_PA(RCI5D$+mqXQ?>g}kLk+# zLER*E>WrUbt~wjNi>RuqY8^i398&1`FgJ!S?AtINzHn5u)G!c&(j}KXRPY)+vKU2kx>v2g%*^BLIKDxg?v*WM9 z|3>TFJ4;cOtm|mLarNChXS^_!O$IT+`@Q|joXREZj$BeE9hd2Lh$8?%W@IQmoB`SF zXeSxzSv_dV@UDz7zh5WtRx#W2!tVXaz`^tZt`5b5&`(7IW)yQ|dGSF4A3fz9N5`28WL8}p>zO{Pmk7~U z1WQT0;rt=ze;&A$kmSgkAa6A}@wrulxEA@R@ke2DM@hd^Nxx!(01KK0gBco$iaw~Q z^w}S^<e>=_}iI2o9Z7*Sq&* zM!XK?Xp%qrHc4KcoucF6YWI$7q2+^hdy?bh1D)N1yqv*sJ(D2oDnxW1Wx`SeTN@W& z3=Dkc_eOw)1vZ>{aCTJR^d-EZ@u5X6mwitxGBT1J=S%*2E~l>K8e?snM@?~;jaz%m zE8EJra&Jp$?$}JqwV0oax8)4f#U^-i&v}0c*2I~Wbrrj_efM=U zO%k&_yDc%C_0p%~Ee5IVsha8U?$F_$6iOJLMz{K(%I?na@*@k21$`$)d>S5Xl@9vH zG&kRqkS6Bh3l ze=eakLRr82=4oq$YeW?lMH|8Uo(l9Cv`@I0Z}%~IBKgYhXpFDY>}t0=Or~REYGGz- zfv$S`xh3FaG;cyJZm*oM>2gS0nxyTU(;!c@Q5+FdPjH0X&5uAYb1ye9L6T^LoFcCK zDR0r=I5Tu#j66O^|FmD$Bc6~sen1l^U;^QTK=^(>w8Gy}F2Z_!Eq2*-SH`m_BvO`* z$*CQatkA=ufcMH$Vs@mD^ti;gJN20ebAjuvvUW^_lG1vv;|LN`N@dIKhm2fBSdq6^ zbv$yI&s|3lnDpCkOf5c;E232-hja!(pG`u_aGI0diG#_`?IxB?Lbo&{ zBkr74M>&atc$yD(i$0cxYO$$bfl11=Q6#p5Bw109`AX&eFO8pqiPx!&5W~t6Z$**U zOE)^L9tM(ZWCV{^$oC7RZ6~Uhw-!s(l|%Dl8uuyHZnJrqG$5vf|ChAj_|)VLR=4$t VV!+d**4zDS4HX^b3Pr2X{{ljRai;(P diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/StartEnd.bpmn2 b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/StartEnd.bpmn2 deleted file mode 100644 index af5300e..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/StartEnd.bpmn2 +++ /dev/null @@ -1,26 +0,0 @@ - - - - - _2A83F4AE-195A-41BB-91EA-46D681720FF6 - - - - _2A83F4AE-195A-41BB-91EA-46D681720FF6 - - - - - - - - - - - - - - - - - diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/StartEnd.png b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/processes/StartEnd.png deleted file mode 100644 index 0198f1cc82b41a6bce8e7c16e13649903a4e36fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4932 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 uCMLJ|?C diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/ValidationUserFact.drl b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/ValidationUserFact.drl deleted file mode 100644 index 81e66f5..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/ValidationUserFact.drl +++ /dev/null @@ -1,12 +0,0 @@ -package org.kie.perf.jbpm.rule; - -import org.jbpm.test.performance.jbpm.model.UserFact; -import org.jbpm.test.performance.jbpm.model.Response; - -rule "Evaluate UserFact" ruleflow-group "Validation" - when - UserFact(age < 18) - r: Response() - then - r.setMessage("Too young"); -end diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Jumbo Mortgage.rdrl b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Jumbo Mortgage.rdrl deleted file mode 100644 index d4d34a9..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Jumbo Mortgage.rdrl +++ /dev/null @@ -1,13 +0,0 @@ -package com.redhat.bpms.examples.mortgage; - -rule "Jumbo Mortgage" - dialect "mvel" - ruleflow-group "apr-calculation" - salience -5 - no-loop true - when - application : Application( mortgageAmount > 417000 ) - then - System.out.println("Executed Rule: " + drools.getRule().getName() ); - application.setApr( application.getApr() + 0.5 ); -end diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Low Down Payment based on Appraisal.rdrl b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Low Down Payment based on Appraisal.rdrl deleted file mode 100644 index 424324b..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Low Down Payment based on Appraisal.rdrl +++ /dev/null @@ -1,19 +0,0 @@ -package com.redhat.bpms.examples.mortgage; - -rule "Low Down Payment based on Appraisal" - dialect "mvel" - ruleflow-group "apr-calculation" - salience -3 - no-loop true - when - appraised : Appraisal( ) - application : Application( mortgageAmount > ( appraised.value * 8 / 10 ) ) - then - double ratio = application.getMortgageAmount().doubleValue() / appraised.getValue().doubleValue(); - int brackets = (int)((ratio - 0.8) / 0.05); - brackets++; - double aprSurcharge = 0.75 * brackets; - System.out.println( "aprSurcharge added is " + aprSurcharge ); - application.setApr( application.getApr() + aprSurcharge ); - System.out.println("Executed Rule: " + drools.getRule().getName() ); -end diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Low Down Payment before Appraisal.rdrl b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Low Down Payment before Appraisal.rdrl deleted file mode 100644 index ba3d688..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Low Down Payment before Appraisal.rdrl +++ /dev/null @@ -1,20 +0,0 @@ -package com.redhat.bpms.examples.mortgage; - -rule "Low Down Payment before Appraisal" - dialect "mvel" - ruleflow-group "apr-calculation" - salience -3 - no-loop true - when - not (Appraisal( )) - property : Property( ) - application : Application( mortgageAmount > ( property.price * 8 / 10 ) ) - then - double ratio = application.getMortgageAmount().doubleValue() / property.getPrice().doubleValue(); - int brackets = (int)((ratio - 0.8) / 0.05); - brackets++; - double aprSurcharge = 0.75 * brackets; - System.out.println( "aprSurcharge added is " + aprSurcharge ); - application.setApr( application.getApr() + aprSurcharge ); - System.out.println("Executed Rule: " + drools.getRule().getName() ); -end diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Mortgage Calculation.drl b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Mortgage Calculation.drl deleted file mode 100644 index d3978e2..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Mortgage Calculation.drl +++ /dev/null @@ -1,200 +0,0 @@ -package com.redhat.bpms.examples.mortgage; - -//from row number: 1 -rule "Row 1 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore < 660 ) - f2 : Application( amortization == 30 ) - then - f2.setApr( 10.0 ); -end - -//from row number: 2 -rule "Row 2 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore >= 660 , creditScore < 680 ) - f2 : Application( amortization == 30 ) - then - f2.setApr( 5.0 ); -end - -//from row number: 3 -rule "Row 3 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore >= 680 , creditScore < 700 ) - f2 : Application( amortization == 30 ) - then - f2.setApr( 5.0 ); -end - -//from row number: 4 -rule "Row 4 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore >= 700 , creditScore < 720 ) - f2 : Application( amortization == 30 ) - then - f2.setApr( 4.75 ); -end - -//from row number: 5 -rule "Row 5 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore >= 720 , creditScore < 740 ) - f2 : Application( amortization == 30 ) - then - f2.setApr( 4.625 ); -end - -//from row number: 6 -rule "Row 6 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore >= 740 ) - f2 : Application( amortization == 30 ) - then - f2.setApr( 4.5 ); -end - -//from row number: 7 -rule "Row 7 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore < 660 ) - f2 : Application( amortization == 15 ) - then - f2.setApr( 9.25 ); -end - -//from row number: 8 -rule "Row 8 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore >= 660 , creditScore < 680 ) - f2 : Application( amortization == 15 ) - then - f2.setApr( 4.25 ); -end - -//from row number: 9 -rule "Row 9 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore >= 680 , creditScore < 700 ) - f2 : Application( amortization == 15 ) - then - f2.setApr( 4.25 ); -end - -//from row number: 10 -rule "Row 10 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore >= 700 , creditScore < 720 ) - f2 : Application( amortization == 15 ) - then - f2.setApr( 4.0 ); -end - -//from row number: 11 -rule "Row 11 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore >= 720 , creditScore < 740 ) - f2 : Application( amortization == 15 ) - then - f2.setApr( 3.875 ); -end - -//from row number: 12 -rule "Row 12 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore >= 740 ) - f2 : Application( amortization == 15 ) - then - f2.setApr( 3.75 ); -end - -//from row number: 13 -rule "Row 13 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore < 660 ) - f2 : Application( amortization == 10 ) - then - f2.setApr( 10.5 ); -end - -//from row number: 14 -rule "Row 14 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore >= 660 , creditScore < 680 ) - f2 : Application( amortization == 10 ) - then - f2.setApr( 5.5 ); -end - -//from row number: 15 -rule "Row 15 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore >= 680 , creditScore < 700 ) - f2 : Application( amortization == 10 ) - then - f2.setApr( 5.5 ); -end - -//from row number: 16 -rule "Row 16 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore >= 700 , creditScore < 720 ) - f2 : Application( amortization == 10 ) - then - f2.setApr( 5.3 ); -end - -//from row number: 17 -rule "Row 17 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore >= 720 , creditScore < 740 ) - f2 : Application( amortization == 10 ) - then - f2.setApr( 5.15 ); -end - -//from row number: 18 -rule "Row 18 Mortgage Calculation" - ruleflow-group "apr-calculation" - dialect "mvel" - when - f1 : Applicant( creditScore >= 740 ) - f2 : Application( amortization == 10 ) - then - f2.setApr( 5.05 ); -end - diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Reset Validation.rdrl b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Reset Validation.rdrl deleted file mode 100644 index 8974f6f..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Reset Validation.rdrl +++ /dev/null @@ -1,11 +0,0 @@ -package com.redhat.bpms.examples.mortgage; - -rule "Reset Validation" - dialect "mvel" - ruleflow-group "resetValidation" - when - error : ValidationError( ) - then - retract( error ); - System.out.println("Executed Rule: " + drools.getRule().getName() ); -end diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Retract Facts After Calculation.drl b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Retract Facts After Calculation.drl deleted file mode 100644 index 224da09..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Retract Facts After Calculation.drl +++ /dev/null @@ -1,41 +0,0 @@ -package com.redhat.bpms.examples.mortgage; - -rule "Retract Applicant after Calculation" - dialect "mvel" - ruleflow-group "apr-calculation" - salience -10 - when - fact : Applicant( ) - then - retract(fact); -end - -rule "Retract Application after Calculation" - dialect "mvel" - ruleflow-group "apr-calculation" - salience -10 - when - fact : Application( ) - then - retract(fact); -end - -rule "Retract Appraisal after Calculation" - dialect "mvel" - ruleflow-group "apr-calculation" - salience -10 - when - fact : Appraisal( ) - then - retract(fact); -end - -rule "Retract Property after Calculation" - dialect "mvel" - ruleflow-group "apr-calculation" - salience -10 - when - fact : Property( ) - then - retract(fact); -end diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Retract Facts After Validation.drl b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Retract Facts After Validation.drl deleted file mode 100644 index 71223a4..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Retract Facts After Validation.drl +++ /dev/null @@ -1,41 +0,0 @@ -package com.redhat.bpms.examples.mortgage; - -rule "Retract Applicant after Validation" - dialect "mvel" - ruleflow-group "validation" - salience -10 - when - fact : Applicant( ) - then - retract(fact); -end - -rule "Retract Application after Validation" - dialect "mvel" - ruleflow-group "validation" - salience -10 - when - fact : Application( ) - then - retract(fact); -end - -rule "Retract Appraisal after Validation" - dialect "mvel" - ruleflow-group "validation" - salience -10 - when - fact : Appraisal( ) - then - retract(fact); -end - -rule "Retract Property after Validation" - dialect "mvel" - ruleflow-group "validation" - salience -10 - when - fact : Property( ) - then - retract(fact); -end diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate Amortization.rdrl b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate Amortization.rdrl deleted file mode 100644 index 4656154..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate Amortization.rdrl +++ /dev/null @@ -1,13 +0,0 @@ -package com.redhat.bpms.examples.mortgage; - -rule "Validate Amortization" - dialect "mvel" - ruleflow-group "validation" - when - Application( amortization not in ( 10, 15, 30 ) ) - then - ValidationError error = new ValidationError(); - error.setCause( "Amortization can only be between 10 and 40 years" ); - insert( error ); - System.out.println("Executed Rule: " + drools.getRule().getName() ); -end diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate Down Payment.rdrl b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate Down Payment.rdrl deleted file mode 100644 index 088de58..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate Down Payment.rdrl +++ /dev/null @@ -1,14 +0,0 @@ -package com.redhat.bpms.examples.mortgage; - -rule "Validate Down Payment" - dialect "mvel" - ruleflow-group "validation" - when - property : Property( ) - Application( downPayment < 0 || downPayment > property.price ) - then - ValidationError fact0 = new ValidationError(); - fact0.setCause( "Down payment can't be negative or larger than property value" ); - insert( fact0 ); - System.out.println("Executed Rule: " + drools.getRule().getName() ); -end diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate Income.rdrl b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate Income.rdrl deleted file mode 100644 index 5f31d98..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate Income.rdrl +++ /dev/null @@ -1,13 +0,0 @@ -package com.redhat.bpms.examples.mortgage; - -rule "Validate Income" - dialect "mvel" - ruleflow-group "validation" - when - Applicant( income < 10000 ) - then - ValidationError fact0 = new ValidationError(); - fact0.setCause( "Income too low" ); - insert( fact0 ); - System.out.println("Executed Rule: " + drools.getRule().getName() ); -end diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate Property Price.rdrl b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate Property Price.rdrl deleted file mode 100644 index fe720ca..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate Property Price.rdrl +++ /dev/null @@ -1,13 +0,0 @@ -package com.redhat.bpms.examples.mortgage; - -rule "Validate Property Price" - dialect "mvel" - ruleflow-group "validation" - when - Property( price < 50000 ) - then - ValidationError fact0 = new ValidationError(); - fact0.setCause( "Property price too low" ); - insert( fact0 ); - System.out.println("Executed Rule: " + drools.getRule().getName() ); -end diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate SSN.rdrl b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate SSN.rdrl deleted file mode 100644 index 1dcbb96..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/rules/mortgage/Validate SSN.rdrl +++ /dev/null @@ -1,13 +0,0 @@ -package com.redhat.bpms.examples.mortgage; - -rule "Validate SSN" - dialect "mvel" - ruleflow-group "validation" - when - Applicant( ssn < 100000000 || ssn > 999999999 ) - then - ValidationError fact0 = new ValidationError(); - fact0.setCause( "Invalid Social Security Number" ); - insert( fact0 ); - System.out.println("Executed Rule: " + drools.getRule().getName() ); -end diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/usergroups.properties b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/usergroups.properties deleted file mode 100644 index 13cadb2..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/usergroups.properties +++ /dev/null @@ -1,5 +0,0 @@ -admin=admins,managers,users -perfUser=admins,managers,users -engUser=users,engineering -bpmsAdmin=admin,manager,user,broker -Administrator=Administrators \ No newline at end of file diff --git a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/userinfo.properties b/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/userinfo.properties deleted file mode 100644 index 89b8859..0000000 --- a/jbpm-benchmarks/jbpm-performance-tests/src/main/resources/userinfo.properties +++ /dev/null @@ -1 +0,0 @@ -bpmsAdmin=bpmsAdmin@domain.com:en-UK:bpmsAdmin \ No newline at end of file diff --git a/jbpm-benchmarks/kieserver-performance-tests/${env.JBOSS_HOME}/standalone/configuration/application-roles.properties b/jbpm-benchmarks/kieserver-performance-tests/${env.JBOSS_HOME}/standalone/configuration/application-roles.properties deleted file mode 100644 index efbaf88..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/${env.JBOSS_HOME}/standalone/configuration/application-roles.properties +++ /dev/null @@ -1,25 +0,0 @@ -# -# Properties declaration of users roles for the realm 'ApplicationRealm' which is the default realm -# for application services on a new installation. -# -# This includes the following protocols: remote ejb, remote jndi, web, remote jms -# -# Users can be added to this properties file at any time, updates after the server has started -# will be automatically detected. -# -# The format of this file is as follows: - -# username=role1,role2,role3 -# -# A utility script is provided which can be executed from the bin folder to add the users: - -# - Linux -# bin/add-user.sh -# -# - Windows -# bin\add-user.bat -# -# The following illustrates how an admin user could be defined. -# -#admin=PowerUser,BillingAdmin, -#guest=guest -perfUser=admin,kie-server -engUser=admin,engineering,kie-server diff --git a/jbpm-benchmarks/kieserver-performance-tests/${env.JBOSS_HOME}/standalone/configuration/application-users.properties b/jbpm-benchmarks/kieserver-performance-tests/${env.JBOSS_HOME}/standalone/configuration/application-users.properties deleted file mode 100644 index 697010b..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/${env.JBOSS_HOME}/standalone/configuration/application-users.properties +++ /dev/null @@ -1,27 +0,0 @@ -# -# Properties declaration of users for the realm 'ApplicationRealm' which is the default realm -# for application services on a new installation. -# -# This includes the following protocols: remote ejb, remote jndi, web, remote jms -# -# Users can be added to this properties file at any time, updates after the server has started -# will be automatically detected. -# -# The format of this realm is as follows: - -# username=HEX( MD5( username ':' realm ':' password)) -# -# A utility script is provided which can be executed from the bin folder to add the users: - -# - Linux -# bin/add-user.sh -# -# - Windows -# bin\add-user.bat -# -#$REALM_NAME=ApplicationRealm$ This line is used by the add-user utility to identify the realm name already used in this file. -# -# The following illustrates how an admin user could be defined, this -# is for illustration only and does not correspond to a usable password. -# -#admin=2a0923285184943425d1f53ddd58ec7a -perfUser=85d26279a7e3234721609e795796e10a -engUser=65982f060e987af81818e2681c7086ea diff --git a/jbpm-benchmarks/kieserver-performance-tests/.gitignore b/jbpm-benchmarks/kieserver-performance-tests/.gitignore deleted file mode 100644 index f85165a..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -/target -/local -/bin - -*.class - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.jar -*.war -*.ear - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* - -# Eclipse, Netbeans and IntelliJ files -/.* -!.gitignore -/nbproject -/*.ipr -/*.iws -/*.iml \ No newline at end of file diff --git a/jbpm-benchmarks/kieserver-performance-tests/README.md b/jbpm-benchmarks/kieserver-performance-tests/README.md deleted file mode 100644 index d4e1e04..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# Kie Server Performance Tests -This module uses kie-performance-kit as a basis for the remote workbench scenarios kept in org.jbpm.test.performance.scenario. - -The tests should be executed via `run.sh` bash script since this script is by default used for running selected test suite when no scenario is selected. - -1. Setup JBoss EAP 6 -2. Setup KIE Performance Kit and Kie Server configuration in `pom.xml` -3. [optional] Configure JVM in `pom.xml` by adding arguments into *exec-maven-plugin* -4. Execute `run.sh` or manually *mvn clean install exec:exec -Dscenario=[scenario]* - -## JBoss EAP 6 Setup - -1. Set system property JBOSS_HOME `export JBOSS_HOME=` -2. Execute `mvn clean install` in kieserver-performance-tests to add application users -3. Start the application server with deployed kie-server -4. Execute `deploy.sh` in kieserver-assets module to build and deploy the kjar containing business processes and business rules for performance testing - -## KIE-Performance-Kit Setup - - -All configuration goes into `pom.xml` - -* Select suite and scenario - * Available suites = `LoadSuite, ConcurrentLoadSuite` - * To run the whole suite, comment scenario property to be null and make sure that `startScriptLocation` is set correctly. -* Select run type of the test suite - * Available run types - `Duration, Iteration` - * If Duration run type is chose, every scenario will run given given time according to time set into `duration` property (measured in seconds). - * If Iteration run type is chose, every scenario will run given number of iterations according to number set into `iterations` property. -* Turn ON/OFF warm up before scenario - * To enable warm up, set true to `warmUp` property. - * Every scenario will run X times according to `warmUpCount` property -* Running scenarios concurrently in threads - * When ConcurrentLoadSuite is used we are able to set number threads in which the test suites should run. - * The total number of tests = `threads` * iterations -* Reporting - * Types of reporters = Console, CSVSingle, CSV - * `Console` - * `CSV` - reports periodiacally after X seconds into CSV files for every metrics - * `CSVSingle` - reports scenario CSV files containing the metrics results - * `PerfRepo` - creates test definitions and test executions, reports results to remote PerfRepo (requires JDK 1.8, see https://github.com/PerfRepo/PerfRepo) -* Additional metrics - * `MemoryUsage` - HEAP and pools usage (Eden, Old Gen, etc.) - * `ThreadStates` - number of threads and their states (waited, runnable, new, blocked, etc.), deadlocks, ... - * `FileDescriptors` - number of opened descriptors, percentage of usage - * `CPUUsage` - histogram of cpu usage of the process/scenario (count, min, max, mean, median, ...) useful only when scenario iterations/duration takes longer than 300ms - * Set any of the metrics above as a list into *measure* property - -## Kie Server KIE-Performance-Kit Setup - -* remoteAPI = `REST` or `JMS` (it's not possible to test both at once) -* username - the main application user for most of the performance tests - diff --git a/jbpm-benchmarks/kieserver-performance-tests/pom.xml b/jbpm-benchmarks/kieserver-performance-tests/pom.xml deleted file mode 100644 index 50added..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/pom.xml +++ /dev/null @@ -1,282 +0,0 @@ - - 4.0.0 - - - org.jbpm - jbpm-benchmarks - 7.74.0-SNAPSHOT - - - org.jbpm - kieserver-performance-tests - - KIE Server Performance Tests - - - ${version.org.kie} - 4.1.18 - - - - BPM Suite - LoadSuite - - - ./run.sh - - - Iteration - 30 - 1 - - false - 3 - 30 - true - - - 5 - - - - Console - 5 - reportData - - - localhost - - - - - - - - MemoryUsage,FileDescriptors,ThreadStates - - - - - - - - REST - - perfUser - perfUser1234; - localhost - 8080 - kie-server - - - - ${env.JBOSS_HOME} - - - - - - org.kie - kie-performance-kit - ${kit.version} - - - io.dropwizard.metrics - metrics-core - ${metrics.version} - - - io.dropwizard.metrics - metrics-jvm - ${metrics.version} - - - org.wildfly - wildfly-jms-client-bom - ${version.org.wildfly} - - - org.glassfish - jakarta.json - - - org.jboss.spec.javax.jms - jboss-jms-api_2.0_spec - - - pom - - - - - - - org.kie - kie-api - - - org.kie - kie-internal - - - org.kie - kie-performance-kit - - - io.dropwizard.metrics - metrics-core - - - io.dropwizard.metrics - metrics-jvm - - - org.slf4j - slf4j-api - - - - org.kie.server - kie-server-api - - - org.kie.server - kie-server-client - - - org.wildfly - wildfly-jms-client-bom - pom - - - org.assertj - assertj-core - test - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - 1.8 - 1.8 - - - - org.codehaus.mojo - exec-maven-plugin - - java - - -DprojectName=${projectName} - -Dsuite=${suite} - -Dscenario=${scenario} - -DstartScriptLocation=${startScriptLocation} - -DrunType=${runType} - -Dduration=${duration} - -Diterations=${iterations} - -DwarmUp=${warmUp} - -DwarmUpCount=${warmUpCount} - -DwarmUpTime=${warmUpTime} - -DauditLogging=${auditLogging} - -Dthreads=${threads} - -DreporterType=${reporterType} - -Dperiodicity=${periodicity} - -DreportDataLocation=${reportDataLocation} - -Dmeasure=${measure} - - -DperfRepo.host=${perfRepo.host} - -DperfRepo.urlPath=${perfRepo.urlPath} - -DperfRepo.username=${perfRepo.username} - -DperfRepo.password=${perfRepo.password} - - -DtestUIDSuffix=${testUIDSuffix} - - -DremoteAPI=${remoteAPI} - -Dkieserver.username=${kieserver.username} - -Dkieserver.password=${kieserver.password} - -Dkieserver.host=${kieserver.host} - -Dkieserver.port=${kieserver.port} - -Dkieserver.name=${kieserver.name} - - -Ddatasource.jndi=${datasource.jndi} - -Dorg.kie.perf.suite.test-package=${org.kie.perf.suite.test-package} - - -classpath - - org.kie.perf.Executor - - - - - maven-resources-plugin - - - copy-user-config - process-test-resources - - copy-resources - - - ${jboss.home}/standalone/configuration - - - src/main/resources-eap-6/configuration - false - - - true - - - - - - - - - - task-assignment - - - - - org.codehaus.mojo - sql-maven-plugin - - - create-task-assignment-schema - process-resources - - execute - - - true - - src/main/resources/ddl-scripts/task-assignment-schema.sql - - - - - - - - - - - - - - Ivo Bek - bekivo@gmail.com - - - Marián Macik - mmacik@redhat.com - - - - diff --git a/jbpm-benchmarks/kieserver-performance-tests/run.sh b/jbpm-benchmarks/kieserver-performance-tests/run.sh deleted file mode 100755 index 97d095e..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/run.sh +++ /dev/null @@ -1,159 +0,0 @@ -#!/bin/sh -x - -PARAMS="" - -if [ -n "$suite" ] -then - PARAMS="$PARAMS -Dsuite=$suite" -fi - -if [ -n "$scenario" ] -then - PARAMS="$PARAMS -Dscenario=$scenario" -elif [ -n "$1" ] -then - PARAMS="$PARAMS -Dscenario=$1" -fi - -if [ -n "$startScriptLocation" ] -then - PARAMS="$PARAMS -DstartScriptLocation=$startScriptLocation" -fi - -if [ -n "$runType" ] -then - PARAMS="$PARAMS -DrunType=$runType" -fi - -if [ -n "$duration" ] -then - PARAMS="$PARAMS -Dduration=$duration" -fi - -if [ -n "$iterations" ] -then - PARAMS="$PARAMS -Diterations=$iterations" -fi - -if [ -n "$warmUp" ] -then - PARAMS="$PARAMS -DwarmUp=$warmUp" -fi - -if [ -n "$warmUpCount" ] -then - PARAMS="$PARAMS -DwarmUpCount=$warmUpCount" -fi - -if [ -n "$warmUpTime" ] -then - PARAMS="$PARAMS -DwarmUpTime=$warmUpTime" -fi - -if [ -n "$auditLogging" ] -then - PARAMS="$PARAMS -DauditLogging=$auditLogging" -fi - -if [ -n "$threads" ] -then - PARAMS="$PARAMS -Dthreads=$threads" -fi - -if [ -n "$reporterType" ] -then - PARAMS="$PARAMS -DreporterType=$reporterType" -fi - -if [ -n "$periodicity" ] -then - PARAMS="$PARAMS -Dperiodicity=$periodicity" -fi - -if [ -n "$reportDataLocation" ] -then - PARAMS="$PARAMS -DreportDataLocation=$reportDataLocation" -fi - -if [ -n "$perfRepo_host" ] -then - PARAMS="$PARAMS -DperfRepo.host=$perfRepo_host" -fi - -if [ -n "$perfRepo_urlPath" ] -then - PARAMS="$PARAMS -DperfRepo.urlPath=$perfRepo_urlPath" -fi - -if [ -n "$perfRepo_username" ] -then - PARAMS="$PARAMS -DperfRepo.username=$perfRepo_username" -fi - -if [ -n "$perfRepo_password" ] -then - PARAMS="$PARAMS -DperfRepo.password=$perfRepo_password" -fi - -if [ -n "$testUIDSuffix" ] -then - PARAMS="$PARAMS -DtestUIDSuffix=$testUIDSuffix" -fi - -if [ -n "$remoteAPI" ] -then - PARAMS="$PARAMS -DremoteAPI=$remoteAPI" -fi - -if [ -n "$kieserver_username" ] -then - PARAMS="$PARAMS -Dkieserver.username=$kieserver_username" -fi - -if [ -n "$kieserver_password" ] -then - PARAMS="$PARAMS -Dkieserver.password=$kieserver_password" -fi - -if [ -n "$kieserver_host" ] -then - PARAMS="$PARAMS -Dkieserver.host=$kieserver_host" -fi - -if [ -n "$kieserver_port" ] -then - PARAMS="$PARAMS -Dkieserver.port=$kieserver_port" -fi - -if [ -n "$workbench_name" ] -then - PARAMS="$PARAMS -Dkieserver.name=$workbench_name" -fi - -if [ -n "${datasource_jndi}" ] -then - PARAMS="${PARAMS} -Ddatasource.jndi=${datasource_jndi}" -fi - -if [ -n "${test_package}" ] -then - PARAMS="${PARAMS} -Dorg.kie.perf.suite.test-package=${test_package}" -fi - -if [ "$clean_db_between_scenarios" = true ] -then - # If we are running only one scenario (so we won't fork run for each scenario as we do when nothing is specified), we want to run also DB cleaning - if [ -n "$scenario" ] || [ -n "$1" ] - then - PARAMS="$PARAMS -Dperfdb" - fi -fi - -if [ -n "${maven_profiles}" ] -then - MAVEN_PROFILES_LINE="-P${maven_profiles}" -fi - -# Provide Nexus location, group and Maven local repository directory to settings.xml -PARAMS="$PARAMS -Dnexus.host=$LOCAL_NEXUS_IP -Dnexus.group=$NEXUS_GROUP -Dlocal.repo.dir=$WORKSPACE/maven-repo" -mvn -B clean install -s settings.xml $MAVEN_PROFILES_LINE exec:exec $PARAMS diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/model/Response.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/model/Response.java deleted file mode 100644 index 3ebae3d..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/model/Response.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.jbpm.test.performance.jbpm.model; - -import java.io.Serializable; - -public class Response implements Serializable { - - private static final long serialVersionUID = -3803154270051215845L; - - private String message; - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/model/UserFact.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/model/UserFact.java deleted file mode 100644 index ef056a0..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/jbpm/model/UserFact.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.jbpm.test.performance.jbpm.model; - -import java.io.Serializable; - -public class UserFact implements Serializable { - - private static final long serialVersionUID = -7364964864697675450L; - - private String id; - - private int age; - - public UserFact() { - - } - - public UserFact(String id, int age) { - this.id = id; - this.age = age; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public int getAge() { - return age; - } - - public void setAge(int age) { - this.age = age; - } - -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/kieserver/KieServerClient.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/kieserver/KieServerClient.java deleted file mode 100644 index 281349f..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/kieserver/KieServerClient.java +++ /dev/null @@ -1,101 +0,0 @@ -package org.jbpm.test.performance.kieserver; - -import java.util.Arrays; -import java.util.HashSet; -import java.util.Properties; -import java.util.Set; - -import javax.naming.Context; -import javax.naming.InitialContext; -import javax.naming.NamingException; - -import org.kie.server.api.model.KieContainerResource; -import org.kie.server.api.model.KieServiceResponse; -import org.kie.server.api.model.ReleaseId; -import org.kie.server.api.model.ServiceResponse; -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.QueryServicesClient; -import org.kie.server.client.UserTaskServicesClient; - -public class KieServerClient { - - private static final long DEFAULT_TIMEOUT = 30_000; - - public static String containerId = "kieserver-assets"; - - // assuming the version of kieserver-assets is kept in sync with KIE version - private static ReleaseId releaseId = new ReleaseId("org.jbpm.test.performance", "kieserver-assets", - KieServicesClient.class.getPackage().getImplementationVersion()); - - private ProcessServicesClient processClient; - private UserTaskServicesClient taskClient; - private QueryServicesClient queryClient; - - public KieServerClient(Class... classes) { - this(KieServerTestConfig.getInstance().getUsername(), KieServerTestConfig.getInstance().getPassword(), classes); - } - - public KieServerClient(String username, String password, Class... classes) { - init(username, password, classes); - } - - public ProcessServicesClient getProcessClient() { - return processClient; - } - - public UserTaskServicesClient getTaskClient() { - return taskClient; - } - - public QueryServicesClient getQueryClient() { - return queryClient; - } - - private void init(String username, String password, Class... classes) { - KieServerTestConfig config = KieServerTestConfig.getInstance(); - KieServicesConfiguration kconfig = null; - if (KieServerTestConfig.getInstance().getRemoteAPI().equals("JMS")) { - kconfig = KieServicesFactory.newJMSConfiguration(getInitialRemoteContext(), username, password); - } else { - kconfig = KieServicesFactory.newRestConfiguration(config.getApplicationUrl(), username, password); - } - - kconfig.setTimeout(DEFAULT_TIMEOUT); - if (classes != null) { - Set> jaxbClasses = new HashSet>(Arrays.asList(classes)); - kconfig.addExtraClasses(jaxbClasses); - } - KieServicesClient client = KieServicesFactory.newKieServicesClient(kconfig); - // create container if not exist - ServiceResponse container = client.getContainerInfo(containerId); - if (container.getType() == KieServiceResponse.ResponseType.FAILURE) { - container = client.createContainer(containerId, new KieContainerResource(containerId, releaseId)); - if (container.getType() == KieServiceResponse.ResponseType.FAILURE) { - throw new RuntimeException(container.getMsg()); - } - } - this.processClient = client.getServicesClient(ProcessServicesClient.class); - this.taskClient = client.getServicesClient(UserTaskServicesClient.class); - this.queryClient = client.getServicesClient(QueryServicesClient.class); - } - - private static InitialContext getInitialRemoteContext() { - InitialContext context = null; - try { - final Properties env = new Properties(); - KieServerTestConfig config = KieServerTestConfig.getInstance(); - env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory"); - env.put(Context.PROVIDER_URL, String.format("http-remoting://%s:%s", config.getHost(), config.getPort())); - env.put(Context.SECURITY_PRINCIPAL, config.getUsername()); - env.put(Context.SECURITY_CREDENTIALS, config.getPassword()); - context = new InitialContext(env); - } catch (NamingException e) { - throw new RuntimeException("Failed to create initial context!", e); - } - return context; - } - -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/kieserver/KieServerTestConfig.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/kieserver/KieServerTestConfig.java deleted file mode 100644 index 99e7fdf..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/kieserver/KieServerTestConfig.java +++ /dev/null @@ -1,129 +0,0 @@ -package org.jbpm.test.performance.kieserver; - -import java.util.Properties; - -import org.kie.perf.TestConfig; -import org.kie.server.client.KieServicesClient; - -public class KieServerTestConfig extends TestConfig { - - protected String clientVersion = KieServicesClient.class.getPackage().getImplementationVersion(); - - protected String username; - - protected String password; - - protected String host; - - protected int port; - - protected String name; - - protected String remoteAPI; - - protected String dataSourceJndi; - - protected KieServerTestConfig() { - - } - - public static KieServerTestConfig getInstance() { - if (tc == null || !(tc instanceof KieServerTestConfig)) { - tc = new KieServerTestConfig(); - try { - tc.loadProperties(); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - return (KieServerTestConfig) tc; - } - - @Override - public Properties loadProperties() throws Exception { - super.loadProperties(); - - username = System.getProperty("kieserver.username"); - properties.put("kieserver.username", username); - - password = System.getProperty("kieserver.password"); - properties.put("kieserver.password", password); - - host = System.getProperty("kieserver.host"); - properties.put("kieserver.host", host); - - port = Integer.valueOf(System.getProperty("kieserver.port")); - properties.put("kieserver.port", port); - - name = System.getProperty("kieserver.name"); - properties.put("kieserver.name", name); - - remoteAPI = System.getProperty("remoteAPI"); - properties.put("remoteAPI", remoteAPI); - addTag(remoteAPI); - - properties.put("client.version", clientVersion); - addTag(clientVersion); - - dataSourceJndi = System.getProperty("datasource.jndi"); - properties.put("datasource.jndi", dataSourceJndi); - - return properties; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getHost() { - return host; - } - - public void setHost(String host) { - this.host = host; - } - - public String getRemoteAPI() { - return remoteAPI; - } - - public void setRemoteAPI(String remoteAPI) { - this.remoteAPI = remoteAPI; - } - - public int getPort() { - return port; - } - - public void setPort(int port) { - this.port = port; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getApplicationUrl() { - return "http://" + host + ":" + port + "/" + name + "/services/rest/server"; - } - - public String getDataSourceJndi() { - return dataSourceJndi; - } -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/kieserver/constant/ProcessStorage.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/kieserver/constant/ProcessStorage.java deleted file mode 100644 index 9e2b076..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/kieserver/constant/ProcessStorage.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.jbpm.test.performance.kieserver.constant; - -public enum ProcessStorage { - - HumanTask("org.kie.perf.HumanTask"), GroupHumanTask("org.kie.perf.GroupHumanTask"), ParallelGatewayTwoTimes( - "org.kie.perf.ParallelGatewayTwoTimes"), RuleTask("org.kie.perf.RuleTask"), StartEnd("org.kie.perf.StartEnd"), IntermediateTimer( - "org.kie.perf.IntermediateTimer"); - - private String processDefinitionId; - - private ProcessStorage(String processDefinitionId) { - this.processDefinitionId = processDefinitionId; - } - - public String getProcessDefinitionId() { - return processDefinitionId; - } - -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/kieserver/constant/UserStorage.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/kieserver/constant/UserStorage.java deleted file mode 100644 index 6bbadb2..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/kieserver/constant/UserStorage.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.jbpm.test.performance.kieserver.constant; - -public enum UserStorage { - - PerfUser("perfUser", "perfUser1234;"), EngUser("engUser", "engUser1234;"); - - private String userId; - private String password; - - private UserStorage(String userId, String password) { - this.userId = userId; - this.password = password; - } - - public String getUserId() { - return userId; - } - - public String getPassword() { - return password; - } - -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerGroupHumanTaskProcess.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerGroupHumanTaskProcess.java deleted file mode 100644 index 59b31cd..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerGroupHumanTaskProcess.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import java.util.ArrayList; -import java.util.List; - -import org.jbpm.test.performance.kieserver.KieServerClient; -import org.jbpm.test.performance.kieserver.constant.UserStorage; -import org.kie.perf.SharedMetricRegistry; -import org.jbpm.test.performance.kieserver.constant.ProcessStorage; -import org.kie.perf.scenario.IPerfTest; -import org.kie.server.api.model.instance.ProcessInstance; -import org.kie.server.api.model.instance.TaskSummary; -import org.kie.server.client.ProcessServicesClient; -import org.kie.server.client.QueryServicesClient; -import org.kie.server.client.UserTaskServicesClient; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; -import com.codahale.metrics.Timer; - -public class LServerGroupHumanTaskProcess implements IPerfTest { - - private Timer startProcess; - private Timer queryTaskDuration; - private Timer claimTaskDuration; - private Timer startTaskDuration; - private Timer completeTaskDuration; - private Meter completedProcess; - - private KieServerClient client; - - private ProcessServicesClient processClient; - private UserTaskServicesClient taskClient; - private QueryServicesClient queryClient; - - @Override - public void init() { - client = new KieServerClient(UserStorage.EngUser.getUserId(), UserStorage.EngUser.getPassword()); - processClient = client.getProcessClient(); - taskClient = client.getTaskClient(); - queryClient = client.getQueryClient(); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - completedProcess = metrics.meter(MetricRegistry.name(LServerGroupHumanTaskProcess.class, "scenario.process.completed")); - startProcess = metrics.timer(MetricRegistry.name(LServerGroupHumanTaskProcess.class, "scenario.process.start.duration")); - queryTaskDuration = metrics.timer(MetricRegistry.name(LServerGroupHumanTaskProcess.class, "scenario.task.query.duration")); - claimTaskDuration = metrics.timer(MetricRegistry.name(LServerGroupHumanTaskProcess.class, "scenario.task.claim.duration")); - startTaskDuration = metrics.timer(MetricRegistry.name(LServerGroupHumanTaskProcess.class, "scenario.task.start.duration")); - completeTaskDuration = metrics.timer(MetricRegistry.name(LServerGroupHumanTaskProcess.class, "scenario.task.complete.duration")); - } - - @Override - public void execute() { - Timer.Context context; - - context = startProcess.time(); - Long pid = processClient.startProcess(KieServerClient.containerId, ProcessStorage.GroupHumanTask.getProcessDefinitionId()); - context.stop(); - - context = queryTaskDuration.time(); - List status = new ArrayList(); - List tasks = taskClient.findTasksByStatusByProcessInstanceId(pid, status, 0, 1); - Long taskSummaryId = tasks.get(0).getId(); - context.stop(); - - context = claimTaskDuration.time(); - taskClient.claimTask(KieServerClient.containerId, taskSummaryId, UserStorage.EngUser.getUserId()); - context.stop(); - - context = startTaskDuration.time(); - taskClient.startTask(KieServerClient.containerId, taskSummaryId, UserStorage.EngUser.getUserId()); - context.stop(); - - context = completeTaskDuration.time(); - taskClient.completeTask(KieServerClient.containerId, taskSummaryId, UserStorage.EngUser.getUserId(), null); - context.stop(); - - ProcessInstance plog = queryClient.findProcessInstanceById(pid); - - if (plog != null && plog.getState() == org.kie.api.runtime.process.ProcessInstance.STATE_COMPLETED) { - completedProcess.mark(); - } - } - - @Override - public void close() { - - } - -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerHumanTaskProcess.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerHumanTaskProcess.java deleted file mode 100644 index 5744496..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerHumanTaskProcess.java +++ /dev/null @@ -1,91 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import java.util.ArrayList; -import java.util.List; - -import org.jbpm.test.performance.kieserver.KieServerClient; -import org.jbpm.test.performance.kieserver.constant.UserStorage; -import org.kie.perf.SharedMetricRegistry; -import org.jbpm.test.performance.kieserver.constant.ProcessStorage; -import org.kie.perf.scenario.IPerfTest; -import org.kie.server.api.model.instance.ProcessInstance; -import org.kie.server.api.model.instance.TaskSummary; -import org.kie.server.client.ProcessServicesClient; -import org.kie.server.client.QueryServicesClient; -import org.kie.server.client.UserTaskServicesClient; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; -import com.codahale.metrics.Timer; - -public class LServerHumanTaskProcess implements IPerfTest { - - private Timer startProcess; - private Timer queryTaskDuration; - private Timer startTaskDuration; - private Timer completeTaskDuration; - private Timer queryProcessInstanceDuration; - private Meter completedProcess; - - private KieServerClient client; - - private ProcessServicesClient processClient; - private UserTaskServicesClient taskClient; - private QueryServicesClient queryClient; - - @Override - public void init() { - client = new KieServerClient(); - processClient = client.getProcessClient(); - taskClient = client.getTaskClient(); - queryClient = client.getQueryClient(); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - startProcess = metrics.timer(MetricRegistry.name(LServerHumanTaskProcess.class, "scenario.process.start.duration")); - queryTaskDuration = metrics.timer(MetricRegistry.name(LServerGroupHumanTaskProcess.class, "scenario.task.query.duration")); - startTaskDuration = metrics.timer(MetricRegistry.name(LServerHumanTaskProcess.class, "scenario.task.start.duration")); - completeTaskDuration = metrics.timer(MetricRegistry.name(LServerHumanTaskProcess.class, "scenario.task.complete.duration")); - queryProcessInstanceDuration = metrics.timer(MetricRegistry.name(LServerHumanTaskProcess.class, "scenario.process.query.duration")); - completedProcess = metrics.meter(MetricRegistry.name(LServerHumanTaskProcess.class, "scenario.process.completed")); - } - - @Override - public void execute() { - Timer.Context context; - - context = startProcess.time(); - long pid = processClient.startProcess(KieServerClient.containerId, ProcessStorage.HumanTask.getProcessDefinitionId()); - context.stop(); - - context = queryTaskDuration.time(); - List status = new ArrayList(); - List tasks = taskClient.findTasksByStatusByProcessInstanceId(pid, status, 0, 1); - Long taskSummaryId = tasks.get(0).getId(); - context.stop(); - - context = startTaskDuration.time(); - taskClient.startTask(KieServerClient.containerId, taskSummaryId, UserStorage.PerfUser.getUserId()); - context.stop(); - - context = completeTaskDuration.time(); - taskClient.completeTask(KieServerClient.containerId, taskSummaryId, UserStorage.PerfUser.getUserId(), null); - context.stop(); - - context = queryProcessInstanceDuration.time(); - ProcessInstance plog = queryClient.findProcessInstanceById(pid); - context.stop(); - - if (plog != null && plog.getState() == org.kie.api.runtime.process.ProcessInstance.STATE_COMPLETED) { - completedProcess.mark(); - } - } - - @Override - public void close() { - - } - -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerParallelGatewayTwoTimesProcess.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerParallelGatewayTwoTimesProcess.java deleted file mode 100644 index ecbe934..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerParallelGatewayTwoTimesProcess.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import org.jbpm.test.performance.kieserver.KieServerClient; -import org.jbpm.test.performance.kieserver.constant.ProcessStorage; -import org.kie.perf.SharedMetricRegistry; -import org.kie.perf.scenario.IPerfTest; -import org.kie.server.api.model.instance.ProcessInstance; -import org.kie.server.client.ProcessServicesClient; -import org.kie.server.client.QueryServicesClient; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; - -public class LServerParallelGatewayTwoTimesProcess implements IPerfTest { - - private Meter completedProcess; - - private KieServerClient client; - - private ProcessServicesClient processClient; - private QueryServicesClient queryClient; - - @Override - public void init() { - client = new KieServerClient(); - processClient = client.getProcessClient(); - queryClient = client.getQueryClient(); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - completedProcess = metrics.meter(MetricRegistry.name(LServerParallelGatewayTwoTimesProcess.class, "scenario.process.completed")); - } - - @Override - public void execute() { - Long pid = processClient.startProcess(KieServerClient.containerId, ProcessStorage.ParallelGatewayTwoTimes.getProcessDefinitionId()); - ProcessInstance pi = queryClient.findProcessInstanceById(pid); - if (pi != null && pi.getState() == org.kie.api.runtime.process.ProcessInstance.STATE_COMPLETED) { - completedProcess.mark(); - } - } - - @Override - public void close() { - - } - -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerRuleTaskProcess.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerRuleTaskProcess.java deleted file mode 100644 index 989a546..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerRuleTaskProcess.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import java.util.HashMap; -import java.util.Map; - -import org.jbpm.test.performance.jbpm.model.UserFact; -import org.jbpm.test.performance.kieserver.KieServerClient; -import org.jbpm.test.performance.kieserver.constant.ProcessStorage; -import org.kie.perf.SharedMetricRegistry; -import org.kie.perf.scenario.IPerfTest; -import org.kie.server.api.model.instance.ProcessInstance; -import org.kie.server.client.ProcessServicesClient; -import org.kie.server.client.QueryServicesClient; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; - -public class LServerRuleTaskProcess implements IPerfTest { - - private Meter completedProcess; - - private KieServerClient client; - - private ProcessServicesClient processClient; - private QueryServicesClient queryClient; - - @Override - public void init() { - client = new KieServerClient(UserFact.class); - processClient = client.getProcessClient(); - queryClient = client.getQueryClient(); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - completedProcess = metrics.meter(MetricRegistry.name(LServerRuleTaskProcess.class, "scenario.process.completed")); - } - - @Override - public void execute() { - Map params = new HashMap(); - params.put("user", new UserFact("user", 15)); - Long pid = processClient.startProcess(KieServerClient.containerId, ProcessStorage.RuleTask.getProcessDefinitionId(), params); - ProcessInstance pi = queryClient.findProcessInstanceById(pid); - if (pi != null && pi.getState() == org.kie.api.runtime.process.ProcessInstance.STATE_COMPLETED) { - completedProcess.mark(); - } - } - - @Override - public void close() { - - } - -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerStartEndNoCheckProcess.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerStartEndNoCheckProcess.java deleted file mode 100644 index 1133c59..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerStartEndNoCheckProcess.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import org.jbpm.test.performance.kieserver.KieServerClient; -import org.jbpm.test.performance.kieserver.constant.ProcessStorage; -import org.kie.perf.scenario.IPerfTest; -import org.kie.server.client.ProcessServicesClient; - -public class LServerStartEndNoCheckProcess implements IPerfTest { - - private KieServerClient client; - - private ProcessServicesClient processClient; - - @Override - public void init() { - client = new KieServerClient(); - processClient = client.getProcessClient(); - } - - @Override - public void initMetrics() { - - } - - @Override - public void execute() { - processClient.startProcess(KieServerClient.containerId, ProcessStorage.StartEnd.getProcessDefinitionId()); - } - - @Override - public void close() { - - } - -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerStartEndProcess.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerStartEndProcess.java deleted file mode 100644 index bfad6f6..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/scenario/load/LServerStartEndProcess.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.jbpm.test.performance.scenario.load; - -import org.jbpm.test.performance.kieserver.KieServerClient; -import org.jbpm.test.performance.kieserver.constant.ProcessStorage; -import org.kie.perf.SharedMetricRegistry; -import org.kie.perf.scenario.IPerfTest; -import org.kie.server.api.model.instance.ProcessInstance; -import org.kie.server.client.ProcessServicesClient; -import org.kie.server.client.QueryServicesClient; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; - -public class LServerStartEndProcess implements IPerfTest { - - private Meter completedProcess; - - private KieServerClient client; - - private ProcessServicesClient processClient; - private QueryServicesClient queryClient; - - @Override - public void init() { - client = new KieServerClient(); - processClient = client.getProcessClient(); - queryClient = client.getQueryClient(); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - completedProcess = metrics.meter(MetricRegistry.name(LServerStartEndProcess.class, "scenario.process.completed")); - } - - @Override - public void execute() { - Long pid = processClient.startProcess(KieServerClient.containerId, ProcessStorage.StartEnd.getProcessDefinitionId()); - ProcessInstance pi = queryClient.findProcessInstanceById(pid); - if (pi != null && pi.getState() == org.kie.api.runtime.process.ProcessInstance.STATE_COMPLETED) { - completedProcess.mark(); - } - } - - @Override - public void close() { - - } - -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/TaskAssigning.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/TaskAssigning.java deleted file mode 100644 index 441825b..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/TaskAssigning.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright 2020 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jbpm.test.performance.taskassigning; - -import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.stream.Collectors; - -import org.jbpm.test.performance.kieserver.KieServerClient; -import org.jbpm.test.performance.kieserver.KieServerTestConfig; -import org.kie.server.api.model.definition.QueryDefinition; -import org.kie.server.api.model.instance.ProcessInstance; -import org.kie.server.client.ProcessServicesClient; -import org.kie.server.client.QueryServicesClient; -import org.kie.server.client.UserTaskServicesClient; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * A Common ground for task assigning load test scenarios. Before running any of these scenarios, following - * preconditions have to be met: - *
  • - * Two KIE servers are configured; the first one hosts a task planning extension and the second one task assignment - * and jBPM extensions. However, the scenario communicates only with the jBPM extension via KIE server remote API. - *
  • - *
  • - * KIE server task planning extension is configured to optimize for a planning window that can contain all tasks - * created in this scenario. - *
  • - */ -public abstract class TaskAssigning { - private static final Logger LOGGER = LoggerFactory.getLogger(TaskAssigning.class); - protected static final String CONTAINER_ID = "kieserver-assets"; - - private static final String DATA_SOURCE_JNDI = KieServerTestConfig.getInstance().getDataSourceJndi(); - private static final int ABORT_PROCESS_BATCH_SIZE = 100; - - private final KieServerClient client; - private final ProcessServicesClient processClient; - private final UserTaskServicesClient taskClient; - private final QueryServicesClient queryClient; - private AtomicInteger iterationCounter = new AtomicInteger(1); - - public TaskAssigning() { - // Must be set before the KIE Server client is created. - System.setProperty("org.kie.server.bypass.auth.user", Boolean.toString(true)); - client = new KieServerClient(); - processClient = client.getProcessClient(); - taskClient = client.getTaskClient(); - queryClient = client.getQueryClient(); - } - - public void execute() { - beforeScenario(); - LOGGER.debug(String.format("Starting a scenario %s iteration %d.", getClass().getSimpleName(), iterationCounter.get())); - try { - scenario(); - LOGGER.debug(String.format("Finished a scenario %s iteration %d.", - getClass().getSimpleName(), iterationCounter.getAndIncrement())); - } finally { - afterScenario(); - } - } - - protected abstract void beforeScenario(); - - protected abstract void scenario(); - - protected abstract void afterScenario(); - - protected void registerQuery(String queryName, String queryCode) { - QueryDefinition query = new QueryDefinition(); - query.setName(queryName); - query.setSource(DATA_SOURCE_JNDI); - query.setExpression(queryCode); - query.setTarget("CUSTOM"); - queryClient.replaceQuery(query); - } - - protected void abortAllProcesses() { - List processInstanceList = processClient.findProcessInstances(CONTAINER_ID, 0, Integer.MAX_VALUE); - List processInstanceIdList = processInstanceList.stream() - .map(processInstance -> processInstance.getId()) - .collect(Collectors.toList()); - abortAllProcessesInBatch(processInstanceIdList, ABORT_PROCESS_BATCH_SIZE); - } - - protected void abortAllProcessesInBatch(List processInstanceIdList, int batchSize) { - AtomicInteger counter = new AtomicInteger(); - processInstanceIdList.stream() - .collect(Collectors.groupingBy(__ -> counter.incrementAndGet() / batchSize)) - .values() - .forEach(batch -> processClient.abortProcessInstances(CONTAINER_ID, batch)); - } - - protected void startProcesses(String processId, int count) { - for (int i = 0; i < count; i++) { - getProcessClient().startProcess(CONTAINER_ID, processId); - } - } - - protected void shutdownExecutorService(ExecutorService executorService) { - executorService.shutdown(); - try { - if (!executorService.awaitTermination(1, TimeUnit.SECONDS)) { - executorService.shutdownNow(); - } - } catch (InterruptedException e) { - executorService.shutdownNow(); - } - } - - public ProcessServicesClient getProcessClient() { - return processClient; - } - - public UserTaskServicesClient getTaskClient() { - return taskClient; - } - - public QueryServicesClient getQueryClient() { - return queryClient; - } -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/TaskStatisticsUtil.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/TaskStatisticsUtil.java deleted file mode 100644 index 9849261..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/TaskStatisticsUtil.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2020 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jbpm.test.performance.taskassigning; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.function.Predicate; - -import org.kie.server.api.model.instance.TaskEventInstance; - -public class TaskStatisticsUtil { - - /** - * Computes delays between pairs of two consecutive task events. - * @param events a pre-sorted collection of events to search in. - * @param firstEventMatcher {@link Predicate} that picks the first event in the pair - * @param secondEventMatcher {@link Predicate} that picks the second event in the pair - */ - public static List delaysBetweenEvents(Collection events, - Predicate firstEventMatcher, Predicate secondEventMatcher) { - List delays = new ArrayList<>(); - TaskEventInstance previous = null; - for (TaskEventInstance taskEventInstance : events) { - if (firstEventMatcher.test(taskEventInstance)) { - previous = taskEventInstance; - } else if (previous != null - && taskEventInstance.getTaskId().equals(previous.getTaskId()) - && secondEventMatcher.test(taskEventInstance)) { - delays.add(taskEventInstance.getLogTime().getTime() - previous.getLogTime().getTime()); - previous = null; - } - } - return delays; - } - - public static long median(List numbers) { - if (numbers == null || numbers.isEmpty()) { - throw new IllegalArgumentException("The list of numbers cannot be empty nor null."); - } - Collections.sort(numbers); - int length = numbers.size(); - if (length % 2 == 1) { - return numbers.get(length / 2); - } else { - long leftMiddle = numbers.get(length / 2 - 1); - long rightMiddle = numbers.get(length / 2); - return Math.round(((double) (leftMiddle + rightMiddle)) / 2); - } - } -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/batch/TaskAssigningBatch.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/batch/TaskAssigningBatch.java deleted file mode 100644 index 50b499c..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/batch/TaskAssigningBatch.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright 2020 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jbpm.test.performance.taskassigning.batch; - -import java.util.List; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.MetricRegistry; -import com.codahale.metrics.Timer; -import org.jbpm.test.performance.taskassigning.TaskAssigning; -import org.kie.perf.SharedMetricRegistry; -import org.kie.perf.scenario.IPerfTest; -import org.kie.server.api.model.definition.TaskQueryFilterSpec; -import org.kie.server.api.model.instance.TaskInstance; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * This scenario simulates a batch task assignment. The measured metric is a delay between a moment when all tasks have - * been created and all of them have been assigned to users. - */ -abstract class TaskAssigningBatch extends TaskAssigning implements IPerfTest { - - private static final Logger LOGGER = LoggerFactory.getLogger(TaskAssigningBatch.class); - - private static final String PROCESS_ID = "test-jbpm-assignment.testTaskAssignment"; - private static final String UNASSIGNED_TASKS_QUERY_NAME = "unassignedTasksQuery"; - private static final String ASSIGNED_TASKS_QUERY_NAME = "assignedTasksQuery"; - private static final String UNASSIGNED_TASKS_QUERY = - "select ti.taskId from AuditTaskImpl ti where ti.actualOwner = '' and ti.status != 'Exited'"; - private static final String ASSIGNED_TASKS_QUERY = - "select ti.taskId from AuditTaskImpl ti where ti.actualOwner != '' and ti.status = 'Reserved'"; - - private final int processCount; - - private ScheduledExecutorService scheduledExecutorService; - private CountDownLatch allAssignedLatch; - private Meter completedScenario; - private Timer startProcessesDuration; - private Timer taskAssignmentDuration; - - public TaskAssigningBatch(int processCount) { - this.processCount = processCount; - } - - @Override - public void init() { - registerQuery(UNASSIGNED_TASKS_QUERY_NAME, UNASSIGNED_TASKS_QUERY); - registerQuery(ASSIGNED_TASKS_QUERY_NAME, ASSIGNED_TASKS_QUERY); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - completedScenario = metrics.meter(MetricRegistry.name(getClass(), "taskassigning.batch.completed")); - startProcessesDuration = metrics.timer(MetricRegistry.name(getClass(), "taskassigning.batch.processes_started.duration")); - taskAssignmentDuration = metrics.timer(MetricRegistry.name(getClass(), "taskassigning.batch.tasks_assigned.duration")); - } - - protected void beforeScenario() { - abortAllProcesses(); - scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(); - allAssignedLatch = new CountDownLatch(1); - } - - protected void scenario() { - scheduledExecutorService.scheduleAtFixedRate(() -> { - TaskQueryFilterSpec filterSpec = new TaskQueryFilterSpec(); - List unassignedTasks = getQueryClient().findHumanTasksWithFilters(UNASSIGNED_TASKS_QUERY_NAME, - filterSpec, 0, 1); - if (LOGGER.isTraceEnabled()) { - LOGGER.trace("Unassigned tasks present: " + unassignedTasks.size()); - } - if (unassignedTasks.isEmpty()) { - List assignedTasks = getQueryClient().findHumanTasksWithFilters(ASSIGNED_TASKS_QUERY_NAME, - filterSpec, 0, Integer.MAX_VALUE); - if (assignedTasks.size() == 3 * processCount) { - LOGGER.debug("No more unassigned tasks found."); - allAssignedLatch.countDown(); - } - } - }, 0, 500, TimeUnit.MILLISECONDS); - - LOGGER.debug("Creating processes ..."); - Timer.Context startProcessDurationContext = startProcessesDuration.time(); - Timer.Context taskAssignmentDurationContext = taskAssignmentDuration.time(); - - // Start processes in multiple threads and wait for all of them to be started. - startProcesses(PROCESS_ID, processCount); - startProcessDurationContext.stop(); - LOGGER.debug("All processes have been started"); - - try { - allAssignedLatch.await(); - taskAssignmentDurationContext.stop(); - LOGGER.debug("All tasks have been assigned"); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - throw new RuntimeException("Interrupted waiting during test.", e); - } - completedScenario.mark(); - } - - protected void afterScenario() { - shutdownExecutorService(scheduledExecutorService); - abortAllProcesses(); - } - - @Override - public void close() { - // nothing to do - } -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/batch/TaskAssigningBatch_300.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/batch/TaskAssigningBatch_300.java deleted file mode 100644 index 63c7dfa..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/batch/TaskAssigningBatch_300.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2020 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jbpm.test.performance.taskassigning.batch; - -import org.kie.perf.scenario.IPerfTest; - -/** - * This scenario simulates a batch task assignment of 300 tasks. To achieve this, 100 processes, - * that contain 3 user tasks each, are started. {@link TaskAssigningBatch} for more details. - */ -public class TaskAssigningBatch_300 extends TaskAssigningBatch implements IPerfTest { - - public TaskAssigningBatch_300() { - super(100); - } -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/batch/TaskAssigningBatch_3000.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/batch/TaskAssigningBatch_3000.java deleted file mode 100644 index 306236c..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/batch/TaskAssigningBatch_3000.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2020 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jbpm.test.performance.taskassigning.batch; - -import org.kie.perf.scenario.IPerfTest; - -/** - * This scenario simulates a batch task assignment of 3.000 tasks. To achieve this, 1.000 processes, - * that contain 3 user tasks each, are started. {@link TaskAssigningBatch} for more details. - */ -public class TaskAssigningBatch_3000 extends TaskAssigningBatch implements IPerfTest { - - public TaskAssigningBatch_3000() { - super(1_000); - } -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/updates/TaskAssigningUpdates.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/updates/TaskAssigningUpdates.java deleted file mode 100644 index bd99010..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/updates/TaskAssigningUpdates.java +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Copyright 2020 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jbpm.test.performance.taskassigning.updates; - -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Set; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; - -import com.codahale.metrics.MetricRegistry; -import com.codahale.metrics.Timer; -import org.jbpm.test.performance.taskassigning.TaskAssigning; -import org.jbpm.test.performance.taskassigning.TaskStatisticsUtil; -import org.kie.perf.SharedMetricRegistry; -import org.kie.perf.scenario.IPerfTest; -import org.kie.server.api.model.definition.QueryFilterSpec; -import org.kie.server.api.model.definition.TaskQueryFilterSpec; -import org.kie.server.api.model.instance.TaskEventInstance; -import org.kie.server.api.model.instance.TaskInstance; -import org.kie.server.api.util.QueryFilterSpecBuilder; -import org.kie.server.client.QueryServicesClient; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * This scenario tests impact of frequent changes to task assigning. After being created by starting processes, tasks - * are retrieved, started and completed. Together with a delay between completing a task and assigning a next one, - * this scenario simulates users working on their tasks, while each completion of a task represents a problem fact change - * for the planning extension. - *

    - * The scenario assumes that there are at least twice as many tasks as users. The publish windows size, system property - * org.kie.server.taskAssigning.publishWindowSize, must be set to 1 on the KIE server. - * Tasks are started and completed in as many threads as is the number of users configured on - * the KIE server. - *

    - * The measured metric is a median of delay between completing the first and starting the second one of two subsequent - * tasks of the same user. - */ -abstract class TaskAssigningUpdates extends TaskAssigning implements IPerfTest { - - private static final Logger LOGGER = LoggerFactory.getLogger(TaskAssigningUpdates.class); - - private static final String PROCESS_ID = "test-jbpm-assignment.testContinuousTaskAssignment"; - private static final String ASSIGNED_TASKS_QUERY_NAME = "assignedTasksQuery"; - private static final String ASSIGNED_TASKS_QUERY = - "select ti.taskId,ti.actualOwner from AuditTaskImpl ti where ti.actualOwner != '' and ti.status = 'Reserved'"; - - private static final String TASK_DELEGATED = "DELEGATED"; - private static final String TASK_ADDED = "ADDED"; - - private static final String TASK_EVENTS_QUERY_NAME = "taskEventsQuery"; - private static final String TASK_EVENTS_QUERY = "select taskId, logTime, type from TaskEvent " + - "where type in ('" + TASK_DELEGATED + "', '" + TASK_ADDED + "') order by taskId, logTime"; - - private static final long TASK_COMPLETION_DELAY_MILLIS = 5000L; - - private final int processCount; - private final int taskCount; - private final int userCount; - - private Set completedTasks; - private ExecutorService threadPoolExecutor; - private Timer completedScenario; - private Timer taskAssignmentDuration; - - public TaskAssigningUpdates(int processCount, int userCount) { - this.processCount = processCount; - this.taskCount = processCount * 9; - this.userCount = userCount; - if (taskCount < 2 * userCount) { - throw new IllegalArgumentException("For a relevance of the measured metric the number of tasks must be " + - "at least 2 * number of users. Please note that the same number of users must be configured on " + - "the KIE server before running this scenario"); - } - } - - @Override - public void init() { - registerQuery(ASSIGNED_TASKS_QUERY_NAME, ASSIGNED_TASKS_QUERY); - registerQuery(TASK_EVENTS_QUERY_NAME, TASK_EVENTS_QUERY); - } - - @Override - public void initMetrics() { - MetricRegistry metrics = SharedMetricRegistry.getInstance(); - completedScenario = metrics.timer(MetricRegistry.name(getClass(), "taskassigning.update.completed")); - taskAssignmentDuration = metrics.timer(MetricRegistry.name(getClass(), "taskassigning.update.task_assigned.duration")); - } - - protected void beforeScenario() { - abortAllProcesses(); - completedTasks = new ConcurrentHashMap<>().newKeySet(); - threadPoolExecutor = Executors.newFixedThreadPool(userCount); - } - - protected void scenario() { - Timer.Context completedScenarioContext = completedScenario.time(); - // Create tasks by starting new processes. - startProcesses(PROCESS_ID, processCount); - LOGGER.debug("All process instances have been started."); - Set tasksInProgress = new ConcurrentHashMap<>().newKeySet(); - // Keep completing tasks to introduce changes and trigger incremental re-planning. - while (completedTasks.size() < taskCount) { - TaskQueryFilterSpec filterSpec = new TaskQueryFilterSpec(); - List assignedTasks = getQueryClient() - .findHumanTasksWithFilters(ASSIGNED_TASKS_QUERY_NAME, filterSpec, 0, userCount); - if (assignedTasks.isEmpty()) { // If there are no tasks to work on, wait and retry. - sleep(500L); - continue; - } - LOGGER.trace(String.format("Completing %d tasks. Already finished %d tasks of %d.", - assignedTasks.size(), completedTasks.size(), taskCount)); - // Run each task in a separate thread. - for (TaskInstance task : assignedTasks) { - // Avoid submitting task some other thread already takes care of - if (!tasksInProgress.contains(task.getId())) { - tasksInProgress.add(task.getId()); - CompletableFuture.runAsync(() -> { - getTaskClient().startTask(CONTAINER_ID, task.getId(), task.getActualOwner()); - sleep(TASK_COMPLETION_DELAY_MILLIS); - getTaskClient().completeTask(CONTAINER_ID, task.getId(), task.getActualOwner(), new HashMap<>()); - completedTasks.add(task.getId()); - tasksInProgress.remove(task.getId()); - }, threadPoolExecutor); - } - } - } - LOGGER.debug("All tasks have been completed."); - completedScenarioContext.stop(); - - LOGGER.debug("Fetching information about task events."); - List taskAssignmentDelays = getTaskAssignmentDelays(); - - long median = TaskStatisticsUtil.median(taskAssignmentDelays); - LOGGER.debug(String.format( - "Median of delay between completing one task and starting another per a user is %d milliseconds", median)); - taskAssignmentDuration.update(median, TimeUnit.MILLISECONDS); - } - - protected void afterScenario() { - shutdownExecutorService(threadPoolExecutor); - abortAllProcesses(); - } - - /** - * Computes delays between ADDED and DELEGATED events for each task. - * @return a list of delays in milliseconds - */ - private List getTaskAssignmentDelays() { - final long minTaskId = completedTasks.stream() - .min(Long::compareTo) - .orElseThrow(() -> new IllegalStateException("Impossible state: there should be always a minimal task ID.")); - final long maxTaskId = completedTasks.stream() - .max(Long::compareTo) - .orElseThrow(() -> new IllegalStateException("Impossible state: there should be always a maximal task ID.")); - - QueryFilterSpec filterSpec = new QueryFilterSpecBuilder() - .between("taskId", minTaskId, maxTaskId) - .get(); - List taskEventRawList = getQueryClient() - .query(TASK_EVENTS_QUERY_NAME, QueryServicesClient.QUERY_MAP_RAW, filterSpec, 0, Integer.MAX_VALUE, List.class); - - List taskEvents = new ArrayList<>(taskEventRawList.size()); - for (List rawTaskEvent : taskEventRawList) { - taskEvents.add(mapTaskEventFromRawList(rawTaskEvent)); - } - - return TaskStatisticsUtil.delaysBetweenEvents(taskEvents, (taskEvent) -> TASK_ADDED.equals(taskEvent.getType()), - (taskEvent) -> TASK_DELEGATED.equals(taskEvent.getType())); - } - - private TaskEventInstance mapTaskEventFromRawList(List taskEventRaw) { - final int expectedColumnsCount = 3; - if (taskEventRaw.size() != expectedColumnsCount) { - throw new IllegalArgumentException("The raw task even record is supposed to consist of " + expectedColumnsCount + - " columns."); - } - - long taskId = ((Double) taskEventRaw.get(0)).longValue(); - Date logTime = (Date) taskEventRaw.get(1); - String type = (String) taskEventRaw.get(2); - - return TaskEventInstance.builder() - .taskId(taskId) - .date(logTime) - .type(type) - .build(); - } - - private void sleep(long millis) { - try { - Thread.sleep(millis); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - LOGGER.warn("Interrupted during Thread.sleep()"); - } - } - - @Override - public void close() { - // nothing to do - } -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/updates/TaskAssigningUpdates_1800.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/updates/TaskAssigningUpdates_1800.java deleted file mode 100644 index 9bede21..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/updates/TaskAssigningUpdates_1800.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2020 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jbpm.test.performance.taskassigning.updates; - -import org.kie.perf.scenario.IPerfTest; - -/** - * This scenario simulates a frequent updates to task assigning of 1_800 tasks. To achieve this, 200 processes, - * that contain 9 user tasks each, are started. {@link TaskAssigningUpdates} for more details. - */ -public class TaskAssigningUpdates_1800 extends TaskAssigningUpdates implements IPerfTest { - - public TaskAssigningUpdates_1800() { - super(200, 300); - } -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/updates/TaskAssigningUpdates_3600.java b/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/updates/TaskAssigningUpdates_3600.java deleted file mode 100644 index 90d07a6..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/java/org/jbpm/test/performance/taskassigning/updates/TaskAssigningUpdates_3600.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2020 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jbpm.test.performance.taskassigning.updates; - -import org.kie.perf.scenario.IPerfTest; - -/** - * This scenario simulates a frequent updates to task assigning of 3600 tasks. To achieve this, 400 processes, - * that contain 9 user tasks each, are started. {@link TaskAssigningUpdates} for more details. - */ -public class TaskAssigningUpdates_3600 extends TaskAssigningUpdates implements IPerfTest { - - public TaskAssigningUpdates_3600() { - super(400, 300); - } -} diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/resources-eap-6/configuration/application-roles.properties b/jbpm-benchmarks/kieserver-performance-tests/src/main/resources-eap-6/configuration/application-roles.properties deleted file mode 100644 index efbaf88..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/resources-eap-6/configuration/application-roles.properties +++ /dev/null @@ -1,25 +0,0 @@ -# -# Properties declaration of users roles for the realm 'ApplicationRealm' which is the default realm -# for application services on a new installation. -# -# This includes the following protocols: remote ejb, remote jndi, web, remote jms -# -# Users can be added to this properties file at any time, updates after the server has started -# will be automatically detected. -# -# The format of this file is as follows: - -# username=role1,role2,role3 -# -# A utility script is provided which can be executed from the bin folder to add the users: - -# - Linux -# bin/add-user.sh -# -# - Windows -# bin\add-user.bat -# -# The following illustrates how an admin user could be defined. -# -#admin=PowerUser,BillingAdmin, -#guest=guest -perfUser=admin,kie-server -engUser=admin,engineering,kie-server diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/resources-eap-6/configuration/application-users.properties b/jbpm-benchmarks/kieserver-performance-tests/src/main/resources-eap-6/configuration/application-users.properties deleted file mode 100644 index 697010b..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/resources-eap-6/configuration/application-users.properties +++ /dev/null @@ -1,27 +0,0 @@ -# -# Properties declaration of users for the realm 'ApplicationRealm' which is the default realm -# for application services on a new installation. -# -# This includes the following protocols: remote ejb, remote jndi, web, remote jms -# -# Users can be added to this properties file at any time, updates after the server has started -# will be automatically detected. -# -# The format of this realm is as follows: - -# username=HEX( MD5( username ':' realm ':' password)) -# -# A utility script is provided which can be executed from the bin folder to add the users: - -# - Linux -# bin/add-user.sh -# -# - Windows -# bin\add-user.bat -# -#$REALM_NAME=ApplicationRealm$ This line is used by the add-user utility to identify the realm name already used in this file. -# -# The following illustrates how an admin user could be defined, this -# is for illustration only and does not correspond to a usable password. -# -#admin=2a0923285184943425d1f53ddd58ec7a -perfUser=85d26279a7e3234721609e795796e10a -engUser=65982f060e987af81818e2681c7086ea diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/resources/ddl-scripts/perf-drop-tables.sql b/jbpm-benchmarks/kieserver-performance-tests/src/main/resources/ddl-scripts/perf-drop-tables.sql deleted file mode 100644 index bf7c6df..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/resources/ddl-scripts/perf-drop-tables.sql +++ /dev/null @@ -1,3 +0,0 @@ -DROP SCHEMA IF EXISTS JBPM CASCADE; -CREATE SCHEMA JBPM; -GRANT ALL ON SCHEMA JBPM TO PUBLIC; diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/main/resources/logback.xml b/jbpm-benchmarks/kieserver-performance-tests/src/main/resources/logback.xml deleted file mode 100644 index d81cc08..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/main/resources/logback.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - DEBUG - - - [%d] %-5p- %m%n - - - - 300 - - - - - - - INFO - - - [%d] %-5p- %m%n - - - - 300 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/jbpm-benchmarks/kieserver-performance-tests/src/test/java/org/jbpm/test/performance/taskassigning/TaskStatisticsUtilTest.java b/jbpm-benchmarks/kieserver-performance-tests/src/test/java/org/jbpm/test/performance/taskassigning/TaskStatisticsUtilTest.java deleted file mode 100644 index 32abd47..0000000 --- a/jbpm-benchmarks/kieserver-performance-tests/src/test/java/org/jbpm/test/performance/taskassigning/TaskStatisticsUtilTest.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright 2020 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jbpm.test.performance.taskassigning; - -import java.sql.Date; -import java.time.Instant; -import java.time.temporal.ChronoUnit; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; - -import org.assertj.core.api.Assertions; -import org.junit.Test; -import org.kie.server.api.model.instance.TaskEventInstance; - -public class TaskStatisticsUtilTest { - - @Test - public void delaysBetweenAddedAndDelegatedEvents_worksAsExpected_forVariousEvents() { - Instant now = Instant.now(); - TaskEventInstance task1Added = new TaskEventInstance(); - task1Added.setTaskId(1L); - task1Added.setType("ADDED"); - task1Added.setLogTime(Date.from(now)); - - TaskEventInstance task1Delegated = new TaskEventInstance(); - task1Delegated.setTaskId(1L); - task1Delegated.setType("DELEGATED"); - task1Delegated.setLogTime(Date.from(now.plus(10, ChronoUnit.SECONDS))); - - TaskEventInstance task2Added = new TaskEventInstance(); - task2Added.setTaskId(2L); - task2Added.setType("ADDED"); - task2Added.setLogTime(Date.from(now.plus(20, ChronoUnit.SECONDS))); - - TaskEventInstance task2Delegated = new TaskEventInstance(); - task2Delegated.setTaskId(2L); - task2Delegated.setType("DELEGATED"); - task2Delegated.setLogTime(Date.from(now.plus(30, ChronoUnit.SECONDS))); - - TaskEventInstance task3OtherEvent = new TaskEventInstance(); - task3OtherEvent.setTaskId(3L); - task3OtherEvent.setType("SOME_OTHER_EVENT_TYPE"); - task3OtherEvent.setLogTime(Date.from(now.plus(40, ChronoUnit.SECONDS))); - - TaskEventInstance task3Added = new TaskEventInstance(); - task3Added.setTaskId(3L); - task3Added.setType("ADDED"); - task3Added.setLogTime(Date.from(now.plus(50, ChronoUnit.SECONDS))); - - TaskEventInstance task3Completed = new TaskEventInstance(); - task3Completed.setTaskId(3L); - task3Completed.setType("COMPLETED"); - task3Completed.setLogTime(Date.from(now.plus(60, ChronoUnit.SECONDS))); - - Collection events = new ArrayList<>(); - events.add(task1Added); - events.add(task1Delegated); - events.add(task2Added); - events.add(task2Delegated); - events.add(task3OtherEvent); - events.add(task3Added); - events.add(task3Completed); - List delays = TaskStatisticsUtil.delaysBetweenEvents(events, - (taskEvent) -> "ADDED".equals(taskEvent.getType()), - (taskEvent) -> "DELEGATED".equals(taskEvent.getType())); - - Assertions.assertThat(delays).containsExactly(10_000L, 10_000L); - } - - @Test - public void median_single() { - List numbers = Arrays.asList(1L); - Assertions.assertThat(TaskStatisticsUtil.median(numbers)).isEqualTo(1L); - } - - @Test - public void median_odd() { - List numbers = Arrays.asList(2L, 3L, 4L); - Assertions.assertThat(TaskStatisticsUtil.median(numbers)).isEqualTo(3L); - } - - @Test - public void median_even() { - List numbers = Arrays.asList(2L, 4L, 6L, 8L); - Assertions.assertThat(TaskStatisticsUtil.median(numbers)).isEqualTo(5L); - } -} diff --git a/jbpm-benchmarks/pom.xml b/jbpm-benchmarks/pom.xml index f839a0a..fefc651 100644 --- a/jbpm-benchmarks/pom.xml +++ b/jbpm-benchmarks/pom.xml @@ -14,9 +14,7 @@ jBPM Performance Tests Parent - jbpm-performance-tests kieserver-assets - kieserver-performance-tests kieserver-performance-tests-jmh jbpm-performance-tests-jmh perf-tests-common