From c3d51c5f324405376418b0aa63976a472f0856f9 Mon Sep 17 00:00:00 2001 From: abhinav Date: Wed, 6 Sep 2023 16:35:11 +0530 Subject: [PATCH 1/4] Added json logging and lostash encoder --- app/pom.xml | 6 ++++++ app/src/main/resources/logback-spring.xml | 14 ++++++++++++++ data/pom.xml | 6 ++++++ graphql-api/pom.xml | 6 ++++++ hazelcast-importer/pom.xml | 7 +++++++ pom.xml | 6 ++++++ 6 files changed, 45 insertions(+) create mode 100644 app/src/main/resources/logback-spring.xml diff --git a/app/pom.xml b/app/pom.xml index 50e9e004..46b118d3 100644 --- a/app/pom.xml +++ b/app/pom.xml @@ -13,6 +13,12 @@ + + net.logstash.logback + logstash-logback-encoder + 6.6 + + io.zeebe.zeeqs graphql-api diff --git a/app/src/main/resources/logback-spring.xml b/app/src/main/resources/logback-spring.xml new file mode 100644 index 00000000..8d74d7dd --- /dev/null +++ b/app/src/main/resources/logback-spring.xml @@ -0,0 +1,14 @@ + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + + \ No newline at end of file diff --git a/data/pom.xml b/data/pom.xml index 04b13d11..e586f8cb 100644 --- a/data/pom.xml +++ b/data/pom.xml @@ -14,6 +14,12 @@ + + net.logstash.logback + logstash-logback-encoder + 6.6 + + org.springframework.boot spring-boot-starter-data-jpa diff --git a/graphql-api/pom.xml b/graphql-api/pom.xml index 87db84d9..f2f94cba 100644 --- a/graphql-api/pom.xml +++ b/graphql-api/pom.xml @@ -13,6 +13,12 @@ + + net.logstash.logback + logstash-logback-encoder + 6.6 + + io.zeebe.zeeqs data diff --git a/hazelcast-importer/pom.xml b/hazelcast-importer/pom.xml index a3b236ab..1c749a13 100644 --- a/hazelcast-importer/pom.xml +++ b/hazelcast-importer/pom.xml @@ -12,6 +12,13 @@ ZeeQS - Hazelcast Importer + + + net.logstash.logback + logstash-logback-encoder + 6.6 + + io.zeebe.zeeqs data diff --git a/pom.xml b/pom.xml index 3dbcb1ea..c41fce33 100644 --- a/pom.xml +++ b/pom.xml @@ -54,6 +54,12 @@ + + net.logstash.logback + logstash-logback-encoder + 6.6 + + io.zeebe.zeeqs data From 5619d565ffcbd4d23afc81505b82546d6e5ca13c Mon Sep 17 00:00:00 2001 From: abhinav Date: Wed, 6 Sep 2023 16:38:43 +0530 Subject: [PATCH 2/4] Spring 3 upgrade changes --- .../kotlin/io/zeebe/zeeqs/ZeeqsApplication.kt | 2 +- .../io/zeebe/zeeqs/data/entity/Decision.kt | 22 +- .../zeeqs/data/entity/DecisionEvaluation.kt | 6 +- .../data/entity/DecisionEvaluationInput.kt | 12 +- .../data/entity/DecisionEvaluationOutput.kt | 12 +- .../zeeqs/data/entity/DecisionRequirements.kt | 12 +- .../zeeqs/data/entity/ElementInstance.kt | 20 +- .../entity/ElementInstanceStateTransition.kt | 23 +- .../io/zeebe/zeeqs/data/entity/Error.kt | 22 +- .../zeeqs/data/entity/EvaluatedDecision.kt | 10 +- .../io/zeebe/zeeqs/data/entity/Incident.kt | 20 +- .../kotlin/io/zeebe/zeeqs/data/entity/Job.kt | 15 +- .../io/zeebe/zeeqs/data/entity/Message.kt | 15 +- .../zeeqs/data/entity/MessageCorrelation.kt | 25 +- .../zeeqs/data/entity/MessageSubscription.kt | 19 +- .../zeeqs/data/entity/MessageVariable.kt | 23 +- .../io/zeebe/zeeqs/data/entity/Process.kt | 26 +- .../zeeqs/data/entity/ProcessInstance.kt | 18 +- .../io/zeebe/zeeqs/data/entity/Signal.kt | 10 +- .../zeeqs/data/entity/SignalSubscription.kt | 3 +- .../zeebe/zeeqs/data/entity/SignalVariable.kt | 13 +- .../io/zeebe/zeeqs/data/entity/Timer.kt | 19 +- .../io/zeebe/zeeqs/data/entity/UserTask.kt | 20 +- .../io/zeebe/zeeqs/data/entity/Variable.kt | 29 +- .../zeebe/zeeqs/data/entity/VariableUpdate.kt | 26 +- .../DecisionEvaluationInputRepository.kt | 3 +- .../DecisionEvaluationOutputRepository.kt | 3 +- .../DecisionEvaluationRepository.kt | 4 +- .../data/repository/DecisionRepository.kt | 4 +- .../DecisionRequirementsRepository.kt | 4 +- .../repository/ElementInstanceRepository.kt | 23 +- ...lementInstanceStateTransitionRepository.kt | 4 +- .../zeeqs/data/repository/ErrorRepository.kt | 3 +- .../repository/EvaluatedDecisionRepository.kt | 3 +- .../data/repository/IncidentRepository.kt | 3 +- .../zeeqs/data/repository/JobRepository.kt | 9 +- .../MessageCorrelationRepository.kt | 9 +- .../data/repository/MessageRepository.kt | 4 +- .../MessageSubscriptionRepository.kt | 4 +- .../repository/MessageVariableRepository.kt | 4 +- .../repository/ProcessInstanceRepository.kt | 10 +- .../data/repository/ProcessRepository.kt | 4 +- .../zeeqs/data/repository/SignalRepository.kt | 5 +- .../SignalSubscriptionRepository.kt | 4 +- .../repository/SignalVariableRepository.kt | 4 +- .../zeeqs/data/repository/TimerRepository.kt | 3 +- .../data/repository/UserTaskRepository.kt | 10 +- .../data/repository/VariableRepository.kt | 4 +- .../repository/VariableUpdateRepository.kt | 4 +- .../zeeqs/data/service/ProcessService.kt | 1 + .../io/zeebe/zeeqs/ProcessServiceTest.kt | 2 +- .../io/zeebe/zeeqs/VariableServiceTest.kt | 272 ++++++++++-------- .../type/MessageSubscriptionResolver.kt | 6 +- .../importer/hazelcast/HazelcastConfig.kt | 11 +- .../importer/hazelcast/HazelcastProperties.kt | 2 +- .../zeeqs/HazelcastImporterDecisionTest.kt | 2 +- .../zeebe/zeeqs/HazelcastImporterJobTest.kt | 80 +++--- 57 files changed, 536 insertions(+), 394 deletions(-) diff --git a/app/src/main/kotlin/io/zeebe/zeeqs/ZeeqsApplication.kt b/app/src/main/kotlin/io/zeebe/zeeqs/ZeeqsApplication.kt index a171d031..1c40677b 100644 --- a/app/src/main/kotlin/io/zeebe/zeeqs/ZeeqsApplication.kt +++ b/app/src/main/kotlin/io/zeebe/zeeqs/ZeeqsApplication.kt @@ -2,12 +2,12 @@ package io.zeebe.zeeqs import io.zeebe.zeeqs.importer.hazelcast.HazelcastImporter import io.zeebe.zeeqs.importer.hazelcast.HazelcastProperties +import jakarta.annotation.PostConstruct import org.slf4j.LoggerFactory import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.boot.runApplication import org.springframework.cache.annotation.EnableCaching -import javax.annotation.PostConstruct @SpringBootApplication @EnableCaching diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Decision.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Decision.kt index 09319465..b699cf7f 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Decision.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Decision.kt @@ -1,15 +1,17 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.Column -import javax.persistence.Entity -import javax.persistence.Id +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.Id @Entity data class Decision( - @Id @Column(name = "key_") val key: Long, - val decisionId: String, - val decisionName: String, - val version: Int, - val decisionRequirementsKey: Long, - val decisionRequirementsId: String -) \ No newline at end of file + @Id @Column(name = "key_") val key: Long, + val decisionId: String, + val decisionName: String, + val version: Int, + val decisionRequirementsKey: Long, + val decisionRequirementsId: String +) { + constructor() : this(0, "", "", 0, 0, "") +} \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/DecisionEvaluation.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/DecisionEvaluation.kt index 5f68bc01..ea2b5a70 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/DecisionEvaluation.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/DecisionEvaluation.kt @@ -1,6 +1,6 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.* +import jakarta.persistence.* @Entity data class DecisionEvaluation( @@ -14,4 +14,6 @@ data class DecisionEvaluation( @Lob val evaluationFailureMessage: String? = null, val processInstanceKey: Long? = null, val elementInstanceKey: Long? = null -) +) { + constructor() : this(0, 0, 0, "", DecisionEvaluationState.EVALUATED, 0, null, null, null, null) +} diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/DecisionEvaluationInput.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/DecisionEvaluationInput.kt index 7bbe5983..acb4cfbf 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/DecisionEvaluationInput.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/DecisionEvaluationInput.kt @@ -1,9 +1,9 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.Column -import javax.persistence.Entity -import javax.persistence.Id -import javax.persistence.Lob +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.Id +import jakarta.persistence.Lob @Entity data class DecisionEvaluationInput( @@ -12,4 +12,6 @@ data class DecisionEvaluationInput( val inputName: String, @Lob @Column(name = "value_") val value: String, val evaluatedDecisionId: String -) +) { + constructor() : this("", "", "", "", "") +} diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/DecisionEvaluationOutput.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/DecisionEvaluationOutput.kt index 819f610f..d6a40807 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/DecisionEvaluationOutput.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/DecisionEvaluationOutput.kt @@ -1,9 +1,9 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.Column -import javax.persistence.Entity -import javax.persistence.Id -import javax.persistence.Lob +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.Id +import jakarta.persistence.Lob @Entity data class DecisionEvaluationOutput( @@ -14,4 +14,6 @@ data class DecisionEvaluationOutput( val evaluatedDecisionId: String, val ruleId: String, val ruleIndex: Int -) +) { + constructor() : this("", "", "", "", "", "", 0) +} diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/DecisionRequirements.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/DecisionRequirements.kt index a884ecdc..54ffbbbf 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/DecisionRequirements.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/DecisionRequirements.kt @@ -1,9 +1,9 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.Column -import javax.persistence.Entity -import javax.persistence.Id -import javax.persistence.Lob +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.Id +import jakarta.persistence.Lob @Entity data class DecisionRequirements( @@ -16,4 +16,6 @@ data class DecisionRequirements( val deployTime: Long, val resourceName: String, @Lob val checksum: String -) \ No newline at end of file +) { + constructor() : this(0, "", "", 0, "", "", 0, "", "") +} \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/ElementInstance.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/ElementInstance.kt index 85c335bf..5d47fbe2 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/ElementInstance.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/ElementInstance.kt @@ -1,18 +1,20 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.* +import jakarta.persistence.* + @Entity class ElementInstance( - @Id @Column(name = "key_") val key: Long, - val position: Long, - val elementId: String, - @Enumerated(EnumType.STRING) - val bpmnElementType: BpmnElementType, - val processInstanceKey: Long, - val processDefinitionKey: Long, - val scopeKey: Long? + @Id @Column(name = "key_") val key: Long, + val position: Long, + val elementId: String, + @Enumerated(EnumType.STRING) + val bpmnElementType: BpmnElementType, + val processInstanceKey: Long, + val processDefinitionKey: Long, + val scopeKey: Long? ) { + constructor() : this(0, 0, "", BpmnElementType.UNKNOWN, 0, 0, null) var state: ElementInstanceState = ElementInstanceState.ACTIVATING diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/ElementInstanceStateTransition.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/ElementInstanceStateTransition.kt index 7432d40e..7430f16b 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/ElementInstanceStateTransition.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/ElementInstanceStateTransition.kt @@ -1,15 +1,18 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.Entity -import javax.persistence.Id -import javax.persistence.Enumerated -import javax.persistence.EnumType +import jakarta.persistence.Entity +import jakarta.persistence.EnumType +import jakarta.persistence.Enumerated +import jakarta.persistence.Id + @Entity class ElementInstanceStateTransition( - @Id val partitionIdWithPosition: String, - val elementInstanceKey: Long, - @Enumerated(EnumType.STRING) - val state: ElementInstanceState, - val timestamp: Long -) \ No newline at end of file + @Id val partitionIdWithPosition: String, + val elementInstanceKey: Long, + @Enumerated(EnumType.STRING) + val state: ElementInstanceState, + val timestamp: Long +) { + constructor() : this("", 0, ElementInstanceState.ACTIVATING, 0) +} \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Error.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Error.kt index 2f139f13..07a0d464 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Error.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Error.kt @@ -1,13 +1,17 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.Entity -import javax.persistence.Id -import javax.persistence.Lob +import jakarta.persistence.Entity +import jakarta.persistence.Id +import jakarta.persistence.Lob + @Entity -class Error(@Id val position: Long, - val errorEventPosition: Long, - @Lob val exceptionMessage: String, - @Lob val stacktrace:String, - val processInstanceKey: Long? - ) \ No newline at end of file +class Error( + @Id val position: Long, + val errorEventPosition: Long, + @Lob val exceptionMessage: String, + @Lob val stacktrace: String, + val processInstanceKey: Long? +) { + constructor() : this(0, 0, "", "", null) +} \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/EvaluatedDecision.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/EvaluatedDecision.kt index c2a0ed19..1c4a643a 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/EvaluatedDecision.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/EvaluatedDecision.kt @@ -1,8 +1,8 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.Entity -import javax.persistence.Id -import javax.persistence.Lob +import jakarta.persistence.Entity +import jakarta.persistence.Id +import jakarta.persistence.Lob @Entity data class EvaluatedDecision( @@ -10,4 +10,6 @@ data class EvaluatedDecision( val decisionKey: Long, @Lob val decisionOutput: String, val decisionEvaluationKey: Long -) +) { + constructor() : this("", 0, "", 0) +} diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Incident.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Incident.kt index e2bcba7a..c120476a 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Incident.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Incident.kt @@ -1,18 +1,20 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.* +import jakarta.persistence.* + @Entity class Incident( - @Id @Column(name = "key_") val key: Long, - val position: Long, - val errorType: String, - @Lob val errorMessage: String, - val processInstanceKey: Long, - val elementInstanceKey: Long, - val processDefinitionKey: Long, - val jobKey: Long? + @Id @Column(name = "key_") val key: Long, + val position: Long, + val errorType: String, + @Lob val errorMessage: String, + val processInstanceKey: Long, + val elementInstanceKey: Long, + val processDefinitionKey: Long, + val jobKey: Long? ) { + constructor() : this(0, 0, "", "", 0, 0, 0, null) @Enumerated(EnumType.STRING) var state: IncidentState = IncidentState.CREATED diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Job.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Job.kt index 7ffb3752..6e171465 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Job.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Job.kt @@ -1,16 +1,17 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.* +import jakarta.persistence.* @Entity data class Job( - @Id @Column(name = "key_") val key: Long, - val position: Long, - val jobType: String, - val processInstanceKey: Long, - val elementInstanceKey: Long, - val processDefinitionKey: Long + @Id @Column(name = "key_") val key: Long, + val position: Long, + val jobType: String, + val processInstanceKey: Long, + val elementInstanceKey: Long, + val processDefinitionKey: Long ) { + constructor() : this(0, 0, "", 0, 0, 0) @Enumerated(EnumType.STRING) var state: JobState = JobState.ACTIVATABLE diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Message.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Message.kt index 17b07009..920868de 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Message.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Message.kt @@ -1,16 +1,17 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.* +import jakarta.persistence.* @Entity class Message( - @Id @Column(name = "key_") val key: Long, - val position: Long, - val name: String, - val correlationKey: String?, - val messageId: String?, - val timeToLive: Long + @Id @Column(name = "key_") val key: Long, + val position: Long, + val name: String, + val correlationKey: String?, + val messageId: String?, + val timeToLive: Long ) { + constructor() : this(0, 0, "", null, null, 0) @Enumerated(EnumType.STRING) var state: MessageState = MessageState.PUBLISHED diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/MessageCorrelation.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/MessageCorrelation.kt index eb5612c2..9bb5a97c 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/MessageCorrelation.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/MessageCorrelation.kt @@ -1,16 +1,19 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.Entity -import javax.persistence.Id +import jakarta.persistence.Entity +import jakarta.persistence.Id + @Entity class MessageCorrelation( - @Id val partitionIdWithPosition: String, - val messageKey: Long, - val messageName: String, - val timestamp: Long, - val processInstanceKey: Long, - val elementInstanceKey: Long?, - val elementId: String?, - val processDefinitionKey: Long? -) \ No newline at end of file + @Id val partitionIdWithPosition: String, + val messageKey: Long, + val messageName: String, + val timestamp: Long, + val processInstanceKey: Long, + val elementInstanceKey: Long?, + val elementId: String?, + val processDefinitionKey: Long? +) { + constructor() : this("", 0, "", 0, 0, null, null, null) +} \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/MessageSubscription.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/MessageSubscription.kt index bd7c7c5b..1e00fd7c 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/MessageSubscription.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/MessageSubscription.kt @@ -1,18 +1,19 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.* +import jakarta.persistence.* @Entity class MessageSubscription( - @Id @Column(name = "key_") val key: Long, - val position: Long, - val messageName: String, - val messageCorrelationKey: String?, - val processInstanceKey: Long?, - val elementInstanceKey: Long?, - val processDefinitionKey: Long?, - val elementId: String? + @Id @Column(name = "key_") val key: Long, + val position: Long, + val messageName: String, + val messageCorrelationKey: String?, + val processInstanceKey: Long?, + val elementInstanceKey: Long?, + val processDefinitionKey: Long?, + val elementId: String? ) { + constructor() : this(0, 0, "", "", 0, null, null, null) @Enumerated(EnumType.STRING) var state: MessageSubscriptionState = MessageSubscriptionState.CREATED diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/MessageVariable.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/MessageVariable.kt index a3a9a295..9e78bc74 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/MessageVariable.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/MessageVariable.kt @@ -1,15 +1,18 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.Column -import javax.persistence.Entity -import javax.persistence.Id -import javax.persistence.Lob +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.Id +import jakarta.persistence.Lob + @Entity class MessageVariable( - @Id val id: String, - val name: String, - @Lob @Column(name = "value_") val value: String, - val messageKey: Long, - val position: Long -) \ No newline at end of file + @Id val id: String, + val name: String, + @Lob @Column(name = "value_") val value: String, + val messageKey: Long, + val position: Long +) { + constructor() : this("", "", "", 0, 0) +} \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Process.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Process.kt index f9ae3113..4b3859be 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Process.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Process.kt @@ -1,16 +1,20 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.Column -import javax.persistence.Entity -import javax.persistence.Id -import javax.persistence.Lob +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.Id +import jakarta.persistence.Lob + @Entity data class Process( - @Id @Column(name = "key_") val key: Long, - val bpmnProcessId: String, - val version: Int, - @Lob val bpmnXML: String, - val deployTime: Long, - val resourceName: String, - @Lob val checksum: String) + @Id @Column(name = "key_") val key: Long, + val bpmnProcessId: String, + val version: Int, + @Lob val bpmnXML: String, + val deployTime: Long, + val resourceName: String, + @Lob val checksum: String +) { + constructor() : this(0, "", 0, "", 0, "", "") +} diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/ProcessInstance.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/ProcessInstance.kt index c1baf640..20789a77 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/ProcessInstance.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/ProcessInstance.kt @@ -1,16 +1,18 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.* +import jakarta.persistence.* @Entity data class ProcessInstance( - @Id @Column(name = "key_") val key: Long, - val position: Long, - val bpmnProcessId: String, - val version: Int, - val processDefinitionKey: Long, - val parentProcessInstanceKey: Long?, - val parentElementInstanceKey: Long?) { + @Id @Column(name = "key_") val key: Long, + val position: Long, + val bpmnProcessId: String, + val version: Int, + val processDefinitionKey: Long, + val parentProcessInstanceKey: Long?, + val parentElementInstanceKey: Long? +) { + constructor() : this(0, 0, "", 0, 0, null, null) @Enumerated(EnumType.STRING) var state: ProcessInstanceState = ProcessInstanceState.ACTIVATED diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Signal.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Signal.kt index 138d8662..468c4ada 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Signal.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Signal.kt @@ -1,8 +1,8 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.Column -import javax.persistence.Entity -import javax.persistence.Id +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.Id @Entity class Signal( @@ -10,4 +10,6 @@ class Signal( val position: Long, val name: String, var timestamp: Long -) \ No newline at end of file +) { + constructor() : this(0, 0, "", 0) +} \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/SignalSubscription.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/SignalSubscription.kt index 0a9bc0bb..36eb521b 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/SignalSubscription.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/SignalSubscription.kt @@ -1,6 +1,6 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.* +import jakarta.persistence.* @Entity class SignalSubscription( @@ -10,6 +10,7 @@ class SignalSubscription( val processDefinitionKey: Long, val elementId: String ) { + constructor() : this(0, 0, "", 0, "") @Enumerated(EnumType.STRING) var state: SignalSubscriptionState = SignalSubscriptionState.CREATED diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/SignalVariable.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/SignalVariable.kt index 4d7f8b1d..52981f52 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/SignalVariable.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/SignalVariable.kt @@ -1,9 +1,10 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.Column -import javax.persistence.Entity -import javax.persistence.Id -import javax.persistence.Lob +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.Id +import jakarta.persistence.Lob + @Entity class SignalVariable( @@ -12,4 +13,6 @@ class SignalVariable( @Lob @Column(name = "value_") val value: String, val signalKey: Long, val position: Long -) \ No newline at end of file +) { + constructor() : this("", "", "", 0, 0) +} \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Timer.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Timer.kt index 638a76ae..6fcdebfc 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Timer.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Timer.kt @@ -1,18 +1,19 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.* +import jakarta.persistence.* @Entity class Timer( - @Id @Column(name = "key_") val key: Long, - val position: Long, - val dueDate: Long, - var repetitions: Int, - val elementId: String, - var processInstanceKey: Long?, - val elementInstanceKey: Long?, - val processDefinitionKey: Long? + @Id @Column(name = "key_") val key: Long, + val position: Long, + val dueDate: Long, + var repetitions: Int, + val elementId: String, + var processInstanceKey: Long?, + val elementInstanceKey: Long?, + val processDefinitionKey: Long? ) { + constructor() : this(0, 0, 0, 0, "", null, null, null) @Enumerated(EnumType.STRING) var state: TimerState = TimerState.CREATED diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/UserTask.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/UserTask.kt index f8742f5e..9f895b20 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/UserTask.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/UserTask.kt @@ -1,18 +1,20 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.* +import jakarta.persistence.* @Entity data class UserTask( - @Id @Column(name = "key_") val key: Long, - val position: Long, - val processInstanceKey: Long, - val processDefinitionKey: Long, - val elementInstanceKey: Long, - val assignee: String?, - val candidateGroups: String?, - val formKey: String? + @Id @Column(name = "key_") val key: Long, + val position: Long, + val processInstanceKey: Long, + val processDefinitionKey: Long, + val elementInstanceKey: Long, + val assignee: String?, + val candidateGroups: String?, + val formKey: String? ) { + constructor() : this(0, 0, 0, 0, 0, null, null, null) + @Enumerated(EnumType.STRING) var state: UserTaskState = UserTaskState.CREATED var timestamp: Long = -1 diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Variable.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Variable.kt index 9e8c95bf..c0a7af94 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Variable.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/Variable.kt @@ -1,18 +1,21 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.Column -import javax.persistence.Entity -import javax.persistence.Id -import javax.persistence.Lob +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.Id +import jakarta.persistence.Lob + @Entity class Variable( - @Id @Column(name = "key_") val key: Long, - val position: Long, - val name: String, - val processInstanceKey: Long, - val processDefinitionKey: Long, - val scopeKey: Long, - @Lob @Column(name = "value_") var value: String, - var timestamp: Long -) \ No newline at end of file + @Id @Column(name = "key_") val key: Long, + val position: Long, + val name: String, + val processInstanceKey: Long, + val processDefinitionKey: Long, + val scopeKey: Long, + @Lob @Column(name = "value_") var value: String, + var timestamp: Long +) { + constructor() : this(0, 0, "", 0, 0, 0L, "", 0) +} \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/VariableUpdate.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/VariableUpdate.kt index 7c4ef985..bfd1b5a9 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/VariableUpdate.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/entity/VariableUpdate.kt @@ -1,17 +1,19 @@ package io.zeebe.zeeqs.data.entity -import javax.persistence.Column -import javax.persistence.Entity -import javax.persistence.Id -import javax.persistence.Lob +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.Id +import jakarta.persistence.Lob @Entity class VariableUpdate( - @Id val partitionIdWithPosition: String, - val variableKey: Long, - val name: String, - @Lob @Column(name = "value_") val value: String, - val processInstanceKey: Long, - val scopeKey: Long, - val timestamp: Long -) \ No newline at end of file + @Id val partitionIdWithPosition: String, + val variableKey: Long, + val name: String, + @Lob @Column(name = "value_") val value: String, + val processInstanceKey: Long, + val scopeKey: Long, + val timestamp: Long +) { + constructor() : this("", 0, "", "", 0, 0, 0) +} \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionEvaluationInputRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionEvaluationInputRepository.kt index 804fa88c..a98ca825 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionEvaluationInputRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionEvaluationInputRepository.kt @@ -1,12 +1,13 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.DecisionEvaluationInput +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository interface DecisionEvaluationInputRepository : - PagingAndSortingRepository { + PagingAndSortingRepository, CrudRepository { fun findAllByEvaluatedDecisionId(evaluatedDecisionId: String): List } \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionEvaluationOutputRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionEvaluationOutputRepository.kt index 7819b427..c8528144 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionEvaluationOutputRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionEvaluationOutputRepository.kt @@ -1,12 +1,13 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.DecisionEvaluationOutput +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository interface DecisionEvaluationOutputRepository : - PagingAndSortingRepository { + PagingAndSortingRepository, CrudRepository { fun findAllByEvaluatedDecisionId(evaluatedDecisionId: String): List } \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionEvaluationRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionEvaluationRepository.kt index e3fc2930..9a9dfb16 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionEvaluationRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionEvaluationRepository.kt @@ -3,11 +3,13 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.DecisionEvaluation import io.zeebe.zeeqs.data.entity.DecisionEvaluationState import org.springframework.data.domain.Pageable +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface DecisionEvaluationRepository : PagingAndSortingRepository { +interface DecisionEvaluationRepository : PagingAndSortingRepository, + CrudRepository { fun findAllByDecisionKey( decisionKey: Long, diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionRepository.kt index 1015666e..e0a7910c 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionRepository.kt @@ -1,11 +1,13 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.Decision +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface DecisionRepository : PagingAndSortingRepository { +interface DecisionRepository : PagingAndSortingRepository, + CrudRepository { fun findAllByDecisionRequirementsKey(decisionRequirementsKey: Long): List diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionRequirementsRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionRequirementsRepository.kt index 7a43cfeb..043bbdfb 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionRequirementsRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/DecisionRequirementsRepository.kt @@ -1,8 +1,10 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.DecisionRequirements +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface DecisionRequirementsRepository : PagingAndSortingRepository \ No newline at end of file +interface DecisionRequirementsRepository : PagingAndSortingRepository, + CrudRepository \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ElementInstanceRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ElementInstanceRepository.kt index feb9837c..ff049789 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ElementInstanceRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ElementInstanceRepository.kt @@ -3,23 +3,30 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.ElementInstance import io.zeebe.zeeqs.data.entity.ElementInstanceState import org.springframework.data.domain.Pageable +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface ElementInstanceRepository : PagingAndSortingRepository { +interface ElementInstanceRepository : PagingAndSortingRepository, + CrudRepository { fun findByProcessInstanceKey(processInstanceKey: Long): List - fun findByProcessInstanceKeyAndStateIn(processInstanceKey: Long, stateIn: List): List + fun findByProcessInstanceKeyAndStateIn( + processInstanceKey: Long, + stateIn: List + ): List fun findByProcessDefinitionKeyAndElementIdAndStateIn( - processDefinitionKey: Long, - elementId: String, - stateIn: List, pageable: Pageable): List + processDefinitionKey: Long, + elementId: String, + stateIn: List, pageable: Pageable + ): List fun countByProcessDefinitionKeyAndElementIdAndStateIn( - processDefinitionKey: Long, - elementId: String, - stateIn: List): Long + processDefinitionKey: Long, + elementId: String, + stateIn: List + ): Long } \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ElementInstanceStateTransitionRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ElementInstanceStateTransitionRepository.kt index edc395bb..5828f370 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ElementInstanceStateTransitionRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ElementInstanceStateTransitionRepository.kt @@ -1,11 +1,13 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.ElementInstanceStateTransition +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface ElementInstanceStateTransitionRepository : PagingAndSortingRepository { +interface ElementInstanceStateTransitionRepository : PagingAndSortingRepository, + CrudRepository { fun findByElementInstanceKey(elementInstanceKey: Long): List } \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ErrorRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ErrorRepository.kt index dd593d03..b9fd3ef3 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ErrorRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ErrorRepository.kt @@ -1,11 +1,12 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.Error +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface ErrorRepository: PagingAndSortingRepository { +interface ErrorRepository : PagingAndSortingRepository, CrudRepository { fun findByProcessInstanceKey(processInstanceKey: Long): Error? diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/EvaluatedDecisionRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/EvaluatedDecisionRepository.kt index eafe13fb..e9d97d83 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/EvaluatedDecisionRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/EvaluatedDecisionRepository.kt @@ -1,12 +1,13 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.EvaluatedDecision +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository interface EvaluatedDecisionRepository : - PagingAndSortingRepository { + PagingAndSortingRepository, CrudRepository { fun findAllByDecisionEvaluationKey(decisionEvaluationKey: Long): List } \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/IncidentRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/IncidentRepository.kt index b1c9bf53..17bdeea0 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/IncidentRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/IncidentRepository.kt @@ -3,12 +3,13 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.Incident import io.zeebe.zeeqs.data.entity.IncidentState import org.springframework.data.domain.Pageable +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository import org.springframework.transaction.annotation.Transactional @Repository -interface IncidentRepository : PagingAndSortingRepository { +interface IncidentRepository : PagingAndSortingRepository, CrudRepository { @Transactional(readOnly = true) fun findByProcessInstanceKey(processInstanceKey: Long): List diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/JobRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/JobRepository.kt index 8c73d65f..99617810 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/JobRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/JobRepository.kt @@ -3,17 +3,22 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.Job import io.zeebe.zeeqs.data.entity.JobState import org.springframework.data.domain.Pageable +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface JobRepository : PagingAndSortingRepository { +interface JobRepository : PagingAndSortingRepository, CrudRepository { fun findByProcessInstanceKey(processInstanceKey: Long): List fun findByProcessInstanceKeyAndStateIn(processInstanceKey: Long, stateIn: List): List - fun findByProcessInstanceKeyAndStateInAndJobTypeIn(processInstanceKey: Long, stateIn: List, jobTypeIn: List): List + fun findByProcessInstanceKeyAndStateInAndJobTypeIn( + processInstanceKey: Long, + stateIn: List, + jobTypeIn: List + ): List fun findByStateIn(stateIn: List, pageable: Pageable): List diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/MessageCorrelationRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/MessageCorrelationRepository.kt index 6f777920..7bb52437 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/MessageCorrelationRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/MessageCorrelationRepository.kt @@ -1,15 +1,20 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.MessageCorrelation +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface MessageCorrelationRepository : PagingAndSortingRepository { +interface MessageCorrelationRepository : PagingAndSortingRepository, + CrudRepository { fun findByMessageNameAndElementInstanceKey(messageName: String, elementInstanceKey: Long): List - fun findByMessageNameAndProcessDefinitionKey(messageName: String, processDefinitionKey: Long): List + fun findByMessageNameAndProcessDefinitionKey( + messageName: String, + processDefinitionKey: Long + ): List fun findByMessageKey(messageKey: Long): List } \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/MessageRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/MessageRepository.kt index fab50e2d..01cf7201 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/MessageRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/MessageRepository.kt @@ -3,11 +3,13 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.Message import io.zeebe.zeeqs.data.entity.MessageState import org.springframework.data.domain.Pageable +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface MessageRepository : PagingAndSortingRepository { +interface MessageRepository : PagingAndSortingRepository, + CrudRepository { fun findByStateIn(stateIn: List, pageable: Pageable): List diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/MessageSubscriptionRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/MessageSubscriptionRepository.kt index 5a34918a..82972ca2 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/MessageSubscriptionRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/MessageSubscriptionRepository.kt @@ -1,11 +1,13 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.MessageSubscription +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface MessageSubscriptionRepository : PagingAndSortingRepository { +interface MessageSubscriptionRepository : PagingAndSortingRepository, + CrudRepository { fun findByProcessInstanceKey(processInstanceKey: Long): List diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/MessageVariableRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/MessageVariableRepository.kt index 1b09840c..1aae3577 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/MessageVariableRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/MessageVariableRepository.kt @@ -1,11 +1,13 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.MessageVariable +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface MessageVariableRepository : PagingAndSortingRepository { +interface MessageVariableRepository : PagingAndSortingRepository, + CrudRepository { fun findByMessageKey(messageKey: Long): List diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ProcessInstanceRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ProcessInstanceRepository.kt index f9bcff71..4f2b9286 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ProcessInstanceRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ProcessInstanceRepository.kt @@ -3,15 +3,21 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.ProcessInstance import io.zeebe.zeeqs.data.entity.ProcessInstanceState import org.springframework.data.domain.Pageable +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface ProcessInstanceRepository : PagingAndSortingRepository { +interface ProcessInstanceRepository : PagingAndSortingRepository, + CrudRepository { fun findByParentProcessInstanceKey(parentProcessInstanceKey: Long): List - fun findByProcessDefinitionKeyAndStateIn(processDefinitionKey: Long, stateIn: List, pageable: Pageable): List + fun findByProcessDefinitionKeyAndStateIn( + processDefinitionKey: Long, + stateIn: List, + pageable: Pageable + ): List fun countByProcessDefinitionKeyAndStateIn(processDefinitionKey: Long, stateIn: List): Long diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ProcessRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ProcessRepository.kt index 0b237489..bccfc887 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ProcessRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ProcessRepository.kt @@ -1,8 +1,10 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.Process +import org.springframework.data.jpa.repository.JpaRepository +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface ProcessRepository : PagingAndSortingRepository \ No newline at end of file +interface ProcessRepository : JpaRepository \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/SignalRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/SignalRepository.kt index 3317b504..4875aa38 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/SignalRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/SignalRepository.kt @@ -1,10 +1,9 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.Signal +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface SignalRepository : PagingAndSortingRepository { - -} \ No newline at end of file +interface SignalRepository : PagingAndSortingRepository, CrudRepository \ No newline at end of file diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/SignalSubscriptionRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/SignalSubscriptionRepository.kt index 49dbe341..db973be8 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/SignalSubscriptionRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/SignalSubscriptionRepository.kt @@ -1,11 +1,13 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.SignalSubscription +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface SignalSubscriptionRepository : PagingAndSortingRepository { +interface SignalSubscriptionRepository : PagingAndSortingRepository, + CrudRepository { fun findByProcessDefinitionKey(processDefinitionKey: Long): List diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/SignalVariableRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/SignalVariableRepository.kt index 00b6a4a0..d191bea6 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/SignalVariableRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/SignalVariableRepository.kt @@ -1,11 +1,13 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.SignalVariable +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface SignalVariableRepository : PagingAndSortingRepository { +interface SignalVariableRepository : PagingAndSortingRepository, + CrudRepository { fun findBySignalKey(signalKey: Long): List diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/TimerRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/TimerRepository.kt index c5c6a1c9..1d906a82 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/TimerRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/TimerRepository.kt @@ -1,11 +1,12 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.Timer +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface TimerRepository : PagingAndSortingRepository { +interface TimerRepository : PagingAndSortingRepository, CrudRepository { fun findByProcessInstanceKeyAndElementInstanceKeyIsNotNull(processInstanceKey: Long): List diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/UserTaskRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/UserTaskRepository.kt index 0318ef03..83b7248e 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/UserTaskRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/UserTaskRepository.kt @@ -3,15 +3,21 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.UserTask import io.zeebe.zeeqs.data.entity.UserTaskState import org.springframework.data.domain.Pageable +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface UserTaskRepository : PagingAndSortingRepository { +interface UserTaskRepository : PagingAndSortingRepository, + CrudRepository { fun findByProcessInstanceKey(processInstanceKey: Long): List - fun findByProcessInstanceKeyAndStateIn(processInstanceKey: Long, stateIn: List, pageable: Pageable): List + fun findByProcessInstanceKeyAndStateIn( + processInstanceKey: Long, + stateIn: List, + pageable: Pageable + ): List fun findByStateIn(stateIn: List, pageable: Pageable): List diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/VariableRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/VariableRepository.kt index 5f9a315e..2c289bed 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/VariableRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/VariableRepository.kt @@ -1,12 +1,14 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.Variable +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository import org.springframework.transaction.annotation.Transactional @Repository -interface VariableRepository : PagingAndSortingRepository { +interface VariableRepository : PagingAndSortingRepository, + CrudRepository { @Transactional(readOnly = true) fun findByProcessInstanceKey(processInstanceKey: Long): List diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/VariableUpdateRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/VariableUpdateRepository.kt index 68657f6e..3c2cdd0f 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/VariableUpdateRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/VariableUpdateRepository.kt @@ -1,12 +1,14 @@ package io.zeebe.zeeqs.data.repository import io.zeebe.zeeqs.data.entity.VariableUpdate +import org.springframework.data.repository.CrudRepository import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository import org.springframework.transaction.annotation.Transactional @Repository -interface VariableUpdateRepository : PagingAndSortingRepository { +interface VariableUpdateRepository : PagingAndSortingRepository, + CrudRepository { @Transactional(readOnly = true) fun findByProcessInstanceKey(processInstanceKey: Long): List diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/service/ProcessService.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/service/ProcessService.kt index 794a692f..55d35d8b 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/service/ProcessService.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/service/ProcessService.kt @@ -9,6 +9,7 @@ import io.zeebe.zeeqs.data.entity.BpmnElementType import io.zeebe.zeeqs.data.repository.ProcessRepository import org.camunda.bpm.model.xml.ModelInstance import org.springframework.cache.annotation.Cacheable +import org.springframework.data.domain.Pageable import org.springframework.data.repository.findByIdOrNull import org.springframework.stereotype.Component diff --git a/data/src/test/kotlin/io/zeebe/zeeqs/ProcessServiceTest.kt b/data/src/test/kotlin/io/zeebe/zeeqs/ProcessServiceTest.kt index 337243b1..bd0d46b7 100644 --- a/data/src/test/kotlin/io/zeebe/zeeqs/ProcessServiceTest.kt +++ b/data/src/test/kotlin/io/zeebe/zeeqs/ProcessServiceTest.kt @@ -6,6 +6,7 @@ import io.zeebe.zeeqs.data.entity.BpmnElementType import io.zeebe.zeeqs.data.entity.Process import io.zeebe.zeeqs.data.repository.ProcessRepository import io.zeebe.zeeqs.data.service.* +import jakarta.transaction.Transactional import org.assertj.core.api.Assertions.assertThat import org.assertj.core.api.Assertions.entry import org.junit.jupiter.api.BeforeEach @@ -16,7 +17,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.test.context.SpringBootTest import org.springframework.boot.test.context.TestConfiguration import java.time.Instant -import javax.transaction.Transactional @SpringBootTest @TestConfiguration diff --git a/data/src/test/kotlin/io/zeebe/zeeqs/VariableServiceTest.kt b/data/src/test/kotlin/io/zeebe/zeeqs/VariableServiceTest.kt index ed88fc4d..5deb521c 100644 --- a/data/src/test/kotlin/io/zeebe/zeeqs/VariableServiceTest.kt +++ b/data/src/test/kotlin/io/zeebe/zeeqs/VariableServiceTest.kt @@ -6,6 +6,7 @@ import io.zeebe.zeeqs.data.entity.Variable import io.zeebe.zeeqs.data.repository.ElementInstanceRepository import io.zeebe.zeeqs.data.repository.VariableRepository import io.zeebe.zeeqs.data.service.VariableService +import jakarta.transaction.Transactional import org.assertj.core.api.Assertions.assertThat import org.assertj.core.api.Assertions.tuple import org.junit.jupiter.api.BeforeEach @@ -14,15 +15,14 @@ import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootTest import org.springframework.boot.test.context.TestConfiguration import java.util.stream.LongStream -import javax.transaction.Transactional @SpringBootTest @TestConfiguration @Transactional class VariableServiceTest( - @Autowired val variableService: VariableService, - @Autowired val variableRepository: VariableRepository, - @Autowired val elementInstanceRepository: ElementInstanceRepository + @Autowired val variableService: VariableService, + @Autowired val variableRepository: VariableRepository, + @Autowired val elementInstanceRepository: ElementInstanceRepository ) { private val processInstanceKey = 10L @@ -55,164 +55,185 @@ class VariableServiceTest( fun `get global variables`() { // when/then assertThat( - variableService.getVariables( - elementInstanceKey = processInstanceKey, - localOnly = true, - shadowing = false)) - .hasSize(2) - .extracting(Variable::name, Variable::value) - .contains( - tuple("global_1", "1"), - tuple("global_2", "2") - ) + variableService.getVariables( + elementInstanceKey = processInstanceKey, + localOnly = true, + shadowing = false + ) + ) + .hasSize(2) + .extracting(Variable::name, Variable::value) + .contains( + tuple("global_1", "1"), + tuple("global_2", "2") + ) } @Test fun `get local variables`() { // when/then assertThat( - variableService.getVariables( - elementInstanceKey = scope_1_1, - localOnly = true, - shadowing = false)) - .hasSize(1) - .extracting(Variable::name, Variable::value) - .contains(tuple("var_1_1", "1_1")) + variableService.getVariables( + elementInstanceKey = scope_1_1, + localOnly = true, + shadowing = false + ) + ) + .hasSize(1) + .extracting(Variable::name, Variable::value) + .contains(tuple("var_1_1", "1_1")) assertThat( - variableService.getVariables( - elementInstanceKey = scope_1_2, - localOnly = true, - shadowing = false)) - .hasSize(1) - .extracting(Variable::name, Variable::value) - .contains(tuple("var_1_2", "1_2")) + variableService.getVariables( + elementInstanceKey = scope_1_2, + localOnly = true, + shadowing = false + ) + ) + .hasSize(1) + .extracting(Variable::name, Variable::value) + .contains(tuple("var_1_2", "1_2")) assertThat( - variableService.getVariables( - elementInstanceKey = scope_1_3, - localOnly = true, - shadowing = false)) - .hasSize(3) - .extracting(Variable::name, Variable::value) - .contains( - tuple("var_1_1", "1_3"), - tuple("var_1_2", "1_3"), - tuple("var_1_3", "1_3") - ) + variableService.getVariables( + elementInstanceKey = scope_1_3, + localOnly = true, + shadowing = false + ) + ) + .hasSize(3) + .extracting(Variable::name, Variable::value) + .contains( + tuple("var_1_1", "1_3"), + tuple("var_1_2", "1_3"), + tuple("var_1_3", "1_3") + ) } @Test fun `get all variables`() { // when/then assertThat( - variableService.getVariables( - elementInstanceKey = scope_1_1, - localOnly = false, - shadowing = false)) - .hasSize(3) - .extracting(Variable::name, Variable::value, Variable::scopeKey) - .contains( - tuple("global_1", "1", processInstanceKey), - tuple("global_2", "2", processInstanceKey), - tuple("var_1_1", "1_1", scope_1_1) - ) + variableService.getVariables( + elementInstanceKey = scope_1_1, + localOnly = false, + shadowing = false + ) + ) + .hasSize(3) + .extracting(Variable::name, Variable::value, Variable::scopeKey) + .contains( + tuple("global_1", "1", processInstanceKey), + tuple("global_2", "2", processInstanceKey), + tuple("var_1_1", "1_1", scope_1_1) + ) assertThat( - variableService.getVariables( - elementInstanceKey = scope_1_2, - localOnly = false, - shadowing = false)) - .hasSize(4) - .extracting(Variable::name, Variable::value, Variable::scopeKey) - .contains( - tuple("global_1", "1", processInstanceKey), - tuple("global_2", "2", processInstanceKey), - tuple("var_1_1", "1_1", scope_1_1), - tuple("var_1_2", "1_2", scope_1_2) - ) + variableService.getVariables( + elementInstanceKey = scope_1_2, + localOnly = false, + shadowing = false + ) + ) + .hasSize(4) + .extracting(Variable::name, Variable::value, Variable::scopeKey) + .contains( + tuple("global_1", "1", processInstanceKey), + tuple("global_2", "2", processInstanceKey), + tuple("var_1_1", "1_1", scope_1_1), + tuple("var_1_2", "1_2", scope_1_2) + ) assertThat( - variableService.getVariables( - elementInstanceKey = scope_1_3, - localOnly = false, - shadowing = false)) - .hasSize(7) - .extracting(Variable::name, Variable::value, Variable::scopeKey) - .contains( - tuple("global_1", "1", processInstanceKey), - tuple("global_2", "2", processInstanceKey), - tuple("var_1_1", "1_1", scope_1_1), - tuple("var_1_2", "1_2", scope_1_2), - tuple("var_1_1", "1_3", scope_1_3), - tuple("var_1_2", "1_3", scope_1_3), - tuple("var_1_3", "1_3", scope_1_3) - ) + variableService.getVariables( + elementInstanceKey = scope_1_3, + localOnly = false, + shadowing = false + ) + ) + .hasSize(7) + .extracting(Variable::name, Variable::value, Variable::scopeKey) + .contains( + tuple("global_1", "1", processInstanceKey), + tuple("global_2", "2", processInstanceKey), + tuple("var_1_1", "1_1", scope_1_1), + tuple("var_1_2", "1_2", scope_1_2), + tuple("var_1_1", "1_3", scope_1_3), + tuple("var_1_2", "1_3", scope_1_3), + tuple("var_1_3", "1_3", scope_1_3) + ) } @Test fun `get all variables with shadowing`() { // when/then assertThat( - variableService.getVariables( - elementInstanceKey = scope_1_1, - localOnly = false, - shadowing = true)) - .hasSize(3) - .extracting(Variable::name, Variable::value, Variable::scopeKey) - .contains( - tuple("global_1", "1", processInstanceKey), - tuple("global_2", "2", processInstanceKey), - tuple("var_1_1", "1_1", scope_1_1) - ) + variableService.getVariables( + elementInstanceKey = scope_1_1, + localOnly = false, + shadowing = true + ) + ) + .hasSize(3) + .extracting(Variable::name, Variable::value, Variable::scopeKey) + .contains( + tuple("global_1", "1", processInstanceKey), + tuple("global_2", "2", processInstanceKey), + tuple("var_1_1", "1_1", scope_1_1) + ) assertThat( - variableService.getVariables( - elementInstanceKey = scope_1_2, - localOnly = false, - shadowing = true)) - .hasSize(4) - .extracting(Variable::name, Variable::value, Variable::scopeKey) - .contains( - tuple("global_1", "1", processInstanceKey), - tuple("global_2", "2", processInstanceKey), - tuple("var_1_1", "1_1", scope_1_1), - tuple("var_1_2", "1_2", scope_1_2) - ) + variableService.getVariables( + elementInstanceKey = scope_1_2, + localOnly = false, + shadowing = true + ) + ) + .hasSize(4) + .extracting(Variable::name, Variable::value, Variable::scopeKey) + .contains( + tuple("global_1", "1", processInstanceKey), + tuple("global_2", "2", processInstanceKey), + tuple("var_1_1", "1_1", scope_1_1), + tuple("var_1_2", "1_2", scope_1_2) + ) assertThat( - variableService.getVariables( - elementInstanceKey = scope_1_3, - localOnly = false, - shadowing = true)) - .hasSize(5) - .extracting(Variable::name, Variable::value, Variable::scopeKey) - .contains( - tuple("global_1", "1", processInstanceKey), - tuple("global_2", "2", processInstanceKey), - tuple("var_1_1", "1_3", scope_1_3), - tuple("var_1_2", "1_3", scope_1_3), - tuple("var_1_3", "1_3", scope_1_3) - ) + variableService.getVariables( + elementInstanceKey = scope_1_3, + localOnly = false, + shadowing = true + ) + ) + .hasSize(5) + .extracting(Variable::name, Variable::value, Variable::scopeKey) + .contains( + tuple("global_1", "1", processInstanceKey), + tuple("global_2", "2", processInstanceKey), + tuple("var_1_1", "1_3", scope_1_3), + tuple("var_1_2", "1_3", scope_1_3), + tuple("var_1_3", "1_3", scope_1_3) + ) } private fun createVariable(name: String, value: String, scopeKey: Long) { variableRepository.save( - Variable( - name = name, - value = value, - scopeKey = scopeKey, - processInstanceKey = processInstanceKey, - processDefinitionKey = 10L, - key = nextVariableKey.next(), - position = 2L, - timestamp = 1L - ) + Variable( + name = name, + value = value, + scopeKey = scopeKey, + processInstanceKey = processInstanceKey, + processDefinitionKey = 10L, + key = nextVariableKey.next(), + position = 2L, + timestamp = 1L + ) ) } private fun createScope(key: Long, scopeKey: Long?) { - elementInstanceRepository.save(ElementInstance( + elementInstanceRepository.save( + ElementInstance( key = key, position = 1, elementId = "", @@ -220,7 +241,8 @@ class VariableServiceTest( processInstanceKey = processInstanceKey, processDefinitionKey = 1L, scopeKey = scopeKey - )) + ) + ) } } diff --git a/graphql-api/src/main/kotlin/io/zeebe/zeeqs/graphql/resolvers/type/MessageSubscriptionResolver.kt b/graphql-api/src/main/kotlin/io/zeebe/zeeqs/graphql/resolvers/type/MessageSubscriptionResolver.kt index 82dfd67f..5d894e54 100644 --- a/graphql-api/src/main/kotlin/io/zeebe/zeeqs/graphql/resolvers/type/MessageSubscriptionResolver.kt +++ b/graphql-api/src/main/kotlin/io/zeebe/zeeqs/graphql/resolvers/type/MessageSubscriptionResolver.kt @@ -65,9 +65,11 @@ class MessageSubscriptionResolver( @SchemaMapping(typeName = "MessageSubscription", field = "element") fun element(messageSubscription: MessageSubscription): BpmnElement? { val processDefinitionKeyOfSubscription = messageSubscription.processDefinitionKey - ?: processInstanceRepository - .findByIdOrNull(messageSubscription.processInstanceKey) + ?: messageSubscription.processInstanceKey?.let { + processInstanceRepository + .findByIdOrNull(it.toLong()) ?.processDefinitionKey + } return processDefinitionKeyOfSubscription?.let { processDefinitionKey -> messageSubscription.elementId?.let { elementId -> diff --git a/hazelcast-importer/src/main/kotlin/io/zeebe/zeeqs/importer/hazelcast/HazelcastConfig.kt b/hazelcast-importer/src/main/kotlin/io/zeebe/zeeqs/importer/hazelcast/HazelcastConfig.kt index c2549678..089d0fb9 100644 --- a/hazelcast-importer/src/main/kotlin/io/zeebe/zeeqs/importer/hazelcast/HazelcastConfig.kt +++ b/hazelcast-importer/src/main/kotlin/io/zeebe/zeeqs/importer/hazelcast/HazelcastConfig.kt @@ -1,9 +1,12 @@ package io.zeebe.zeeqs.importer.hazelcast -import javax.persistence.Entity -import javax.persistence.Id +import jakarta.persistence.Entity +import jakarta.persistence.Id @Entity data class HazelcastConfig( - @Id val id: String, - var sequence: Long) \ No newline at end of file + @Id val id: String, + var sequence: Long +) { + constructor() : this("", 0) +} \ No newline at end of file diff --git a/hazelcast-importer/src/main/kotlin/io/zeebe/zeeqs/importer/hazelcast/HazelcastProperties.kt b/hazelcast-importer/src/main/kotlin/io/zeebe/zeeqs/importer/hazelcast/HazelcastProperties.kt index b5102d36..07e455c4 100644 --- a/hazelcast-importer/src/main/kotlin/io/zeebe/zeeqs/importer/hazelcast/HazelcastProperties.kt +++ b/hazelcast-importer/src/main/kotlin/io/zeebe/zeeqs/importer/hazelcast/HazelcastProperties.kt @@ -3,7 +3,7 @@ package io.zeebe.zeeqs.importer.hazelcast import org.springframework.boot.context.properties.ConfigurationProperties import org.springframework.boot.context.properties.ConstructorBinding -@ConstructorBinding +//@ConstructorBinding @ConfigurationProperties("zeebe.client.worker.hazelcast") data class HazelcastProperties( val connection: String = "localhost:5701", diff --git a/hazelcast-importer/src/test/kotlin/io/zeebe/zeeqs/HazelcastImporterDecisionTest.kt b/hazelcast-importer/src/test/kotlin/io/zeebe/zeeqs/HazelcastImporterDecisionTest.kt index a644fe21..bd2a2c76 100644 --- a/hazelcast-importer/src/test/kotlin/io/zeebe/zeeqs/HazelcastImporterDecisionTest.kt +++ b/hazelcast-importer/src/test/kotlin/io/zeebe/zeeqs/HazelcastImporterDecisionTest.kt @@ -10,6 +10,7 @@ import io.zeebe.zeeqs.data.repository.DecisionRequirementsRepository import io.zeebe.zeeqs.data.repository.EvaluatedDecisionRepository import io.zeebe.zeeqs.importer.hazelcast.HazelcastImporter import io.zeebe.zeeqs.importer.hazelcast.HazelcastProperties +import jakarta.transaction.Transactional import org.assertj.core.api.Assertions.assertThat import org.awaitility.kotlin.await import org.junit.jupiter.api.BeforeEach @@ -19,7 +20,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.test.context.SpringBootTest import org.testcontainers.junit.jupiter.Container import org.testcontainers.junit.jupiter.Testcontainers -import javax.transaction.Transactional @SpringBootTest @Testcontainers diff --git a/hazelcast-importer/src/test/kotlin/io/zeebe/zeeqs/HazelcastImporterJobTest.kt b/hazelcast-importer/src/test/kotlin/io/zeebe/zeeqs/HazelcastImporterJobTest.kt index d1781eb9..378e1aa3 100644 --- a/hazelcast-importer/src/test/kotlin/io/zeebe/zeeqs/HazelcastImporterJobTest.kt +++ b/hazelcast-importer/src/test/kotlin/io/zeebe/zeeqs/HazelcastImporterJobTest.kt @@ -9,6 +9,7 @@ import io.zeebe.zeeqs.data.repository.JobRepository import io.zeebe.zeeqs.data.repository.UserTaskRepository import io.zeebe.zeeqs.importer.hazelcast.HazelcastImporter import io.zeebe.zeeqs.importer.hazelcast.HazelcastProperties +import jakarta.transaction.Transactional import org.assertj.core.api.Assertions.assertThat import org.awaitility.kotlin.await import org.junit.jupiter.api.BeforeEach @@ -18,15 +19,15 @@ import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.test.context.SpringBootTest import org.testcontainers.junit.jupiter.Container import org.testcontainers.junit.jupiter.Testcontainers -import javax.transaction.Transactional @SpringBootTest @Testcontainers @Transactional class HazelcastImporterJobTest( - @Autowired val importer: HazelcastImporter, - @Autowired val jobRepository: JobRepository, - @Autowired val userTaskRepository: UserTaskRepository) { + @Autowired val importer: HazelcastImporter, + @Autowired val jobRepository: JobRepository, + @Autowired val userTaskRepository: UserTaskRepository +) { private val hazelcastPort = 5701 @@ -35,44 +36,46 @@ class HazelcastImporterJobTest( @Container var zeebe = ZeebeContainer(ZeebeTestcontainerUtil.ZEEBE_DOCKER_IMAGE) - .withAdditionalExposedPort(hazelcastPort) + .withAdditionalExposedPort(hazelcastPort) @BeforeEach fun `start importer`() { val port = zeebe.getMappedPort(hazelcastPort) val hazelcastProperties = HazelcastProperties( - "localhost:$port", "PT10S", "zeebe") + "localhost:$port", "PT10S", "zeebe" + ) importer.start(hazelcastProperties) } @BeforeEach fun `create Zeebe client`() { zeebeClient = ZeebeClient.newClientBuilder() - .gatewayAddress(zeebe.externalGatewayAddress) - .usePlaintext() - .build() + .gatewayAddress(zeebe.externalGatewayAddress) + .usePlaintext() + .build() } @Test fun `should import job`() { // given zeebeClient.newDeployCommand() - .addProcessModel( - Bpmn.createExecutableProcess("process") - .startEvent() - .serviceTask("A").zeebeJobType("A") - .endEvent() - .done(), - "process.bpmn") - .send() - .join() + .addProcessModel( + Bpmn.createExecutableProcess("process") + .startEvent() + .serviceTask("A").zeebeJobType("A") + .endEvent() + .done(), + "process.bpmn" + ) + .send() + .join() // when val processInstance = zeebeClient.newCreateInstanceCommand() - .bpmnProcessId("process") - .latestVersion() - .send() - .join() + .bpmnProcessId("process") + .latestVersion() + .send() + .join() // then await.untilAsserted { assertThat(jobRepository.findAll()).hasSize(1) } @@ -91,25 +94,26 @@ class HazelcastImporterJobTest( fun `should import user task`() { // given zeebeClient.newDeployCommand() - .addProcessModel( - Bpmn.createExecutableProcess("process") - .startEvent() - .userTask("A") - .zeebeAssignee("test") - .zeebeCandidateGroups("test-group") - .zeebeUserTaskForm("form_A", """{"x": 1}""") - .endEvent() - .done(), - "process.bpmn") - .send() - .join() + .addProcessModel( + Bpmn.createExecutableProcess("process") + .startEvent() + .userTask("A") + .zeebeAssignee("test") + .zeebeCandidateGroups("test-group") + .zeebeUserTaskForm("form_A", """{"x": 1}""") + .endEvent() + .done(), + "process.bpmn" + ) + .send() + .join() // when val processInstance = zeebeClient.newCreateInstanceCommand() - .bpmnProcessId("process") - .latestVersion() - .send() - .join() + .bpmnProcessId("process") + .latestVersion() + .send() + .join() // then await.untilAsserted { assertThat(userTaskRepository.findAll()).hasSize(1) } From 62d09f13904fdcacc6bdc3021196ee575c20c05f Mon Sep 17 00:00:00 2001 From: abhinav Date: Wed, 6 Sep 2023 16:43:22 +0530 Subject: [PATCH 3/4] pom changes --- .../io/zeebe/zeeqs/data/repository/ProcessRepository.kt | 2 +- pom.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ProcessRepository.kt b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ProcessRepository.kt index bccfc887..ce07042f 100644 --- a/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ProcessRepository.kt +++ b/data/src/main/kotlin/io/zeebe/zeeqs/data/repository/ProcessRepository.kt @@ -7,4 +7,4 @@ import org.springframework.data.repository.PagingAndSortingRepository import org.springframework.stereotype.Repository @Repository -interface ProcessRepository : JpaRepository \ No newline at end of file +interface ProcessRepository : PagingAndSortingRepository, CrudRepository \ No newline at end of file diff --git a/pom.xml b/pom.xml index 3dbcb1ea..1ee9c431 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ 8.2.9 - 2.7.14 + 3.1.2 1.4.0 @@ -180,7 +180,7 @@ spring jpa - 11 + 17 From 9664b4e4ce70f005ce019bd7d59481ce24049101 Mon Sep 17 00:00:00 2001 From: Amit Date: Wed, 6 Sep 2023 18:03:26 +0530 Subject: [PATCH 4/4] minor change for spring data upgrade --- .../zeeqs/graphql/resolvers/type/MessageSubscriptionResolver.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/graphql-api/src/main/kotlin/io/zeebe/zeeqs/graphql/resolvers/type/MessageSubscriptionResolver.kt b/graphql-api/src/main/kotlin/io/zeebe/zeeqs/graphql/resolvers/type/MessageSubscriptionResolver.kt index 5d894e54..6b04ad1c 100644 --- a/graphql-api/src/main/kotlin/io/zeebe/zeeqs/graphql/resolvers/type/MessageSubscriptionResolver.kt +++ b/graphql-api/src/main/kotlin/io/zeebe/zeeqs/graphql/resolvers/type/MessageSubscriptionResolver.kt @@ -41,7 +41,7 @@ class MessageSubscriptionResolver( return messageSubscription.processDefinitionKey?.let { processRepository.findByIdOrNull(it) } ?: messageSubscription.processInstanceKey?.let { processInstanceRepository.findByIdOrNull(it) - ?.processDefinitionKey.let { processRepository.findByIdOrNull(it) } + ?.processDefinitionKey?.let { processRepository.findByIdOrNull(it) } } }