From 7508dbe98f5638d8eb58e55891183ac100723b70 Mon Sep 17 00:00:00 2001 From: Simon Zambrovski Date: Fri, 14 Apr 2023 16:59:00 +0200 Subject: [PATCH 1/5] Update for next development version --- bom/datapool-dependencies/pom.xml | 2 +- bom/parent/pom.xml | 2 +- bom/taskpool-dependencies/pom.xml | 2 +- core/bus-jackson/pom.xml | 2 +- core/datapool/datapool-api/pom.xml | 2 +- core/datapool/datapool-core/pom.xml | 2 +- core/datapool/datapool-event/pom.xml | 2 +- core/datapool/pom.xml | 2 +- core/taskpool/pom.xml | 2 +- core/taskpool/taskpool-api/pom.xml | 2 +- core/taskpool/taskpool-core/pom.xml | 2 +- core/taskpool/taskpool-event/pom.xml | 2 +- integration/camunda-bpm/engine-client/pom.xml | 2 +- integration/camunda-bpm/pom.xml | 2 +- integration/camunda-bpm/springboot-autoconfigure/pom.xml | 2 +- integration/camunda-bpm/springboot-starter/pom.xml | 2 +- integration/camunda-bpm/taskpool-collector/pom.xml | 2 +- integration/camunda-bpm/taskpool-job-sender/pom.xml | 2 +- integration/common/datapool-sender/pom.xml | 2 +- integration/common/pom.xml | 2 +- integration/common/tasklist-url-resolver/pom.xml | 2 +- integration/common/taskpool-sender/pom.xml | 2 +- integration/common/variable-serializer/pom.xml | 2 +- pom.xml | 2 +- view/form-url-resolver/pom.xml | 2 +- view/jpa/pom.xml | 2 +- view/mongo/pom.xml | 2 +- view/pom.xml | 2 +- view/simple/pom.xml | 2 +- view/view-api-client/pom.xml | 2 +- view/view-api/pom.xml | 2 +- 31 files changed, 31 insertions(+), 31 deletions(-) diff --git a/bom/datapool-dependencies/pom.xml b/bom/datapool-dependencies/pom.xml index 9833b0a96..e8af9dfc9 100644 --- a/bom/datapool-dependencies/pom.xml +++ b/bom/datapool-dependencies/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-parent - 3.9.0 + 3.9.1-SNAPSHOT ../parent/pom.xml diff --git a/bom/parent/pom.xml b/bom/parent/pom.xml index c126d3247..faa6b05ba 100644 --- a/bom/parent/pom.xml +++ b/bom/parent/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-root - 3.9.0 + 3.9.1-SNAPSHOT ../../pom.xml diff --git a/bom/taskpool-dependencies/pom.xml b/bom/taskpool-dependencies/pom.xml index b19324f30..c92d9f8c2 100644 --- a/bom/taskpool-dependencies/pom.xml +++ b/bom/taskpool-dependencies/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-parent - 3.9.0 + 3.9.1-SNAPSHOT ../parent/pom.xml diff --git a/core/bus-jackson/pom.xml b/core/bus-jackson/pom.xml index 9cf5f4a11..a16822d67 100755 --- a/core/bus-jackson/pom.xml +++ b/core/bus-jackson/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-parent - 3.9.0 + 3.9.1-SNAPSHOT ../../bom/parent/pom.xml diff --git a/core/datapool/datapool-api/pom.xml b/core/datapool/datapool-api/pom.xml index 1b8ba3477..2d1ac88c1 100755 --- a/core/datapool/datapool-api/pom.xml +++ b/core/datapool/datapool-api/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-datapool-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-datapool-api diff --git a/core/datapool/datapool-core/pom.xml b/core/datapool/datapool-core/pom.xml index c28dcf58b..5787db0c8 100644 --- a/core/datapool/datapool-core/pom.xml +++ b/core/datapool/datapool-core/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-datapool-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-datapool-core diff --git a/core/datapool/datapool-event/pom.xml b/core/datapool/datapool-event/pom.xml index 6d08fe6b8..6c4f2bfb0 100755 --- a/core/datapool/datapool-event/pom.xml +++ b/core/datapool/datapool-event/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-datapool-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-datapool-event diff --git a/core/datapool/pom.xml b/core/datapool/pom.xml index 7dd8d91cf..0d388827e 100755 --- a/core/datapool/pom.xml +++ b/core/datapool/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-parent - 3.9.0 + 3.9.1-SNAPSHOT ../../bom/parent/pom.xml diff --git a/core/taskpool/pom.xml b/core/taskpool/pom.xml index b74d55d14..818eadb89 100755 --- a/core/taskpool/pom.xml +++ b/core/taskpool/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-parent - 3.9.0 + 3.9.1-SNAPSHOT ../../bom/parent/pom.xml diff --git a/core/taskpool/taskpool-api/pom.xml b/core/taskpool/taskpool-api/pom.xml index a2f07fa5f..d4d6870f6 100755 --- a/core/taskpool/taskpool-api/pom.xml +++ b/core/taskpool/taskpool-api/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-taskpool-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-taskpool-api diff --git a/core/taskpool/taskpool-core/pom.xml b/core/taskpool/taskpool-core/pom.xml index e7d073702..3e847e773 100755 --- a/core/taskpool/taskpool-core/pom.xml +++ b/core/taskpool/taskpool-core/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-taskpool-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-taskpool-core diff --git a/core/taskpool/taskpool-event/pom.xml b/core/taskpool/taskpool-event/pom.xml index f4ebf9e35..80f3df374 100644 --- a/core/taskpool/taskpool-event/pom.xml +++ b/core/taskpool/taskpool-event/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-taskpool-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-taskpool-event diff --git a/integration/camunda-bpm/engine-client/pom.xml b/integration/camunda-bpm/engine-client/pom.xml index cd434bb53..dee4104db 100644 --- a/integration/camunda-bpm/engine-client/pom.xml +++ b/integration/camunda-bpm/engine-client/pom.xml @@ -4,7 +4,7 @@ io.holunda.polyflow polyflow-integration-camunda-bpm-engine-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-camunda-bpm-engine-client diff --git a/integration/camunda-bpm/pom.xml b/integration/camunda-bpm/pom.xml index 836a83283..8320dc82a 100644 --- a/integration/camunda-bpm/pom.xml +++ b/integration/camunda-bpm/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-parent - 3.9.0 + 3.9.1-SNAPSHOT ../../bom/parent/pom.xml diff --git a/integration/camunda-bpm/springboot-autoconfigure/pom.xml b/integration/camunda-bpm/springboot-autoconfigure/pom.xml index 57433da6c..b91a1613d 100755 --- a/integration/camunda-bpm/springboot-autoconfigure/pom.xml +++ b/integration/camunda-bpm/springboot-autoconfigure/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-integration-camunda-bpm-engine-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-camunda-bpm-springboot-autoconfigure diff --git a/integration/camunda-bpm/springboot-starter/pom.xml b/integration/camunda-bpm/springboot-starter/pom.xml index 02491537b..94d78c4d6 100755 --- a/integration/camunda-bpm/springboot-starter/pom.xml +++ b/integration/camunda-bpm/springboot-starter/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-integration-camunda-bpm-engine-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-camunda-bpm-springboot-starter diff --git a/integration/camunda-bpm/taskpool-collector/pom.xml b/integration/camunda-bpm/taskpool-collector/pom.xml index 44c9b38d3..6bdae4b12 100755 --- a/integration/camunda-bpm/taskpool-collector/pom.xml +++ b/integration/camunda-bpm/taskpool-collector/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-integration-camunda-bpm-engine-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-camunda-bpm-taskpool-collector diff --git a/integration/camunda-bpm/taskpool-job-sender/pom.xml b/integration/camunda-bpm/taskpool-job-sender/pom.xml index ea4f548ec..857ab3383 100755 --- a/integration/camunda-bpm/taskpool-job-sender/pom.xml +++ b/integration/camunda-bpm/taskpool-job-sender/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-integration-camunda-bpm-engine-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-camunda-bpm-taskpool-job-sender diff --git a/integration/common/datapool-sender/pom.xml b/integration/common/datapool-sender/pom.xml index 8c59fe99a..d6b95107b 100755 --- a/integration/common/datapool-sender/pom.xml +++ b/integration/common/datapool-sender/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-integration-common-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-datapool-sender diff --git a/integration/common/pom.xml b/integration/common/pom.xml index d7eb18fdb..7ea43ab5e 100755 --- a/integration/common/pom.xml +++ b/integration/common/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-parent - 3.9.0 + 3.9.1-SNAPSHOT ../../bom/parent/pom.xml diff --git a/integration/common/tasklist-url-resolver/pom.xml b/integration/common/tasklist-url-resolver/pom.xml index 3f7fb2c19..2c7fbf2a4 100644 --- a/integration/common/tasklist-url-resolver/pom.xml +++ b/integration/common/tasklist-url-resolver/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-integration-common-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-tasklist-url-resolver diff --git a/integration/common/taskpool-sender/pom.xml b/integration/common/taskpool-sender/pom.xml index 746f840f9..4d62d5cac 100755 --- a/integration/common/taskpool-sender/pom.xml +++ b/integration/common/taskpool-sender/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-integration-common-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-taskpool-sender diff --git a/integration/common/variable-serializer/pom.xml b/integration/common/variable-serializer/pom.xml index fd1f4ad98..87363a00c 100755 --- a/integration/common/variable-serializer/pom.xml +++ b/integration/common/variable-serializer/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-integration-common-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-variable-serializer diff --git a/pom.xml b/pom.xml index b82369a92..c27ab31b5 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-root - 3.9.0 + 3.9.1-SNAPSHOT pom POM: ${project.artifactId} diff --git a/view/form-url-resolver/pom.xml b/view/form-url-resolver/pom.xml index 76a5dc9c6..12e466556 100644 --- a/view/form-url-resolver/pom.xml +++ b/view/form-url-resolver/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-view-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-form-url-resolver diff --git a/view/jpa/pom.xml b/view/jpa/pom.xml index 4c5e8c16e..07c955b61 100644 --- a/view/jpa/pom.xml +++ b/view/jpa/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-view-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-view-jpa diff --git a/view/mongo/pom.xml b/view/mongo/pom.xml index acf9b240b..bcf701489 100755 --- a/view/mongo/pom.xml +++ b/view/mongo/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-view-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-view-mongo diff --git a/view/pom.xml b/view/pom.xml index 35837813e..d6ee04020 100644 --- a/view/pom.xml +++ b/view/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-parent - 3.9.0 + 3.9.1-SNAPSHOT ../bom/parent/pom.xml diff --git a/view/simple/pom.xml b/view/simple/pom.xml index 21da32698..550ef84bf 100755 --- a/view/simple/pom.xml +++ b/view/simple/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-view-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-view-simple diff --git a/view/view-api-client/pom.xml b/view/view-api-client/pom.xml index 773e1d63c..6fd99f5ed 100755 --- a/view/view-api-client/pom.xml +++ b/view/view-api-client/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-view-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-view-api-client diff --git a/view/view-api/pom.xml b/view/view-api/pom.xml index 2a65a0a2b..b4ad3e1f7 100755 --- a/view/view-api/pom.xml +++ b/view/view-api/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-view-parent - 3.9.0 + 3.9.1-SNAPSHOT polyflow-view-api From 1984b451b60f6f3bc2d9fe772646efdc39e915a8 Mon Sep 17 00:00:00 2001 From: Simon Zambrovski Date: Mon, 17 Apr 2023 21:29:36 +0200 Subject: [PATCH 2/5] implement more filters, fix 768, fix #785, fix #787, fix #786 --- docs/reference-guide/components/view-api.md | 12 +- .../polyflow/view/jpa/SpecificationExt.kt | 42 +++++- .../polyflow/view/jpa/task/TaskRepository.kt | 132 +++++++++++++++++- .../view/jpa/task/TaskRepositoryITest.kt | 123 +++++++++++++++- 4 files changed, 284 insertions(+), 25 deletions(-) diff --git a/docs/reference-guide/components/view-api.md b/docs/reference-guide/components/view-api.md index b5eb4f0ec..6902e1537 100644 --- a/docs/reference-guide/components/view-api.md +++ b/docs/reference-guide/components/view-api.md @@ -120,12 +120,12 @@ and `data.entryType=info.polyflow.Order` will deliver data entries of type `info Following operations are supported: -| Filter | Operation | In-Memory | JPA (Task Attributes) | JPA (Data Entries Attributes) | Mongo DB (Task Attributes) | Mongo DB (Data Entries Attributes) | -|--------|--------------|--------------|-----------------------|--------------------------------------------------------------------|----------------------------|------------------------------------| -| `<` | Less than | all, payload | none | none | all, payload | all, payload | -| `>` | Greater than | all, payload | none | none | all, payload | all, payload | -| `=` | Equals | all, payload | business key, payload | entry id, entry type, type, payload, processing state, user status | all, payload | all, payload | -| `%` | Like | all, payload | name, description | none | none | none | +| Filter | Operation | In-Memory | JPA (Task Attributes) | JPA (Data Entries Attributes) | Mongo DB (Task Attributes) | Mongo DB (Data Entries Attributes) | +|--------|--------------|--------------|-----------------------------------------------|--------------------------------------------------------------------|----------------------------|------------------------------------| +| `<` | Less than | all, payload | followUpDate, dueDate | none | all, payload | all, payload | +| `>` | Greater than | all, payload | followUpDate, dueDate | none | all, payload | all, payload | +| `=` | Equals | all, payload | business key, payload, followUpDate, dueDate | entry id, entry type, type, payload, processing state, user status | all, payload | all, payload | +| `%` | Like | all, payload | name, description | none | none | none | If the field name has no prefix of above, it is considered as an attribute inside the payload of data entry or enriched variables of a user task. For example, imagine diff --git a/view/jpa/src/main/kotlin/io/holunda/polyflow/view/jpa/SpecificationExt.kt b/view/jpa/src/main/kotlin/io/holunda/polyflow/view/jpa/SpecificationExt.kt index 8cb6747b1..bcff2603c 100644 --- a/view/jpa/src/main/kotlin/io/holunda/polyflow/view/jpa/SpecificationExt.kt +++ b/view/jpa/src/main/kotlin/io/holunda/polyflow/view/jpa/SpecificationExt.kt @@ -3,9 +3,8 @@ package io.holunda.polyflow.view.jpa import io.holunda.camunda.taskpool.api.business.DataEntryState import io.holunda.camunda.taskpool.api.business.ProcessingType import io.holunda.polyflow.view.DataEntry -import io.holunda.polyflow.view.filter.Criterion -import io.holunda.polyflow.view.filter.EQUALS -import io.holunda.polyflow.view.filter.LIKE +import io.holunda.polyflow.view.Task +import io.holunda.polyflow.view.filter.* import io.holunda.polyflow.view.jpa.data.DataEntryEntity import io.holunda.polyflow.view.jpa.data.DataEntryRepository.Companion.hasDataEntryPayloadAttribute import io.holunda.polyflow.view.jpa.data.DataEntryRepository.Companion.hasEntryId @@ -15,14 +14,24 @@ import io.holunda.polyflow.view.jpa.data.DataEntryRepository.Companion.hasState import io.holunda.polyflow.view.jpa.data.DataEntryRepository.Companion.hasType import io.holunda.polyflow.view.jpa.task.TaskEntity import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasBusinessKey +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasDueDate +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasDueDateAfter +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasDueDateBefore +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasFollowUpDate +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasFollowUpDateAfter +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasFollowUpDateBefore +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasProcessName import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasTaskPayloadAttribute import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.likeBusinessKey import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.likeDescription import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.likeName +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.likeProcessName +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.likeTextSearch import org.springframework.data.domain.PageRequest import org.springframework.data.domain.Sort import org.springframework.data.jpa.domain.Specification import org.springframework.data.jpa.domain.Specification.where +import java.time.Instant /** * Creates a JPQL specification out of predicate wrapper. @@ -116,18 +125,37 @@ internal fun Criterion.TaskCriterion.toTaskSpecification(): Specification { when (this.name) { - TaskEntity::businessKey.name -> hasBusinessKey(this.value) + "processName" -> hasProcessName(this.value) + Task::businessKey.name -> hasBusinessKey(this.value) + Task::dueDate.name -> hasDueDate(Instant.parse(this.value)) + Task::followUpDate.name -> hasFollowUpDate(Instant.parse(this.value)) else -> throw IllegalArgumentException("JPA View found unsupported task attribute for equals comparison: ${this.name}.") } } LIKE -> { when (this.name) { - TaskEntity::name.name -> likeName(this.value) - TaskEntity::description.name -> likeDescription(this.value) - TaskEntity::businessKey.name -> likeBusinessKey(this.value) + "textSearch" -> likeTextSearch(this.value) + Task::name.name -> likeName(this.value) + Task::description.name -> likeDescription(this.value) + "processName" -> likeProcessName(this.value) + Task::businessKey.name -> likeBusinessKey(this.value) else -> throw IllegalArgumentException("JPA View found unsupported task attribute for like comparison: ${this.name}.") } } + LESS -> { + when (this.name) { + Task::dueDate.name -> hasDueDateBefore(Instant.parse(this.value)) + Task::followUpDate.name -> hasFollowUpDateBefore(Instant.parse(this.value)) + else -> throw IllegalArgumentException("JPA View found unsupported task attribute for < comparison: ${this.name}.") + } + } + GREATER -> { + when (this.name) { + Task::dueDate.name -> hasDueDateAfter(Instant.parse(this.value)) + Task::followUpDate.name -> hasFollowUpDateAfter(Instant.parse(this.value)) + else -> throw IllegalArgumentException("JPA View found unsupported task attribute for > comparison: ${this.name}.") + } + } else -> throw IllegalArgumentException("JPA View found unsupported comparison ${this.operator} for attribute ${this.name}.") } } diff --git a/view/jpa/src/main/kotlin/io/holunda/polyflow/view/jpa/task/TaskRepository.kt b/view/jpa/src/main/kotlin/io/holunda/polyflow/view/jpa/task/TaskRepository.kt index 11a3f6cf5..29ea7e690 100644 --- a/view/jpa/src/main/kotlin/io/holunda/polyflow/view/jpa/task/TaskRepository.kt +++ b/view/jpa/src/main/kotlin/io/holunda/polyflow/view/jpa/task/TaskRepository.kt @@ -1,13 +1,14 @@ package io.holunda.polyflow.view.jpa.task import io.holunda.polyflow.view.jpa.auth.AuthorizationPrincipal -import io.holunda.polyflow.view.jpa.data.DataEntryEntity import io.holunda.polyflow.view.jpa.composeOr +import io.holunda.polyflow.view.jpa.data.DataEntryEntity import io.holunda.polyflow.view.jpa.payload.PayloadAttribute import io.holunda.polyflow.view.jpa.process.SourceReferenceEmbeddable import org.springframework.data.jpa.domain.Specification import org.springframework.data.jpa.repository.JpaSpecificationExecutor import org.springframework.data.repository.CrudRepository +import java.time.Instant /** * Repository for accessing tasks. @@ -38,6 +39,7 @@ interface TaskRepository : CrudRepository, JpaSpecificationE assignee ) } + /** * Specification for checking authorization of multiple principals. */ @@ -61,6 +63,18 @@ interface TaskRepository : CrudRepository, JpaSpecificationE application ) } + + /** + * Specification for checking the process name. + */ + fun hasProcessName(processName: String): Specification = + Specification { task, _, builder -> + builder.equal( + task.get(TaskEntity::sourceReference.name).get(SourceReferenceEmbeddable::name.name), + processName + ) + } + /** * Specification for checking the business key. */ @@ -72,14 +86,94 @@ interface TaskRepository : CrudRepository, JpaSpecificationE ) } + /** + * Specification for checking the due date. + */ + fun hasDueDate(dueDate: Instant): Specification = + Specification { task, _, builder -> + builder.equal( + task.get(TaskEntity::dueDate.name), + dueDate + ) + } + + /** + * Specification for checking the due date. + */ + fun hasDueDateBefore(dueDate: Instant): Specification = + Specification { task, _, builder -> + builder.or( + builder.isNull(task.get(TaskEntity::followUpDate.name)), + builder.lessThan( + task.get(TaskEntity::dueDate.name), + dueDate + ) + ) + } + + /** + * Specification for checking the due date. + */ + fun hasDueDateAfter(dueDate: Instant): Specification = + Specification { task, _, builder -> + builder.or( + builder.isNull(task.get(TaskEntity::followUpDate.name)), + builder.greaterThan( + task.get(TaskEntity::dueDate.name), + dueDate + ) + ) + } + + /** + * Specification for checking the follow-up date. + */ + fun hasFollowUpDate(followUpDate: Instant): Specification = + Specification { task, _, builder -> + builder.equal( + task.get(TaskEntity::followUpDate.name), + followUpDate + ) + } + + /** + * Specification for checking the follow-up date. + */ + fun hasFollowUpDateBefore(followUpDate: Instant): Specification = + Specification { task, _, builder -> + builder.or( + builder.isNull(task.get(TaskEntity::followUpDate.name)), + builder.lessThan( + task.get(TaskEntity::followUpDate.name), + followUpDate + ) + ) + } + + /** + * Specification for checking the follow-up date. + */ + fun hasFollowUpDateAfter(followUpDate: Instant): Specification = + Specification { task, _, builder -> + builder.or( + builder.isNull(task.get(TaskEntity::followUpDate.name)), + builder.greaterThan( + task.get(TaskEntity::followUpDate.name), + followUpDate + ) + ) + } + /** * Specification for checking the name likeness. */ fun likeName(pattern: String): Specification = Specification { task, _, builder -> builder.like( - task.get(TaskEntity::name.name), - pattern + builder.lower( + task.get(TaskEntity::name.name) + ), + "%${pattern.lowercase()}%" ) } @@ -89,8 +183,10 @@ interface TaskRepository : CrudRepository, JpaSpecificationE fun likeDescription(pattern: String): Specification = Specification { task, _, builder -> builder.like( - task.get(TaskEntity::description.name), - pattern + builder.lower( + task.get(TaskEntity::description.name) + ), + "%${pattern.lowercase()}%" ) } @@ -100,11 +196,33 @@ interface TaskRepository : CrudRepository, JpaSpecificationE fun likeBusinessKey(pattern: String): Specification = Specification { task, _, builder -> builder.like( - task.get(TaskEntity::description.name), - pattern + builder.lower( + task.get(TaskEntity::businessKey.name) + ), + "%${pattern.lowercase()}%" ) } + /** + * Specification for checking the process name likeness. + */ + fun likeProcessName(pattern: String): Specification = + Specification { task, _, builder -> + builder.like( + builder.lower( + task.get(TaskEntity::sourceReference.name).get(SourceReferenceEmbeddable::name.name) + ), + "%${pattern.lowercase()}%" + ) + } + + /** + * Specification for checking likeness of multiple task attributes combined by an OR operator. + */ + fun likeTextSearch(pattern: String): Specification = + likeName(pattern) + .or(likeDescription(pattern)) + .or(likeProcessName(pattern)) /** * Specification for checking the payload attribute. diff --git a/view/jpa/src/test/kotlin/io/holunda/polyflow/view/jpa/task/TaskRepositoryITest.kt b/view/jpa/src/test/kotlin/io/holunda/polyflow/view/jpa/task/TaskRepositoryITest.kt index 668aeef83..276bca861 100644 --- a/view/jpa/src/test/kotlin/io/holunda/polyflow/view/jpa/task/TaskRepositoryITest.kt +++ b/view/jpa/src/test/kotlin/io/holunda/polyflow/view/jpa/task/TaskRepositoryITest.kt @@ -12,8 +12,20 @@ import io.holunda.polyflow.view.jpa.itest.TestApplicationDataJpa import io.holunda.polyflow.view.jpa.payload.PayloadAttribute import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasApplication import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasBusinessKey +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasDueDate +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasDueDateAfter +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasDueDateBefore +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasFollowUpDate +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasFollowUpDateAfter +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasFollowUpDateBefore +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasProcessName import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.hasTaskPayloadAttribute import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.isAuthorizedFor +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.likeBusinessKey +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.likeDescription +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.likeName +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.likeProcessName +import io.holunda.polyflow.view.jpa.task.TaskRepository.Companion.likeTextSearch import org.assertj.core.api.Assertions.assertThat import org.camunda.bpm.engine.variable.Variables.createVariables import org.junit.jupiter.api.AfterEach @@ -24,6 +36,8 @@ import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabas import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest import org.springframework.test.context.ActiveProfiles import org.springframework.test.context.ContextConfiguration +import java.time.LocalDate +import java.time.ZoneOffset import java.util.* import javax.persistence.EntityManager @@ -47,6 +61,11 @@ class TaskRepositoryITest { lateinit var task1: TaskEntity lateinit var task2: TaskEntity + private val today = LocalDate.now().atStartOfDay().toInstant(ZoneOffset.UTC) + private val tomorrow = LocalDate.now().atStartOfDay().plusDays(1).toInstant(ZoneOffset.UTC) + private val dayAfterTomorrow = LocalDate.now().atStartOfDay().plusDays(2).toInstant(ZoneOffset.UTC) + private val twoDaysAfterTomorrow = LocalDate.now().atStartOfDay().plusDays(3).toInstant(ZoneOffset.UTC) + @BeforeEach fun `insert entries`() { @@ -62,20 +81,27 @@ class TaskRepositoryITest { ) } + task1 = emptyTask().apply { this.taskId = UUID.randomUUID().toString() this.name = "task 1" + this.businessKey = "ZZZ-1-YYY-2" + this.description = "some random description" this.authorizedPrincipals = mutableSetOf(user("kermit").toString(), group("muppets").toString()) this.correlations = mutableSetOf(DataEntryId(entryType = "data-entry", entryId = "id")) this.payload = payload.toPayloadJson(objectMapper) this.payloadAttributes = payload.toJsonPathsWithValues().map { attr -> PayloadAttribute(attr) }.toMutableSet() + this.dueDate = tomorrow + this.followUpDate = dayAfterTomorrow } task2 = emptyTask().apply { - taskId = UUID.randomUUID().toString() - name = "task 2" - businessKey = "business-key" - authorizedPrincipals = mutableSetOf(user("ironman").toString(), group("avengers").toString(), group("muppets").toString()) - sourceReference.applicationName = "other-app" + this.taskId = UUID.randomUUID().toString() + this.name = "task 2" + this.description = "Another than TaSk 1" + this.businessKey = "business-key" + this.authorizedPrincipals = mutableSetOf(user("ironman").toString(), group("avengers").toString(), group("muppets").toString()) + this.sourceReference.applicationName = "other-app" + this.sourceReference.name = "other-process" } entityManager.persist(task1) @@ -114,6 +140,52 @@ class TaskRepositoryITest { assertThat(result).containsExactlyInAnyOrder(task2) } + @Test + fun `should find by task name like`() { + val result = taskRepository.findAll(likeName("ask 2")) + assertThat(result).hasSize(1) + assertThat(result).containsExactlyInAnyOrder(task2) + } + + @Test + fun `should find by task name like or description like`() { + val result = taskRepository.findAll( + likeTextSearch("task 1") + ) + assertThat(result).hasSize(2) + assertThat(result).containsExactlyInAnyOrder(task1, task2) + } + + @Test + fun `should find by task description like`() { + val result = taskRepository.findAll(likeDescription("random")) + assertThat(result).hasSize(1) + assertThat(result).containsExactlyInAnyOrder(task1) + } + + @Test + fun `should find by task business like`() { + val result = taskRepository.findAll(likeBusinessKey("z-1-y")) + assertThat(result).hasSize(1) + assertThat(result).containsExactlyInAnyOrder(task1) + } + + + @Test + fun `should find by process name`() { + val result = taskRepository.findAll(hasProcessName("other-process")) + assertThat(result).hasSize(1) + assertThat(result).containsExactlyInAnyOrder(task2) + } + + @Test + fun `should find by process name like`() { + val result = taskRepository.findAll(likeProcessName("other-process".substring(3, 7))) + assertThat(result).hasSize(1) + assertThat(result).containsExactlyInAnyOrder(task2) + } + + @Test fun `should find by business key`() { val result = taskRepository.findAll(hasBusinessKey("business-key")) @@ -131,4 +203,45 @@ class TaskRepositoryITest { assertThat(notfound).isEmpty() } + @Test + fun `should find by due date`() { + val result = taskRepository.findAll(hasDueDate(tomorrow)) + assertThat(result).hasSize(1) + assertThat(result).containsExactlyInAnyOrder(task1) + } + + @Test + fun `should find by due date before`() { + val result = taskRepository.findAll(hasDueDateBefore(tomorrow)) + assertThat(result).hasSize(1) + assertThat(result).containsExactlyInAnyOrder(task2) + } + + @Test + fun `should find by due date after`() { + val result = taskRepository.findAll(hasDueDateAfter(tomorrow)) + assertThat(result).hasSize(1) + assertThat(result).containsExactlyInAnyOrder(task2) + } + @Test + fun `should find by follow-up date`() { + val result = taskRepository.findAll(hasFollowUpDate(dayAfterTomorrow)) + assertThat(result).hasSize(1) + assertThat(result).containsExactlyInAnyOrder(task1) + } + + @Test + fun `should find by follow-up date before`() { + val result = taskRepository.findAll(hasFollowUpDateBefore(twoDaysAfterTomorrow)) + assertThat(result).hasSize(2) + assertThat(result).containsExactlyInAnyOrder(task1, task2) + } + + @Test + fun `should find by follow-up date after`() { + val result = taskRepository.findAll(hasFollowUpDateAfter(dayAfterTomorrow)) + assertThat(result).hasSize(1) + assertThat(result).containsExactlyInAnyOrder(task2) + } + } From 16b9c8ec920b3b90119b1a1a50df3e5d0636c928 Mon Sep 17 00:00:00 2001 From: Simon Zambrovski Date: Mon, 17 Apr 2023 22:27:37 +0200 Subject: [PATCH 3/5] more docs --- docs/reference-guide/components/view-api.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/docs/reference-guide/components/view-api.md b/docs/reference-guide/components/view-api.md index 6902e1537..6922ef5ff 100644 --- a/docs/reference-guide/components/view-api.md +++ b/docs/reference-guide/components/view-api.md @@ -104,7 +104,7 @@ interface PageableSortableQuery { The `page` parameter denotes the page number to deliver (starting with `0`). The `size` parameter denotes the number of elements on a page. By default, the `page` is set to `0` and the size is set to `Int.MAX`. -An optional `sort` parameter allows to sort the results by a field attribute. The format of the `sort` string is `<+|->filedName`, `+fieldName` means sort by `fieldName` ascending, +An optional `sort` parameter allows to sort the results by a field attribute. The format of the `sort` string is `<+|->fieldName`, `+fieldName` means sort by `fieldName` ascending, `-fieldName` means sort by `fieldName` descending. The field must be a direct member of the result (`Task`, `TaskWithDataEntries` or `DataEntry`) and must be one of the following type: * java.lang.Integer @@ -115,18 +115,21 @@ An optional `sort` parameter allows to sort the results by a field attribute. T To filter the results, you might supply a list of filters. A filter is an expression in format `fieldNamevalue`, where `fieldName` is addressing the attribute of the search result, `` is one of `<`, `=`, `%` and `>` and `value` is a string representation of the values. The `fieldName` can point to an attribute of the result entity itself (`Task`, `TaskWithDataEntries` or `DataEntry`) or point to the attribute inside the payload. To avoid a possible name clash, you must prefix the field name with `task.` if you want to filter on direct attributes of a task, -and you must prefix the field name with `data` if you want to filter on direct attributes of a dta entry. For example, `task.priority=50` would deliver tasks with priority set to 50, +and you must prefix the field name with `data` if you want to filter on direct attributes of a data entry. For example, `task.priority=50` would deliver tasks with priority set to 50, and `data.entryType=info.polyflow.Order` will deliver data entries of type `info.polyflow.Order` only. Following operations are supported: -| Filter | Operation | In-Memory | JPA (Task Attributes) | JPA (Data Entries Attributes) | Mongo DB (Task Attributes) | Mongo DB (Data Entries Attributes) | -|--------|--------------|--------------|-----------------------------------------------|--------------------------------------------------------------------|----------------------------|------------------------------------| -| `<` | Less than | all, payload | followUpDate, dueDate | none | all, payload | all, payload | -| `>` | Greater than | all, payload | followUpDate, dueDate | none | all, payload | all, payload | -| `=` | Equals | all, payload | business key, payload, followUpDate, dueDate | entry id, entry type, type, payload, processing state, user status | all, payload | all, payload | -| `%` | Like | all, payload | name, description | none | none | none | +| Filter | Operation | In-Memory | JPA (Task Attributes) | JPA (Data Entries Attributes) | Mongo DB (Task Attributes) | Mongo DB (Data Entries Attributes) | +|--------|--------------|--------------|-------------------------------------------------------------------|--------------------------------------------------------------------------|----------------------------|------------------------------------| +| `<` | Less than | all, payload | `followUpDate`, `dueDate` | none | all, payload | all, payload | +| `>` | Greater than | all, payload | `followUpDate`, `dueDate` | none | all, payload | all, payload | +| `=` | Equals | all, payload | payload, `businessKey`, `followUpDate`, `dueDate` | `entryId`, `entryType`, `type`, payload, `processingState`, `userStatus` | all, payload | all, payload | +| `%` | Like | all, payload | `businessKey`, `name`, `description`, `processName`, `textSearch` | none | none | none | +!!! info + There are several special reserved filters which can be passed to the task query: `task.processName=` check equality of the process name, `task.processName%` makes a like-search on +process name, `task.textSearch%some-substring` makes a special OR-combined like-search on task name, task description and task process name. If the field name has no prefix of above, it is considered as an attribute inside the payload of data entry or enriched variables of a user task. For example, imagine you have a data entry with payload attributes `{ "attribute": "value", "another": 45 }`. In order to search for those, just specify `attribute=value` in your filter criteria. From 5164aa6d79b267d3e6023f6a8b89023313ddf6d8 Mon Sep 17 00:00:00 2001 From: Simon Zambrovski Date: Mon, 17 Apr 2023 23:05:30 +0200 Subject: [PATCH 4/5] chore(maven): small maven improvements --- bom/parent/pom.xml | 55 +++---------------- .../camunda-bpm/taskpool-job-sender/pom.xml | 7 +-- 2 files changed, 9 insertions(+), 53 deletions(-) diff --git a/bom/parent/pom.xml b/bom/parent/pom.xml index faa6b05ba..4b6c44197 100644 --- a/bom/parent/pom.xml +++ b/bom/parent/pom.xml @@ -296,6 +296,10 @@ clean package + + src/main/kotlin + src/test/kotlin + @@ -422,40 +426,6 @@ - - - org.springframework.boot - spring-boot-maven-plugin - ${springboot.version} - - - - repackage - - - - - - - commons-logging - commons-logging - - - log4j - log4j - - - org.apache.logging.log4j - log4j-core - - - org.apache.logging.log4j - log4j-api - - - - - org.apache.maven.plugins @@ -476,8 +446,8 @@ ${kotlin.version} ${java.version} - 1.5 - 1.5 + 1.8 + 1.8 -Xjsr305=strict @@ -500,9 +470,6 @@ kapt - - ${project.basedir}/src/main/kotlin - org.springframework.boot @@ -517,12 +484,6 @@ compile - - - ${project.basedir}/target/generated-sources/swagger/src/main/java - ${project.basedir}/src/main/kotlin - - test-compile @@ -563,7 +524,7 @@ - -Djava.awt.headless=true ${surefireArgLine} -XX:+StartAttachListener + -Djava.awt.headless=true @{surefireArgLine} -XX:+StartAttachListener ${project.build.directory}/jgiven-reports @@ -589,7 +550,7 @@ - -Djava.awt.headless=true ${failsafeArgLine} -XX:+StartAttachListener + -Djava.awt.headless=true @{failsafeArgLine} -XX:+StartAttachListener diff --git a/integration/camunda-bpm/taskpool-job-sender/pom.xml b/integration/camunda-bpm/taskpool-job-sender/pom.xml index 857ab3383..a4a099e73 100755 --- a/integration/camunda-bpm/taskpool-job-sender/pom.xml +++ b/integration/camunda-bpm/taskpool-job-sender/pom.xml @@ -33,7 +33,7 @@ camunda-engine provided - + org.springframework.boot spring-boot-starter @@ -121,11 +121,6 @@ jackson-datatype-jsr310 test - - org.assertj - assertj-core - test - From 1734a7dc16436d7ac584b53ff5b40905ea5a8cf8 Mon Sep 17 00:00:00 2001 From: Simon Zambrovski Date: Mon, 17 Apr 2023 23:24:04 +0200 Subject: [PATCH 5/5] Update for next development version --- bom/datapool-dependencies/pom.xml | 2 +- bom/parent/pom.xml | 2 +- bom/taskpool-dependencies/pom.xml | 2 +- core/bus-jackson/pom.xml | 2 +- core/datapool/datapool-api/pom.xml | 2 +- core/datapool/datapool-core/pom.xml | 2 +- core/datapool/datapool-event/pom.xml | 2 +- core/datapool/pom.xml | 2 +- core/taskpool/pom.xml | 2 +- core/taskpool/taskpool-api/pom.xml | 2 +- core/taskpool/taskpool-core/pom.xml | 2 +- core/taskpool/taskpool-event/pom.xml | 2 +- integration/camunda-bpm/engine-client/pom.xml | 2 +- integration/camunda-bpm/pom.xml | 2 +- integration/camunda-bpm/springboot-autoconfigure/pom.xml | 2 +- integration/camunda-bpm/springboot-starter/pom.xml | 2 +- integration/camunda-bpm/taskpool-collector/pom.xml | 2 +- integration/camunda-bpm/taskpool-job-sender/pom.xml | 2 +- integration/common/datapool-sender/pom.xml | 2 +- integration/common/pom.xml | 2 +- integration/common/tasklist-url-resolver/pom.xml | 2 +- integration/common/taskpool-sender/pom.xml | 2 +- integration/common/variable-serializer/pom.xml | 2 +- pom.xml | 2 +- view/form-url-resolver/pom.xml | 2 +- view/jpa/pom.xml | 2 +- view/mongo/pom.xml | 2 +- view/pom.xml | 2 +- view/simple/pom.xml | 2 +- view/view-api-client/pom.xml | 2 +- view/view-api/pom.xml | 2 +- 31 files changed, 31 insertions(+), 31 deletions(-) diff --git a/bom/datapool-dependencies/pom.xml b/bom/datapool-dependencies/pom.xml index e8af9dfc9..318c13745 100644 --- a/bom/datapool-dependencies/pom.xml +++ b/bom/datapool-dependencies/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-parent - 3.9.1-SNAPSHOT + 3.9.1 ../parent/pom.xml diff --git a/bom/parent/pom.xml b/bom/parent/pom.xml index 4b6c44197..eeeabdc35 100644 --- a/bom/parent/pom.xml +++ b/bom/parent/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-root - 3.9.1-SNAPSHOT + 3.9.1 ../../pom.xml diff --git a/bom/taskpool-dependencies/pom.xml b/bom/taskpool-dependencies/pom.xml index c92d9f8c2..0da55d930 100644 --- a/bom/taskpool-dependencies/pom.xml +++ b/bom/taskpool-dependencies/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-parent - 3.9.1-SNAPSHOT + 3.9.1 ../parent/pom.xml diff --git a/core/bus-jackson/pom.xml b/core/bus-jackson/pom.xml index a16822d67..919fab839 100755 --- a/core/bus-jackson/pom.xml +++ b/core/bus-jackson/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-parent - 3.9.1-SNAPSHOT + 3.9.1 ../../bom/parent/pom.xml diff --git a/core/datapool/datapool-api/pom.xml b/core/datapool/datapool-api/pom.xml index 2d1ac88c1..a323f2b45 100755 --- a/core/datapool/datapool-api/pom.xml +++ b/core/datapool/datapool-api/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-datapool-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-datapool-api diff --git a/core/datapool/datapool-core/pom.xml b/core/datapool/datapool-core/pom.xml index 5787db0c8..2d8e6f652 100644 --- a/core/datapool/datapool-core/pom.xml +++ b/core/datapool/datapool-core/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-datapool-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-datapool-core diff --git a/core/datapool/datapool-event/pom.xml b/core/datapool/datapool-event/pom.xml index 6c4f2bfb0..34601edd1 100755 --- a/core/datapool/datapool-event/pom.xml +++ b/core/datapool/datapool-event/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-datapool-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-datapool-event diff --git a/core/datapool/pom.xml b/core/datapool/pom.xml index 0d388827e..931ca2ec6 100755 --- a/core/datapool/pom.xml +++ b/core/datapool/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-parent - 3.9.1-SNAPSHOT + 3.9.1 ../../bom/parent/pom.xml diff --git a/core/taskpool/pom.xml b/core/taskpool/pom.xml index 818eadb89..15baa2bf6 100755 --- a/core/taskpool/pom.xml +++ b/core/taskpool/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-parent - 3.9.1-SNAPSHOT + 3.9.1 ../../bom/parent/pom.xml diff --git a/core/taskpool/taskpool-api/pom.xml b/core/taskpool/taskpool-api/pom.xml index d4d6870f6..826535293 100755 --- a/core/taskpool/taskpool-api/pom.xml +++ b/core/taskpool/taskpool-api/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-taskpool-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-taskpool-api diff --git a/core/taskpool/taskpool-core/pom.xml b/core/taskpool/taskpool-core/pom.xml index 3e847e773..03fb0c306 100755 --- a/core/taskpool/taskpool-core/pom.xml +++ b/core/taskpool/taskpool-core/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-taskpool-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-taskpool-core diff --git a/core/taskpool/taskpool-event/pom.xml b/core/taskpool/taskpool-event/pom.xml index 80f3df374..b0505c61f 100644 --- a/core/taskpool/taskpool-event/pom.xml +++ b/core/taskpool/taskpool-event/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-taskpool-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-taskpool-event diff --git a/integration/camunda-bpm/engine-client/pom.xml b/integration/camunda-bpm/engine-client/pom.xml index dee4104db..214e09e46 100644 --- a/integration/camunda-bpm/engine-client/pom.xml +++ b/integration/camunda-bpm/engine-client/pom.xml @@ -4,7 +4,7 @@ io.holunda.polyflow polyflow-integration-camunda-bpm-engine-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-camunda-bpm-engine-client diff --git a/integration/camunda-bpm/pom.xml b/integration/camunda-bpm/pom.xml index 8320dc82a..32a27a913 100644 --- a/integration/camunda-bpm/pom.xml +++ b/integration/camunda-bpm/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-parent - 3.9.1-SNAPSHOT + 3.9.1 ../../bom/parent/pom.xml diff --git a/integration/camunda-bpm/springboot-autoconfigure/pom.xml b/integration/camunda-bpm/springboot-autoconfigure/pom.xml index b91a1613d..4263cf223 100755 --- a/integration/camunda-bpm/springboot-autoconfigure/pom.xml +++ b/integration/camunda-bpm/springboot-autoconfigure/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-integration-camunda-bpm-engine-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-camunda-bpm-springboot-autoconfigure diff --git a/integration/camunda-bpm/springboot-starter/pom.xml b/integration/camunda-bpm/springboot-starter/pom.xml index 94d78c4d6..a1ae2d5cc 100755 --- a/integration/camunda-bpm/springboot-starter/pom.xml +++ b/integration/camunda-bpm/springboot-starter/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-integration-camunda-bpm-engine-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-camunda-bpm-springboot-starter diff --git a/integration/camunda-bpm/taskpool-collector/pom.xml b/integration/camunda-bpm/taskpool-collector/pom.xml index 6bdae4b12..bb6bc3058 100755 --- a/integration/camunda-bpm/taskpool-collector/pom.xml +++ b/integration/camunda-bpm/taskpool-collector/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-integration-camunda-bpm-engine-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-camunda-bpm-taskpool-collector diff --git a/integration/camunda-bpm/taskpool-job-sender/pom.xml b/integration/camunda-bpm/taskpool-job-sender/pom.xml index a4a099e73..17f1efa91 100755 --- a/integration/camunda-bpm/taskpool-job-sender/pom.xml +++ b/integration/camunda-bpm/taskpool-job-sender/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-integration-camunda-bpm-engine-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-camunda-bpm-taskpool-job-sender diff --git a/integration/common/datapool-sender/pom.xml b/integration/common/datapool-sender/pom.xml index d6b95107b..d5681cefc 100755 --- a/integration/common/datapool-sender/pom.xml +++ b/integration/common/datapool-sender/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-integration-common-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-datapool-sender diff --git a/integration/common/pom.xml b/integration/common/pom.xml index 7ea43ab5e..41b8049ce 100755 --- a/integration/common/pom.xml +++ b/integration/common/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-parent - 3.9.1-SNAPSHOT + 3.9.1 ../../bom/parent/pom.xml diff --git a/integration/common/tasklist-url-resolver/pom.xml b/integration/common/tasklist-url-resolver/pom.xml index 2c7fbf2a4..be8d28602 100644 --- a/integration/common/tasklist-url-resolver/pom.xml +++ b/integration/common/tasklist-url-resolver/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-integration-common-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-tasklist-url-resolver diff --git a/integration/common/taskpool-sender/pom.xml b/integration/common/taskpool-sender/pom.xml index 4d62d5cac..693885731 100755 --- a/integration/common/taskpool-sender/pom.xml +++ b/integration/common/taskpool-sender/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-integration-common-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-taskpool-sender diff --git a/integration/common/variable-serializer/pom.xml b/integration/common/variable-serializer/pom.xml index 87363a00c..40e11dccc 100755 --- a/integration/common/variable-serializer/pom.xml +++ b/integration/common/variable-serializer/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-integration-common-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-variable-serializer diff --git a/pom.xml b/pom.xml index c27ab31b5..b676145de 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-root - 3.9.1-SNAPSHOT + 3.9.1 pom POM: ${project.artifactId} diff --git a/view/form-url-resolver/pom.xml b/view/form-url-resolver/pom.xml index 12e466556..a32e48a40 100644 --- a/view/form-url-resolver/pom.xml +++ b/view/form-url-resolver/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-view-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-form-url-resolver diff --git a/view/jpa/pom.xml b/view/jpa/pom.xml index 07c955b61..3d49cacff 100644 --- a/view/jpa/pom.xml +++ b/view/jpa/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-view-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-view-jpa diff --git a/view/mongo/pom.xml b/view/mongo/pom.xml index bcf701489..915c14e9b 100755 --- a/view/mongo/pom.xml +++ b/view/mongo/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-view-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-view-mongo diff --git a/view/pom.xml b/view/pom.xml index d6ee04020..e05741d6c 100644 --- a/view/pom.xml +++ b/view/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-parent - 3.9.1-SNAPSHOT + 3.9.1 ../bom/parent/pom.xml diff --git a/view/simple/pom.xml b/view/simple/pom.xml index 550ef84bf..ed2df209f 100755 --- a/view/simple/pom.xml +++ b/view/simple/pom.xml @@ -5,7 +5,7 @@ io.holunda.polyflow polyflow-view-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-view-simple diff --git a/view/view-api-client/pom.xml b/view/view-api-client/pom.xml index 6fd99f5ed..3c2ffd599 100755 --- a/view/view-api-client/pom.xml +++ b/view/view-api-client/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-view-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-view-api-client diff --git a/view/view-api/pom.xml b/view/view-api/pom.xml index b4ad3e1f7..8d75841b5 100755 --- a/view/view-api/pom.xml +++ b/view/view-api/pom.xml @@ -6,7 +6,7 @@ io.holunda.polyflow polyflow-view-parent - 3.9.1-SNAPSHOT + 3.9.1 polyflow-view-api