From 86579b1c42dfd3091c7095996c4ca70641e88ece Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 7 Feb 2020 17:17:30 +0000 Subject: [PATCH 01/12] chore(deps): bump bootstrap from 4.4.1 to 4.4.1-1 Bumps [bootstrap](https://github.com/webjars/bootstrap) from 4.4.1 to 4.4.1-1. - [Release notes](https://github.com/webjars/bootstrap/releases) - [Commits](https://github.com/webjars/bootstrap/compare/bootstrap-4.4.1...bootstrap-4.4.1-1) Signed-off-by: dependabot-preview[bot] --- app/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/pom.xml b/app/pom.xml index 649db478..83ec57d3 100644 --- a/app/pom.xml +++ b/app/pom.xml @@ -65,7 +65,7 @@ org.webjars bootstrap - 4.4.1 + 4.4.1-1 org.webjars.bower From 3a7fcddca07415d77552a7d5bdcbcfbee7b73b87 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2020 17:21:33 +0000 Subject: [PATCH 02/12] chore(deps): bump zeebe-bom from 0.22.2 to 0.23.0 Bumps [zeebe-bom](https://github.com/zeebe-io/zeebe) from 0.22.2 to 0.23.0. - [Release notes](https://github.com/zeebe-io/zeebe/releases) - [Commits](https://github.com/zeebe-io/zeebe/compare/0.22.2...0.23.0) Signed-off-by: dependabot-preview[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0058de7d..ced28467 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ UTF-8 - 0.22.2 + 0.23.0 2.2.6.RELEASE 0.8.0-alpha2 From e04cfa787873b86f0f496b52846f1b2f9d8a6eec Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2020 17:29:37 +0000 Subject: [PATCH 03/12] chore(deps): bump jquery from 3.4.1 to 3.5.0 Bumps [jquery](https://github.com/webjars/jquery) from 3.4.1 to 3.5.0. - [Release notes](https://github.com/webjars/jquery/releases) - [Commits](https://github.com/webjars/jquery/compare/jquery-3.4.1...jquery-3.5.0) Signed-off-by: dependabot-preview[bot] --- app/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/pom.xml b/app/pom.xml index 3418599a..97747274 100644 --- a/app/pom.xml +++ b/app/pom.xml @@ -75,7 +75,7 @@ org.webjars jquery - 3.4.1 + 3.5.0 org.webjars.bower From 426ded52a3dd95de9e2875cd1e5b51bbdd633975 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2020 17:30:14 +0000 Subject: [PATCH 04/12] chore(deps): bump zeebe-hazelcast-connector from 0.8.0-alpha2 to 0.8.0 Bumps zeebe-hazelcast-connector from 0.8.0-alpha2 to 0.8.0. Signed-off-by: dependabot-preview[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0058de7d..89169cb6 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ 0.22.2 2.2.6.RELEASE - 0.8.0-alpha2 + 0.8.0 11 From 17309cbbb9bcc8b33831ab2ba4cd719f7a5f0557 Mon Sep 17 00:00:00 2001 From: Philipp Ossler Date: Fri, 17 Apr 2020 15:43:36 +0200 Subject: [PATCH 05/12] chore(app): migrate to spring-zeebe (#127) * move app into into folder * remove docker files in favor of jib and docker-compose --- .ci/podSpecs/distribution.yml | 60 ++++ .ci/scripts/distribution/prepare.sh | 4 + .ci/scripts/docker-release.sh | 19 -- .ci/scripts/docker-snapshot.sh | 16 - .ci/scripts/github-release.sh | 21 +- Jenkinsfile | 64 +--- README.md | 92 ++--- app/.gitignore | 20 -- app/Dockerfile | 9 - app/docker-compose/README.md | 16 - app/docker-compose/docker-compose.yml | 15 - app/pom.xml | 133 -------- .../monitor/zeebe/ZeebeConnectionService.java | 82 ----- app/src/main/resources/application.properties | 16 - docker/application.yaml | 6 + docker/docker-compose.yml | 33 ++ docker/local-config/Dockerfile | 18 - docker/local-config/docker-compose.yml | 30 -- docker/local-config/zeebe.cfg.toml | 323 ------------------ docker/run | 42 --- {app/docs => docs}/how-it-works.png | Bin {app/docs => docs}/instance-details.png | Bin {app/docs => docs}/workflow-details.png | Bin {app/docs => docs}/zeebe-simple-monitor.gif | Bin pom.xml | 209 +++++++++++- .../io/zeebe/monitor/WebSocketConfig.java | 0 .../zeebe/monitor/ZeebeSimpleMonitorApp.java | 62 +--- .../monitor/entity/ElementInstanceEntity.java | 0 .../entity/ElementInstanceStatistics.java | 0 .../zeebe/monitor/entity/HazelcastConfig.java | 0 .../zeebe/monitor/entity/IncidentEntity.java | 0 .../io/zeebe/monitor/entity/JobEntity.java | 0 .../zeebe/monitor/entity/MessageEntity.java | 0 .../entity/MessageSubscriptionEntity.java | 0 .../io/zeebe/monitor/entity/TimerEntity.java | 0 .../zeebe/monitor/entity/VariableEntity.java | 0 .../zeebe/monitor/entity/WorkflowEntity.java | 0 .../entity/WorkflowInstanceEntity.java | 0 .../repository/ElementInstanceRepository.java | 0 .../repository/HazelcastConfigRepository.java | 0 .../repository/IncidentRepository.java | 0 .../monitor/repository/JobRepository.java | 0 .../monitor/repository/MessageRepository.java | 0 .../MessageSubscriptionRepository.java | 0 .../monitor/repository/TimerRepository.java | 0 .../repository/VariableRepository.java | 0 .../WorkflowInstanceRepository.java | 0 .../repository/WorkflowRepository.java | 0 .../io/zeebe/monitor/rest/ActiveScope.java | 0 .../io/zeebe/monitor/rest/AuditLogEntry.java | 0 .../zeebe/monitor/rest/BpmnElementInfo.java | 0 .../rest/CalledWorkflowInstanceDto.java | 0 .../io/zeebe/monitor/rest/DeploymentDto.java | 0 .../monitor/rest/ElementInstanceState.java | 0 .../java/io/zeebe/monitor/rest/FileDto.java | 0 .../io/zeebe/monitor/rest/IncidentDto.java | 0 .../zeebe/monitor/rest/IncidentListDto.java | 0 .../java/io/zeebe/monitor/rest/JobDto.java | 0 .../io/zeebe/monitor/rest/JobResource.java | 23 +- .../io/zeebe/monitor/rest/MessageDto.java | 0 .../zeebe/monitor/rest/MessageResource.java | 10 +- .../monitor/rest/MessageSubscriptionDto.java | 0 .../zeebe/monitor/rest/PublishMessageDto.java | 0 .../monitor/rest/ResolveIncidentDto.java | 0 .../io/zeebe/monitor/rest/ThrowErrorDto.java | 0 .../java/io/zeebe/monitor/rest/TimerDto.java | 0 .../io/zeebe/monitor/rest/VariableEntry.java | 0 .../monitor/rest/VariableUpdateEntry.java | 0 .../io/zeebe/monitor/rest/ViewController.java | 0 .../java/io/zeebe/monitor/rest/WorkerDto.java | 0 .../io/zeebe/monitor/rest/WorkflowDto.java | 0 .../monitor/rest/WorkflowInstanceDto.java | 0 .../monitor/rest/WorkflowInstanceListDto.java | 0 .../rest/WorkflowInstanceNotification.java | 0 .../rest/WorkflowInstanceResource.java | 21 +- .../zeebe/monitor/rest/WorkflowResource.java | 17 +- .../monitor/zeebe/ZeebeHazelcastService.java | 21 +- .../monitor/zeebe/ZeebeImportService.java | 0 .../zeebe/ZeebeNotificationService.java | 0 src/main/resources/application.yaml | 42 +++ {app/src => src}/main/resources/banner.txt | 0 .../main/resources/public/css/app.css | 0 .../resources/public/css/bootstrap.min.css | 0 .../main/resources/public/css/modeler.css | 0 .../main/resources/public/fonts/bpmn.eot | Bin .../main/resources/public/fonts/bpmn.svg | 0 .../main/resources/public/fonts/bpmn.ttf | Bin .../main/resources/public/fonts/bpmn.woff | Bin .../main/resources/public/fonts/dmn-js.eot | Bin .../main/resources/public/fonts/dmn-js.svg | 0 .../main/resources/public/fonts/dmn-js.ttf | Bin .../main/resources/public/fonts/dmn-js.woff | Bin .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../public/fonts/opensans-bold-webfont.eot | Bin .../public/fonts/opensans-bold-webfont.svg | 0 .../public/fonts/opensans-bold-webfont.ttf | Bin .../public/fonts/opensans-bold-webfont.woff | Bin .../public/fonts/opensans-bold-webfont.woff2 | Bin .../public/fonts/opensans-light-webfont.eot | Bin .../public/fonts/opensans-light-webfont.svg | 0 .../public/fonts/opensans-light-webfont.ttf | Bin .../public/fonts/opensans-light-webfont.woff | Bin .../public/fonts/opensans-light-webfont.woff2 | Bin .../public/fonts/opensans-regular-webfont.eot | Bin .../public/fonts/opensans-regular-webfont.svg | 0 .../public/fonts/opensans-regular-webfont.ttf | Bin .../fonts/opensans-regular-webfont.woff | Bin .../fonts/opensans-regular-webfont.woff2 | Bin .../main/resources/public/img/favicon.ico | Bin .../main/resources/public/img/logo.png | Bin .../main/resources/public/img/search-24px.svg | 0 .../main/resources/public/img/zeebe-logo.png | Bin .../main/resources/public/js/app.js | 0 .../main/resources/templates/audit-log.html | 0 .../templates/called-workflows-list.html | 0 .../templates/components/bpmn-diagram.html | 0 .../templates/components/bpmn-element-id.html | 0 .../components/table-pagination.html | 0 .../components/variables-form-with-key.html | 0 .../templates/components/variables-form.html | 0 .../main/resources/templates/error.html | 0 .../templates/incident-list-view.html | 0 .../resources/templates/incident-list.html | 0 .../templates/instance-detail-view.html | 0 .../templates/instance-list-view.html | 0 .../resources/templates/instance-list.html | 0 .../resources/templates/job-list-view.html | 0 .../main/resources/templates/job-list.html | 0 .../resources/templates/layout/footer.html | 0 .../resources/templates/layout/header.html | 0 .../templates/message-list-view.html | 0 .../templates/message-subscription-list.html | 0 .../modals/cancel-instance-modal.html | 0 .../templates/modals/complete-job-modal.html | 0 .../modals/create-instance-modal.html | 0 .../templates/modals/deployment-modal.html | 0 .../templates/modals/fail-job-modal.html | 0 .../modals/publish-message-modal.html | 0 .../publish-message-subscription-modal.html | 0 .../modals/resolve-incident-modal.html | 0 .../templates/modals/set-variable-modal.html | 0 .../templates/modals/throw-error-modal.html | 0 .../modals/update-variable-modal.html | 0 .../modals/variable-updates-modal.html | 0 .../main/resources/templates/timer-list.html | 0 .../resources/templates/variable-list.html | 0 .../templates/workflow-detail-view.html | 0 .../templates/workflow-list-view.html | 0 .../workflow-message-subscription-list.html | 0 .../templates/workflow-timer-list.html | 0 .../test/java/io/zeebe/monitor/Demo.java | 0 .../java/io/zeebe/monitor/NoTestsYetTest.java | 0 .../test/resources/orderProcess.bpmn | 0 {app/src => src}/test/resources/payment.bpmn | 0 .../test/resources/ship-parcel.bpmn | 0 159 files changed, 457 insertions(+), 967 deletions(-) create mode 100644 .ci/podSpecs/distribution.yml create mode 100755 .ci/scripts/distribution/prepare.sh delete mode 100755 .ci/scripts/docker-release.sh delete mode 100755 .ci/scripts/docker-snapshot.sh delete mode 100644 app/.gitignore delete mode 100644 app/Dockerfile delete mode 100644 app/docker-compose/README.md delete mode 100644 app/docker-compose/docker-compose.yml delete mode 100644 app/pom.xml delete mode 100644 app/src/main/java/io/zeebe/monitor/zeebe/ZeebeConnectionService.java delete mode 100644 app/src/main/resources/application.properties create mode 100644 docker/application.yaml create mode 100644 docker/docker-compose.yml delete mode 100644 docker/local-config/Dockerfile delete mode 100644 docker/local-config/docker-compose.yml delete mode 100644 docker/local-config/zeebe.cfg.toml delete mode 100755 docker/run rename {app/docs => docs}/how-it-works.png (100%) rename {app/docs => docs}/instance-details.png (100%) rename {app/docs => docs}/workflow-details.png (100%) rename {app/docs => docs}/zeebe-simple-monitor.gif (100%) rename {app/src => src}/main/java/io/zeebe/monitor/WebSocketConfig.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/ZeebeSimpleMonitorApp.java (53%) rename {app/src => src}/main/java/io/zeebe/monitor/entity/ElementInstanceEntity.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/entity/ElementInstanceStatistics.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/entity/HazelcastConfig.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/entity/IncidentEntity.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/entity/JobEntity.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/entity/MessageEntity.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/entity/MessageSubscriptionEntity.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/entity/TimerEntity.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/entity/VariableEntity.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/entity/WorkflowEntity.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/entity/WorkflowInstanceEntity.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/repository/ElementInstanceRepository.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/repository/HazelcastConfigRepository.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/repository/IncidentRepository.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/repository/JobRepository.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/repository/MessageRepository.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/repository/MessageSubscriptionRepository.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/repository/TimerRepository.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/repository/VariableRepository.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/repository/WorkflowInstanceRepository.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/repository/WorkflowRepository.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/ActiveScope.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/AuditLogEntry.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/BpmnElementInfo.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/CalledWorkflowInstanceDto.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/DeploymentDto.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/ElementInstanceState.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/FileDto.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/IncidentDto.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/IncidentListDto.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/JobDto.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/JobResource.java (84%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/MessageDto.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/MessageResource.java (90%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/MessageSubscriptionDto.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/PublishMessageDto.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/ResolveIncidentDto.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/ThrowErrorDto.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/TimerDto.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/VariableEntry.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/VariableUpdateEntry.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/ViewController.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/WorkerDto.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/WorkflowDto.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/WorkflowInstanceDto.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/WorkflowInstanceListDto.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/WorkflowInstanceNotification.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/WorkflowInstanceResource.java (79%) rename {app/src => src}/main/java/io/zeebe/monitor/rest/WorkflowResource.java (87%) rename {app/src => src}/main/java/io/zeebe/monitor/zeebe/ZeebeHazelcastService.java (72%) rename {app/src => src}/main/java/io/zeebe/monitor/zeebe/ZeebeImportService.java (100%) rename {app/src => src}/main/java/io/zeebe/monitor/zeebe/ZeebeNotificationService.java (100%) create mode 100644 src/main/resources/application.yaml rename {app/src => src}/main/resources/banner.txt (100%) rename {app/src => src}/main/resources/public/css/app.css (100%) rename {app/src => src}/main/resources/public/css/bootstrap.min.css (100%) rename {app/src => src}/main/resources/public/css/modeler.css (100%) rename {app/src => src}/main/resources/public/fonts/bpmn.eot (100%) rename {app/src => src}/main/resources/public/fonts/bpmn.svg (100%) rename {app/src => src}/main/resources/public/fonts/bpmn.ttf (100%) rename {app/src => src}/main/resources/public/fonts/bpmn.woff (100%) rename {app/src => src}/main/resources/public/fonts/dmn-js.eot (100%) rename {app/src => src}/main/resources/public/fonts/dmn-js.svg (100%) rename {app/src => src}/main/resources/public/fonts/dmn-js.ttf (100%) rename {app/src => src}/main/resources/public/fonts/dmn-js.woff (100%) rename {app/src => src}/main/resources/public/fonts/glyphicons-halflings-regular.eot (100%) rename {app/src => src}/main/resources/public/fonts/glyphicons-halflings-regular.svg (100%) rename {app/src => src}/main/resources/public/fonts/glyphicons-halflings-regular.ttf (100%) rename {app/src => src}/main/resources/public/fonts/glyphicons-halflings-regular.woff (100%) rename {app/src => src}/main/resources/public/fonts/glyphicons-halflings-regular.woff2 (100%) rename {app/src => src}/main/resources/public/fonts/opensans-bold-webfont.eot (100%) rename {app/src => src}/main/resources/public/fonts/opensans-bold-webfont.svg (100%) rename {app/src => src}/main/resources/public/fonts/opensans-bold-webfont.ttf (100%) rename {app/src => src}/main/resources/public/fonts/opensans-bold-webfont.woff (100%) rename {app/src => src}/main/resources/public/fonts/opensans-bold-webfont.woff2 (100%) rename {app/src => src}/main/resources/public/fonts/opensans-light-webfont.eot (100%) rename {app/src => src}/main/resources/public/fonts/opensans-light-webfont.svg (100%) rename {app/src => src}/main/resources/public/fonts/opensans-light-webfont.ttf (100%) rename {app/src => src}/main/resources/public/fonts/opensans-light-webfont.woff (100%) rename {app/src => src}/main/resources/public/fonts/opensans-light-webfont.woff2 (100%) rename {app/src => src}/main/resources/public/fonts/opensans-regular-webfont.eot (100%) rename {app/src => src}/main/resources/public/fonts/opensans-regular-webfont.svg (100%) rename {app/src => src}/main/resources/public/fonts/opensans-regular-webfont.ttf (100%) rename {app/src => src}/main/resources/public/fonts/opensans-regular-webfont.woff (100%) rename {app/src => src}/main/resources/public/fonts/opensans-regular-webfont.woff2 (100%) rename {app/src => src}/main/resources/public/img/favicon.ico (100%) rename {app/src => src}/main/resources/public/img/logo.png (100%) rename {app/src => src}/main/resources/public/img/search-24px.svg (100%) rename {app/src => src}/main/resources/public/img/zeebe-logo.png (100%) rename {app/src => src}/main/resources/public/js/app.js (100%) rename {app/src => src}/main/resources/templates/audit-log.html (100%) rename {app/src => src}/main/resources/templates/called-workflows-list.html (100%) rename {app/src => src}/main/resources/templates/components/bpmn-diagram.html (100%) rename {app/src => src}/main/resources/templates/components/bpmn-element-id.html (100%) rename {app/src => src}/main/resources/templates/components/table-pagination.html (100%) rename {app/src => src}/main/resources/templates/components/variables-form-with-key.html (100%) rename {app/src => src}/main/resources/templates/components/variables-form.html (100%) rename {app/src => src}/main/resources/templates/error.html (100%) rename {app/src => src}/main/resources/templates/incident-list-view.html (100%) rename {app/src => src}/main/resources/templates/incident-list.html (100%) rename {app/src => src}/main/resources/templates/instance-detail-view.html (100%) rename {app/src => src}/main/resources/templates/instance-list-view.html (100%) rename {app/src => src}/main/resources/templates/instance-list.html (100%) rename {app/src => src}/main/resources/templates/job-list-view.html (100%) rename {app/src => src}/main/resources/templates/job-list.html (100%) rename {app/src => src}/main/resources/templates/layout/footer.html (100%) rename {app/src => src}/main/resources/templates/layout/header.html (100%) rename {app/src => src}/main/resources/templates/message-list-view.html (100%) rename {app/src => src}/main/resources/templates/message-subscription-list.html (100%) rename {app/src => src}/main/resources/templates/modals/cancel-instance-modal.html (100%) rename {app/src => src}/main/resources/templates/modals/complete-job-modal.html (100%) rename {app/src => src}/main/resources/templates/modals/create-instance-modal.html (100%) rename {app/src => src}/main/resources/templates/modals/deployment-modal.html (100%) rename {app/src => src}/main/resources/templates/modals/fail-job-modal.html (100%) rename {app/src => src}/main/resources/templates/modals/publish-message-modal.html (100%) rename {app/src => src}/main/resources/templates/modals/publish-message-subscription-modal.html (100%) rename {app/src => src}/main/resources/templates/modals/resolve-incident-modal.html (100%) rename {app/src => src}/main/resources/templates/modals/set-variable-modal.html (100%) rename {app/src => src}/main/resources/templates/modals/throw-error-modal.html (100%) rename {app/src => src}/main/resources/templates/modals/update-variable-modal.html (100%) rename {app/src => src}/main/resources/templates/modals/variable-updates-modal.html (100%) rename {app/src => src}/main/resources/templates/timer-list.html (100%) rename {app/src => src}/main/resources/templates/variable-list.html (100%) rename {app/src => src}/main/resources/templates/workflow-detail-view.html (100%) rename {app/src => src}/main/resources/templates/workflow-list-view.html (100%) rename {app/src => src}/main/resources/templates/workflow-message-subscription-list.html (100%) rename {app/src => src}/main/resources/templates/workflow-timer-list.html (100%) rename {app/src => src}/test/java/io/zeebe/monitor/Demo.java (100%) rename {app/src => src}/test/java/io/zeebe/monitor/NoTestsYetTest.java (100%) rename {app/src => src}/test/resources/orderProcess.bpmn (100%) rename {app/src => src}/test/resources/payment.bpmn (100%) rename {app/src => src}/test/resources/ship-parcel.bpmn (100%) diff --git a/.ci/podSpecs/distribution.yml b/.ci/podSpecs/distribution.yml new file mode 100644 index 00000000..57c2b7a3 --- /dev/null +++ b/.ci/podSpecs/distribution.yml @@ -0,0 +1,60 @@ +metadata: + labels: + agent: zeebe-ci-build +spec: + nodeSelector: + cloud.google.com/gke-nodepool: agents-n1-standard-32-netssd-preempt + tolerations: + - key: "agents-n1-standard-32-netssd-preempt" + operator: "Exists" + effect: "NoSchedule" + volumes: + - name: shared-data + emptyDir: {} + containers: + - name: maven + image: maven:3.6.0-jdk-11 + command: ["cat"] + tty: true + env: + - name: LIMITS_CPU + valueFrom: + resourceFieldRef: + resource: limits.cpu + - name: JAVA_TOOL_OPTIONS + value: | + -XX:+UseContainerSupport + - name: DOCKER_HOST + value: tcp://localhost:2375 + - name: ZEEBE_CI_SHARED_DATA + value: /home/shared + resources: + limits: + cpu: 2 + memory: 4Gi + requests: + cpu: 2 + memory: 4Gi + securityContext: + privileged: true + volumeMounts: + - name: shared-data + mountPath: /home/shared + mountPropagation: Bidirectional + - name: docker + image: docker:18.09.4-dind + args: ["--storage-driver=overlay2"] + securityContext: + privileged: true + tty: true + resources: + limits: + cpu: 2 + memory: 4Gi + requests: + cpu: 2 + memory: 4Gi + volumeMounts: + - name: shared-data + mountPath: /home/shared + mountPropagation: Bidirectional diff --git a/.ci/scripts/distribution/prepare.sh b/.ci/scripts/distribution/prepare.sh new file mode 100755 index 00000000..4a30cc65 --- /dev/null +++ b/.ci/scripts/distribution/prepare.sh @@ -0,0 +1,4 @@ +#!/bin/sh -eux + +apt-get -qq update +apt-get install --no-install-recommends -qq -y jq libatomic1 diff --git a/.ci/scripts/docker-release.sh b/.ci/scripts/docker-release.sh deleted file mode 100755 index be8de876..00000000 --- a/.ci/scripts/docker-release.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -xeu - -cd app/ - -IMAGE="camunda/zeebe-simple-monitor" - -echo "Building Zeebe Simple Monitor Docker image ${RELEASE_VERSION}." -docker build --no-cache --build-arg JAR=target/zeebe-simple-monitor-app-${RELEASE_VERSION}.jar -t ${IMAGE}:${RELEASE_VERSION} . - -echo "Authenticating with DockerHub and pushing image." -docker login --username ${DOCKER_HUB_USR} --password ${DOCKER_HUB_PSW} - -echo "Pushing ${IMAGE}:${RELEASE_VERSION}" -docker push ${IMAGE}:${RELEASE_VERSION} - -docker tag ${IMAGE}:${RELEASE_VERSION} ${IMAGE}:latest - -echo "Pushing ${IMAGE}:latest" -docker push ${IMAGE}:latest diff --git a/.ci/scripts/docker-snapshot.sh b/.ci/scripts/docker-snapshot.sh deleted file mode 100755 index 5a90091b..00000000 --- a/.ci/scripts/docker-snapshot.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -xeu - -cd app/ - -if [ -f target/zeebe-simple-monitor-app-*-SNAPSHOT.jar ]; then - IMAGE="camunda/zeebe-simple-monitor:SNAPSHOT" - - echo "Building Zeebe Simple Monitor Docker image ${IMAGE}." - docker build --no-cache -t ${IMAGE} . - - echo "Authenticating with DockerHub and pushing image." - docker login --username ${DOCKER_HUB_USR} --password ${DOCKER_HUB_PSW} - - echo "Pushing ${IMAGE}" - docker push ${IMAGE} -fi diff --git a/.ci/scripts/github-release.sh b/.ci/scripts/github-release.sh index cf396e96..d31ca209 100755 --- a/.ci/scripts/github-release.sh +++ b/.ci/scripts/github-release.sh @@ -1,21 +1,20 @@ #!/bin/bash -xeu +cd target + +export PROJECT_NAME="Zeebe Simple Monitor" export GITHUB_TOKEN=${GITHUB_TOKEN_PSW} export GITHUB_ORG=zeebe-io export GITHUB_REPO=zeebe-simple-monitor - -# do github release -curl -sL https://github.com/aktau/github-release/releases/download/v0.7.2/linux-amd64-github-release.tar.bz2 | tar xjvf - --strip 3 -./github-release release --user ${GITHUB_ORG} --repo ${GITHUB_REPO} --tag ${RELEASE_VERSION} --draft --name "Zeebe Simple Monitor ${RELEASE_VERSION}" --description "" - -# upload app -cd app/target - -export ARTIFACT=zeebe-simple-monitor-app-${RELEASE_VERSION}.jar +export ARTIFACT=zeebe-simple-monitor-${RELEASE_VERSION}.jar export CHECKSUM=${ARTIFACT}.sha1sum # create checksum files sha1sum ${ARTIFACT} > ${CHECKSUM} -../../github-release upload --user ${GITHUB_ORG} --repo ${GITHUB_REPO} --tag ${RELEASE_VERSION} --name "${ARTIFACT}" --file "${ARTIFACT}" -../../github-release upload --user ${GITHUB_ORG} --repo ${GITHUB_REPO} --tag ${RELEASE_VERSION} --name "${CHECKSUM}" --file "${CHECKSUM}" +# do github release +curl -sL https://github.com/aktau/github-release/releases/download/v0.7.2/linux-amd64-github-release.tar.bz2 | tar xjvf - --strip 3 + +./github-release release --user ${GITHUB_ORG} --repo ${GITHUB_REPO} --tag ${RELEASE_VERSION} --draft --name "${PROJECT_NAME} ${RELEASE_VERSION}" --description "" +./github-release upload --user ${GITHUB_ORG} --repo ${GITHUB_REPO} --tag ${RELEASE_VERSION} --name "${ARTIFACT}" --file "${ARTIFACT}" +./github-release upload --user ${GITHUB_ORG} --repo ${GITHUB_REPO} --tag ${RELEASE_VERSION} --name "${CHECKSUM}" --file "${CHECKSUM}" diff --git a/Jenkinsfile b/Jenkinsfile index 7182a393..f3ba6a07 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -7,51 +7,12 @@ pipeline { cloud 'zeebe-ci' label "zeebe-ci-build_${buildName}" defaultContainer 'jnlp' - yaml '''\ -apiVersion: v1 -kind: Pod -metadata: - labels: - agent: zeebe-ci-build -spec: - nodeSelector: - cloud.google.com/gke-nodepool: agents-n1-standard-32-netssd-preempt - tolerations: - - key: "agents-n1-standard-32-netssd-preempt" - operator: "Exists" - effect: "NoSchedule" - containers: - - name: maven - image: maven:3.6.0-jdk-11 - command: ["cat"] - tty: true - resources: - limits: - cpu: 1 - memory: 2Gi - requests: - cpu: 1 - memory: 2Gi - - name: docker - image: docker:18.09.4-dind - args: ["--storage-driver=overlay2"] - securityContext: - privileged: true - tty: true - resources: - limits: - cpu: 1 - memory: 1Gi - requests: - cpu: 500m - memory: 512Mi -''' + yamlFile '.ci/podSpecs/distribution.yml' } } options { buildDiscarder(logRotator(numToKeepStr: '10')) - skipDefaultCheckout() timestamps() timeout(time: 15, unit: 'MINUTES') } @@ -70,12 +31,15 @@ spec: stages { stage('Prepare') { steps { - checkout scm container('maven') { configFileProvider([configFile(fileId: 'maven-nexus-settings-zeebe', variable: 'MAVEN_SETTINGS_XML')]) { + sh '.ci/scripts/distribution/prepare.sh' sh 'mvn clean install -B -s $MAVEN_SETTINGS_XML -DskipTests' } } + container('docker') { + sh 'docker login --username ${DOCKER_HUB_USR} --password ${DOCKER_HUB_PSW}' + } } } @@ -104,10 +68,6 @@ spec: sh 'mvn -B -s $MAVEN_SETTINGS_XML generate-sources source:jar javadoc:jar deploy -DskipTests' } } - - container('docker') { - sh '.ci/scripts/docker-snapshot.sh' - } } } @@ -122,12 +82,13 @@ spec: GITHUB_TOKEN = credentials('camunda-jenkins-github') RELEASE_VERSION = "${params.RELEASE_VERSION}" DEVELOPMENT_VERSION = "${params.DEVELOPMENT_VERSION}" + DOCKER_HUB = credentials("camunda-dockerhub") } steps { container('maven') { configFileProvider([configFile(fileId: 'maven-nexus-settings-zeebe', variable: 'MAVEN_SETTINGS_XML')]) { - sshagent(['camunda-jenkins-github-ssh']) { + sshagent(['camunda-jenkins-github-ssh']) { sh 'gpg -q --import ${GPG_PUB_KEY} ' sh 'gpg -q --allow-secret-key-import --import --no-tty --batch --yes ${GPG_SEC_KEY}' sh 'git config --global user.email "ci@camunda.com"' @@ -135,12 +96,15 @@ spec: sh 'mkdir ~/.ssh/ && ssh-keyscan github.com >> ~/.ssh/known_hosts' sh 'mvn -B -s $MAVEN_SETTINGS_XML -DskipTests source:jar javadoc:jar release:prepare release:perform -Prelease' sh '.ci/scripts/github-release.sh' - } + } } } - - container('docker') { - sh '.ci/scripts/docker-release.sh' + container('maven') { + configFileProvider([configFile(fileId: 'maven-nexus-settings-zeebe', variable: 'MAVEN_SETTINGS_XML')]) { + sshagent(['camunda-jenkins-github-ssh']) { + sh 'mvn jib:build -Djib.to.tags=latest,${RELEASE_VERSION} -Djib.to.auth.username=${DOCKER_HUB_USR} -Djib.to.auth.password=${DOCKER_HUB_PSW}' + } + } } } } diff --git a/README.md b/README.md index 564adb35..b8b2b1cb 100644 --- a/README.md +++ b/README.md @@ -15,69 +15,71 @@ The application imports the data from Zeebe using the [Hazelcast exporter](https ### Docker -The following command will build the project, pull images and start containers with default settings. +The docker image for the worker is published to [DockerHub](https://hub.docker.com/r/camunda/zeebe-simple-monitor). -1. Run the following command in your terminal (in the root project folder): - - ```bash - docker/run - ``` - - If you don't have the right to launch `docker/run` try: +``` +docker pull camunda/zeebe-simple-monitor:latest +``` - ```bash - chmod +x docker/run - ``` - -2. Go to http://localhost:8080 +* ensure that a Zeebe broker is running with a Hazelcast exporter (>= 0.8.0-alpha1) +* forward the Hazelcast port to the docker container (default: `5701`) +* configure the connection to the Zeebe broker by setting `zeebe.client.broker.contactPoint` (default: `localhost:26500`) +* configure the connection to Hazelcast by setting `zeebe.worker.hazelcast.connection` (default: `localhost:5701`) -### Manually +For a local setup, the repository contains a [docker-compose file](docker/docker-compose.yml). It starts a Zeebe broker with the Hazelcast exporter and the application. -1. Download the latest [Hazelcast exporter JAR](https://github.com/zeebe-io/zeebe-hazelcast-exporter/releases) _(zeebe-hazelcast-exporter-%{VERSION}-jar-with-dependencies.jar)_ +``` +mvn clean install -DskipTests +cd docker +docker-compose up +``` -2. Copy the JAR into the broker folder `~/zeebe-broker-%{VERSION}/lib` +Go to http://localhost:8082 -3. Add the exporter to the broker configuration `~/zeebe-broker-%{VERSION}/conf/zeebe.cfg.toml`. - ``` - [[exporters]] - id = "hazelcast" - className = "io.zeebe.hazelcast.exporter.HazelcastExporter" - - [exporters.args] - # comma separated list of io.zeebe.protocol.record.ValueType - enabledValueTypes = "JOB,WORKFLOW_INSTANCE,DEPLOYMENT,INCIDENT,TIMER,VARIABLE,MESSAGE,MESSAGE_SUBSCRIPTION,MESSAGE_START_EVENT_SUBSCRIPTION" - ``` +### Manual -4. Start the broker - -5. Download the latest [application JAR](https://github.com/zeebe-io/zeebe-simple-monitor/releases) +1. Download the latest [application JAR](https://github.com/zeebe-io/zeebe-simple-monitor/releases) _(zeebe-simple-monitor-%{VERSION}.jar +)_ -6. Start the application - `java -jar zeebe-simple-monitor-app-{VERSION}.jar` +1. Start the application + `java -jar zeebe-simple-monitor-{VERSION}.jar` -7. Go to http://localhost:8080 +1. Go to http://localhost:8082 ### Configuration -The configuration of the application can be changed via `application.properties`, `application.yaml` or command line arguments. +The worker is a Spring Boot application that uses the [Spring Zeebe Starter](https://github.com/zeebe-io/spring-zeebe). The configuration can be changed via environment variables or an `application.yaml` file. See also the following resources: +* [Spring Zeebe Configuration](https://github.com/zeebe-io/spring-zeebe#configuring-zeebe-connection) +* [Spring Boot Configuration](https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config) + +By default, the port is set to `8082` and the database is only in-memory (i.e. not persistent). ``` -# application database -spring.datasource.url=jdbc:h2:mem:zeebe-monitor;DB_CLOSE_DELAY=-1 -spring.datasource.user=sa -spring.datasource.password= -spring.jpa.hibernate.ddl-auto=create +zeebe: + + worker: + hazelcast: + connection: localhost:5701 + + client: + broker.contactPoint: 127.0.0.1:26500 + security.plaintext: true -# connection to Zeebe broker -io.zeebe.monitor.connectionString=localhost:26500 +spring: -# connection to Hazelcast -io.zeebe.monitor.hazelcast.connection=localhost:5701 + datasource: + url: jdbc:h2:mem:zeebe-monitor;DB_CLOSE_DELAY=-1 + user: sa + password: + driverClassName: org.h2.Driver -# logging -logging.level.io.zeebe.zeebemonitor=DEBUG -logging.level.com.hazelcast=WARN + jpa: + database-platform: org.hibernate.dialect.H2Dialect + hibernate: + ddl-auto: update +server: + port: 8082 ``` ## Build from Source diff --git a/app/.gitignore b/app/.gitignore deleted file mode 100644 index b91dd590..00000000 --- a/app/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -*.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* -/.classpath -/.project -/.settings -/target - -# intellij -.idea -*.iml diff --git a/app/Dockerfile b/app/Dockerfile deleted file mode 100644 index b874b718..00000000 --- a/app/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -FROM openjdk:11-jre - -EXPOSE 8080 - -ARG JAR=target/zeebe-simple-monitor-app-*-SNAPSHOT.jar - -COPY ${JAR} /usr/local/zeebe-simple-monitor.jar - -ENTRYPOINT ["java", "-jar", "/usr/local/zeebe-simple-monitor.jar"] diff --git a/app/docker-compose/README.md b/app/docker-compose/README.md deleted file mode 100644 index 34b68aa9..00000000 --- a/app/docker-compose/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Usage - -Start docker containers: - -``` -docker-compose pull -docker-compose up -``` - -Create default-topic using [zbctl](https://github.com/zeebe-io/zbc-go/releases). - -``` -zbctl create topic --name default-topic --partitions 1 -``` - -Go to http://localhost:9000 and connect to broker `zeebe:51015`. diff --git a/app/docker-compose/docker-compose.yml b/app/docker-compose/docker-compose.yml deleted file mode 100644 index de0f70c3..00000000 --- a/app/docker-compose/docker-compose.yml +++ /dev/null @@ -1,15 +0,0 @@ -version: '2' - -services: - zeebe: - image: camunda/zeebe:latest - environment: - - ZEEBE_LOG_LEVEL=debug - ports: - - "51015:51015" - monitor: - image: camunda/zeebe-simple-monitor:latest - ports: - - "9000:8080" - links: - - zeebe diff --git a/app/pom.xml b/app/pom.xml deleted file mode 100644 index 8f19ea7a..00000000 --- a/app/pom.xml +++ /dev/null @@ -1,133 +0,0 @@ - - - 4.0.0 - - zeebe-simple-monitor-app - jar - - - io.zeebe - zeebe-simple-monitor-root - 0.18.0-SNAPSHOT - - - - - - io.zeebe - zeebe-client-java - - - - io.zeebe.hazelcast - zeebe-hazelcast-connector - - - - com.h2database - h2 - compile - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - - org.springframework.boot - spring-boot-starter-mustache - - - - org.springframework.boot - spring-boot-starter-websocket - - - - javax.interceptor - javax.interceptor-api - 1.2.2 - - - - - - org.webjars - webjars-locator - 0.39 - - - org.webjars - bootstrap - 4.4.1-1 - - - org.webjars.bower - popper.js - 1.16.0 - - - org.webjars - jquery - 3.5.0 - - - org.webjars.bower - bpmn-js - 0.26.6 - - - - org.webjars - sockjs-client - 1.1.2 - - - org.webjars - stomp-websocket - 2.3.3 - - - - - - junit - junit - 4.13 - test - - - - - org.springframework.boot - spring-boot-devtools - true - - - - - - ${project.name}-${project.version} - - - org.springframework.boot - spring-boot-maven-plugin - ${spring.boot.version} - - - - repackage - - - - - - - - diff --git a/app/src/main/java/io/zeebe/monitor/zeebe/ZeebeConnectionService.java b/app/src/main/java/io/zeebe/monitor/zeebe/ZeebeConnectionService.java deleted file mode 100644 index 6eda7fe5..00000000 --- a/app/src/main/java/io/zeebe/monitor/zeebe/ZeebeConnectionService.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright © 2017 camunda services GmbH (info@camunda.com) - * - * 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 io.zeebe.monitor.zeebe; - -import io.zeebe.client.ZeebeClient; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; - -@Component -public class ZeebeConnectionService { - private static final Logger LOG = LoggerFactory.getLogger(ZeebeConnectionService.class); - - private ZeebeClient client; - private boolean connected = false; - - public void connect(String connectionString) { - LOG.info("Connecting to broker '{}'", connectionString); - - this.client = - ZeebeClient.newClientBuilder().brokerContactPoint(connectionString).usePlaintext().build(); - - if (checkConnection()) { - LOG.info("connected to '{}'", connectionString); - - } else { - LOG.warn("Failed to connect to '{}'", connectionString); - } - } - - public ZeebeClient getClient() { - if (client != null) { - return client; - } else { - throw new RuntimeException("Monitor is not connected"); - } - } - - public boolean isConnected() { - return connected; - } - - public boolean checkConnection() { - if (client != null) { - // send request to check if connected or not - try { - client.newTopologyRequest().send().join(); - - if (!connected) { - LOG.info("connected to '{}'", client.getConfiguration().getBrokerContactPoint()); - } - - connected = true; - } catch (Exception e) { - connected = false; - } - } - return connected; - } - - public void disconnect() { - LOG.info("disconnect"); - - client.close(); - - connected = false; - client = null; - } -} diff --git a/app/src/main/resources/application.properties b/app/src/main/resources/application.properties deleted file mode 100644 index 9563c9fc..00000000 --- a/app/src/main/resources/application.properties +++ /dev/null @@ -1,16 +0,0 @@ -spring.datasource.url=jdbc:h2:mem:zeebe-monitor;DB_CLOSE_DELAY=-1 -spring.datasource.user=sa -spring.datasource.password= -spring.jpa.hibernate.ddl-auto=create - -io.zeebe.monitor.connectionString=localhost:26500 - -io.zeebe.monitor.hazelcast.connection=localhost:5701 - -logging.level.io.zeebe.zeebemonitor=DEBUG -logging.level.com.hazelcast=WARN - -spring.mustache.prefix=classpath:/templates/ -spring.mustache.suffix=.html - -spring.data.web.pageable.default-page-size=10 \ No newline at end of file diff --git a/docker/application.yaml b/docker/application.yaml new file mode 100644 index 00000000..d952f3a4 --- /dev/null +++ b/docker/application.yaml @@ -0,0 +1,6 @@ +zeebe: + broker: + exporters: + hazelcast: + className: io.zeebe.hazelcast.exporter.HazelcastExporter + jarPath: exporters/zeebe-hazelcast-exporter.jar diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 00000000..5c69f150 --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,33 @@ +version: "2" + +networks: + zeebe_network: + driver: bridge + +services: + zeebe: + container_name: zeebe_broker + image: camunda/zeebe:0.23.0 + environment: + - ZEEBE_LOG_LEVEL=debug + ports: + - "26500:26500" + - "9600:9600" + - "5701:5701" + volumes: + - ../target/exporter/zeebe-hazelcast-exporter.jar:/usr/local/zeebe/exporters/zeebe-hazelcast-exporter.jar + - ./application.yaml:/usr/local/zeebe/config/application.yaml + networks: + - zeebe_network + monitor: + container_name: zeebe-simple-monitor + image: camunda/zeebe-simple-monitor:latest + environment: + - zeebe.client.broker.contactPoint=zeebe:26500 + - zeebe.worker.hazelcast.connection=zeebe:5701 + ports: + - "8082:8082" + depends_on: + - zeebe + networks: + - zeebe_network diff --git a/docker/local-config/Dockerfile b/docker/local-config/Dockerfile deleted file mode 100644 index 7ab235b4..00000000 --- a/docker/local-config/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM maven:latest as downloader - -ENV HAZELCAST_EXPORTER_VERSION=0.7.0 - -RUN mvn dependency:get -B \ - -DgroupId="io.zeebe.hazelcast" -DartifactId="zeebe-hazelcast-exporter" \ - -Dversion="${HAZELCAST_EXPORTER_VERSION}" -Dpackaging="jar" -Dclassifier="jar-with-dependencies" -Dtransitive=false - -RUN mvn dependency:copy -B \ - -Dartifact="io.zeebe.hazelcast:zeebe-hazelcast-exporter:${HAZELCAST_EXPORTER_VERSION}:jar" \ - -Dclassifier="jar-with-dependencies" \ - -DoutputDirectory=/tmp/ \ - -Dmdep.stripVersion=true - - -FROM camunda/zeebe:latest - -COPY --from=downloader /tmp/zeebe-hazelcast-exporter-jar-with-dependencies.jar /usr/local/zeebe/lib/zeebe-hazelcast-exporter-jar-with-dependencies.jar diff --git a/docker/local-config/docker-compose.yml b/docker/local-config/docker-compose.yml deleted file mode 100644 index 00120bb1..00000000 --- a/docker/local-config/docker-compose.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: '2' - -services: - zeebe: - build: . - environment: - - ZEEBE_LOG_LEVEL=debug - ports: - - "26500:26500" - - "5701:5701" - volumes: - - ./zeebe.cfg.toml:/usr/local/zeebe/conf/zeebe.cfg.toml - networks: - - zeebe-network - monitor: - container_name: zeebe_monitor - image: camunda/zeebe-simple-monitor:latest - environment: - - io.zeebe.monitor.connectionString=zeebe:26500 - - io.zeebe.monitor.hazelcast.connection=zeebe:5701 - ports: - - "8080:8080" - depends_on: - - zeebe - restart: always - networks: - - zeebe-network -networks: - zeebe-network: - driver: bridge diff --git a/docker/local-config/zeebe.cfg.toml b/docker/local-config/zeebe.cfg.toml deleted file mode 100644 index 95d34b31..00000000 --- a/docker/local-config/zeebe.cfg.toml +++ /dev/null @@ -1,323 +0,0 @@ -# Zeebe broker configuration file - -# Overview ------------------------------------------- - -# This file contains a complete list of available configuration options. - -# Default values: -# -# When the default value is used for a configuration option, the option is -# commented out. You can learn the default value from this file - -# Conventions: -# -# Byte sizes -# For buffers and others must be specified as strings and follow the following -# format: "10U" where U (unit) must be replaced with K = Kilobytes, M = Megabytes or G = Gigabytes. -# If unit is omitted then the default unit is simply bytes. -# Example: -# sendBufferSize = "16M" (creates a buffer of 16 Megabytes) -# -# Time units -# Timeouts, intervals, and the likes, must be specified as strings and follow the following -# format: "VU", where: -# - V is a numerical value (e.g. 1, 1.2, 3.56, etc.) -# - U is the unit, one of: ms = Millis, s = Seconds, m = Minutes, or h = Hours -# -# Paths: -# Relative paths are resolved relative to the installation directory of the -# broker. - -# ---------------------------------------------------- - -[network] - -# This section contains the network configuration. Particularly, it allows to -# configure the hosts and ports the broker should bind to. the broker exposes 3 -# ports: 1. client: the port on which client (Java, CLI, Go, ...) connections -# are handled 2. management: used internally by the cluster for the gossip -# membership protocol and other management interactions 3. replication: used -# internally by the cluster for replicating data across nodes using the raft -# protocol - -# Controls the default host the broker should bind to. Can be overwritten on a -# per binding basis for client, management and replication -# -# This setting can also be overridden using the environment variable ZEEBE_HOST. -# host = "0.0.0.0" - -# If a port offset is set it will be added to all ports specified in the config -# or the default values. This is a shortcut to not always specifying every port. -# -# The offset will be added to the second last position of the port, as Zeebe -# requires multiple ports. As example a portOffset of 5 will increment all ports -# by 50, i.e. 26500 will become 26550 and so on. -# -# This setting can also be overridden using the environment variable ZEEBE_PORT_OFFSET. -# portOffset = 0 - -# Controls the default size of the buffers that are used for buffering outgoing -# messages. Can be overwritten on a per binding basis for client, management and -# replication -# defaultSendBufferSize = "16M" - -[network.gateway] - -# Enables embedded gateway to start -# enabled = true -# -# Overrides the host the gateway binds to -# host = "localhost" -# -# Sets the port the gateway binds to -# port = 26500 - -[network.client] - -# Allows to override the host the client api binds to -# host = "localhost" -# -# The port the client api binds to -# port = 26501 -# -# Overrides the size of the buffer used for buffering outgoing messages to -# clients -# sendBufferSize = "16M" -# -# Sets the size of the buffer used for receiving control messages from clients -# (such as management of subscriptions) -# controlMessageBufferSize = "8M" - -[network.management] - -# Overrides the host the management api binds to -# host = "localhost" -# -# Sets the port the management api binds to -# port = 26502 -# -# Overrides the size of the buffer to be used for buffering outgoing messages to -# other brokers through the management protocols -# sendBufferSize = "16M" -# -# Sets the buffer size used for receiving gossip messages and others -# receiveBufferSize = "8M" - -[network.replication] - -# Overrides the host the replication api binds to -# host = "localhost" -# -# Sets the port the replication api binds to -# port = 26503 -# -# Sets the buffer size used for buffering outgoing raft (replication) messages -# sendBufferSize = "16M" - -[network.subscription] - -# Overrides the host the subscription api binds to -# host = "localhost" -# -# Sets the port the subscription api binds to -# port = 26504 -# -# Overrides the size of the buffer to be used for buffering outgoing messages to -# other brokers through the subscription protocols -# sendBufferSize = "16M" -# -# Sets the buffer size used for receiving subscription messages and others -# receiveBufferSize = "8M" - - -[data] - -# This section allows to configure Zeebe's data storage. Data is stored in -# "partition folders". A partition folder has the following structure: -# -# internal-system-0 (root partition folder) -# ├── partition.json (metadata about the partition) -# ├── segments (the actual data as segment files) -# │ ├── 00.data -# │   └── 01.data -# └── snapshots (snapshot data) -# - -# Specify a list of directories in which data is stored. Using multiple -# directories makes sense in case the machine which is running Zeebe has -# multiple disks which are used in a JBOD (just a bunch of disks) manner. This -# allows to get greater throughput in combination with a higher io thread count -# since writes to different disks can potentially be done in parallel. -# -# This setting can also be overridden using the environment variable ZEEBE_DIRECTORIES. -# directories = [ "data" ] - -# The default size of data segments. -# defaultSegmentSize = "512M" - -# How often we take snapshots of streams (time unit) -# snapshotPeriod = "15m" - -# How often follower partitions will check for new snapshots to replicate from -# the leader partitions. Snapshot replication enables faster failover by -# reducing how many log entries must be reprocessed in case of leader change. -# snapshotReplicationPeriod = "5m" - - -[cluster] - -# This section contains all cluster related configurations, to setup an zeebe cluster - -# Specifies the unique id of this broker node in a cluster. -# The id should be between 0 and number of nodes in the cluster (exclusive). -# -# This setting can also be overridden using the environment variable ZEEBE_NODE_ID. -# nodeId = 0 - -# Controls the number of partitions, which should exist in the cluster. -# -# This can also be overridden using the environment variable ZEEBE_PARTITIONS_COUNT. -# partitionsCount = 1 - -# Controls the replication factor, which defines the count of replicas per partition. -# The replication factor cannot be greater than the number of nodes in the cluster. -# -# This can also be overridden using the environment variable ZEEBE_REPLICATION_FACTOR. -# replicationFactor = 1 - -# Specifies the zeebe cluster size. This value is used to determine which broker -# is responsible for which partition. -# -# This can also be overridden using the environment variable ZEEBE_CLUSTER_SIZE. -# clusterSize = 1 - -# Allows to specify a list of known other nodes to connect to on startup -# The contact points of the management api must be specified. -# The format is [HOST:PORT] -# Example: -# initialContactPoints = [ "192.168.1.22:26502", "192.168.1.32:26502" ] -# -# This setting can also be overridden using the environment variable ZEEBE_CONTACT_POINTS -# specifying a comma-separated list of contact points. -# -# Default is empty list: -# initialContactPoints = [] - -[threads] - -# Controls the number of non-blocking CPU threads to be used. WARNING: You -# should never specify a value that is larger than the number of physical cores -# available. Good practice is to leave 1-2 cores for ioThreads and the operating -# system (it has to run somewhere). For example, when running Zeebe on a machine -# which has 4 cores, a good value would be 2. -# -# The default value is 2. -#cpuThreadCount = 2 - -# Controls the number of io threads to be used. These threads are used for -# workloads that write data to disk. While writing, these threads are blocked -# which means that they yield the CPU. -# -# The default value is 2. -#ioThreadCount = 2 - -[metrics] - -# Path to the file to which metrics are written. Metrics are written in a -# text-based format understood by prometheus.io -# metricsFile = "metrics/zeebe.prom" - -# Controls the interval at which the metrics are written to the metrics file -# reportingInterval = "5s" - -[gossip] - -# retransmissionMultiplier = 3 -# probeInterval = "1s" -# probeTimeout = "500ms" -# probeIndirectNodes = 3 -# probeIndirectTimeout = "1s" -# suspicionMultiplier = 5 -# syncTimeout = "3s" -# syncInterval = "15s" -# joinTimeout = "1s" -# joinInterval = "5s" -# leaveTimeout = "1s" -# maxMembershipEventsPerMessage = 32 -# maxCustomEventsPerMessage = 8 - -[raft] - -# heartbeatInterval = "250ms" -# electionInterval = "1s" -# leaveTimeout = "1s" - -# Configure exporters below; note that configuration parsing conventions do not apply to exporter -# arguments, which will be parsed as normal TOML. -# -# Each exporter should be configured following this template: -# -# id: -# property should be unique in this configuration file, as it will server as the exporter -# ID for loading/unloading. -# jarPath: -# path to the JAR file containing the exporter class. JARs are only loaded once, so you can define -# two exporters that point to the same JAR, with the same class or a different one, and use args -# to parametrize its instantiation. -# className: -# entry point of the exporter, a class which *must* extend the io.zeebe.exporter.Exporter -# interface. -# -# A nested table as [exporters.args] will allow you to inject arbitrary arguments into your -# class through the use of annotations. -# -# Enable the following exporter to get debug output of the exporter records -# -# [[exporters]] -# id = "debug" -# className = "io.zeebe.broker.exporter.DebugExporter" -# [exporters.args] -# logLevel = "debug" -# prettyPrint = false -# -# An example configuration for the elasticsearch exporter: -# -#id = "elasticsearch" -#className = "io.zeebe.exporter.ElasticsearchExporter" -# -# [exporters.args] -# url = "http://localhost:9200" -# -# [exporters.args.bulk] -# delay = 5 -# size = 1_000 -# -# [exporters.args.index] -# prefix = "zeebe-record" -# createTemplate = true -# -# command = false -# event = true -# rejection = false -# -# deployment = true -# incident = true -# job = true -# message = false -# messageSubscription = false -# raft = false -# workflowInstance = true -# workflowInstanceSubscription = false - -[[exporters]] -id = "hazelcast" -className = "io.zeebe.hazelcast.exporter.HazelcastExporter" - - [exporters.args] - # comma separated list of io.zeebe.protocol.record.ValueType - enabledValueTypes = "JOB,WORKFLOW_INSTANCE,DEPLOYMENT,INCIDENT,TIMER,VARIABLE,MESSAGE,MESSAGE_SUBSCRIPTION,MESSAGE_START_EVENT_SUBSCRIPTION" - - # If true, the exporter update its position after publish the record to Hazelcast. - # Otherwise, it never update its position. On broker start, it will always start from the begin of the log. - # CAUTION! The broker can't delete data and may run out of disk space if set to false. - updatePosition = false diff --git a/docker/run b/docker/run deleted file mode 100755 index 2d21301b..00000000 --- a/docker/run +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash - -set -e - -CONFIG_FILE=docker/local-config/docker-compose.yml -DOCKER_FILE=docker/local-config/Dockerfile -PULL_CMD="docker-compose -f $CONFIG_FILE pull" -UP_CMD="docker-compose up --build" - -function rmContainers() { - docker-compose -f $CONFIG_FILE rm -fv $SERVICE_NAME || true -} - -CONTAINERS=(monitor zeebe) - -for i in "${!CONTAINERS[@]}" -do - SERVICE_NAME=${CONTAINERS[$i]} rmContainers -done - -# extracting latest hazelcast exporter version -HAZELCAST_VERSION=$(sed -n 's/\(\)\([a-z0-9.-]\+\)\(<\/hazelcast.exporter.version>\)/\2/p' pom.xml | awk '$1=$1{print}') - -# replacing the hazelcadt version in the dockerfile -sed -i "s/HAZELCAST_EXPORTER_VERSION=.*/HAZELCAST_EXPORTER_VERSION=$HAZELCAST_VERSION/" $DOCKER_FILE -echo "Use hazelcast exporter version $HAZELCAST_VERSION" - -$PULL_CMD - -echo "Building project" -mvn clean install - -echo "Building docker" -# docker run -it --rm --name maven-zeebe-simple-monitor -v "$(pwd)":/usr/src/zeebe-simple-monitor -w /usr/src/zeebe-simple-monitor maven:3.3-jdk-8 mvn clean install -docker build -t camunda/zeebe-simple-monitor:latest -f app/Dockerfile app -echo "Done" - -cd docker/local-config/ -echo "starting containers" -$UP_CMD - -cd ../.. diff --git a/app/docs/how-it-works.png b/docs/how-it-works.png similarity index 100% rename from app/docs/how-it-works.png rename to docs/how-it-works.png diff --git a/app/docs/instance-details.png b/docs/instance-details.png similarity index 100% rename from app/docs/instance-details.png rename to docs/instance-details.png diff --git a/app/docs/workflow-details.png b/docs/workflow-details.png similarity index 100% rename from app/docs/workflow-details.png rename to docs/workflow-details.png diff --git a/app/docs/zeebe-simple-monitor.gif b/docs/zeebe-simple-monitor.gif similarity index 100% rename from app/docs/zeebe-simple-monitor.gif rename to docs/zeebe-simple-monitor.gif diff --git a/pom.xml b/pom.xml index ae3599e6..df6fbe67 100644 --- a/pom.xml +++ b/pom.xml @@ -1,44 +1,48 @@ - + 4.0.0 io.zeebe - zeebe-simple-monitor-root + zeebe-simple-monitor 0.18.0-SNAPSHOT - pom + jar org.camunda camunda-release-parent 3.7 - + - - app - - UTF-8 0.23.0 + 0.22.0 + 2.2.6.RELEASE 0.8.0 11 + ${version.java} + + ${java.version} + ${java.version} + https://app.camunda.com/nexus/content/repositories/zeebe-io-snapshots/ https://app.camunda.com/nexus/content/repositories/zeebe-io/ + 3.1.1 -Xdoclint:none - @@ -73,23 +77,198 @@ + + + + + io.zeebe.spring + spring-zeebe-starter + ${version.zeebe.spring} + + + + org.springframework.boot + spring-boot-starter-actuator + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + org.springframework.boot + spring-boot-starter-mustache + + + + org.springframework.boot + spring-boot-starter-websocket + + + + io.zeebe.hazelcast + zeebe-hazelcast-connector + + + + com.h2database + h2 + compile + + + + + + + + + + + + + org.webjars + webjars-locator + 0.39 + + + org.webjars + bootstrap + 4.4.1-1 + + + org.webjars.bower + popper.js + 1.16.0 + + + org.webjars + jquery + 3.5.0 + + + org.webjars.bower + bpmn-js + 0.26.6 + + + + org.webjars + sockjs-client + 1.1.2 + + + org.webjars + stomp-websocket + 2.3.3 + + + + + + junit + junit + 4.13 + test + + + + + org.springframework.boot + spring-boot-devtools + true + + + + + + ${project.name}-${project.version} + + + + + org.apache.maven.plugins + maven-site-plugin + 3.7.1 + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 3.0.0 + + + + org.apache.maven.plugins - maven-compiler-plugin - 3.8.1 + maven-javadoc-plugin - 11 + ${version.java} + - maven-javadoc-plugin + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + com.google.cloud.tools + jib-maven-plugin + 2.1.0 + + + docker.io/camunda/zeebe-simple-monitor + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.1.1 + + + copy + package + + copy + + + - - 8 + + + io.zeebe.hazelcast + zeebe-hazelcast-exporter + ${hazelcast.exporter.version} + jar + jar-with-dependencies + true + ${project.build.directory}/exporter + zeebe-hazelcast-exporter.jar + + + ${project.build.directory}/libs + false + true + diff --git a/app/src/main/java/io/zeebe/monitor/WebSocketConfig.java b/src/main/java/io/zeebe/monitor/WebSocketConfig.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/WebSocketConfig.java rename to src/main/java/io/zeebe/monitor/WebSocketConfig.java diff --git a/app/src/main/java/io/zeebe/monitor/ZeebeSimpleMonitorApp.java b/src/main/java/io/zeebe/monitor/ZeebeSimpleMonitorApp.java similarity index 53% rename from app/src/main/java/io/zeebe/monitor/ZeebeSimpleMonitorApp.java rename to src/main/java/io/zeebe/monitor/ZeebeSimpleMonitorApp.java index c1c90f31..2a21e85b 100644 --- a/app/src/main/java/io/zeebe/monitor/ZeebeSimpleMonitorApp.java +++ b/src/main/java/io/zeebe/monitor/ZeebeSimpleMonitorApp.java @@ -15,81 +15,33 @@ */ package io.zeebe.monitor; -import io.zeebe.monitor.zeebe.ZeebeConnectionService; -import io.zeebe.monitor.zeebe.ZeebeHazelcastService; -import java.util.concurrent.Executor; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import javax.annotation.PostConstruct; -import javax.annotation.PreDestroy; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; +import io.zeebe.spring.client.EnableZeebeClient; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.data.web.config.EnableSpringDataWebSupport; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; + @SpringBootApplication +@EnableZeebeClient @EnableScheduling @EnableAsync @EnableSpringDataWebSupport public class ZeebeSimpleMonitorApp { - private static final Logger LOG = LoggerFactory.getLogger(ZeebeSimpleMonitorApp.class); - - @Value("${io.zeebe.monitor.connectionString}") - private String connectionString; - - @Value("${io.zeebe.monitor.hazelcast.connection}") - private String hazelcastConnection; - - @Autowired private ZeebeConnectionService connectionService; - @Autowired private ZeebeHazelcastService hazelcastService; public static void main(String... args) { SpringApplication.run(ZeebeSimpleMonitorApp.class, args); } - @PostConstruct - public void initConnection() { - connectionService.connect(connectionString); - - if (connectionService.isConnected()) { - onConnected(); - } else { - tryConnecting(); - } - } - - private void onConnected() { - hazelcastService.start(hazelcastConnection); - } - - private void tryConnecting() { - if (connectionService.checkConnection()) { - onConnected(); - } else { - scheduledExecutor().schedule(this::tryConnecting, 100, TimeUnit.MILLISECONDS); - } - } - - @PreDestroy - public void close() { - connectionService.disconnect(); - hazelcastService.close(); - } - @Bean public ScheduledExecutorService scheduledExecutor() { - final ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); - - return executor; + return Executors.newSingleThreadScheduledExecutor(); } @Bean diff --git a/app/src/main/java/io/zeebe/monitor/entity/ElementInstanceEntity.java b/src/main/java/io/zeebe/monitor/entity/ElementInstanceEntity.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/entity/ElementInstanceEntity.java rename to src/main/java/io/zeebe/monitor/entity/ElementInstanceEntity.java diff --git a/app/src/main/java/io/zeebe/monitor/entity/ElementInstanceStatistics.java b/src/main/java/io/zeebe/monitor/entity/ElementInstanceStatistics.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/entity/ElementInstanceStatistics.java rename to src/main/java/io/zeebe/monitor/entity/ElementInstanceStatistics.java diff --git a/app/src/main/java/io/zeebe/monitor/entity/HazelcastConfig.java b/src/main/java/io/zeebe/monitor/entity/HazelcastConfig.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/entity/HazelcastConfig.java rename to src/main/java/io/zeebe/monitor/entity/HazelcastConfig.java diff --git a/app/src/main/java/io/zeebe/monitor/entity/IncidentEntity.java b/src/main/java/io/zeebe/monitor/entity/IncidentEntity.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/entity/IncidentEntity.java rename to src/main/java/io/zeebe/monitor/entity/IncidentEntity.java diff --git a/app/src/main/java/io/zeebe/monitor/entity/JobEntity.java b/src/main/java/io/zeebe/monitor/entity/JobEntity.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/entity/JobEntity.java rename to src/main/java/io/zeebe/monitor/entity/JobEntity.java diff --git a/app/src/main/java/io/zeebe/monitor/entity/MessageEntity.java b/src/main/java/io/zeebe/monitor/entity/MessageEntity.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/entity/MessageEntity.java rename to src/main/java/io/zeebe/monitor/entity/MessageEntity.java diff --git a/app/src/main/java/io/zeebe/monitor/entity/MessageSubscriptionEntity.java b/src/main/java/io/zeebe/monitor/entity/MessageSubscriptionEntity.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/entity/MessageSubscriptionEntity.java rename to src/main/java/io/zeebe/monitor/entity/MessageSubscriptionEntity.java diff --git a/app/src/main/java/io/zeebe/monitor/entity/TimerEntity.java b/src/main/java/io/zeebe/monitor/entity/TimerEntity.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/entity/TimerEntity.java rename to src/main/java/io/zeebe/monitor/entity/TimerEntity.java diff --git a/app/src/main/java/io/zeebe/monitor/entity/VariableEntity.java b/src/main/java/io/zeebe/monitor/entity/VariableEntity.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/entity/VariableEntity.java rename to src/main/java/io/zeebe/monitor/entity/VariableEntity.java diff --git a/app/src/main/java/io/zeebe/monitor/entity/WorkflowEntity.java b/src/main/java/io/zeebe/monitor/entity/WorkflowEntity.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/entity/WorkflowEntity.java rename to src/main/java/io/zeebe/monitor/entity/WorkflowEntity.java diff --git a/app/src/main/java/io/zeebe/monitor/entity/WorkflowInstanceEntity.java b/src/main/java/io/zeebe/monitor/entity/WorkflowInstanceEntity.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/entity/WorkflowInstanceEntity.java rename to src/main/java/io/zeebe/monitor/entity/WorkflowInstanceEntity.java diff --git a/app/src/main/java/io/zeebe/monitor/repository/ElementInstanceRepository.java b/src/main/java/io/zeebe/monitor/repository/ElementInstanceRepository.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/repository/ElementInstanceRepository.java rename to src/main/java/io/zeebe/monitor/repository/ElementInstanceRepository.java diff --git a/app/src/main/java/io/zeebe/monitor/repository/HazelcastConfigRepository.java b/src/main/java/io/zeebe/monitor/repository/HazelcastConfigRepository.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/repository/HazelcastConfigRepository.java rename to src/main/java/io/zeebe/monitor/repository/HazelcastConfigRepository.java diff --git a/app/src/main/java/io/zeebe/monitor/repository/IncidentRepository.java b/src/main/java/io/zeebe/monitor/repository/IncidentRepository.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/repository/IncidentRepository.java rename to src/main/java/io/zeebe/monitor/repository/IncidentRepository.java diff --git a/app/src/main/java/io/zeebe/monitor/repository/JobRepository.java b/src/main/java/io/zeebe/monitor/repository/JobRepository.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/repository/JobRepository.java rename to src/main/java/io/zeebe/monitor/repository/JobRepository.java diff --git a/app/src/main/java/io/zeebe/monitor/repository/MessageRepository.java b/src/main/java/io/zeebe/monitor/repository/MessageRepository.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/repository/MessageRepository.java rename to src/main/java/io/zeebe/monitor/repository/MessageRepository.java diff --git a/app/src/main/java/io/zeebe/monitor/repository/MessageSubscriptionRepository.java b/src/main/java/io/zeebe/monitor/repository/MessageSubscriptionRepository.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/repository/MessageSubscriptionRepository.java rename to src/main/java/io/zeebe/monitor/repository/MessageSubscriptionRepository.java diff --git a/app/src/main/java/io/zeebe/monitor/repository/TimerRepository.java b/src/main/java/io/zeebe/monitor/repository/TimerRepository.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/repository/TimerRepository.java rename to src/main/java/io/zeebe/monitor/repository/TimerRepository.java diff --git a/app/src/main/java/io/zeebe/monitor/repository/VariableRepository.java b/src/main/java/io/zeebe/monitor/repository/VariableRepository.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/repository/VariableRepository.java rename to src/main/java/io/zeebe/monitor/repository/VariableRepository.java diff --git a/app/src/main/java/io/zeebe/monitor/repository/WorkflowInstanceRepository.java b/src/main/java/io/zeebe/monitor/repository/WorkflowInstanceRepository.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/repository/WorkflowInstanceRepository.java rename to src/main/java/io/zeebe/monitor/repository/WorkflowInstanceRepository.java diff --git a/app/src/main/java/io/zeebe/monitor/repository/WorkflowRepository.java b/src/main/java/io/zeebe/monitor/repository/WorkflowRepository.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/repository/WorkflowRepository.java rename to src/main/java/io/zeebe/monitor/repository/WorkflowRepository.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/ActiveScope.java b/src/main/java/io/zeebe/monitor/rest/ActiveScope.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/ActiveScope.java rename to src/main/java/io/zeebe/monitor/rest/ActiveScope.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/AuditLogEntry.java b/src/main/java/io/zeebe/monitor/rest/AuditLogEntry.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/AuditLogEntry.java rename to src/main/java/io/zeebe/monitor/rest/AuditLogEntry.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/BpmnElementInfo.java b/src/main/java/io/zeebe/monitor/rest/BpmnElementInfo.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/BpmnElementInfo.java rename to src/main/java/io/zeebe/monitor/rest/BpmnElementInfo.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/CalledWorkflowInstanceDto.java b/src/main/java/io/zeebe/monitor/rest/CalledWorkflowInstanceDto.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/CalledWorkflowInstanceDto.java rename to src/main/java/io/zeebe/monitor/rest/CalledWorkflowInstanceDto.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/DeploymentDto.java b/src/main/java/io/zeebe/monitor/rest/DeploymentDto.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/DeploymentDto.java rename to src/main/java/io/zeebe/monitor/rest/DeploymentDto.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/ElementInstanceState.java b/src/main/java/io/zeebe/monitor/rest/ElementInstanceState.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/ElementInstanceState.java rename to src/main/java/io/zeebe/monitor/rest/ElementInstanceState.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/FileDto.java b/src/main/java/io/zeebe/monitor/rest/FileDto.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/FileDto.java rename to src/main/java/io/zeebe/monitor/rest/FileDto.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/IncidentDto.java b/src/main/java/io/zeebe/monitor/rest/IncidentDto.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/IncidentDto.java rename to src/main/java/io/zeebe/monitor/rest/IncidentDto.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/IncidentListDto.java b/src/main/java/io/zeebe/monitor/rest/IncidentListDto.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/IncidentListDto.java rename to src/main/java/io/zeebe/monitor/rest/IncidentListDto.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/JobDto.java b/src/main/java/io/zeebe/monitor/rest/JobDto.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/JobDto.java rename to src/main/java/io/zeebe/monitor/rest/JobDto.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/JobResource.java b/src/main/java/io/zeebe/monitor/rest/JobResource.java similarity index 84% rename from app/src/main/java/io/zeebe/monitor/rest/JobResource.java rename to src/main/java/io/zeebe/monitor/rest/JobResource.java index 45c85854..ec803108 100644 --- a/app/src/main/java/io/zeebe/monitor/rest/JobResource.java +++ b/src/main/java/io/zeebe/monitor/rest/JobResource.java @@ -19,9 +19,6 @@ import io.zeebe.client.api.response.ActivatedJob; import io.zeebe.monitor.entity.JobEntity; import io.zeebe.monitor.repository.JobRepository; -import io.zeebe.monitor.zeebe.ZeebeConnectionService; -import java.time.Duration; -import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; @@ -29,29 +26,30 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; +import java.time.Duration; +import java.util.List; + @RestController @RequestMapping("/api/jobs") public class JobResource { private static final String WORKER_NAME = "zeebe-simple-monitor"; - @Autowired private ZeebeConnectionService connections; + @Autowired private ZeebeClient zeebeClient; @Autowired private JobRepository jobRepository; @RequestMapping(path = "/{key}/complete", method = RequestMethod.PUT) public void completeJob(@PathVariable("key") long key, @RequestBody String variables) { - final ZeebeClient client = connections.getClient(); - client.newCompleteCommand(key).variables(variables).send().join(); + zeebeClient.newCompleteCommand(key).variables(variables).send().join(); } @RequestMapping(path = "/{key}/fail", method = RequestMethod.PUT) public void failJob(@PathVariable("key") long key) { - final ZeebeClient client = connections.getClient(); - final ActivatedJob activatedJob = activateJob(key, client); - client + final ActivatedJob activatedJob = activateJob(key, zeebeClient); + zeebeClient .newFailCommand(activatedJob.getKey()) .retries(0) .errorMessage("Failed by user.") @@ -62,12 +60,7 @@ public void failJob(@PathVariable("key") long key) { @RequestMapping(path = "/{key}/throw-error", method = RequestMethod.PUT) public void throwError(@PathVariable("key") long key, @RequestBody ThrowErrorDto dto) { - final ZeebeClient client = connections.getClient(); - client - .newThrowErrorCommand(key) - .errorCode(dto.getErrorCode()) - .send() - .join(); + zeebeClient.newThrowErrorCommand(key).errorCode(dto.getErrorCode()).send().join(); } private ActivatedJob activateJob(long key, final ZeebeClient client) { diff --git a/app/src/main/java/io/zeebe/monitor/rest/MessageDto.java b/src/main/java/io/zeebe/monitor/rest/MessageDto.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/MessageDto.java rename to src/main/java/io/zeebe/monitor/rest/MessageDto.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/MessageResource.java b/src/main/java/io/zeebe/monitor/rest/MessageResource.java similarity index 90% rename from app/src/main/java/io/zeebe/monitor/rest/MessageResource.java rename to src/main/java/io/zeebe/monitor/rest/MessageResource.java index 5ac35959..bc4c3600 100644 --- a/app/src/main/java/io/zeebe/monitor/rest/MessageResource.java +++ b/src/main/java/io/zeebe/monitor/rest/MessageResource.java @@ -15,25 +15,25 @@ */ package io.zeebe.monitor.rest; -import io.zeebe.monitor.zeebe.ZeebeConnectionService; -import java.time.Duration; +import io.zeebe.client.ZeebeClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; +import java.time.Duration; + @RestController @RequestMapping("/api/messages") public class MessageResource { - @Autowired private ZeebeConnectionService connections; + @Autowired private ZeebeClient zeebeClient; @RequestMapping(path = "/", method = RequestMethod.POST) public void publishMessage(@RequestBody PublishMessageDto dto) { - connections - .getClient() + zeebeClient .newPublishMessageCommand() .messageName(dto.getName()) .correlationKey(dto.getCorrelationKey()) diff --git a/app/src/main/java/io/zeebe/monitor/rest/MessageSubscriptionDto.java b/src/main/java/io/zeebe/monitor/rest/MessageSubscriptionDto.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/MessageSubscriptionDto.java rename to src/main/java/io/zeebe/monitor/rest/MessageSubscriptionDto.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/PublishMessageDto.java b/src/main/java/io/zeebe/monitor/rest/PublishMessageDto.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/PublishMessageDto.java rename to src/main/java/io/zeebe/monitor/rest/PublishMessageDto.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/ResolveIncidentDto.java b/src/main/java/io/zeebe/monitor/rest/ResolveIncidentDto.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/ResolveIncidentDto.java rename to src/main/java/io/zeebe/monitor/rest/ResolveIncidentDto.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/ThrowErrorDto.java b/src/main/java/io/zeebe/monitor/rest/ThrowErrorDto.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/ThrowErrorDto.java rename to src/main/java/io/zeebe/monitor/rest/ThrowErrorDto.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/TimerDto.java b/src/main/java/io/zeebe/monitor/rest/TimerDto.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/TimerDto.java rename to src/main/java/io/zeebe/monitor/rest/TimerDto.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/VariableEntry.java b/src/main/java/io/zeebe/monitor/rest/VariableEntry.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/VariableEntry.java rename to src/main/java/io/zeebe/monitor/rest/VariableEntry.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/VariableUpdateEntry.java b/src/main/java/io/zeebe/monitor/rest/VariableUpdateEntry.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/VariableUpdateEntry.java rename to src/main/java/io/zeebe/monitor/rest/VariableUpdateEntry.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/ViewController.java b/src/main/java/io/zeebe/monitor/rest/ViewController.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/ViewController.java rename to src/main/java/io/zeebe/monitor/rest/ViewController.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/WorkerDto.java b/src/main/java/io/zeebe/monitor/rest/WorkerDto.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/WorkerDto.java rename to src/main/java/io/zeebe/monitor/rest/WorkerDto.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/WorkflowDto.java b/src/main/java/io/zeebe/monitor/rest/WorkflowDto.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/WorkflowDto.java rename to src/main/java/io/zeebe/monitor/rest/WorkflowDto.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/WorkflowInstanceDto.java b/src/main/java/io/zeebe/monitor/rest/WorkflowInstanceDto.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/WorkflowInstanceDto.java rename to src/main/java/io/zeebe/monitor/rest/WorkflowInstanceDto.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/WorkflowInstanceListDto.java b/src/main/java/io/zeebe/monitor/rest/WorkflowInstanceListDto.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/WorkflowInstanceListDto.java rename to src/main/java/io/zeebe/monitor/rest/WorkflowInstanceListDto.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/WorkflowInstanceNotification.java b/src/main/java/io/zeebe/monitor/rest/WorkflowInstanceNotification.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/rest/WorkflowInstanceNotification.java rename to src/main/java/io/zeebe/monitor/rest/WorkflowInstanceNotification.java diff --git a/app/src/main/java/io/zeebe/monitor/rest/WorkflowInstanceResource.java b/src/main/java/io/zeebe/monitor/rest/WorkflowInstanceResource.java similarity index 79% rename from app/src/main/java/io/zeebe/monitor/rest/WorkflowInstanceResource.java rename to src/main/java/io/zeebe/monitor/rest/WorkflowInstanceResource.java index 261fa2a5..fb5db0fd 100644 --- a/app/src/main/java/io/zeebe/monitor/rest/WorkflowInstanceResource.java +++ b/src/main/java/io/zeebe/monitor/rest/WorkflowInstanceResource.java @@ -16,7 +16,6 @@ package io.zeebe.monitor.rest; import io.zeebe.client.ZeebeClient; -import io.zeebe.monitor.zeebe.ZeebeConnectionService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; @@ -28,45 +27,37 @@ @RequestMapping("/api/instances") public class WorkflowInstanceResource { - @Autowired private ZeebeConnectionService connections; + @Autowired private ZeebeClient zeebeClient; @RequestMapping(path = "/{key}", method = RequestMethod.DELETE) public void cancelWorkflowInstance(@PathVariable("key") long key) throws Exception { - connections.getClient().newCancelInstanceCommand(key).send().join(); + zeebeClient.newCancelInstanceCommand(key).send().join(); } @RequestMapping(path = "/{key}/set-variables", method = RequestMethod.PUT) public void setVariables(@PathVariable("key") long key, @RequestBody String payload) throws Exception { - connections.getClient().newSetVariablesCommand(key).variables(payload).send().join(); + zeebeClient.newSetVariablesCommand(key).variables(payload).send().join(); } @RequestMapping(path = "/{key}/set-variables-local", method = RequestMethod.PUT) public void setVariablesLocal(@PathVariable("key") long key, @RequestBody String payload) throws Exception { - connections - .getClient() - .newSetVariablesCommand(key) - .variables(payload) - .local(true) - .send() - .join(); + zeebeClient.newSetVariablesCommand(key).variables(payload).local(true).send().join(); } @RequestMapping(path = "/{key}/resolve-incident", method = RequestMethod.PUT) public void resolveIncident(@PathVariable("key") long key, @RequestBody ResolveIncidentDto dto) throws Exception { - final ZeebeClient client = connections.getClient(); - if (dto.getJobKey() != null && dto.getJobKey() > 0) { - client + zeebeClient .newUpdateRetriesCommand(dto.getJobKey()) .retries(dto.getRemainingRetries()) .send() .join(); } - client.newResolveIncidentCommand(key).send().join(); + zeebeClient.newResolveIncidentCommand(key).send().join(); } } diff --git a/app/src/main/java/io/zeebe/monitor/rest/WorkflowResource.java b/src/main/java/io/zeebe/monitor/rest/WorkflowResource.java similarity index 87% rename from app/src/main/java/io/zeebe/monitor/rest/WorkflowResource.java rename to src/main/java/io/zeebe/monitor/rest/WorkflowResource.java index 4e31371c..89e8d57e 100644 --- a/app/src/main/java/io/zeebe/monitor/rest/WorkflowResource.java +++ b/src/main/java/io/zeebe/monitor/rest/WorkflowResource.java @@ -17,9 +17,6 @@ import io.zeebe.client.ZeebeClient; import io.zeebe.client.api.command.DeployWorkflowCommandStep1; -import io.zeebe.monitor.zeebe.ZeebeConnectionService; -import java.io.UnsupportedEncodingException; -import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; @@ -27,18 +24,20 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; +import java.io.UnsupportedEncodingException; +import java.util.List; + @RestController @RequestMapping(path = "/api/workflows") public class WorkflowResource { - @Autowired private ZeebeConnectionService connections; + @Autowired private ZeebeClient zeebeClient; @RequestMapping(path = "/{workflowKey}", method = RequestMethod.POST) public void createWorkflowInstance( @PathVariable("workflowKey") long workflowKey, @RequestBody String payload) { - connections - .getClient() + zeebeClient .newCreateInstanceCommand() .workflowKey(workflowKey) .variables(payload) @@ -50,8 +49,6 @@ public void createWorkflowInstance( public void uploadModel(@RequestBody DeploymentDto deployment) throws UnsupportedEncodingException { - final ZeebeClient client = connections.getClient(); - final List files = deployment.getFiles(); if (files.isEmpty()) { throw new RuntimeException("no resources to deploy"); @@ -60,7 +57,9 @@ public void uploadModel(@RequestBody DeploymentDto deployment) final FileDto firstFile = files.get(0); final DeployWorkflowCommandStep1.DeployWorkflowCommandBuilderStep2 cmd = - client.newDeployCommand().addResourceBytes(firstFile.getContent(), firstFile.getFilename()); + zeebeClient + .newDeployCommand() + .addResourceBytes(firstFile.getContent(), firstFile.getFilename()); for (FileDto file : files.subList(1, files.size())) { cmd.addResourceBytes(file.getContent(), file.getFilename()); diff --git a/app/src/main/java/io/zeebe/monitor/zeebe/ZeebeHazelcastService.java b/src/main/java/io/zeebe/monitor/zeebe/ZeebeHazelcastService.java similarity index 72% rename from app/src/main/java/io/zeebe/monitor/zeebe/ZeebeHazelcastService.java rename to src/main/java/io/zeebe/monitor/zeebe/ZeebeHazelcastService.java index 512581a0..1c57db8b 100644 --- a/app/src/main/java/io/zeebe/monitor/zeebe/ZeebeHazelcastService.java +++ b/src/main/java/io/zeebe/monitor/zeebe/ZeebeHazelcastService.java @@ -6,18 +6,26 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; + @Component public class ZeebeHazelcastService { - private static final Logger LOG = LoggerFactory.getLogger(ZeebeConnectionService.class); + private static final Logger LOG = LoggerFactory.getLogger(ZeebeHazelcastService.class); + + @Value("${zeebe.worker.hazelcast.connection}") + private String hazelcastConnection; @Autowired private ZeebeImportService importService; private AutoCloseable closeable; - public void start(String hazelcastConnection) { + @PostConstruct + public void start() { final ClientConfig clientConfig = new ClientConfig(); clientConfig.getNetworkConfig().addAddress(hazelcastConnection); @@ -29,13 +37,10 @@ public void start(String hazelcastConnection) { closeable = importService.importFrom(hazelcast); } - public void close() { + @PreDestroy + public void close() throws Exception { if (closeable != null) { - try { - closeable.close(); - } catch (Exception e) { - e.printStackTrace(); - } + closeable.close(); } } } diff --git a/app/src/main/java/io/zeebe/monitor/zeebe/ZeebeImportService.java b/src/main/java/io/zeebe/monitor/zeebe/ZeebeImportService.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/zeebe/ZeebeImportService.java rename to src/main/java/io/zeebe/monitor/zeebe/ZeebeImportService.java diff --git a/app/src/main/java/io/zeebe/monitor/zeebe/ZeebeNotificationService.java b/src/main/java/io/zeebe/monitor/zeebe/ZeebeNotificationService.java similarity index 100% rename from app/src/main/java/io/zeebe/monitor/zeebe/ZeebeNotificationService.java rename to src/main/java/io/zeebe/monitor/zeebe/ZeebeNotificationService.java diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml new file mode 100644 index 00000000..cc6afb4a --- /dev/null +++ b/src/main/resources/application.yaml @@ -0,0 +1,42 @@ +zeebe: + + worker: + hazelcast: + connection: localhost:5701 + + client: + broker.contactPoint: 127.0.0.1:26500 + security.plaintext: true + +spring: + + datasource: + url: jdbc:h2:mem:zeebe-monitor;DB_CLOSE_DELAY=-1 + user: sa + password: + driverClassName: org.h2.Driver + + jpa: + database-platform: org.hibernate.dialect.H2Dialect + hibernate: + ddl-auto: update + + mustache: + prefix: classpath:/templates/ + suffix: .html + expose-request-attributes: true + + data: + web: + pageable: + default-page-size: 10 + +server: + port: 8082 + +logging: + level: + root: ERROR + io.zeebe: INFO + io.zeebe.monitor: DEBUG + com.hazelcast: WARN \ No newline at end of file diff --git a/app/src/main/resources/banner.txt b/src/main/resources/banner.txt similarity index 100% rename from app/src/main/resources/banner.txt rename to src/main/resources/banner.txt diff --git a/app/src/main/resources/public/css/app.css b/src/main/resources/public/css/app.css similarity index 100% rename from app/src/main/resources/public/css/app.css rename to src/main/resources/public/css/app.css diff --git a/app/src/main/resources/public/css/bootstrap.min.css b/src/main/resources/public/css/bootstrap.min.css similarity index 100% rename from app/src/main/resources/public/css/bootstrap.min.css rename to src/main/resources/public/css/bootstrap.min.css diff --git a/app/src/main/resources/public/css/modeler.css b/src/main/resources/public/css/modeler.css similarity index 100% rename from app/src/main/resources/public/css/modeler.css rename to src/main/resources/public/css/modeler.css diff --git a/app/src/main/resources/public/fonts/bpmn.eot b/src/main/resources/public/fonts/bpmn.eot similarity index 100% rename from app/src/main/resources/public/fonts/bpmn.eot rename to src/main/resources/public/fonts/bpmn.eot diff --git a/app/src/main/resources/public/fonts/bpmn.svg b/src/main/resources/public/fonts/bpmn.svg similarity index 100% rename from app/src/main/resources/public/fonts/bpmn.svg rename to src/main/resources/public/fonts/bpmn.svg diff --git a/app/src/main/resources/public/fonts/bpmn.ttf b/src/main/resources/public/fonts/bpmn.ttf similarity index 100% rename from app/src/main/resources/public/fonts/bpmn.ttf rename to src/main/resources/public/fonts/bpmn.ttf diff --git a/app/src/main/resources/public/fonts/bpmn.woff b/src/main/resources/public/fonts/bpmn.woff similarity index 100% rename from app/src/main/resources/public/fonts/bpmn.woff rename to src/main/resources/public/fonts/bpmn.woff diff --git a/app/src/main/resources/public/fonts/dmn-js.eot b/src/main/resources/public/fonts/dmn-js.eot similarity index 100% rename from app/src/main/resources/public/fonts/dmn-js.eot rename to src/main/resources/public/fonts/dmn-js.eot diff --git a/app/src/main/resources/public/fonts/dmn-js.svg b/src/main/resources/public/fonts/dmn-js.svg similarity index 100% rename from app/src/main/resources/public/fonts/dmn-js.svg rename to src/main/resources/public/fonts/dmn-js.svg diff --git a/app/src/main/resources/public/fonts/dmn-js.ttf b/src/main/resources/public/fonts/dmn-js.ttf similarity index 100% rename from app/src/main/resources/public/fonts/dmn-js.ttf rename to src/main/resources/public/fonts/dmn-js.ttf diff --git a/app/src/main/resources/public/fonts/dmn-js.woff b/src/main/resources/public/fonts/dmn-js.woff similarity index 100% rename from app/src/main/resources/public/fonts/dmn-js.woff rename to src/main/resources/public/fonts/dmn-js.woff diff --git a/app/src/main/resources/public/fonts/glyphicons-halflings-regular.eot b/src/main/resources/public/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from app/src/main/resources/public/fonts/glyphicons-halflings-regular.eot rename to src/main/resources/public/fonts/glyphicons-halflings-regular.eot diff --git a/app/src/main/resources/public/fonts/glyphicons-halflings-regular.svg b/src/main/resources/public/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from app/src/main/resources/public/fonts/glyphicons-halflings-regular.svg rename to src/main/resources/public/fonts/glyphicons-halflings-regular.svg diff --git a/app/src/main/resources/public/fonts/glyphicons-halflings-regular.ttf b/src/main/resources/public/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from app/src/main/resources/public/fonts/glyphicons-halflings-regular.ttf rename to src/main/resources/public/fonts/glyphicons-halflings-regular.ttf diff --git a/app/src/main/resources/public/fonts/glyphicons-halflings-regular.woff b/src/main/resources/public/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from app/src/main/resources/public/fonts/glyphicons-halflings-regular.woff rename to src/main/resources/public/fonts/glyphicons-halflings-regular.woff diff --git a/app/src/main/resources/public/fonts/glyphicons-halflings-regular.woff2 b/src/main/resources/public/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from app/src/main/resources/public/fonts/glyphicons-halflings-regular.woff2 rename to src/main/resources/public/fonts/glyphicons-halflings-regular.woff2 diff --git a/app/src/main/resources/public/fonts/opensans-bold-webfont.eot b/src/main/resources/public/fonts/opensans-bold-webfont.eot similarity index 100% rename from app/src/main/resources/public/fonts/opensans-bold-webfont.eot rename to src/main/resources/public/fonts/opensans-bold-webfont.eot diff --git a/app/src/main/resources/public/fonts/opensans-bold-webfont.svg b/src/main/resources/public/fonts/opensans-bold-webfont.svg similarity index 100% rename from app/src/main/resources/public/fonts/opensans-bold-webfont.svg rename to src/main/resources/public/fonts/opensans-bold-webfont.svg diff --git a/app/src/main/resources/public/fonts/opensans-bold-webfont.ttf b/src/main/resources/public/fonts/opensans-bold-webfont.ttf similarity index 100% rename from app/src/main/resources/public/fonts/opensans-bold-webfont.ttf rename to src/main/resources/public/fonts/opensans-bold-webfont.ttf diff --git a/app/src/main/resources/public/fonts/opensans-bold-webfont.woff b/src/main/resources/public/fonts/opensans-bold-webfont.woff similarity index 100% rename from app/src/main/resources/public/fonts/opensans-bold-webfont.woff rename to src/main/resources/public/fonts/opensans-bold-webfont.woff diff --git a/app/src/main/resources/public/fonts/opensans-bold-webfont.woff2 b/src/main/resources/public/fonts/opensans-bold-webfont.woff2 similarity index 100% rename from app/src/main/resources/public/fonts/opensans-bold-webfont.woff2 rename to src/main/resources/public/fonts/opensans-bold-webfont.woff2 diff --git a/app/src/main/resources/public/fonts/opensans-light-webfont.eot b/src/main/resources/public/fonts/opensans-light-webfont.eot similarity index 100% rename from app/src/main/resources/public/fonts/opensans-light-webfont.eot rename to src/main/resources/public/fonts/opensans-light-webfont.eot diff --git a/app/src/main/resources/public/fonts/opensans-light-webfont.svg b/src/main/resources/public/fonts/opensans-light-webfont.svg similarity index 100% rename from app/src/main/resources/public/fonts/opensans-light-webfont.svg rename to src/main/resources/public/fonts/opensans-light-webfont.svg diff --git a/app/src/main/resources/public/fonts/opensans-light-webfont.ttf b/src/main/resources/public/fonts/opensans-light-webfont.ttf similarity index 100% rename from app/src/main/resources/public/fonts/opensans-light-webfont.ttf rename to src/main/resources/public/fonts/opensans-light-webfont.ttf diff --git a/app/src/main/resources/public/fonts/opensans-light-webfont.woff b/src/main/resources/public/fonts/opensans-light-webfont.woff similarity index 100% rename from app/src/main/resources/public/fonts/opensans-light-webfont.woff rename to src/main/resources/public/fonts/opensans-light-webfont.woff diff --git a/app/src/main/resources/public/fonts/opensans-light-webfont.woff2 b/src/main/resources/public/fonts/opensans-light-webfont.woff2 similarity index 100% rename from app/src/main/resources/public/fonts/opensans-light-webfont.woff2 rename to src/main/resources/public/fonts/opensans-light-webfont.woff2 diff --git a/app/src/main/resources/public/fonts/opensans-regular-webfont.eot b/src/main/resources/public/fonts/opensans-regular-webfont.eot similarity index 100% rename from app/src/main/resources/public/fonts/opensans-regular-webfont.eot rename to src/main/resources/public/fonts/opensans-regular-webfont.eot diff --git a/app/src/main/resources/public/fonts/opensans-regular-webfont.svg b/src/main/resources/public/fonts/opensans-regular-webfont.svg similarity index 100% rename from app/src/main/resources/public/fonts/opensans-regular-webfont.svg rename to src/main/resources/public/fonts/opensans-regular-webfont.svg diff --git a/app/src/main/resources/public/fonts/opensans-regular-webfont.ttf b/src/main/resources/public/fonts/opensans-regular-webfont.ttf similarity index 100% rename from app/src/main/resources/public/fonts/opensans-regular-webfont.ttf rename to src/main/resources/public/fonts/opensans-regular-webfont.ttf diff --git a/app/src/main/resources/public/fonts/opensans-regular-webfont.woff b/src/main/resources/public/fonts/opensans-regular-webfont.woff similarity index 100% rename from app/src/main/resources/public/fonts/opensans-regular-webfont.woff rename to src/main/resources/public/fonts/opensans-regular-webfont.woff diff --git a/app/src/main/resources/public/fonts/opensans-regular-webfont.woff2 b/src/main/resources/public/fonts/opensans-regular-webfont.woff2 similarity index 100% rename from app/src/main/resources/public/fonts/opensans-regular-webfont.woff2 rename to src/main/resources/public/fonts/opensans-regular-webfont.woff2 diff --git a/app/src/main/resources/public/img/favicon.ico b/src/main/resources/public/img/favicon.ico similarity index 100% rename from app/src/main/resources/public/img/favicon.ico rename to src/main/resources/public/img/favicon.ico diff --git a/app/src/main/resources/public/img/logo.png b/src/main/resources/public/img/logo.png similarity index 100% rename from app/src/main/resources/public/img/logo.png rename to src/main/resources/public/img/logo.png diff --git a/app/src/main/resources/public/img/search-24px.svg b/src/main/resources/public/img/search-24px.svg similarity index 100% rename from app/src/main/resources/public/img/search-24px.svg rename to src/main/resources/public/img/search-24px.svg diff --git a/app/src/main/resources/public/img/zeebe-logo.png b/src/main/resources/public/img/zeebe-logo.png similarity index 100% rename from app/src/main/resources/public/img/zeebe-logo.png rename to src/main/resources/public/img/zeebe-logo.png diff --git a/app/src/main/resources/public/js/app.js b/src/main/resources/public/js/app.js similarity index 100% rename from app/src/main/resources/public/js/app.js rename to src/main/resources/public/js/app.js diff --git a/app/src/main/resources/templates/audit-log.html b/src/main/resources/templates/audit-log.html similarity index 100% rename from app/src/main/resources/templates/audit-log.html rename to src/main/resources/templates/audit-log.html diff --git a/app/src/main/resources/templates/called-workflows-list.html b/src/main/resources/templates/called-workflows-list.html similarity index 100% rename from app/src/main/resources/templates/called-workflows-list.html rename to src/main/resources/templates/called-workflows-list.html diff --git a/app/src/main/resources/templates/components/bpmn-diagram.html b/src/main/resources/templates/components/bpmn-diagram.html similarity index 100% rename from app/src/main/resources/templates/components/bpmn-diagram.html rename to src/main/resources/templates/components/bpmn-diagram.html diff --git a/app/src/main/resources/templates/components/bpmn-element-id.html b/src/main/resources/templates/components/bpmn-element-id.html similarity index 100% rename from app/src/main/resources/templates/components/bpmn-element-id.html rename to src/main/resources/templates/components/bpmn-element-id.html diff --git a/app/src/main/resources/templates/components/table-pagination.html b/src/main/resources/templates/components/table-pagination.html similarity index 100% rename from app/src/main/resources/templates/components/table-pagination.html rename to src/main/resources/templates/components/table-pagination.html diff --git a/app/src/main/resources/templates/components/variables-form-with-key.html b/src/main/resources/templates/components/variables-form-with-key.html similarity index 100% rename from app/src/main/resources/templates/components/variables-form-with-key.html rename to src/main/resources/templates/components/variables-form-with-key.html diff --git a/app/src/main/resources/templates/components/variables-form.html b/src/main/resources/templates/components/variables-form.html similarity index 100% rename from app/src/main/resources/templates/components/variables-form.html rename to src/main/resources/templates/components/variables-form.html diff --git a/app/src/main/resources/templates/error.html b/src/main/resources/templates/error.html similarity index 100% rename from app/src/main/resources/templates/error.html rename to src/main/resources/templates/error.html diff --git a/app/src/main/resources/templates/incident-list-view.html b/src/main/resources/templates/incident-list-view.html similarity index 100% rename from app/src/main/resources/templates/incident-list-view.html rename to src/main/resources/templates/incident-list-view.html diff --git a/app/src/main/resources/templates/incident-list.html b/src/main/resources/templates/incident-list.html similarity index 100% rename from app/src/main/resources/templates/incident-list.html rename to src/main/resources/templates/incident-list.html diff --git a/app/src/main/resources/templates/instance-detail-view.html b/src/main/resources/templates/instance-detail-view.html similarity index 100% rename from app/src/main/resources/templates/instance-detail-view.html rename to src/main/resources/templates/instance-detail-view.html diff --git a/app/src/main/resources/templates/instance-list-view.html b/src/main/resources/templates/instance-list-view.html similarity index 100% rename from app/src/main/resources/templates/instance-list-view.html rename to src/main/resources/templates/instance-list-view.html diff --git a/app/src/main/resources/templates/instance-list.html b/src/main/resources/templates/instance-list.html similarity index 100% rename from app/src/main/resources/templates/instance-list.html rename to src/main/resources/templates/instance-list.html diff --git a/app/src/main/resources/templates/job-list-view.html b/src/main/resources/templates/job-list-view.html similarity index 100% rename from app/src/main/resources/templates/job-list-view.html rename to src/main/resources/templates/job-list-view.html diff --git a/app/src/main/resources/templates/job-list.html b/src/main/resources/templates/job-list.html similarity index 100% rename from app/src/main/resources/templates/job-list.html rename to src/main/resources/templates/job-list.html diff --git a/app/src/main/resources/templates/layout/footer.html b/src/main/resources/templates/layout/footer.html similarity index 100% rename from app/src/main/resources/templates/layout/footer.html rename to src/main/resources/templates/layout/footer.html diff --git a/app/src/main/resources/templates/layout/header.html b/src/main/resources/templates/layout/header.html similarity index 100% rename from app/src/main/resources/templates/layout/header.html rename to src/main/resources/templates/layout/header.html diff --git a/app/src/main/resources/templates/message-list-view.html b/src/main/resources/templates/message-list-view.html similarity index 100% rename from app/src/main/resources/templates/message-list-view.html rename to src/main/resources/templates/message-list-view.html diff --git a/app/src/main/resources/templates/message-subscription-list.html b/src/main/resources/templates/message-subscription-list.html similarity index 100% rename from app/src/main/resources/templates/message-subscription-list.html rename to src/main/resources/templates/message-subscription-list.html diff --git a/app/src/main/resources/templates/modals/cancel-instance-modal.html b/src/main/resources/templates/modals/cancel-instance-modal.html similarity index 100% rename from app/src/main/resources/templates/modals/cancel-instance-modal.html rename to src/main/resources/templates/modals/cancel-instance-modal.html diff --git a/app/src/main/resources/templates/modals/complete-job-modal.html b/src/main/resources/templates/modals/complete-job-modal.html similarity index 100% rename from app/src/main/resources/templates/modals/complete-job-modal.html rename to src/main/resources/templates/modals/complete-job-modal.html diff --git a/app/src/main/resources/templates/modals/create-instance-modal.html b/src/main/resources/templates/modals/create-instance-modal.html similarity index 100% rename from app/src/main/resources/templates/modals/create-instance-modal.html rename to src/main/resources/templates/modals/create-instance-modal.html diff --git a/app/src/main/resources/templates/modals/deployment-modal.html b/src/main/resources/templates/modals/deployment-modal.html similarity index 100% rename from app/src/main/resources/templates/modals/deployment-modal.html rename to src/main/resources/templates/modals/deployment-modal.html diff --git a/app/src/main/resources/templates/modals/fail-job-modal.html b/src/main/resources/templates/modals/fail-job-modal.html similarity index 100% rename from app/src/main/resources/templates/modals/fail-job-modal.html rename to src/main/resources/templates/modals/fail-job-modal.html diff --git a/app/src/main/resources/templates/modals/publish-message-modal.html b/src/main/resources/templates/modals/publish-message-modal.html similarity index 100% rename from app/src/main/resources/templates/modals/publish-message-modal.html rename to src/main/resources/templates/modals/publish-message-modal.html diff --git a/app/src/main/resources/templates/modals/publish-message-subscription-modal.html b/src/main/resources/templates/modals/publish-message-subscription-modal.html similarity index 100% rename from app/src/main/resources/templates/modals/publish-message-subscription-modal.html rename to src/main/resources/templates/modals/publish-message-subscription-modal.html diff --git a/app/src/main/resources/templates/modals/resolve-incident-modal.html b/src/main/resources/templates/modals/resolve-incident-modal.html similarity index 100% rename from app/src/main/resources/templates/modals/resolve-incident-modal.html rename to src/main/resources/templates/modals/resolve-incident-modal.html diff --git a/app/src/main/resources/templates/modals/set-variable-modal.html b/src/main/resources/templates/modals/set-variable-modal.html similarity index 100% rename from app/src/main/resources/templates/modals/set-variable-modal.html rename to src/main/resources/templates/modals/set-variable-modal.html diff --git a/app/src/main/resources/templates/modals/throw-error-modal.html b/src/main/resources/templates/modals/throw-error-modal.html similarity index 100% rename from app/src/main/resources/templates/modals/throw-error-modal.html rename to src/main/resources/templates/modals/throw-error-modal.html diff --git a/app/src/main/resources/templates/modals/update-variable-modal.html b/src/main/resources/templates/modals/update-variable-modal.html similarity index 100% rename from app/src/main/resources/templates/modals/update-variable-modal.html rename to src/main/resources/templates/modals/update-variable-modal.html diff --git a/app/src/main/resources/templates/modals/variable-updates-modal.html b/src/main/resources/templates/modals/variable-updates-modal.html similarity index 100% rename from app/src/main/resources/templates/modals/variable-updates-modal.html rename to src/main/resources/templates/modals/variable-updates-modal.html diff --git a/app/src/main/resources/templates/timer-list.html b/src/main/resources/templates/timer-list.html similarity index 100% rename from app/src/main/resources/templates/timer-list.html rename to src/main/resources/templates/timer-list.html diff --git a/app/src/main/resources/templates/variable-list.html b/src/main/resources/templates/variable-list.html similarity index 100% rename from app/src/main/resources/templates/variable-list.html rename to src/main/resources/templates/variable-list.html diff --git a/app/src/main/resources/templates/workflow-detail-view.html b/src/main/resources/templates/workflow-detail-view.html similarity index 100% rename from app/src/main/resources/templates/workflow-detail-view.html rename to src/main/resources/templates/workflow-detail-view.html diff --git a/app/src/main/resources/templates/workflow-list-view.html b/src/main/resources/templates/workflow-list-view.html similarity index 100% rename from app/src/main/resources/templates/workflow-list-view.html rename to src/main/resources/templates/workflow-list-view.html diff --git a/app/src/main/resources/templates/workflow-message-subscription-list.html b/src/main/resources/templates/workflow-message-subscription-list.html similarity index 100% rename from app/src/main/resources/templates/workflow-message-subscription-list.html rename to src/main/resources/templates/workflow-message-subscription-list.html diff --git a/app/src/main/resources/templates/workflow-timer-list.html b/src/main/resources/templates/workflow-timer-list.html similarity index 100% rename from app/src/main/resources/templates/workflow-timer-list.html rename to src/main/resources/templates/workflow-timer-list.html diff --git a/app/src/test/java/io/zeebe/monitor/Demo.java b/src/test/java/io/zeebe/monitor/Demo.java similarity index 100% rename from app/src/test/java/io/zeebe/monitor/Demo.java rename to src/test/java/io/zeebe/monitor/Demo.java diff --git a/app/src/test/java/io/zeebe/monitor/NoTestsYetTest.java b/src/test/java/io/zeebe/monitor/NoTestsYetTest.java similarity index 100% rename from app/src/test/java/io/zeebe/monitor/NoTestsYetTest.java rename to src/test/java/io/zeebe/monitor/NoTestsYetTest.java diff --git a/app/src/test/resources/orderProcess.bpmn b/src/test/resources/orderProcess.bpmn similarity index 100% rename from app/src/test/resources/orderProcess.bpmn rename to src/test/resources/orderProcess.bpmn diff --git a/app/src/test/resources/payment.bpmn b/src/test/resources/payment.bpmn similarity index 100% rename from app/src/test/resources/payment.bpmn rename to src/test/resources/payment.bpmn diff --git a/app/src/test/resources/ship-parcel.bpmn b/src/test/resources/ship-parcel.bpmn similarity index 100% rename from app/src/test/resources/ship-parcel.bpmn rename to src/test/resources/ship-parcel.bpmn From b3ecfff85576d71270a2a24ec7ea9f683ec019a0 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2020 16:05:22 +0200 Subject: [PATCH 06/12] chore(deps): bump stomp-websocket from 2.3.3 to 2.3.3-1 (#91) Bumps [stomp-websocket](https://github.com/webjars/stomp-websocket) from 2.3.3 to 2.3.3-1. - [Release notes](https://github.com/webjars/stomp-websocket/releases) - [Commits](https://github.com/webjars/stomp-websocket/compare/stomp-websocket-2.3.3...stomp-websocket-2.3.3-1) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index df6fbe67..e26cdf20 100644 --- a/pom.xml +++ b/pom.xml @@ -165,7 +165,7 @@ org.webjars stomp-websocket - 2.3.3 + 2.3.3-1 From 1c6114ca96b32ef1470afd7a483a97ca29ebc755 Mon Sep 17 00:00:00 2001 From: Philipp Ossler Date: Fri, 17 Apr 2020 16:07:15 +0200 Subject: [PATCH 07/12] fix(import): don't import records without keys (#128) --- README.md | 4 +- .../monitor/zeebe/ZeebeImportService.java | 40 +++++++++++++++---- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index b8b2b1cb..1a83511f 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ A monitoring application for [Zeebe](https://zeebe.io). It is designed for devel The application imports the data from Zeebe using the [Hazelcast exporter](https://github.com/zeebe-io/zeebe-hazelcast-exporter). It aggregates the data and store it into a (in-memory) database. The data is display on server-side rendered HTML pages. -![how-it-works](app/docs/how-it-works.png) +![how-it-works](docs/how-it-works.png) ## Install @@ -100,4 +100,4 @@ this code. Please report unacceptable behavior to code-of-conduct@zeebe.io. ## About -![screencast](app/docs/zeebe-simple-monitor.gif) +![screencast](docs/zeebe-simple-monitor.gif) diff --git a/src/main/java/io/zeebe/monitor/zeebe/ZeebeImportService.java b/src/main/java/io/zeebe/monitor/zeebe/ZeebeImportService.java index 3546463c..e802b7e7 100644 --- a/src/main/java/io/zeebe/monitor/zeebe/ZeebeImportService.java +++ b/src/main/java/io/zeebe/monitor/zeebe/ZeebeImportService.java @@ -37,6 +37,8 @@ import org.springframework.stereotype.Component; import java.util.UUID; +import java.util.function.Consumer; +import java.util.function.Function; @Component public class ZeebeImportService { @@ -70,13 +72,25 @@ public ZeebeHazelcast importFrom(HazelcastInstance hazelcast) { final var builder = ZeebeHazelcast.newBuilder(hazelcast) - .addDeploymentListener(this::importDeployment) - .addWorkflowInstanceListener(this::importWorkflowInstance) - .addIncidentListener(this::importIncident) - .addJobListener(this::importJob) - .addVariableListener(this::importVariable) - .addTimerListener(this::importTimer) - .addMessageListener(this::importMessage) + .addDeploymentListener( + record -> + withKey(record, Schema.DeploymentRecord::getMetadata, this::importDeployment)) + .addWorkflowInstanceListener( + record -> + withKey( + record, + Schema.WorkflowInstanceRecord::getMetadata, + this::importWorkflowInstance)) + .addIncidentListener( + record -> withKey(record, Schema.IncidentRecord::getMetadata, this::importIncident)) + .addJobListener( + record -> withKey(record, Schema.JobRecord::getMetadata, this::importJob)) + .addVariableListener( + record -> withKey(record, Schema.VariableRecord::getMetadata, this::importVariable)) + .addTimerListener( + record -> withKey(record, Schema.TimerRecord::getMetadata, this::importTimer)) + .addMessageListener( + record -> withKey(record, Schema.MessageRecord::getMetadata, this::importMessage)) .addMessageSubscriptionListener(this::importMessageSubscription) .addMessageStartEventSubscriptionListener(this::importMessageStartEventSubscription) .postProcessListener( @@ -94,6 +108,18 @@ public ZeebeHazelcast importFrom(HazelcastInstance hazelcast) { return builder.build(); } + private void withKey( + T record, Function extractor, Consumer consumer) { + final var metadata = extractor.apply(record); + if (!hasKey(metadata)) { + consumer.accept(record); + } + } + + private boolean hasKey(Schema.RecordMetadata metadata) { + return metadata.getKey() < 0; + } + private void importDeployment(final Schema.DeploymentRecord record) { final DeploymentIntent intent = DeploymentIntent.valueOf(record.getMetadata().getIntent()); From 4ac529bd89c5028e8b854566015e0ddf660ff4c4 Mon Sep 17 00:00:00 2001 From: camunda-jenkins Date: Fri, 17 Apr 2020 14:10:19 +0000 Subject: [PATCH 08/12] [maven-release-plugin] prepare release 0.18.0 --- pom.xml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index e26cdf20..f6a85baa 100644 --- a/pom.xml +++ b/pom.xml @@ -1,11 +1,10 @@ - + 4.0.0 io.zeebe zeebe-simple-monitor - 0.18.0-SNAPSHOT + 0.18.0 jar @@ -13,7 +12,7 @@ camunda-release-parent 3.7 - + @@ -333,7 +332,7 @@ https://github.com/zeebe-io/zeebe-simple-monitor scm:git:git@github.com:zeebe-io/zeebe-simple-monitor.git scm:git:git@github.com:zeebe-io/zeebe-simple-monitor.git - HEAD + 0.18.0 From 53c41e5d6bb918f1f459f0c8edc18ef776ba93d9 Mon Sep 17 00:00:00 2001 From: camunda-jenkins Date: Fri, 17 Apr 2020 14:10:26 +0000 Subject: [PATCH 09/12] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index f6a85baa..883f8b92 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ io.zeebe zeebe-simple-monitor - 0.18.0 + 0.19.0-SNAPSHOT jar @@ -332,7 +332,7 @@ https://github.com/zeebe-io/zeebe-simple-monitor scm:git:git@github.com:zeebe-io/zeebe-simple-monitor.git scm:git:git@github.com:zeebe-io/zeebe-simple-monitor.git - 0.18.0 + HEAD From 46d281d0e9cc7f45e4900e1991f0e3e4e870e683 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2020 06:25:13 +0200 Subject: [PATCH 10/12] chore(deps): bump maven-site-plugin from 3.7.1 to 3.9.0 (#129) Bumps [maven-site-plugin](https://github.com/apache/maven-site-plugin) from 3.7.1 to 3.9.0. - [Release notes](https://github.com/apache/maven-site-plugin/releases) - [Commits](https://github.com/apache/maven-site-plugin/compare/maven-site-plugin-3.7.1...maven-site-plugin-3.9.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 883f8b92..a8271114 100644 --- a/pom.xml +++ b/pom.xml @@ -194,7 +194,7 @@ org.apache.maven.plugins maven-site-plugin - 3.7.1 + 3.9.0 org.apache.maven.plugins From f15394822e575e3b68cb2fa37e41c4d374261800 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2020 06:26:55 +0200 Subject: [PATCH 11/12] chore(deps): bump maven-dependency-plugin from 3.1.1 to 3.1.2 (#130) Bumps [maven-dependency-plugin](https://github.com/apache/maven-dependency-plugin) from 3.1.1 to 3.1.2. - [Release notes](https://github.com/apache/maven-dependency-plugin/releases) - [Commits](https://github.com/apache/maven-dependency-plugin/compare/maven-dependency-plugin-3.1.1...maven-dependency-plugin-3.1.2) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a8271114..e61c30c4 100644 --- a/pom.xml +++ b/pom.xml @@ -239,7 +239,7 @@ org.apache.maven.plugins maven-dependency-plugin - 3.1.1 + 3.1.2 copy From 66ad9f8bde93964e6ed0c4427fb3efde3d58cdf7 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2020 21:05:07 +0200 Subject: [PATCH 12/12] chore(deps): bump jib-maven-plugin from 2.1.0 to 2.2.0 (#131) Bumps [jib-maven-plugin](https://github.com/GoogleContainerTools/jib) from 2.1.0 to 2.2.0. - [Release notes](https://github.com/GoogleContainerTools/jib/releases) - [Commits](https://github.com/GoogleContainerTools/jib/commits) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e61c30c4..9b9a0afa 100644 --- a/pom.xml +++ b/pom.xml @@ -228,7 +228,7 @@ com.google.cloud.tools jib-maven-plugin - 2.1.0 + 2.2.0 docker.io/camunda/zeebe-simple-monitor