Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions content/update/minor/721-to-722/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ This document guides you through the update from Camunda `7.21.x` to `7.22.0` an
1. For administrators and developers: [Update to Groovy 4.0](#update-to-groovy-4)
1. For administrators and developers: [Sending telemetry feature removed](#sending-telemetry-feature-removed)
1. For administrators: [Database transaction isolation level `READ_COMMITTED` is enforced](#database-transaction-isolation-level-read-committed-is-enforced)
1. For developers: [Quarkus 3.14 Extension Update](#quarkus-3-14-extension-update)

This guide covers mandatory migration steps and optional considerations for the initial configuration of new functionality included in Camunda 7.22.

Expand Down Expand Up @@ -264,3 +265,29 @@ When starting the engine, a check is performed in order to determine if the tran
This behaviour can be disabled by setting the `skipIsolationLevelCheck` flag to `true`. Doing this will prevent an exception from being thrown and a warning message will be logged instead.

[See here]({{< ref "/reference/deployment-descriptors/tags/process-engine.md#configuration-properties" >}}) for more details about this and other properties.

# Quarkus 3.14 Extension Update

The Camunda Quarkus Extension has been updated to use Quarkus `3.14`. This version brings its own features and changes.
For a complete list, see the [Quarkus 3.14.2 Release](https://quarkus.io/blog/quarkus-3-14-2-released) blog post.

## Breaking Changes

`Quarkus 3.14` extensions introduce **breaking changes** in the way the Quarkus runtime treats configuration.

As a result, we decided to accept a config migration at this point to be consistent with the new behaviour of the framework (see [property examples](#property-examples) below)

The config properties will now follow a similar scheme to the [Camunda Spring Boot Starter Configuration]({{< ref "/user-guide/spring-boot-integration/configuration.md#generic-properties" >}}).

The change affects the configuration of the [process engine]({{< ref "/reference/deployment-descriptors/tags/process-engine.md#configuration-properties" >}}) and the [job executor]({{< ref "/reference/deployment-descriptors/tags/job-executor.md" >}}).

**Reason for Change**: The Quarkus migration guide encourages using named `ConfigMappings`, and we chose to adopt it to future-proof the extension.
This requires using the new namespace `generic-config`.

- `quarkus.camunda.enforce-history-time-to-live` **becomes** `quarkus.camunda.generic-config.enforce-history-time-to-live`

- `quarkus.camunda.job-executor.thread-pool.max-pool-size` **becomes** `quarkus.camunda.job-executor.generic-config.thread-pool.max-pool-size`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @psavidis ,

I was checking these changes, and I may be missing something, but isn't this incorrect?
Only non specific properties that are mapped to the genericConfig map should be impacted. This shouldn't include properties:

  • job-executor.thread-pool.max-pool-size
  • job-executor.thread-pool.queue-size

We can see here that these two properties haven't changed.

Copy link
Contributor Author

@psavidis psavidis Sep 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The above is correct 👍
Indeed the job executor properties are a poor selection for demonstrating the change in the docs

Proof: Changing the values in the test file mixed-application.properties makes CamundaEngineConfigFileTest#L70 fail which means the properties are mapped correctly.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for checking. In that case changes in file configuration.md are also incorrect. I can correct these in a new PR to prepare for the 3.15 upgrade.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Raised this PR for addressing the corrections.


For a detailed guide on the new Quarkus properties, you can visit the updated [Quarkus Configuration]({{< ref "/user-guide/quarkus-integration/configuration.md" >}}) page

If you want to read more on how Quarkus Extensions treat configuration differently, checkout the [Quarkus 3.14 Migration Guide](https://github.com/quarkusio/quarkus/wiki/Migration-Guide-3.14#for-extension-developers).
39 changes: 20 additions & 19 deletions content/user-guide/quarkus-integration/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,10 @@ You can set any process engine configuration properties under the `quarkus.camun
convert any property names from `camelCase` to the `kebab-case` format, like in the following example:

```properties
quarkus.camunda.cmmn-enabled=false
quarkus.camunda.dmn-enabled=false
quarkus.camunda.history=none
quarkus.camunda.generic-config.cmmn-enabled=false
quarkus.camunda.generic-config.dmn-enabled=false
quarkus.camunda.generic-config.history=none
quarkus.camunda.generic-config.initialize-telemetry=false
```

### Programmatic Configuration
Expand All @@ -125,7 +126,7 @@ In the above example, a `QuarkusProcessEngineConfiguration` CDI bean defines "cu
However, if you define the following in an `application.properties` file

```properties
quarkus.camunda.process-engine-name=quarkusEngine
quarkus.camunda.generic-config.process-engine-name=quarkusEngine
```

then "quarkusEngine" will be used as the process engine name since Quarkus config sources have a higher ordinal than a
Expand All @@ -139,10 +140,10 @@ page documents all the available properties. Convert any property names you inte
`kebab-case` format, like in the following example:

```properties
quarkus.camunda.job-executor.max-jobs-per-acquisition=5
quarkus.camunda.job-executor.lock-time-in-millis=500000
quarkus.camunda.job-executor.wait-time-in-millis=7000
quarkus.camunda.job-executor.max-wait=65000
quarkus.camunda.job-executor.generic-config.max-jobs-per-acquisition=5
quarkus.camunda.job-executor.generic-config.lock-time-in-millis=500000
quarkus.camunda.job-executor.generic-config.wait-time-in-millis=7000
quarkus.camunda.job-executor.generic-config.max-wait=65000
```

## Quarkus Extension Configuration
Expand Down Expand Up @@ -176,7 +177,7 @@ the Quarkus-specific properties in the following table:
<tr><td colspan="4"><b>Job Executor</b></td></tr>

<tr>
<td rowspan="2"><code>quarkus.camunda.job-executor.thread-pool</code></td>
<td rowspan="2"><code>quarkus.camunda.job-executor.generic-config.thread-pool</code></td>
<td><code>.max-pool-size</code></td>
<td>Sets the maximum number of threads that can be present in the thread pool.</td>
<td><code>10</code></td>
Expand Down Expand Up @@ -217,18 +218,18 @@ engine configuration, job executor and data source:

```properties
# process engine configuration
quarkus.camunda.cmmn-enabled=false
quarkus.camunda.dmn-enabled=false
quarkus.camunda.history=none
quarkus.camunda.generic-config.cmmn-enabled=false
quarkus.camunda.generic-config.dmn-enabled=false
quarkus.camunda.generic-config.history=none

# job executor configuration
quarkus.camunda.job-executor.thread-pool.max-pool-size=12
quarkus.camunda.job-executor.thread-pool.queue-size=5
quarkus.camunda.job-executor.max-jobs-per-acquisition=5
quarkus.camunda.job-executor.lock-time-in-millis=500000
quarkus.camunda.job-executor.wait-time-in-millis=7000
quarkus.camunda.job-executor.max-wait=65000
quarkus.camunda.job-executor.backoff-time-in-millis=5
quarkus.camunda.job-executor.generic-config.thread-pool.max-pool-size=12
quarkus.camunda.job-executor.generic-config.thread-pool.queue-size=5
quarkus.camunda.job-executor.generic-config.max-jobs-per-acquisition=5
quarkus.camunda.job-executor.generic-config.lock-time-in-millis=500000
quarkus.camunda.job-executor.generic-config.wait-time-in-millis=7000
quarkus.camunda.job-executor.generic-config.max-wait=65000
quarkus.camunda.job-executor.generic-config.backoff-time-in-millis=5

# custom data source configuration and selection
quarkus.datasource.my-datasource.db-kind=h2
Expand Down