Skip to content
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
Original file line number Diff line number Diff line change
@@ -1,17 +1,34 @@
= Reactive Executor Tomcat Component
= Reactive Executor Tomcat Component (deprecated)
:doctitle: Reactive Executor Tomcat
:shortname: reactive-executor-tomcat
:artifactid: camel-reactive-executor-tomcat
:description: Reactive Executor for camel-core using Apache Tomcat
:description: Reactive Executor for camel-core using Apache Tomcat (deprecated)
:since: 3.17
:supportlevel: Experimental
:supportlevel: Experimental-deprecated
:deprecated: *deprecated*
:tabs-sync-option:

*Since Camel {since}*

The `camel-reactive-executor-tomcat` is intended for users of Apache Tomcat,
*Deprecated since Camel 4.22*

[WARNING]
====
This component is deprecated and will be removed in a future release.
Use the default `ReactiveExecutor` (built into `camel-core`) instead.
====

The `camel-reactive-executor-tomcat` was intended for users of Apache Tomcat,
to let Camel applications shutdown cleanly when being un-deployed in Apache Tomcat.

The cross-thread `ThreadLocal` cleanup that distinguished this component from the default
`ReactiveExecutor` relied on reflective access to the private `Thread.threadLocals` field.
This approach is denied by the JDK module system since JDK 17 and is incompatible with
virtual threads. Without that cleanup, this executor is functionally identical to the default.

To migrate, simply remove the `camel-reactive-executor-tomcat` dependency from your project.
Camel will automatically use the built-in `DefaultReactiveExecutor`.

== Auto-detection from classpath

To use this implementation all you need to do is to add the `camel-reactive-executor-tomcat` dependency to the classpath,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"kind": "other",
"name": "reactive-executor-tomcat",
"title": "Reactive Executor Tomcat",
"description": "Reactive Executor for camel-core using Apache Tomcat",
"deprecated": false,
"description": "Reactive Executor for camel-core using Apache Tomcat (deprecated)",
"deprecated": true,
"firstVersion": "3.17.0",
"label": "reactive",
"supportLevel": "Experimental",
Expand Down
4 changes: 2 additions & 2 deletions components/camel-reactive-executor-tomcat/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@

<artifactId>camel-reactive-executor-tomcat</artifactId>
<packaging>jar</packaging>
<name>Camel :: Reactive Executor :: Tomcat</name>
<description>Reactive Executor for camel-core using Apache Tomcat</description>
<name>Camel :: Reactive Executor :: Tomcat (deprecated)</name>
<description>Reactive Executor for camel-core using Apache Tomcat (deprecated)</description>

<properties>
<firstVersion>3.17.0</firstVersion>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ name=reactive-executor-tomcat
groupId=org.apache.camel
artifactId=camel-reactive-executor-tomcat
version=4.22.0-SNAPSHOT
projectName=Camel :: Reactive Executor :: Tomcat
projectDescription=Reactive Executor for camel-core using Apache Tomcat
projectName=Camel :: Reactive Executor :: Tomcat (deprecated)
projectDescription=Reactive Executor for camel-core using Apache Tomcat (deprecated)
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"kind": "other",
"name": "reactive-executor-tomcat",
"title": "Reactive Executor Tomcat",
"description": "Reactive Executor for camel-core using Apache Tomcat",
"deprecated": false,
"description": "Reactive Executor for camel-core using Apache Tomcat (deprecated)",
"deprecated": true,
"firstVersion": "3.17.0",
"label": "reactive",
"supportLevel": "Experimental",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,34 @@
= Reactive Executor Tomcat Component
= Reactive Executor Tomcat Component (deprecated)
:doctitle: Reactive Executor Tomcat
:shortname: reactive-executor-tomcat
:artifactid: camel-reactive-executor-tomcat
:description: Reactive Executor for camel-core using Apache Tomcat
:description: Reactive Executor for camel-core using Apache Tomcat (deprecated)
:since: 3.17
:supportlevel: Experimental
:supportlevel: Experimental-deprecated
:deprecated: *deprecated*
:tabs-sync-option:

*Since Camel {since}*

The `camel-reactive-executor-tomcat` is intended for users of Apache Tomcat,
*Deprecated since Camel 4.22*

[WARNING]
====
This component is deprecated and will be removed in a future release.
Use the default `ReactiveExecutor` (built into `camel-core`) instead.
====

The `camel-reactive-executor-tomcat` was intended for users of Apache Tomcat,
to let Camel applications shutdown cleanly when being un-deployed in Apache Tomcat.

The cross-thread `ThreadLocal` cleanup that distinguished this component from the default
`ReactiveExecutor` relied on reflective access to the private `Thread.threadLocals` field.
This approach is denied by the JDK module system since JDK 17 and is incompatible with
virtual threads. Without that cleanup, this executor is functionally identical to the default.

To migrate, simply remove the `camel-reactive-executor-tomcat` dependency from your project.
Camel will automatically use the built-in `DefaultReactiveExecutor`.

== Auto-detection from classpath

To use this implementation all you need to do is to add the `camel-reactive-executor-tomcat` dependency to the classpath,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,15 @@
/**
* This reactive executor is intended for users of Apache Tomcat, to let Camel applications shutdown cleanly when being
* undeployed in Apache Tomcat.
*
* @deprecated since 4.22. The cross-thread ThreadLocal cleanup that distinguished this component from
* {@link org.apache.camel.impl.engine.DefaultReactiveExecutor} relied on reflective access to the private
* {@code Thread.threadLocals} field, which is denied by the JDK module system since JDK 17 and is
* incompatible with virtual threads. Without that cleanup, this executor is functionally identical to the
* default. Use {@code DefaultReactiveExecutor} instead (it is used automatically when this module is not on
* the classpath).
*/
@Deprecated(since = "4.22")
@ManagedResource(description = "Managed TomcatReactiveExecutor")
@JdkService(ReactiveExecutor.FACTORY)
@Experimental
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,16 @@ See the xref:camel-upgrade-recipes-tool.adoc[documentation] page for details.

== Upgrading Camel 4.21 to 4.22

=== camel-reactive-executor-tomcat

The `camel-reactive-executor-tomcat` component has been deprecated. Its cross-thread `ThreadLocal`
cleanup relied on reflective access to the private `Thread.threadLocals` field, which is denied by
the JDK module system since JDK 17 and is incompatible with virtual threads. Without that cleanup,
this executor is functionally identical to the built-in `DefaultReactiveExecutor`.

To migrate, remove the `camel-reactive-executor-tomcat` dependency from your project. Camel will
automatically use the default reactive executor.

=== camel-core

==== Property placeholders in toD and enrich dynamic endpoint URIs
Expand Down