diff --git a/extensions/opentelemetry/deployment/src/main/java/org/apache/camel/quarkus/component/opentelemetry/deployment/OpenTelemetryThreadPoolServiceOverrides.java b/extensions/opentelemetry/deployment/src/main/java/org/apache/camel/quarkus/component/opentelemetry/deployment/OpenTelemetryThreadPoolServiceOverrides.java deleted file mode 100644 index 89319d2df7f4..000000000000 --- a/extensions/opentelemetry/deployment/src/main/java/org/apache/camel/quarkus/component/opentelemetry/deployment/OpenTelemetryThreadPoolServiceOverrides.java +++ /dev/null @@ -1,51 +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.quarkus.component.opentelemetry.deployment; - -import java.nio.file.Paths; -import java.util.Map; - -import io.quarkus.deployment.annotations.BuildProducer; -import io.quarkus.deployment.annotations.BuildStep; -import org.apache.camel.quarkus.core.deployment.spi.CamelServiceBuildItem; -import org.apache.camel.quarkus.core.deployment.spi.CamelServiceDestination; -import org.apache.camel.quarkus.core.deployment.spi.CamelServicePatternBuildItem; -import org.apache.camel.spi.FactoryFinder; - -/** - * TODO: Remove this: https://github.com/apache/camel-quarkus/issues/6642 - */ -class OpenTelemetryThreadPoolServiceOverrides { - @BuildStep - void overrideCamelOpenTelemetryThreadPoolServices( - BuildProducer camelServicePattern, - BuildProducer camelService) { - - Map.of("thread-pool-factory", "OpenTelemetryInstrumentedThreadPoolFactory", - "thread-factory-listener", "OpenTelemetryInstrumentedThreadFactoryListener") - .forEach((serviceName, type) -> { - String servicePath = FactoryFinder.DEFAULT_PATH + serviceName; - // Disable broken original service - camelServicePattern - .produce(new CamelServicePatternBuildItem(CamelServiceDestination.DISCOVERY, false, servicePath)); - - // Replace with working - camelService.produce(new CamelServiceBuildItem(Paths.get(servicePath), - "org.apache.camel.quarkus.component.opentelemetry.patch.%s".formatted(type))); - }); - } -} diff --git a/extensions/opentelemetry/runtime/src/main/java/org/apache/camel/quarkus/component/opentelemetry/patch/OpenTelemetryInstrumentedThreadFactoryListener.java b/extensions/opentelemetry/runtime/src/main/java/org/apache/camel/quarkus/component/opentelemetry/patch/OpenTelemetryInstrumentedThreadFactoryListener.java deleted file mode 100644 index 69eb1446fc05..000000000000 --- a/extensions/opentelemetry/runtime/src/main/java/org/apache/camel/quarkus/component/opentelemetry/patch/OpenTelemetryInstrumentedThreadFactoryListener.java +++ /dev/null @@ -1,35 +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.quarkus.component.opentelemetry.patch; - -import java.util.concurrent.ThreadFactory; - -import io.opentelemetry.context.Context; -import org.apache.camel.spi.ExecutorServiceManager; -import org.apache.camel.spi.annotations.JdkService; - -/** - * TODO: Remove this: https://github.com/apache/camel-quarkus/issues/6642 - */ -@JdkService(ExecutorServiceManager.ThreadFactoryListener.FACTORY) -public class OpenTelemetryInstrumentedThreadFactoryListener implements ExecutorServiceManager.ThreadFactoryListener { - - @Override - public ThreadFactory onNewThreadFactory(ThreadFactory factory) { - return runnable -> factory.newThread(Context.current().wrap(runnable)); - } -} diff --git a/extensions/opentelemetry/runtime/src/main/java/org/apache/camel/quarkus/component/opentelemetry/patch/OpenTelemetryInstrumentedThreadPoolFactory.java b/extensions/opentelemetry/runtime/src/main/java/org/apache/camel/quarkus/component/opentelemetry/patch/OpenTelemetryInstrumentedThreadPoolFactory.java deleted file mode 100644 index 99832a5b176b..000000000000 --- a/extensions/opentelemetry/runtime/src/main/java/org/apache/camel/quarkus/component/opentelemetry/patch/OpenTelemetryInstrumentedThreadPoolFactory.java +++ /dev/null @@ -1,73 +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.quarkus.component.opentelemetry.patch; - -import java.util.concurrent.ExecutorService; -import java.util.concurrent.RejectedExecutionHandler; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ThreadFactory; -import java.util.concurrent.TimeUnit; - -import io.opentelemetry.context.Context; -import org.apache.camel.quarkus.component.opentelemetry.patch.internal.CurrentContextScheduledExecutorService; -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; - -/** - * TODO: Remove this: https://github.com/apache/camel-quarkus/issues/6642 - */ -@JdkService(ThreadPoolFactory.FACTORY) -public class OpenTelemetryInstrumentedThreadPoolFactory extends DefaultThreadPoolFactory implements ThreadPoolFactory { - - @Override - public ExecutorService newCachedThreadPool(ThreadFactory threadFactory) { - return Context.taskWrapping(super.newCachedThreadPool(threadFactory)); - } - - @Override - public ExecutorService newThreadPool( - int corePoolSize, - int maxPoolSize, - long keepAliveTime, - TimeUnit timeUnit, - int maxQueueSize, - boolean allowCoreThreadTimeOut, - RejectedExecutionHandler rejectedExecutionHandler, - ThreadFactory threadFactory) - throws IllegalArgumentException { - - ExecutorService executorService = super.newThreadPool( - corePoolSize, - maxPoolSize, - keepAliveTime, - timeUnit, - maxQueueSize, - allowCoreThreadTimeOut, - rejectedExecutionHandler, - threadFactory); - - return Context.taskWrapping(executorService); - } - - @Override - public ScheduledExecutorService newScheduledThreadPool(ThreadPoolProfile profile, ThreadFactory threadFactory) { - return new CurrentContextScheduledExecutorService(super.newScheduledThreadPool(profile, threadFactory)); - } - -} diff --git a/extensions/opentelemetry/runtime/src/main/java/org/apache/camel/quarkus/component/opentelemetry/patch/internal/CurrentContextScheduledExecutorService.java b/extensions/opentelemetry/runtime/src/main/java/org/apache/camel/quarkus/component/opentelemetry/patch/internal/CurrentContextScheduledExecutorService.java deleted file mode 100644 index c5937782315b..000000000000 --- a/extensions/opentelemetry/runtime/src/main/java/org/apache/camel/quarkus/component/opentelemetry/patch/internal/CurrentContextScheduledExecutorService.java +++ /dev/null @@ -1,101 +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.quarkus.component.opentelemetry.patch.internal; - -import java.util.Collection; -import java.util.List; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Future; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledFuture; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; - -import io.opentelemetry.context.Context; - -/** - * TODO: Remove this: https://github.com/apache/camel-quarkus/issues/6642 - */ -public class CurrentContextScheduledExecutorService extends ForwardingScheduledExecutorService { - - public CurrentContextScheduledExecutorService(ScheduledExecutorService delegate) { - super(delegate); - } - - @Override - public Future submit(Callable task) { - return delegate().submit(Context.current().wrap(task)); - } - - @Override - public Future submit(Runnable task, T result) { - return delegate().submit(Context.current().wrap(task), result); - } - - @Override - public Future submit(Runnable task) { - return delegate().submit(Context.current().wrap(task)); - } - - @Override - public List> invokeAll(Collection> tasks) throws InterruptedException { - return delegate().invokeAll(wrap(Context.current(), tasks)); - } - - @Override - public List> invokeAll(Collection> tasks, long timeout, TimeUnit unit) - throws InterruptedException { - return delegate().invokeAll(wrap(Context.current(), tasks), timeout, unit); - } - - @Override - public T invokeAny(Collection> tasks) throws InterruptedException, ExecutionException { - return delegate().invokeAny(wrap(Context.current(), tasks)); - } - - @Override - public T invokeAny(Collection> tasks, long timeout, TimeUnit unit) - throws InterruptedException, ExecutionException, TimeoutException { - return delegate().invokeAny(wrap(Context.current(), tasks), timeout, unit); - } - - @Override - public void execute(Runnable command) { - delegate().execute(Context.current().wrap(command)); - } - - @Override - public ScheduledFuture schedule(Runnable command, long delay, TimeUnit unit) { - return delegate().schedule(Context.current().wrap(command), delay, unit); - } - - @Override - public ScheduledFuture schedule(Callable callable, long delay, TimeUnit unit) { - return delegate().schedule(Context.current().wrap(callable), delay, unit); - } - - @Override - public ScheduledFuture scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) { - return delegate().scheduleAtFixedRate(Context.current().wrap(command), initialDelay, period, unit); - } - - @Override - public ScheduledFuture scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) { - return delegate().scheduleWithFixedDelay(Context.current().wrap(command), initialDelay, delay, unit); - } -} diff --git a/extensions/opentelemetry/runtime/src/main/java/org/apache/camel/quarkus/component/opentelemetry/patch/internal/ForwardingScheduledExecutorService.java b/extensions/opentelemetry/runtime/src/main/java/org/apache/camel/quarkus/component/opentelemetry/patch/internal/ForwardingScheduledExecutorService.java deleted file mode 100644 index d01f4bb4bf1f..000000000000 --- a/extensions/opentelemetry/runtime/src/main/java/org/apache/camel/quarkus/component/opentelemetry/patch/internal/ForwardingScheduledExecutorService.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.quarkus.component.opentelemetry.patch.internal; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.concurrent.Callable; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; - -import io.opentelemetry.context.Context; - -/** - * TODO: Remove this: https://github.com/apache/camel-quarkus/issues/6642 - */ -abstract class ForwardingScheduledExecutorService implements ScheduledExecutorService { - - private final ScheduledExecutorService delegate; - - protected ForwardingScheduledExecutorService(ScheduledExecutorService delegate) { - this.delegate = delegate; - } - - ScheduledExecutorService delegate() { - return delegate; - } - - @Override - public void shutdown() { - delegate.shutdown(); - } - - @Override - public List shutdownNow() { - return delegate.shutdownNow(); - } - - @Override - public boolean isShutdown() { - return delegate.isShutdown(); - } - - @Override - public boolean isTerminated() { - return delegate.isTerminated(); - } - - @Override - public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException { - return delegate.awaitTermination(timeout, unit); - } - - protected static Collection> wrap(Context context, Collection> tasks) { - List> wrapped = new ArrayList<>(); - for (Callable task : tasks) { - wrapped.add(context.wrap(task)); - } - return wrapped; - } -}