Skip to content

Commit

Permalink
Merge branch 'release/3.2.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
zambrovski committed May 17, 2022
2 parents 17e4eac + 4bff917 commit d479af5
Show file tree
Hide file tree
Showing 84 changed files with 989 additions and 288 deletions.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/1_bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: 'Bug report'
about: 'Report a bug in camunda-bpm-taskpool'
title:
labels: 'type: bug :bug:'
assignees: zambrovski
assignees:

---

Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
[![Build Status](https://github.com/holunda-io/camunda-bpm-taskpool/workflows/Development%20braches/badge.svg)](https://github.com/holunda-io/camunda-bpm-taskpool/actions)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.holunda.polyflow/polyflow-taskpool-dependencies/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.holunda.polyflow/polyflow-taskpool-dependencies/)
[![Code Coverage](https://codecov.io/gh/holunda-io/camunda-bpm-taskpool/branch/master/graph/badge.svg)](https://codecov.io/gh/holunda-io/camunda-bpm-taskpool)
[![Codacy](https://api.codacy.com/project/badge/Grade/653136bd5cad48c8a9f2621ee304ff26)](https://app.codacy.com/app/zambrovski/camunda-bpm-taskpool?utm_source=github.com&utm_medium=referral&utm_content=holunda-io/camunda-bpm-taskpool&utm_campaign=Badge_Grade_Dashboard)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/6e15ca2f4ab64cfe85a736f324136086)](https://www.codacy.com/gh/holunda-io/camunda-bpm-taskpool/dashboard?utm_source=github.com&utm_medium=referral&utm_content=holunda-io/camunda-bpm-taskpool&utm_campaign=Badge_Grade)
[![OpenHUB](https://www.openhub.net/p/camunda-bpm-taskpool/widgets/project_thin_badge.gif)](https://www.openhub.net/p/camunda-bpm-taskpool)

![Logo](docs/img/Positive@2x.png)
## Polyflow Taskpool and Datapool

> A component library for building enterprise-wide process platforms with multiple process engines like Camunda BPM.
> A component library for building enterprise-wide process platforms with multiple process engines like Camunda Platform.
In the last five years, we built different process applications on behalf of the customer several times. It turned out that some issues occurred every
In the last years, we built different process applications on behalf of the customer several times. It turned out that some issues occurred every
time during the implementation.

These were:
Expand Down Expand Up @@ -63,7 +63,7 @@ the [Example Section](https://www.holunda.io/camunda-bpm-taskpool/stable/example

This library is developed under

[![Apache 2.0 License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://www.holunda.io/camunda-bpm-taskpool/license)
[![Apache 2.0 License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](/LICENSE)

### Contribution

Expand Down
2 changes: 1 addition & 1 deletion bom/datapool-dependencies/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.holunda.polyflow</groupId>
<artifactId>polyflow-parent</artifactId>
<version>3.2.0</version>
<version>3.2.1</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>

Expand Down
16 changes: 6 additions & 10 deletions bom/parent/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.holunda.polyflow</groupId>
<artifactId>polyflow-root</artifactId>
<version>3.2.0</version>
<version>3.2.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>

Expand All @@ -18,8 +18,8 @@
<url>https://github.com/holunda-io/camunda-bpm-taskpool/</url>

<properties>
<springboot.version>2.6.6</springboot.version>
<camunda-commons-typed-values.version>7.16.0</camunda-commons-typed-values.version>
<springboot.version>2.6.7</springboot.version>
<camunda-commons-typed-values.version>7.17.0</camunda-commons-typed-values.version>

<axon.version>4.5.9</axon.version>
<axon-kotlin.version>0.2.0</axon-kotlin.version>
Expand All @@ -29,7 +29,7 @@
<mockito-kotlin.version>4.0.0</mockito-kotlin.version>
<pattern.class.itest>**/*ITest.*</pattern.class.itest>
<pattern.package.itest>**/itest/**/*.*</pattern.package.itest>
<jgiven.version>1.2.0</jgiven.version>
<jgiven.version>1.2.1</jgiven.version>

</properties>

Expand Down Expand Up @@ -496,16 +496,13 @@
</pluginOptions>
</configuration>
<executions>
<!--
No kapt for a moment
<execution>
<id>kapt</id>
<id>generate-spring-boot-metadata</id>
<goals>
<goal>kapt</goal>
</goals>
<configuration>
<sourceDirs>
<sourceDir>${project.basedir}/target/generated-sources/swagger/src/main/java</sourceDir>
<sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
</sourceDirs>
<annotationProcessorPaths>
Expand All @@ -517,7 +514,6 @@
</annotationProcessorPaths>
</configuration>
</execution>
-->
<execution>
<id>compile</id>
<goals>
Expand Down Expand Up @@ -609,7 +605,7 @@
<plugin>
<groupId>org.jetbrains.dokka</groupId>
<artifactId>dokka-maven-plugin</artifactId>
<version>1.6.10</version>
<version>1.6.21</version>
<executions>
<execution>
<id>attach-javadocs</id>
Expand Down
2 changes: 1 addition & 1 deletion bom/taskpool-dependencies/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.holunda.polyflow</groupId>
<artifactId>polyflow-parent</artifactId>
<version>3.2.0</version>
<version>3.2.1</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>

Expand Down
7 changes: 6 additions & 1 deletion core/bus-jackson/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.holunda.polyflow</groupId>
<artifactId>polyflow-parent</artifactId>
<version>3.2.0</version>
<version>3.2.1</version>
<relativePath>../../bom/parent/pom.xml</relativePath>
</parent>

Expand Down Expand Up @@ -49,5 +49,10 @@
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package io.holunda.polyflow.bus.jackson

import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
import com.fasterxml.jackson.module.kotlin.readValue
import io.holunda.camunda.taskpool.api.task.CreateTaskCommand
import io.holunda.camunda.taskpool.api.task.GenericReference
import org.assertj.core.api.Assertions.assertThat
import org.camunda.bpm.engine.variable.Variables
import org.junit.jupiter.api.Test

internal class CreateTaskCommandSerializationTest {
private val om = jacksonObjectMapper().configurePolyflowJacksonObjectMapper()

@Test
fun `serialize createTaskCommand from to json`() {
val cmd = CreateTaskCommand(
id = "1",
sourceReference = GenericReference(
"1",
"1",
"def#1",
"def",
"name",
"appName",
"tenant"
),
taskDefinitionKey = "taskKey",
formKey = "form",
businessKey = "123",
payload = Variables.putValueTyped("foo", Variables.stringValue("bar"))
)

val json = om.writeValueAsString(cmd)

val deserialized = om.readValue<CreateTaskCommand>(json)

assertThat(deserialized).isEqualTo(cmd)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package io.holunda.polyflow.bus.jackson

import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
import com.fasterxml.jackson.module.kotlin.readValue
import io.holunda.camunda.taskpool.api.business.*
import org.assertj.core.api.Assertions.assertThat
import org.camunda.bpm.engine.variable.Variables
import org.camunda.bpm.engine.variable.Variables.*
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.Test

internal class DataEntryCommandsSerializationTest {
private val om = jacksonObjectMapper().configurePolyflowJacksonObjectMapper()
.registerModule(JavaTimeModule())
.apply {
configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
}

@Test
@Disabled("fails comparing payload and modification")
fun `serialize createDataEntryCommand`() {
val cmd = CreateDataEntryCommand(
dataEntryChange = DataEntryChange(
entryType = "order",
entryId = "12345",
type = "purchase order",
applicationName = "someApp",
name = "Order 12345",
correlations = newCorrelations().putValueTyped("foo", stringValue("bar")),
payload = Variables.createVariables()
.putValue("long",17L)
.putValue("boolean", true),
description = "some text",
state = ProcessingType.IN_PROGRESS.of("created"),
modification = Modification.NONE
)
)
val json = om.writeValueAsString(cmd)
val deserialized = om.readValue<CreateDataEntryCommand>(json)

assertThat(deserialized)
.usingRecursiveComparison()
.isEqualTo(cmd)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ class DeserializersTest {
assertThat(converted).isEqualTo(dataEntryState)
}

@Disabled
@Test
@Disabled("fails with: Could not resolve type id 'io.holunda.polyflow.bus.jackson.MyStructure' as a subtype of `java.util.Map<java.lang.String,java.lang.Object>`: Not a subtype at [Source: UNKNOWN; byte offset: #UNKNOWN]")
fun `serialize and deserialize variable complex object`() {

mapper.activateDefaultTypingAsProperty(mapper.polymorphicTypeValidator, ObjectMapper.DefaultTyping.NON_FINAL, "@class")
Expand Down
2 changes: 1 addition & 1 deletion core/datapool/datapool-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>io.holunda.polyflow</groupId>
<artifactId>polyflow-datapool-parent</artifactId>
<version>3.2.0</version>
<version>3.2.1</version>
</parent>

<artifactId>polyflow-datapool-api</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion core/datapool/datapool-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>io.holunda.polyflow</groupId>
<artifactId>polyflow-datapool-parent</artifactId>
<version>3.2.0</version>
<version>3.2.1</version>
</parent>

<artifactId>polyflow-datapool-core</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion core/datapool/datapool-event/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.holunda.polyflow</groupId>
<artifactId>polyflow-datapool-parent</artifactId>
<version>3.2.0</version>
<version>3.2.1</version>
</parent>

<artifactId>polyflow-datapool-event</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion core/datapool/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>io.holunda.polyflow</groupId>
<artifactId>polyflow-parent</artifactId>
<version>3.2.0</version>
<version>3.2.1</version>
<relativePath>../../bom/parent/pom.xml</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion core/taskpool/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>io.holunda.polyflow</groupId>
<artifactId>polyflow-parent</artifactId>
<version>3.2.0</version>
<version>3.2.1</version>
<relativePath>../../bom/parent/pom.xml</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion core/taskpool/taskpool-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.holunda.polyflow</groupId>
<artifactId>polyflow-taskpool-parent</artifactId>
<version>3.2.0</version>
<version>3.2.1</version>
</parent>

<artifactId>polyflow-taskpool-api</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion core/taskpool/taskpool-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.holunda.polyflow</groupId>
<artifactId>polyflow-taskpool-parent</artifactId>
<version>3.2.0</version>
<version>3.2.1</version>
</parent>

<artifactId>polyflow-taskpool-core</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion core/taskpool/taskpool-event/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.holunda.polyflow</groupId>
<artifactId>polyflow-taskpool-parent</artifactId>
<version>3.2.0</version>
<version>3.2.1</version>
</parent>

<artifactId>polyflow-taskpool-event</artifactId>
Expand Down
6 changes: 3 additions & 3 deletions docs/examples/example-components/pa-frontend.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
title: Process Application Frontend
---

The process application backend is implementing the user task forms and business object views for the
The process application frontend is implementing the user task forms and business object views for the
example application. It is built as a typical Angular Single Page Application (SPA) and provides
views for both user tasks and the business object. It communicates with process application backend via
views for both user tasks and the business objects. It communicates with process application backend via
REST API, defined in the latter.

The user primarily interacts with the process platform which seamless integrate with the process applications.
The user primarily interacts with the process platform which seamlessly integrates with the process applications.
Usually, it provides integration points for user-task embedding / UI-composition. Unfortunately,
this topic strongly depends on the frontend technology and is not a subject we want to demonstrate
in this example. For simplicity, we built a very simple example, skipping the UI composition / integration entirely.
Expand Down
3 changes: 2 additions & 1 deletion docs/examples/scenarios/distributed-axon-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ java -jar process-application/target/*.jar
## Useful URLs

### Process Platform
* [http://localhost:8081/taskpool/](http://localhost:8081/polyflow/)
* [http://localhost:8081/polyflow/tasks](http://localhost:8081/polyflow/tasks)
* [http://localhost:8081/polyflow/archive](http://localhost:8081/polyflow/archive)
* [http://localhost:8081/swagger-ui/](http://localhost:8081/swagger-ui/)

### Process Application
Expand Down
4 changes: 0 additions & 4 deletions docs/examples/scenarios/distributed-no-axon-server.md

This file was deleted.

1 change: 0 additions & 1 deletion docs/examples/scenarios/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,5 @@ The provided [Example application](../example-approval) is implemented several t

* [Single Node Scenario](single-node)
* [Distributed Scenario using Axon Server](distributed-axon-server)
* [Distributed Scenario without Axon Server](distributed-no-axon-server)

It is a good idea to understand the single node scenario first and then move on to more elaborated scenarios.
3 changes: 1 addition & 2 deletions docs/examples/scenarios/single-node.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ Before you begin, please build the entire project with `./mvnw clean install` fr
The demo application consists of one Maven module which can be started by running from command line in
the `examples/scenarios/single-node` directory using Maven. Alternatively you can start the packaged application using:

[source,bash]
```
```bash
java -jar target/*.jar
```

Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## Why should I use this?

* You are building a process application or platform that comprises multiple process engines?
* You are building a custom task list for your Camunda process application?
* You are building a custom task list for your Camunda Platform 7 process application?
* You want to include custom business object attributes to your tasks in the task list?
* You have performance issues with your task list?
* You need to provide a view on the business objects processed by your processes?
Expand Down
4 changes: 2 additions & 2 deletions docs/introduction/concepts.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Concepts
---

There are many scenarios in which the usage of a process engine as a component inside of the orchestration layer makes sence. Depending on the scenario the
There are many scenarios in which the usage of a process engine as a component inside the orchestration layer makes a lot of sense. Depending on the scenario the
resulting architecture of your application may vary. The following section explains the core concepts and building blocks of the architecture we want to support
and address by the Polyflow libraries.

Expand All @@ -11,7 +11,7 @@ and address by the Polyflow libraries.
The two main building blocks of the solution are **Process Application** and **Process Platform**. Sometimes you unite them inside the same deployment unit, but
we differentiate them to make their responsibilities more clear.

A **Process Application** implements the main business logic of the solution. It integrate the process engine that is responsible for execution the processes.
A **Process Application** implements the main business logic of the solution. It integrates the process engine that is responsible for execution the processes.
During this execution user tasks are created and performed by the user and the business data objects are modified. For this purpose, the process application
provides user interfaces for user tasks and business data operations.

Expand Down
2 changes: 1 addition & 1 deletion docs/introduction/deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ and act as connecting infrastructure between components.
### Distribution using Axon Server

Axon Server provides an implementation for this requirement leading to a distributed buses and a central Event Store. It is easy to use, easy to configure and
easy to run. If you need a HA setup, you will need the enterprise license of Axon Server. Essentially, if don't have another HA ready-to use messaging, this
easy to run. If you need a HA setup, you will need the enterprise license of Axon Server. Essentially, if you don't have another HA ready-to use messaging, this
scenario might be your way to go.

This scenario supports:
Expand Down
Loading

0 comments on commit d479af5

Please sign in to comment.