This is an automated email from the ASF dual-hosted git repository.
apupier pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 0bb43295c5cc Removal of ThreadPoolFactory-vertx component
0bb43295c5cc is described below
commit 0bb43295c5cc8080d70e2512dbd7e03773a366ab
Author: Aurélien Pupier <[email protected]>
AuthorDate: Wed Aug 26 14:47:29 2026 +0200
Removal of ThreadPoolFactory-vertx component
The component camel-threadpoolfactory-vertx was deprecated in 4.21. The
component has been in an experimental state for a long time and no user
feedback has been received to justify continued maintenance.
Signed-off-by: Aurélien Pupier <[email protected]>
---
bom/camel-bom/pom.xml | 5 -
catalog/camel-allcomponents/pom.xml | 5 -
.../org/apache/camel/catalog/docs.properties | 1 -
.../catalog/docs/threadpoolfactory-vertx.adoc | 68 --------
.../org/apache/camel/catalog/others.properties | 1 -
.../catalog/others/threadpoolfactory-vertx.json | 15 --
components/camel-threadpoolfactory-vertx/pom.xml | 72 ---------
.../services/org/apache/camel/other.properties | 7 -
.../services/org/apache/camel/thread-pool-factory | 2 -
.../resources/threadpoolfactory-vertx.json | 15 --
.../src/main/docs/threadpoolfactory-vertx.adoc | 68 --------
.../reactive/vertx/VertXThreadPoolFactory.java | 175 ---------------------
.../camel/reactive/SplitCustomThreadPoolTest.java | 80 ----------
.../reactive/SplitParallelLookupVertxTest.java | 71 ---------
.../apache/camel/reactive/SplitParallelTest.java | 75 ---------
.../src/test/resources/log4j2.properties | 31 ----
components/pom.xml | 1 -
coverage/pom.xml | 5 -
.../examples/json/threadpoolfactory-vertx.json | 1 -
docs/components/modules/others/nav.adoc | 1 -
.../others/pages/threadpoolfactory-vertx.adoc | 1 -
.../ROOT/pages/camel-4x-upgrade-guide-4_23.adoc | 4 +
dsl/camel-componentdsl/pom.xml | 4 -
dsl/camel-endpointdsl/pom.xml | 4 -
parent/pom.xml | 5 -
.../maven/packaging/PrepareDocSymlinksMojo.java | 2 +-
26 files changed, 5 insertions(+), 714 deletions(-)
diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml
index 38c55f483e0d..4dbc1025ec68 100644
--- a/bom/camel-bom/pom.xml
+++ b/bom/camel-bom/pom.xml
@@ -2462,11 +2462,6 @@
<artifactId>camel-test-spring-junit6</artifactId>
<version>4.23.0-SNAPSHOT</version>
</dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-threadpoolfactory-vertx</artifactId>
- <version>4.23.0-SNAPSHOT</version>
- </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-thrift</artifactId>
diff --git a/catalog/camel-allcomponents/pom.xml
b/catalog/camel-allcomponents/pom.xml
index 936e56d27c5f..3d2e40be5d58 100644
--- a/catalog/camel-allcomponents/pom.xml
+++ b/catalog/camel-allcomponents/pom.xml
@@ -2232,11 +2232,6 @@
<artifactId>camel-test-spring-junit6</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-threadpoolfactory-vertx</artifactId>
- <version>${project.version}</version>
- </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-thrift</artifactId>
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
index 50b19800e477..b2aea29a889e 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
@@ -638,7 +638,6 @@ test-main-junit5
test-main-junit6
test-spring-junit5
test-spring-junit6
-threadpoolfactory-vertx
threads-eip
thrift-component
thrift-dataformat
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/threadpoolfactory-vertx.adoc
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/threadpoolfactory-vertx.adoc
deleted file mode 100644
index 9fc777ac9278..000000000000
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/threadpoolfactory-vertx.adoc
+++ /dev/null
@@ -1,68 +0,0 @@
-= ThreadPoolFactory Vert.x Component (deprecated)
-:doctitle: ThreadPoolFactory Vert.x
-:shortname: threadpoolfactory-vertx
-:artifactid: camel-threadpoolfactory-vertx
-:description: ThreadPoolFactory for camel-core using Vert.x
-:since: 3.5
-:supportlevel: Experimental-deprecated
-:deprecated: *deprecated*
-:tabs-sync-option:
-
-*Since Camel {since}*
-
-The Camel ThreadPoolFactory Vert.x component is a VertX based implementation
of the `ThreadPoolFactory` SPI.
-
-By default, Camel will use its own thread pool for EIPs that can use parallel
processing (such as splitter, aggregator).
-You can plug in different engines via an SPI interface. This is a VertX based
plugin that uses the VertX worker thread pool
-(executeBlocking).
-
-== Restrictions
-
-This implementation has been designed to use VertX worker threads for EIPs
where concurrency has been enabled (using default settings).
-However, this is limited to only apply when the EIP is not configured with a
specific thread pool. For example, the first example
-below will use VertX worker threads, and the 2nd below will not:
-
-._Java-only: split with parallel processing using VertX worker threads_
-[source,java]
-----
-from("direct:start")
- .to("log:foo")
- .split(body()).parallelProcessing()
- .to("mock:split")
- .end()
- .to("mock:result");
-----
-
-The following Split EIP will refer to a custom thread pool, and therefore
VertX is not in use, and Camel will
-use the custom thread pool:
-
-._Java-only: split with a custom thread pool profile (not using VertX)_
-[source,java]
-----
-// register a custom thread pool profile with id myLowPool
-context.getExecutorServiceManager().registerThreadPoolProfile(
- new
ThreadPoolProfileBuilder("myLowPool").poolSize(2).maxPoolSize(10).build()
-);
-
-from("direct:start")
- .to("log:foo")
- .split(body()).executorService("myLowPool")
- .to("mock:split")
- .end()
- .to("mock:result");
-----
-
-== VertX instance
-
-This implementation will first look up in the registry for an existing
`io.vertx.core.Vertx` to be used.
-However, you can configure an existing instance using the getter/setter on the
`VertXThreadPoolFactory` class.
-
-== Auto-detection from classpath
-
-To use this implementation all you need to do is to add the
`camel-threadpoolfactory-vertx` dependency to the classpath,
-and Camel should auto-detect this on startup and log as follows:
-
-[source,text]
-----
-Using ThreadPoolFactory: camel-threadpoolfactory-vertx
-----
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others.properties
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others.properties
index 7bc3186225d5..d906c34686b7 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others.properties
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others.properties
@@ -68,7 +68,6 @@ test-main-junit5
test-main-junit6
test-spring-junit5
test-spring-junit6
-threadpoolfactory-vertx
tracing
undertow-spring-security
wal
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/threadpoolfactory-vertx.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/threadpoolfactory-vertx.json
deleted file mode 100644
index 65877035e010..000000000000
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/threadpoolfactory-vertx.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "other": {
- "kind": "other",
- "name": "threadpoolfactory-vertx",
- "title": "ThreadPoolFactory Vert.x",
- "description": "ThreadPoolFactory for camel-core using Vert.x",
- "deprecated": true,
- "firstVersion": "3.5.0",
- "label": "reactive",
- "supportLevel": "Experimental",
- "groupId": "org.apache.camel",
- "artifactId": "camel-threadpoolfactory-vertx",
- "version": "4.23.0-SNAPSHOT"
- }
-}
diff --git a/components/camel-threadpoolfactory-vertx/pom.xml
b/components/camel-threadpoolfactory-vertx/pom.xml
deleted file mode 100644
index baa381caa43a..000000000000
--- a/components/camel-threadpoolfactory-vertx/pom.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache.camel</groupId>
- <artifactId>components</artifactId>
- <version>4.23.0-SNAPSHOT</version>
- </parent>
-
- <artifactId>camel-threadpoolfactory-vertx</artifactId>
- <packaging>jar</packaging>
- <name>Camel :: Thread Pool Factory :: Vert.x (deprecated)</name>
- <description>ThreadPoolFactory for camel-core using Vert.x</description>
-
- <properties>
- <firstVersion>3.5.0</firstVersion>
- <label>reactive</label>
- <title>ThreadPoolFactory Vert.x</title>
- <supportLevel>Experimental</supportLevel>
- </properties>
-
- <dependencies>
-
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-support</artifactId>
- </dependency>
-
- <dependency>
- <groupId>io.vertx</groupId>
- <artifactId>vertx-core</artifactId>
- <version>${vertx-version}</version>
- </dependency>
-
- <!-- testing -->
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-test-junit6</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-mock</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
-</project>
diff --git
a/components/camel-threadpoolfactory-vertx/src/generated/resources/META-INF/services/org/apache/camel/other.properties
b/components/camel-threadpoolfactory-vertx/src/generated/resources/META-INF/services/org/apache/camel/other.properties
deleted file mode 100644
index d695ef02ea00..000000000000
---
a/components/camel-threadpoolfactory-vertx/src/generated/resources/META-INF/services/org/apache/camel/other.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-name=threadpoolfactory-vertx
-groupId=org.apache.camel
-artifactId=camel-threadpoolfactory-vertx
-version=4.23.0-SNAPSHOT
-projectName=Camel :: Thread Pool Factory :: Vert.x (deprecated)
-projectDescription=ThreadPoolFactory for camel-core using Vert.x
diff --git
a/components/camel-threadpoolfactory-vertx/src/generated/resources/META-INF/services/org/apache/camel/thread-pool-factory
b/components/camel-threadpoolfactory-vertx/src/generated/resources/META-INF/services/org/apache/camel/thread-pool-factory
deleted file mode 100644
index b938ef6a14c7..000000000000
---
a/components/camel-threadpoolfactory-vertx/src/generated/resources/META-INF/services/org/apache/camel/thread-pool-factory
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.reactive.vertx.VertXThreadPoolFactory
diff --git
a/components/camel-threadpoolfactory-vertx/src/generated/resources/threadpoolfactory-vertx.json
b/components/camel-threadpoolfactory-vertx/src/generated/resources/threadpoolfactory-vertx.json
deleted file mode 100644
index 65877035e010..000000000000
---
a/components/camel-threadpoolfactory-vertx/src/generated/resources/threadpoolfactory-vertx.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "other": {
- "kind": "other",
- "name": "threadpoolfactory-vertx",
- "title": "ThreadPoolFactory Vert.x",
- "description": "ThreadPoolFactory for camel-core using Vert.x",
- "deprecated": true,
- "firstVersion": "3.5.0",
- "label": "reactive",
- "supportLevel": "Experimental",
- "groupId": "org.apache.camel",
- "artifactId": "camel-threadpoolfactory-vertx",
- "version": "4.23.0-SNAPSHOT"
- }
-}
diff --git
a/components/camel-threadpoolfactory-vertx/src/main/docs/threadpoolfactory-vertx.adoc
b/components/camel-threadpoolfactory-vertx/src/main/docs/threadpoolfactory-vertx.adoc
deleted file mode 100644
index 9fc777ac9278..000000000000
---
a/components/camel-threadpoolfactory-vertx/src/main/docs/threadpoolfactory-vertx.adoc
+++ /dev/null
@@ -1,68 +0,0 @@
-= ThreadPoolFactory Vert.x Component (deprecated)
-:doctitle: ThreadPoolFactory Vert.x
-:shortname: threadpoolfactory-vertx
-:artifactid: camel-threadpoolfactory-vertx
-:description: ThreadPoolFactory for camel-core using Vert.x
-:since: 3.5
-:supportlevel: Experimental-deprecated
-:deprecated: *deprecated*
-:tabs-sync-option:
-
-*Since Camel {since}*
-
-The Camel ThreadPoolFactory Vert.x component is a VertX based implementation
of the `ThreadPoolFactory` SPI.
-
-By default, Camel will use its own thread pool for EIPs that can use parallel
processing (such as splitter, aggregator).
-You can plug in different engines via an SPI interface. This is a VertX based
plugin that uses the VertX worker thread pool
-(executeBlocking).
-
-== Restrictions
-
-This implementation has been designed to use VertX worker threads for EIPs
where concurrency has been enabled (using default settings).
-However, this is limited to only apply when the EIP is not configured with a
specific thread pool. For example, the first example
-below will use VertX worker threads, and the 2nd below will not:
-
-._Java-only: split with parallel processing using VertX worker threads_
-[source,java]
-----
-from("direct:start")
- .to("log:foo")
- .split(body()).parallelProcessing()
- .to("mock:split")
- .end()
- .to("mock:result");
-----
-
-The following Split EIP will refer to a custom thread pool, and therefore
VertX is not in use, and Camel will
-use the custom thread pool:
-
-._Java-only: split with a custom thread pool profile (not using VertX)_
-[source,java]
-----
-// register a custom thread pool profile with id myLowPool
-context.getExecutorServiceManager().registerThreadPoolProfile(
- new
ThreadPoolProfileBuilder("myLowPool").poolSize(2).maxPoolSize(10).build()
-);
-
-from("direct:start")
- .to("log:foo")
- .split(body()).executorService("myLowPool")
- .to("mock:split")
- .end()
- .to("mock:result");
-----
-
-== VertX instance
-
-This implementation will first look up in the registry for an existing
`io.vertx.core.Vertx` to be used.
-However, you can configure an existing instance using the getter/setter on the
`VertXThreadPoolFactory` class.
-
-== Auto-detection from classpath
-
-To use this implementation all you need to do is to add the
`camel-threadpoolfactory-vertx` dependency to the classpath,
-and Camel should auto-detect this on startup and log as follows:
-
-[source,text]
-----
-Using ThreadPoolFactory: camel-threadpoolfactory-vertx
-----
diff --git
a/components/camel-threadpoolfactory-vertx/src/main/java/org/apache/camel/reactive/vertx/VertXThreadPoolFactory.java
b/components/camel-threadpoolfactory-vertx/src/main/java/org/apache/camel/reactive/vertx/VertXThreadPoolFactory.java
deleted file mode 100644
index da27d2c3f5dd..000000000000
---
a/components/camel-threadpoolfactory-vertx/src/main/java/org/apache/camel/reactive/vertx/VertXThreadPoolFactory.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.reactive.vertx;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.Callable;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-import io.vertx.core.Vertx;
-import org.apache.camel.spi.SimpleExecutorService;
-import org.apache.camel.spi.ThreadPoolFactory;
-import org.apache.camel.spi.ThreadPoolProfile;
-import org.apache.camel.spi.annotations.JdkService;
-import org.apache.camel.support.DefaultThreadPoolFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Deprecated(since = "4.21.0")
-@JdkService(ThreadPoolFactory.FACTORY)
-public class VertXThreadPoolFactory extends DefaultThreadPoolFactory
implements ThreadPoolFactory {
-
- private static final Logger LOG =
LoggerFactory.getLogger(VertXThreadPoolFactory.class);
-
- private final ExecutorService vertxExecutorService = new
VertXExecutorService();
- private Vertx vertx;
-
- public Vertx getVertx() {
- return vertx;
- }
-
- /**
- * To use an existing instance of {@link Vertx} instead of creating a
default instance.
- */
- public void setVertx(Vertx vertx) {
- this.vertx = vertx;
- }
-
- @Override
- protected void doStart() throws Exception {
- super.doStart();
- if (vertx == null) {
- Set<Vertx> set =
getCamelContext().getRegistry().findByType(Vertx.class);
- if (set.size() == 1) {
- vertx = set.iterator().next();
- }
- }
- if (vertx == null) {
- throw new IllegalArgumentException("VertX instance must be
configured.");
- }
- }
-
- @Override
- public ExecutorService newThreadPool(ThreadPoolProfile profile,
ThreadFactory threadFactory) {
- // only do this for default profile (which mean its not a custom pool)
- if (profile.isDefaultProfile()) {
- return vertxExecutorService;
- } else {
- return super.newThreadPool(profile, threadFactory);
- }
- }
-
- @Override
- public ExecutorService newCachedThreadPool(ThreadFactory threadFactory) {
- return vertxExecutorService;
- }
-
- @Override
- public String toString() {
- return "camel-threadpoolfactory-vertx";
- }
-
- private class VertXExecutorService implements ExecutorService,
SimpleExecutorService {
-
- @Override
- public void shutdown() {
- // noop
- }
-
- @Override
- public List<Runnable> shutdownNow() {
- // noop
- return null;
- }
-
- @Override
- public boolean isShutdown() {
- return false;
- }
-
- @Override
- public boolean isTerminated() {
- return false;
- }
-
- @Override
- public boolean awaitTermination(long timeout, TimeUnit unit) throws
InterruptedException {
- return false;
- }
-
- @Override
- public <T> Future<T> submit(Callable<T> task) {
- return null;
- }
-
- @Override
- public <T> Future<T> submit(Runnable task, T result) {
- return null;
- }
-
- @Override
- public Future<?> submit(Runnable task) {
- LOG.trace("submit: {}", task);
- final CompletableFuture<?> answer = new CompletableFuture<>();
- // used by vertx
- vertx.executeBlocking(() -> {
- task.run();
- return null;
- }).onComplete(res -> answer.complete(null));
- return answer;
- }
-
- @Override
- public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>>
tasks) throws InterruptedException {
- return null;
- }
-
- @Override
- public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>>
tasks, long timeout, TimeUnit unit)
- throws InterruptedException {
- return null;
- }
-
- @Override
- public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws
InterruptedException, ExecutionException {
- return null;
- }
-
- @Override
- public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long
timeout, TimeUnit unit)
- throws InterruptedException, ExecutionException,
TimeoutException {
- return null;
- }
-
- @Override
- public void execute(Runnable command) {
- LOG.trace("execute: {}", command);
- // used by vertx
- vertx.executeBlocking(Executors.callable(command));
- }
- }
-
-}
diff --git
a/components/camel-threadpoolfactory-vertx/src/test/java/org/apache/camel/reactive/SplitCustomThreadPoolTest.java
b/components/camel-threadpoolfactory-vertx/src/test/java/org/apache/camel/reactive/SplitCustomThreadPoolTest.java
deleted file mode 100644
index ec60bc476b41..000000000000
---
a/components/camel-threadpoolfactory-vertx/src/test/java/org/apache/camel/reactive/SplitCustomThreadPoolTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.reactive;
-
-import io.vertx.core.Vertx;
-import org.apache.camel.CamelContext;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.builder.ThreadPoolProfileBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.reactive.vertx.VertXThreadPoolFactory;
-import org.apache.camel.test.junit6.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-public class SplitCustomThreadPoolTest extends CamelTestSupport {
-
- private final Vertx vertx = Vertx.vertx();
-
- @Override
- protected CamelContext createCamelContext() throws Exception {
- CamelContext context = super.createCamelContext();
-
- VertXThreadPoolFactory tpf = (VertXThreadPoolFactory)
context.getExecutorServiceManager().getThreadPoolFactory();
- tpf.setVertx(vertx);
-
- return context;
- }
-
- @Test
- public void testSplit() throws Exception {
-
getMockEndpoint("mock:result").expectedBodiesReceived("A,B,C,D,E,F,G,H,I,J");
- getMockEndpoint("mock:split").expectedBodiesReceivedInAnyOrder("A",
"B", "C", "D", "E", "F", "G", "H", "I", "J");
-
- template.sendBody("direct:start", "A,B,C,D,E,F,G,H,I,J");
-
- MockEndpoint.assertIsSatisfied(context);
-
- vertx.close();
- }
-
- @Override
- protected RouteBuilder createRouteBuilder() {
- return new RouteBuilder() {
- @Override
- public void configure() {
- // register a custom thread pool profile with id myLowPool
- context.getExecutorServiceManager().registerThreadPoolProfile(
- new
ThreadPoolProfileBuilder("myLowPool").poolSize(2).maxPoolSize(10).build());
-
- from("direct:start")
- .to("log:foo")
- .split(body()).executorService("myLowPool")
- .to("log:bar")
- .process(e -> {
- String name = Thread.currentThread().getName();
- assertTrue(name.startsWith("Camel"), "Should use
Camel thread");
- })
- .to("mock:split")
- .end()
- .to("log:result")
- .to("mock:result");
- }
- };
- }
-}
diff --git
a/components/camel-threadpoolfactory-vertx/src/test/java/org/apache/camel/reactive/SplitParallelLookupVertxTest.java
b/components/camel-threadpoolfactory-vertx/src/test/java/org/apache/camel/reactive/SplitParallelLookupVertxTest.java
deleted file mode 100644
index 4e68eeadcdc8..000000000000
---
a/components/camel-threadpoolfactory-vertx/src/test/java/org/apache/camel/reactive/SplitParallelLookupVertxTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.reactive;
-
-import io.vertx.core.Vertx;
-import org.apache.camel.CamelContext;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.junit6.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-public class SplitParallelLookupVertxTest extends CamelTestSupport {
-
- private final Vertx vertx = Vertx.vertx();
-
- @Override
- protected CamelContext createCamelContext() throws Exception {
- CamelContext context = super.createCamelContext();
- context.getRegistry().bind("vertx", vertx);
- return context;
- }
-
- @Test
- public void testSplit() throws Exception {
-
getMockEndpoint("mock:result").expectedBodiesReceived("A,B,C,D,E,F,G,H,I,J");
- getMockEndpoint("mock:split").expectedBodiesReceivedInAnyOrder("A",
"B", "C", "D", "E", "F", "G", "H", "I", "J");
-
- template.sendBody("direct:start", "A,B,C,D,E,F,G,H,I,J");
-
- MockEndpoint.assertIsSatisfied(context);
-
- vertx.close();
- }
-
- @Override
- protected RouteBuilder createRouteBuilder() {
- return new RouteBuilder() {
- @Override
- public void configure() {
- from("direct:start")
- .to("log:foo")
- .split(body()).parallelProcessing()
- .to("log:bar")
- .process(e -> {
- String name = Thread.currentThread().getName();
-
assertTrue(name.startsWith("vert.x-worker-thread"), "Should use vertx thread");
- })
- .to("mock:split")
- .end()
- .to("log:result")
- .to("mock:result");
- }
- };
- }
-}
diff --git
a/components/camel-threadpoolfactory-vertx/src/test/java/org/apache/camel/reactive/SplitParallelTest.java
b/components/camel-threadpoolfactory-vertx/src/test/java/org/apache/camel/reactive/SplitParallelTest.java
deleted file mode 100644
index dbca4692094c..000000000000
---
a/components/camel-threadpoolfactory-vertx/src/test/java/org/apache/camel/reactive/SplitParallelTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.reactive;
-
-import io.vertx.core.Vertx;
-import org.apache.camel.CamelContext;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.reactive.vertx.VertXThreadPoolFactory;
-import org.apache.camel.test.junit6.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-public class SplitParallelTest extends CamelTestSupport {
-
- private final Vertx vertx = Vertx.vertx();
-
- @Override
- protected CamelContext createCamelContext() throws Exception {
- CamelContext context = super.createCamelContext();
-
- VertXThreadPoolFactory tpf = (VertXThreadPoolFactory)
context.getExecutorServiceManager().getThreadPoolFactory();
- tpf.setVertx(vertx);
-
- return context;
- }
-
- @Test
- public void testSplit() throws Exception {
-
getMockEndpoint("mock:result").expectedBodiesReceived("A,B,C,D,E,F,G,H,I,J");
- getMockEndpoint("mock:split").expectedBodiesReceivedInAnyOrder("A",
"B", "C", "D", "E", "F", "G", "H", "I", "J");
-
- template.sendBody("direct:start", "A,B,C,D,E,F,G,H,I,J");
-
- MockEndpoint.assertIsSatisfied(context);
-
- vertx.close();
- }
-
- @Override
- protected RouteBuilder createRouteBuilder() {
- return new RouteBuilder() {
- @Override
- public void configure() {
- from("direct:start")
- .to("log:foo")
- .split(body()).parallelProcessing()
- .to("log:bar")
- .process(e -> {
- String name = Thread.currentThread().getName();
-
assertTrue(name.startsWith("vert.x-worker-thread"), "Should use vertx thread");
- })
- .to("mock:split")
- .end()
- .to("log:result")
- .to("mock:result");
- }
- };
- }
-}
diff --git
a/components/camel-threadpoolfactory-vertx/src/test/resources/log4j2.properties
b/components/camel-threadpoolfactory-vertx/src/test/resources/log4j2.properties
deleted file mode 100644
index b06ea9506472..000000000000
---
a/components/camel-threadpoolfactory-vertx/src/test/resources/log4j2.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements. See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License. You may obtain a copy of the License at
-##
-## http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-appender.out.type = File
-appender.out.name = out
-appender.out.fileName = target/camel-threadpoolfactory-vertx.log
-appender.out.layout.type = PatternLayout
-appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
-appender.stdout.type = Console
-appender.stdout.name = stdout
-appender.stdout.layout.type = PatternLayout
-appender.stdout.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
-
-rootLogger.level = INFO
-
-rootLogger.appenderRef.out.ref = out
-#rootLogger.appenderRef.out.ref = stdout
diff --git a/components/pom.xml b/components/pom.xml
index 93dc6593a02e..690fb2e60fa9 100644
--- a/components/pom.xml
+++ b/components/pom.xml
@@ -324,7 +324,6 @@
<module>camel-tarfile</module>
<module>camel-telegram</module>
<module>camel-telemetry-dev</module>
- <module>camel-threadpoolfactory-vertx</module>
<module>camel-thrift</module>
<module>camel-thymeleaf</module>
<module>camel-tika</module>
diff --git a/coverage/pom.xml b/coverage/pom.xml
index c948ce754bf5..421dff3f0ed4 100644
--- a/coverage/pom.xml
+++ b/coverage/pom.xml
@@ -2223,11 +2223,6 @@
<artifactId>camel-test-spring-junit6</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-threadpoolfactory-vertx</artifactId>
- <version>${project.version}</version>
- </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-thrift</artifactId>
diff --git
a/docs/components/modules/others/examples/json/threadpoolfactory-vertx.json
b/docs/components/modules/others/examples/json/threadpoolfactory-vertx.json
deleted file mode 120000
index 13f1a15e91fa..000000000000
--- a/docs/components/modules/others/examples/json/threadpoolfactory-vertx.json
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../../components/camel-threadpoolfactory-vertx/src/generated/resources/threadpoolfactory-vertx.json
\ No newline at end of file
diff --git a/docs/components/modules/others/nav.adoc
b/docs/components/modules/others/nav.adoc
index e8fc25169a7a..fa4f4c68ba12 100644
--- a/docs/components/modules/others/nav.adoc
+++ b/docs/components/modules/others/nav.adoc
@@ -100,7 +100,6 @@
** xref:test-main-junit6.adoc[Test Main JUnit6]
** xref:test-spring-junit5.adoc[Test Spring JUnit5]
** xref:test-spring-junit6.adoc[Test Spring JUnit6]
-** xref:threadpoolfactory-vertx.adoc[ThreadPoolFactory Vert.x]
** xref:tracing.adoc[Tracing]
** xref:undertow-spring-security.adoc[Undertow Spring Security]
** xref:wal.adoc[Write Ahead Log Strategy for Resume API]
diff --git a/docs/components/modules/others/pages/threadpoolfactory-vertx.adoc
b/docs/components/modules/others/pages/threadpoolfactory-vertx.adoc
deleted file mode 120000
index f66c67cd7e30..000000000000
--- a/docs/components/modules/others/pages/threadpoolfactory-vertx.adoc
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../components/camel-threadpoolfactory-vertx/src/main/docs/threadpoolfactory-vertx.adoc
\ No newline at end of file
diff --git
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_23.adoc
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_23.adoc
index 8a18f4ec7aa1..a66d34c909fe 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_23.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_23.adoc
@@ -49,6 +49,10 @@ 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-threadpoolfactory-vertx
+
+The component camel-threadpoolfactory-vertx was deprecated in 4.21. The
component has been in an experimental state for a long time and no user
feedback has been received to justify continued maintenance.
+
==== camel-zeebe
`camel-zeebe` component was deprecated in 4.19 and has a straightforward
replacement with `camel-camunda`. It is removed in 4.23.
diff --git a/dsl/camel-componentdsl/pom.xml b/dsl/camel-componentdsl/pom.xml
index 8318f4e7d6c1..4cc942041f03 100644
--- a/dsl/camel-componentdsl/pom.xml
+++ b/dsl/camel-componentdsl/pom.xml
@@ -73,10 +73,6 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-reactive-executor-vertx</artifactId>
</exclusion>
- <exclusion>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-threadpoolfactory-vertx</artifactId>
- </exclusion>
<exclusion>
<groupId>org.apache.camel</groupId>
<artifactId>camel-microprofile-config</artifactId>
diff --git a/dsl/camel-endpointdsl/pom.xml b/dsl/camel-endpointdsl/pom.xml
index fab0566c7864..17b3fc3b7e2e 100644
--- a/dsl/camel-endpointdsl/pom.xml
+++ b/dsl/camel-endpointdsl/pom.xml
@@ -79,10 +79,6 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-reactive-executor-vertx</artifactId>
</exclusion>
- <exclusion>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-threadpoolfactory-vertx</artifactId>
- </exclusion>
<exclusion>
<groupId>org.apache.camel</groupId>
<artifactId>camel-microprofile-config</artifactId>
diff --git a/parent/pom.xml b/parent/pom.xml
index 0e9740a379c5..ec7ced73c6fb 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -2924,11 +2924,6 @@
<artifactId>camel-test-spring-junit6</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-threadpoolfactory-vertx</artifactId>
- <version>${project.version}</version>
- </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-thrift</artifactId>
diff --git
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareDocSymlinksMojo.java
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareDocSymlinksMojo.java
index e44ea4b16ce6..102f6f1d46c2 100644
---
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareDocSymlinksMojo.java
+++
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareDocSymlinksMojo.java
@@ -695,7 +695,7 @@ public class PrepareDocSymlinksMojo extends AbstractMojo {
"dsl/*/*/src/main/docs/*.adoc"),
nonComponentSuffixExcludes,
"docs/components/modules/others/pages",
- List.of("index.adoc",
"reactive-threadpoolfactory-vertx.adoc"), null, null);
+ List.of("index.adoc"), null, null);
others.json = new KindSpec(
// gulp used
`components/{*,*/*,*/*/*}/src/generated/resources/*.json` — only top-level .json
// files (i.e. those NOT under META-INF/...) qualify as
"other" component metadata.