Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(content): Add Quarkus 3.14 Updates to Docs #1675

Merged
merged 6 commits into from
Sep 12, 2024
Merged
Show file tree
Hide file tree
Changes from all 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)
psavidis marked this conversation as resolved.
Show resolved Hide resolved

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.

A config migration is required to remain consistent with the new behavior of the framework (see [property examples](#property-examples) below).

The config properties 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, visit the updated [Quarkus Configuration]({{< ref "/user-guide/quarkus-integration/configuration.md" >}}) page.

To read more on how Quarkus extensions treat configuration differently, see 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
psavidis marked this conversation as resolved.
Show resolved Hide resolved
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