From 68bf0df063f12e67905cb86f0a2da90d34a9495e Mon Sep 17 00:00:00 2001 From: psavidis <69160690+psavidis@users.noreply.github.com> Date: Thu, 4 Jul 2024 15:29:06 +0300 Subject: [PATCH] chore(content): Add Tomcat 10 to Documentation Co-authored-by: danielkelemen Co-authored-by: tasso94 Co-authored-by: petros.savvidis Related-to: https://github.com/camunda/camunda-bpm-platform/issues/4390 Parent-ticket: https://github.com/camunda/camunda-bpm-platform/issues/2471 --- content/installation/full/tomcat/manual.md | 8 ++- .../introduction/supported-environments.md | 2 +- content/update/minor/721-to-722/_index.md | 54 +++++++++++++++++++ content/update/patch-level.md | 15 ++++++ .../runtime-container-integration/tomcat.md | 4 +- 5 files changed, 78 insertions(+), 5 deletions(-) diff --git a/content/installation/full/tomcat/manual.md b/content/installation/full/tomcat/manual.md index 6f4f213e8..7610729bd 100644 --- a/content/installation/full/tomcat/manual.md +++ b/content/installation/full/tomcat/manual.md @@ -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`. @@ -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. @@ -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. diff --git a/content/introduction/supported-environments.md b/content/introduction/supported-environments.md index 216cc7b7b..50fa91254 100644 --- a/content/introduction/supported-environments.md +++ b/content/introduction/supported-environments.md @@ -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/), diff --git a/content/update/minor/721-to-722/_index.md b/content/update/minor/721-to-722/_index.md index 4ab790676..4c2b0dcc9 100644 --- a/content/update/minor/721-to-722/_index.md +++ b/content/update/minor/721-to-722/_index.md @@ -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 administrators and 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. @@ -99,3 +100,56 @@ 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 Tomcat Docker image will, from now on, 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`, you need to perform the above migration steps yourself before your application is compatible with the `jakarta` namespace changes the new Tomcat version introduces. \ No newline at end of file diff --git a/content/update/patch-level.md b/content/update/patch-level.md index 5fd6e1e7c..ee03eb0f6 100644 --- a/content/update/patch-level.md +++ b/content/update/patch-level.md @@ -486,6 +486,21 @@ This will allow a better experience when looking for process definitions. The change also affects the API that provides the data for the search component. This API is an internal API, which means it's **not** part of the public [REST API]({{< ref "/reference/rest" >}}), so the change should not affect any customers. +## 7.21.3 to 7.21.4 + +### Added Support for Tomcat 10 + +This version supports all the necessary building-block modules for our users to use `camunda-bpm-platform` community and enterprise editions in conjunction with `Tomcat 10.1`. + +{{< note title="Heads-up!" class="warning" >}} +`Tomcat 10` is compatible with the `jakarta` namespace. +If you wish to use it, the `jakarta` modules needs to be used (`camunda-webapp-tomcat-jakarta`, `camunda-engine-rest-jakarta`). + +The `javax` modules won't work with `Tomcat 10`. + +For detailed steps of manual installation, follow the [Tomcat Manual Installation Guide]({{< ref "/installation/full/tomcat/manual.md" >}}) +{{< /note >}} + # Full Distribution This section is applicable if you installed the [Full Distribution]({{< ref "/introduction/downloading-camunda.md#full-distribution" >}}) with a **shared process engine**. In this case you need to update the libraries and applications installed inside the application server. diff --git a/content/user-guide/runtime-container-integration/tomcat.md b/content/user-guide/runtime-container-integration/tomcat.md index 8cfcbb40a..f44de7021 100644 --- a/content/user-guide/runtime-container-integration/tomcat.md +++ b/content/user-guide/runtime-container-integration/tomcat.md @@ -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 @@ -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`.