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

7.22 add tomcat 10 documentation #1647

Merged
merged 18 commits into from
Jul 4, 2024
Merged
Show file tree
Hide file tree
Changes from 13 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
8 changes: 6 additions & 2 deletions content/installation/full/tomcat/manual.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,8 @@ You have to add the file `bpm-platform.xml` to the folder `$TOMCAT_HOME/conf` or
## Secure Tomcat

Follow the Tomcat Security Howto of your Tomcat version:
[9.0](https://tomcat.apache.org/tomcat-9.0-doc/security-howto.html).
[9.0](https://tomcat.apache.org/tomcat-9.0-doc/security-howto.html),
[10.1](https://tomcat.apache.org/tomcat-10.1-doc/security-howto.html).

In particular, go to `${TOMCAT_HOME}/webapps/` and remove the directories
`ROOT`, `docs`, `examples`, `manager` and `host-manager`.
Expand All @@ -160,7 +161,8 @@ The following steps are required to deploy the applications:

1. Download the Camunda 7 web application that contains both applications from our [Artifact Repository](https://artifacts.camunda.com/artifactory/camunda-bpm/org/camunda/bpm/webapp/camunda-webapp-tomcat/).
Or switch to the private repository for the enterprise version (User and password from license required).
Choose the correct version named `$PLATFORM_VERSION/camunda-webapp-tomcat-$PLATFORM_VERSION.war`.
* For [Tomcat 10](https://artifacts.camunda.com/ui/native/camunda-bpm/org/camunda/bpm/webapp/camunda-webapp-tomcat-jakarta/), the name of the artifact is `$PLATFORM_VERSION/camunda-webapp-tomcat-jakarta-$PLATFORM_VERSION.war`.
* For [Tomcat 9](https://artifacts.camunda.com/ui/native/camunda-bpm/org/camunda/bpm/webapp/camunda-webapp-tomcat/), the name of the artifact is `$PLATFORM_VERSION/camunda-webapp-tomcat-$PLATFORM_VERSION.war`.
2. Copy the war file to `$TOMCAT_HOME/webapps/camunda.war`.
Optionally you may name it differently or extract it to a folder to deploy it to a different context path.
3. Startup Tomcat.
Expand All @@ -174,6 +176,8 @@ The following steps are required to deploy the REST API:
1. Download the REST API web application archive from our [Artifact Repository](https://artifacts.camunda.com/artifactory/camunda-bpm/org/camunda/bpm/camunda-engine-rest/).
Or switch to the private repository for the enterprise version (User and password from license required).
Choose the correct version named `$PLATFORM_VERSION/camunda-engine-rest-$PLATFORM_VERSION-tomcat.war`.
* For [Tomcat 10](https://artifacts.camunda.com/artifactory/public/org/camunda/bpm/camunda-engine-rest-jakarta/), the name of the artifact is `$PLATFORM_VERSION/camunda-engine-rest-jakarta-$PLATFORM_VERSION-tomcat.war`.
* For [Tomcat 9](https://artifacts.camunda.com/artifactory/public/org/camunda/bpm/camunda-engine-rest/), the name of the artifact is `$PLATFORM_VERSION/camunda-engine-rest-$PLATFORM_VERSION-tomcat.war`.
2. Copy the war file to `$TOMCAT_HOME/webapps`.
Optionally you may rename it or extract it to a folder to deploy it to a specific context like `/engine-rest`.
3. Startup Tomcat.
Expand Down
2 changes: 1 addition & 1 deletion content/introduction/supported-environments.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Run Camunda in every Java-runnable environment. Camunda is supported with our QA

## Container-Managed Process Engine and Camunda Cockpit, Tasklist, Admin

* Apache Tomcat 9.0
* Apache Tomcat 9.0 / 10.1
* JBoss EAP 7.4 / 8.0
* WildFly Application Server 23.0 / 26.0 / 31.0
* IBM WebSphere Liberty 22 with Java EE 8 features ([Enterprise Edition only](http://camunda.com/enterprise/),
Expand Down
55 changes: 55 additions & 0 deletions content/update/minor/721-to-722/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ This document guides you through the update from Camunda `7.21.x` to `7.22.0` an
1. For developers: [Camunda Template Engines FreeMarker](#camunda-template-engines-freemarker)
1. For developers: [Camunda Connect](#camunda-connect)
1. For administrators and developers: [Update to JBoss EAP 8.0](#update-to-jboss-eap-8)
1. For developers: [Update to Tomcat 10 Server](#update-to-tomcat-10-server)

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 @@ -99,3 +100,57 @@ Replace the artifact `camunda-webapp-jboss-$PLATFORM_VERSION.war` with `camunda-
### Replace REST API deployment

Replace the artifact `camunda-engine-rest-$PLATFORM_VERSION-wildfly.war` with `camunda-engine-rest-jakarta-$PLATFORM_VERSION-wildfly.war` under `$JBOSS_HOME/standalone/deployments`.

# Update to Tomcat 10 Server

This version brings support for `Tomcat 10.1`. A few reasons to upgrade are:

* Namespace Change: Switch from `javax.*` to `jakarta.*` for future compatibility.
* Enhanced Security: Improved security features and fixes.
* Modern Features: Supports `Servlet 6.0`, `JSP 3.1`, and `WebSocket 2.1`.
* Performance Improvements: Faster response times and better resource efficiency.
* Simplified Migration: Tools and documentation for easier transition from earlier versions.
* Better Integration: Enhanced compatibility with `Jakarta EE` components and third-party libraries.

From now on, our pre-packaged Tomcat distribution is built with `Tomcat 10.1`.
Additionally, the Docker image distribution, once configured to use Tomcat, will also utilize `Tomcat 10.1`.

If you prefer to stay on `Tomcat 9`, you can still download the `Java EE` compliant [web application][tomcat9-webapp], and [REST API][tomcat9-rest-api].

To work with `Tomcat 10`, consider the following when migrating your process applications and replacing artifacts on the application server:

[tomcat9-webapp]: https://artifacts.camunda.com/ui/native/camunda-bpm/org/camunda/bpm/webapp/camunda-webapp-tomcat/
[tomcat9-rest-api]: https://artifacts.camunda.com/artifactory/public/org/camunda/bpm/camunda-engine-rest/

### Migrate process applications

* Replace Java EE class references (`javax.*`) with Jakarta class references (`jakarta.*`)
* You might have a look at [`org.eclipse.transformer:transformer-maven-plugin`](https://github.com/eclipse/transformer)
* Replace Camunda class references:
* `org.camunda.bpm.application.impl.EjbProcessApplication` → `org.camunda.bpm.application.impl.JakartaEjbProcessApplication`
* `org.camunda.bpm.application.impl.ServletProcessApplicationDeployer` → `org.camunda.bpm.application.impl.JakartaServletProcessApplicationDeployer`
* `org.camunda.bpm.application.impl.ServletProcessApplication` → `org.camunda.bpm.application.impl.JakartaServletProcessApplication`
* `org.camunda.bpm.engine.impl.cfg.jta.JtaTransactionContext` → `org.camunda.bpm.engine.impl.cfg.jta.JakartaTransactionContext`
* `org.camunda.bpm.engine.impl.cfg.jta.JtaTransactionContextFactory` → `org.camunda.bpm.engine.impl.cfg.jta.JakartaTransactionContextFactory`
* `org.camunda.bpm.engine.impl.cfg.JtaProcessEngineConfiguration` → `org.camunda.bpm.engine.impl.cfg.JakartaTransactionProcessEngineConfiguration`
* `org.camunda.bpm.engine.impl.interceptor.JtaTransactionInterceptor` → `org.camunda.bpm.engine.impl.interceptor.JakartaTransactionInterceptor`
* Replace Camunda Maven dependencies:
* `org.camunda.bpm.javaee:camunda-ejb-client` → `org.camunda.bpm.javaee:camunda-ejb-client-jakarta`
* `org.camunda.bpm:camunda-engine-cdi` → `org.camunda.bpm:camunda-engine-cdi-jakarta`

### Migrate Java webapp plugins

Replace Java EE class references (`javax.*`) with Jakarta class references (`jakarta.*`)

### Replace web application (Cockpit, Admin, Tasklist, Welcome) deployment

Replace the artifact `camunda-webapp-tomcat-$PLATFORM_VERSION.war` with `camunda-webapp-tomcat-jakarta-$PLATFORM_VERSION.war` under `$CATALINA_HOME/webapps`.

### Replace REST API deployment

Replace the artifact `camunda-engine-rest-$PLATFORM_VERSION-tomcat.war` with `camunda-engine-rest-jakarta-$PLATFORM_VERSION-tomcat.war` under `$CATALINA_HOME/webapps`.

### Migrating to the Tomcat 10 Docker Image

If your application uses a Docker image based on `Tomcat 9` (or prior) and wish to use the `Tomcat 10` based **Docker image**, you need perform the
the above migration steps yourself before your application is compatible with the `jakarta` namespace changes the new Tomcat version introduces.
4 changes: 2 additions & 2 deletions content/user-guide/runtime-container-integration/tomcat.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ menu:

# JNDI Bindings

To use the JNDI Bindings for Camunda 7 Services on Apache Tomcat you have to add the file `META-INF/context.xml` to your process application and add the following [ResourceLinks](http://tomcat.apache.org/tomcat-9.0-doc/config/context.html#Resource_Links):
To use the JNDI Bindings for Camunda 7 Services on Apache Tomcat you have to add the file `META-INF/context.xml` to your process application and add the following ResourceLinks ([Tomcat 9](http://tomcat.apache.org/tomcat-9.0-doc/config/context.html#Resource_Links), [Tomcat 10.1](https://tomcat.apache.org/tomcat-10.1-doc/config/context.html#Resource_Links)):

```xml
<Context>
Expand Down Expand Up @@ -64,7 +64,7 @@ If you have declared other resource link names than we proposed, you have to use

## Tomcat Default Job Executor

Camunda 7 on Apache Tomcat 9.x uses the default job executor. The default [job executor]({{< ref "/user-guide/process-engine/the-job-executor.md" >}}) uses a ThreadPoolExecutor which manages a thread
Camunda 7 on Apache Tomcat 10.x uses the default job executor. The default [job executor]({{< ref "/user-guide/process-engine/the-job-executor.md" >}}) uses a ThreadPoolExecutor which manages a thread
pool and a job queue.

The core pool size, queue size, maximum pool size and keep-alive-time can be configured in the `bpm-platform.xml`.
Expand Down