You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by fm...@apache.org on 2025/07/22 08:25:27 UTC

(camel) branch java-25-deprecations updated (8e881b77039 -> 2badf0311a0)

This is an automated email from the ASF dual-hosted git repository.

fmariani pushed a change to branch java-25-deprecations
in repository https://gitbox.apache.org/repos/asf/camel.git


 discard 8e881b77039 Support for Java 25 - Update deprecations and removals
     new 2badf0311a0 Support for Java 25 - Update deprecations and removals

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (8e881b77039)
            \
             N -- N -- N   refs/heads/java-25-deprecations (2badf0311a0)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../component/google/bigquery/GoogleBigQueryProducer.java    |  2 +-
 .../google/pubsublite/GooglePubsubLiteProducer.java          |  4 ++--
 .../camel/component/google/pubsub/GooglePubsubProducer.java  |  4 ++--
 .../java/org/apache/camel/component/smpp/SmppConsumer.java   |  4 ++--
 .../java/org/apache/camel/component/smpp/SmppProducer.java   | 12 ++++++------
 .../camel/impl/engine/DefaultAsyncProcessorAwaitManager.java |  2 +-
 .../org/apache/camel/language/csimple/CSimpleHelper.java     |  2 +-
 .../management/mbean/ManagedAsyncProcessorAwaitManager.java  |  2 +-
 .../org/apache/camel/support/builder/ExpressionBuilder.java  |  2 +-
 9 files changed, 17 insertions(+), 17 deletions(-)


(camel) 01/01: Support for Java 25 - Update deprecations and removals

Posted by fm...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

fmariani pushed a commit to branch java-25-deprecations
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 2badf0311a041f6f2858a87c85dbac0eebc69432
Author: Croway <fe...@gmail.com>
AuthorDate: Mon Jul 21 18:09:01 2025 +0200

    Support for Java 25 - Update deprecations and removals
---
 components/camel-ai/pom.xml                        |  1 -
 .../as2/api/AS2AsyncMDNServerConnection.java       |  2 +
 .../component/as2/api/AS2ServerConnection.java     |  2 +
 .../camel/component/as2/api/util/SigningUtils.java |  2 +-
 .../camel/component/avro/AvroHttpProducer.java     |  4 +-
 .../camel/dataformat/bindy/FormattingOptions.java  |  2 +
 .../box/internal/BoxConnectionHelper.java          |  4 +-
 .../component/cxf/jaxrs/DefaultCxfRsBinding.java   |  5 ++-
 .../camel/component/git/RepositoryFactory.java     |  4 +-
 .../google/bigquery/GoogleBigQueryProducer.java    |  2 +
 .../pubsublite/GooglePubsubLiteProducer.java       |  3 ++
 .../google/pubsub/GooglePubsubProducer.java        |  3 ++
 .../org/apache/camel/component/jira/Utils.java     |  3 +-
 .../knative/http/KnativeHttpProducer.java          | 10 +----
 .../apache/camel/component/ldif/LdifProducer.java  |  3 +-
 .../org/apache/camel/service/lra/LRAClient.java    |  2 +-
 .../apache/camel/service/lra/LRASagaService.java   |  4 +-
 .../apache/camel/service/lra/LRAClientTest.java    |  5 +--
 .../camel/service/lra/LRASagaCoordinatorTest.java  |  3 +-
 .../camel/component/netty/NettyEndpoint.java       |  4 +-
 .../netty/NettySSLClientCertHeadersTest.java       |  4 +-
 .../apache/camel/oauth/jakarta/ServletOAuth.java   |  4 +-
 .../org/apache/camel/oauth/vertx/VertxOAuth.java   |  4 +-
 .../apache/camel/test/oauth/SSLCertTrustTest.java  |  4 +-
 .../component/olingo2/api/impl/Olingo2AppImpl.java |  3 +-
 .../apache/camel/openapi/RestOpenApiSupport.java   | 11 +++--
 .../java/org/apache/camel/github/GistResource.java |  3 +-
 .../org/apache/camel/github/GitHubResource.java    |  3 +-
 .../org/apache/camel/component/rss/RssUtils.java   |  4 +-
 .../camel/component/smooks/SmooksProcessor.java    |  4 +-
 .../smooks/converter/SourceConverter.java          |  4 +-
 .../apache/camel/component/smpp/SmppConsumer.java  |  3 ++
 .../apache/camel/component/smpp/SmppProducer.java  |  9 ++++
 .../apache/camel/spring/util/ReflectionUtils.java  |  2 +-
 .../camel/component/stream/StreamConsumer.java     |  4 +-
 .../xmlsecurity/processor/SantuarioUtil.java       | 51 ++++++++--------------
 .../xmlsecurity/XMLSecurityDataFormat.java         | 33 +++++---------
 .../component/xslt/saxon/XsltSaxonEndpoint.java    | 16 ++++---
 .../engine/DefaultAsyncProcessorAwaitManager.java  |  2 +
 .../impl/engine/DefaultResourceResolvers.java      |  4 +-
 .../camel/language/csimple/CSimpleHelper.java      |  2 +
 .../mbean/ManagedAsyncProcessorAwaitManager.java   |  2 +
 .../apache/camel/support/ClassicUuidGenerator.java |  5 +--
 .../org/apache/camel/support/ObjectHelper.java     |  2 +-
 .../camel/support/builder/ExpressionBuilder.java   |  2 +
 .../scan/DefaultPackageScanClassResolver.java      |  3 +-
 .../scan/DefaultPackageScanResourceResolver.java   |  3 +-
 .../util/ClassLoadingAwareObjectInputStream.java   | 17 ++++++--
 .../java/org/apache/camel/util/PackageHelper.java  |  2 +-
 .../dsl/jbang/core/commands/SBOMGenerator.java     | 35 +++++++--------
 .../dsl/jbang/core/commands/bind/PipeProvider.java |  3 +-
 .../apache/camel/dsl/jbang/it/OpenApiITCase.java   |  5 +--
 .../dsl/jbang/it/support/JBangTestSupport.java     |  3 +-
 .../main/download/MavenDependencyDownloader.java   |  3 +-
 .../services/MilvusLocalContainerInfraService.java |  5 ++-
 .../PineconeLocalContainerInfraService.java        |  5 ++-
 .../WeaviateLocalContainerInfraService.java        |  5 ++-
 .../infra/xmpp/services/XmppServerContainer.java   |  5 ++-
 .../camel/tooling/maven/MavenDownloaderImpl.java   |  5 ++-
 .../apache/camel/maven/AbstractGeneratorMojo.java  |  3 +-
 .../main/java/org/apache/camel/maven/RunMojo.java  |  8 ++--
 .../maven/packaging/ModelWriterGeneratorMojo.java  |  4 +-
 .../packaging/ModelXmlParserGeneratorMojo.java     |  4 +-
 63 files changed, 202 insertions(+), 169 deletions(-)

diff --git a/components/camel-ai/pom.xml b/components/camel-ai/pom.xml
index cf58424878c..312c690e927 100644
--- a/components/camel-ai/pom.xml
+++ b/components/camel-ai/pom.xml
@@ -53,4 +53,3 @@
     </modules>
 
 </project>
-
diff --git a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2AsyncMDNServerConnection.java b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2AsyncMDNServerConnection.java
index 29bc7ab8547..d70ed6a38a3 100644
--- a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2AsyncMDNServerConnection.java
+++ b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2AsyncMDNServerConnection.java
@@ -152,6 +152,8 @@ public class AS2AsyncMDNServerConnection {
             // parses the received AS2MessageEntity
             AS2BHttpServerConnection inConn = new AS2BHttpServerConnection(cfg);
             inConn.bind(inSocket);
+            // TODO Update once basline is Java 21
+            // setName(REQUEST_HANDLER_THREAD_NAME_PREFIX + threadId());
             setName(REQUEST_HANDLER_THREAD_NAME_PREFIX + getId());
             this.httpService = httpService;
             this.serverConnection = inConn;
diff --git a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ServerConnection.java b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ServerConnection.java
index 88c2852511a..e390b13d9c8 100644
--- a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ServerConnection.java
+++ b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ServerConnection.java
@@ -143,6 +143,8 @@ public class AS2ServerConnection {
             LOG.info("Incoming connection from {}", inSocket.getInetAddress());
             inConn.bind(inSocket);
 
+            // TODO Update once basline is Java 21
+            // setName(REQUEST_HANDLER_THREAD_NAME_PREFIX + threadId());
             setName(REQUEST_HANDLER_THREAD_NAME_PREFIX + getId());
 
             this.httpService = httpService;
diff --git a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/SigningUtils.java b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/SigningUtils.java
index 9ea451a5e1c..6b3d585960f 100644
--- a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/SigningUtils.java
+++ b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/SigningUtils.java
@@ -84,7 +84,7 @@ public final class SigningUtils {
         ASN1EncodableVector attributes = new ASN1EncodableVector();
         attributes.add(new SMIMEEncryptionKeyPreferenceAttribute(
                 new IssuerAndSerialNumber(
-                        new X500Name(signingCert.getIssuerDN().getName()), signingCert.getSerialNumber())));
+                        new X500Name(signingCert.getIssuerX500Principal().getName()), signingCert.getSerialNumber())));
         attributes.add(new SMIMECapabilitiesAttribute(capabilities));
 
         SignerInfoGenerator signerInfoGenerator = null;
diff --git a/components/camel-avro-rpc/camel-avro-rpc-component/src/main/java/org/apache/camel/component/avro/AvroHttpProducer.java b/components/camel-avro-rpc/camel-avro-rpc-component/src/main/java/org/apache/camel/component/avro/AvroHttpProducer.java
index 4f2def49e9f..d5dc87a5b6f 100644
--- a/components/camel-avro-rpc/camel-avro-rpc-component/src/main/java/org/apache/camel/component/avro/AvroHttpProducer.java
+++ b/components/camel-avro-rpc/camel-avro-rpc-component/src/main/java/org/apache/camel/component/avro/AvroHttpProducer.java
@@ -16,7 +16,7 @@
  */
 package org.apache.camel.component.avro;
 
-import java.net.URL;
+import java.net.URI;
 
 import org.apache.avro.ipc.HttpTransceiver;
 import org.apache.avro.ipc.Transceiver;
@@ -31,6 +31,6 @@ public class AvroHttpProducer extends AvroProducer {
 
     @Override
     public Transceiver createTransceiver() throws Exception {
-        return new HttpTransceiver(new URL(URISupport.normalizeUri(getEndpoint().getEndpointUri())));
+        return new HttpTransceiver(URI.create(URISupport.normalizeUri(getEndpoint().getEndpointUri())).toURL());
     }
 }
diff --git a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/FormattingOptions.java b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/FormattingOptions.java
index db660a43f3a..2d10cfdd0da 100644
--- a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/FormattingOptions.java
+++ b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/FormattingOptions.java
@@ -123,6 +123,8 @@ public class FormattingOptions {
         if (ObjectHelper.isNotEmpty(locale)) {
             String[] result = locale.split("-");
             if (result.length <= 2) {
+                // TODO Update when baseline java > 17
+                // answer = result.length == 1 ? Locale.of(result[0]) : Locale.of(result[0], result[1]);
                 answer = result.length == 1 ? new Locale(result[0]) : new Locale(result[0], result[1]);
             }
         }
diff --git a/components/camel-box/camel-box-component/src/main/java/org/apache/camel/component/box/internal/BoxConnectionHelper.java b/components/camel-box/camel-box-component/src/main/java/org/apache/camel/component/box/internal/BoxConnectionHelper.java
index b6d7aa0a913..ccdede7e67c 100644
--- a/components/camel-box/camel-box-component/src/main/java/org/apache/camel/component/box/internal/BoxConnectionHelper.java
+++ b/components/camel-box/camel-box-component/src/main/java/org/apache/camel/component/box/internal/BoxConnectionHelper.java
@@ -19,7 +19,7 @@ package org.apache.camel.component.box.internal;
 import java.net.InetSocketAddress;
 import java.net.Proxy;
 import java.net.SocketAddress;
-import java.net.URL;
+import java.net.URI;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.security.SecureRandom;
@@ -151,7 +151,7 @@ public final class BoxConnectionHelper {
             final String location = response.header("Location");
 
             final Map<String, String> params = new HashMap<>();
-            final Matcher matcher = QUERY_PARAM_PATTERN.matcher(new URL(location).getQuery());
+            final Matcher matcher = QUERY_PARAM_PATTERN.matcher(URI.create(location).toURL().getQuery());
             while (matcher.find()) {
                 params.put(matcher.group(1), matcher.group(2));
             }
diff --git a/components/camel-cxf/camel-cxf-rest/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java b/components/camel-cxf/camel-cxf-rest/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java
index b46fea88a17..1d8b73eedd1 100644
--- a/components/camel-cxf/camel-cxf-rest/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java
+++ b/components/camel-cxf/camel-cxf-rest/src/main/java/org/apache/camel/component/cxf/jaxrs/DefaultCxfRsBinding.java
@@ -281,7 +281,10 @@ public class DefaultCxfRsBinding implements CxfRsBinding, HeaderFilterStrategyAw
                     if (contentLanguage != null) {
                         return Entity.entity(body, new Variant(
                                 MediaType.valueOf(contentType),
-                                new Locale(contentLanguage), contentEncoding));
+                                // TODO Update when baseline java > 17
+                                // Locale.of(contentLanguage),
+                                new Locale(contentLanguage),
+                                contentEncoding));
                     }
                 }
             } catch (Exception ex) {
diff --git a/components/camel-git/src/main/java/org/apache/camel/component/git/RepositoryFactory.java b/components/camel-git/src/main/java/org/apache/camel/component/git/RepositoryFactory.java
index 467a65df46d..1bf2c8118b3 100644
--- a/components/camel-git/src/main/java/org/apache/camel/component/git/RepositoryFactory.java
+++ b/components/camel-git/src/main/java/org/apache/camel/component/git/RepositoryFactory.java
@@ -19,7 +19,7 @@ package org.apache.camel.component.git;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.net.URL;
+import java.net.URI;
 import java.nio.channels.Channels;
 import java.nio.channels.ReadableByteChannel;
 import java.nio.file.Files;
@@ -107,7 +107,7 @@ public abstract class RepositoryFactory {
         Path tempFile = Files.createTempFile(null, null);
         FileOutputStream outputStream = new FileOutputStream(tempFile.toString());
         try {
-            ReadableByteChannel byteChannel = Channels.newChannel(new URL(url).openStream());
+            ReadableByteChannel byteChannel = Channels.newChannel(URI.create(url).toURL().openStream());
             outputStream.getChannel().transferFrom(byteChannel, 0, Long.MAX_VALUE);
         } finally {
             IOHelper.close(outputStream);
diff --git a/components/camel-google/camel-google-bigquery/src/main/java/org/apache/camel/component/google/bigquery/GoogleBigQueryProducer.java b/components/camel-google/camel-google-bigquery/src/main/java/org/apache/camel/component/google/bigquery/GoogleBigQueryProducer.java
index 08574617ebf..4693d7c920c 100644
--- a/components/camel-google/camel-google-bigquery/src/main/java/org/apache/camel/component/google/bigquery/GoogleBigQueryProducer.java
+++ b/components/camel-google/camel-google-bigquery/src/main/java/org/apache/camel/component/google/bigquery/GoogleBigQueryProducer.java
@@ -168,6 +168,8 @@ public class GoogleBigQueryProducer extends DefaultProducer {
                     apiRequestRows.size(), tableId, suffix, partitionDecorator);
         }
         if (LOG.isDebugEnabled()) {
+            // TODO Update once baseline is Java 21
+            //            LOG.debug("uploader thread/id: {} / {} . api call completed.", Thread.currentThread().threadId(), exchangeId);
             LOG.debug("uploader thread/id: {} / {} . api call completed.", Thread.currentThread().getId(), exchangeId);
         }
         return insertAllRequest.getRows().size();
diff --git a/components/camel-google/camel-google-pubsub-lite/src/main/java/org/apache/camel/component/google/pubsublite/GooglePubsubLiteProducer.java b/components/camel-google/camel-google-pubsub-lite/src/main/java/org/apache/camel/component/google/pubsublite/GooglePubsubLiteProducer.java
index 5e01b5bbf4a..6c41d09b8dd 100644
--- a/components/camel-google/camel-google-pubsub-lite/src/main/java/org/apache/camel/component/google/pubsublite/GooglePubsubLiteProducer.java
+++ b/components/camel-google/camel-google-pubsub-lite/src/main/java/org/apache/camel/component/google/pubsublite/GooglePubsubLiteProducer.java
@@ -59,6 +59,9 @@ public class GooglePubsubLiteProducer extends DefaultProducer {
     public void process(Exchange exchange) throws Exception {
 
         if (logger.isDebugEnabled()) {
+            // TODO Update once basline is Java 21
+            //            logger.debug("uploader thread/id: {} / {}. api call completed.", Thread.currentThread().threadId(),
+            //                    exchange.getExchangeId());
             logger.debug("uploader thread/id: {} / {}. api call completed.", Thread.currentThread().getId(),
                     exchange.getExchangeId());
         }
diff --git a/components/camel-google/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubProducer.java b/components/camel-google/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubProducer.java
index 34d27063950..8a258ab1194 100644
--- a/components/camel-google/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubProducer.java
+++ b/components/camel-google/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubProducer.java
@@ -59,6 +59,9 @@ public class GooglePubsubProducer extends DefaultProducer {
     public void process(Exchange exchange) throws Exception {
 
         if (logger.isDebugEnabled()) {
+            // TODO update when basline is java 21
+            //            logger.debug("uploader thread/id: {} / {}. api call completed.", Thread.currentThread().threadId(),
+            //                    exchange.getExchangeId());
             logger.debug("uploader thread/id: {} / {}. api call completed.", Thread.currentThread().getId(),
                     exchange.getExchangeId());
         }
diff --git a/components/camel-jira/src/test/java/org/apache/camel/component/jira/Utils.java b/components/camel-jira/src/test/java/org/apache/camel/component/jira/Utils.java
index 024e9c527a6..d49585a1a52 100644
--- a/components/camel-jira/src/test/java/org/apache/camel/component/jira/Utils.java
+++ b/components/camel-jira/src/test/java/org/apache/camel/component/jira/Utils.java
@@ -17,7 +17,6 @@
 package org.apache.camel.component.jira;
 
 import java.net.URI;
-import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Map;
@@ -192,7 +191,7 @@ public final class Utils {
         // avatar Id
         sb.append("avatarId=").append(avatarId);
         String relativeAvatarUrl = sb.toString();
-        URI avatarUrl = new URL(TEST_JIRA_URL + "/" + relativeAvatarUrl).toURI();
+        URI avatarUrl = URI.create(TEST_JIRA_URL + "/" + relativeAvatarUrl);
         return avatarUrl;
     }
 
diff --git a/components/camel-knative/camel-knative-http/src/main/java/org/apache/camel/component/knative/http/KnativeHttpProducer.java b/components/camel-knative/camel-knative-http/src/main/java/org/apache/camel/component/knative/http/KnativeHttpProducer.java
index 3df95d07854..afa2c4ee96c 100644
--- a/components/camel-knative/camel-knative-http/src/main/java/org/apache/camel/component/knative/http/KnativeHttpProducer.java
+++ b/components/camel-knative/camel-knative-http/src/main/java/org/apache/camel/component/knative/http/KnativeHttpProducer.java
@@ -16,8 +16,7 @@
  */
 package org.apache.camel.component.knative.http;
 
-import java.net.MalformedURLException;
-import java.net.URL;
+import java.net.URI;
 import java.util.Map;
 
 import io.vertx.core.MultiMap;
@@ -211,12 +210,7 @@ public class KnativeHttpProducer extends DefaultAsyncProducer {
     }
 
     private String getHost(KnativeResource definition) {
-        String url = getUrl(definition);
-        try {
-            return new URL(url).getHost();
-        } catch (MalformedURLException e) {
-            throw new RuntimeCamelException("Unable to determine `host` for definition: " + definition, e);
-        }
+        return URI.create(getUrl(definition)).getHost();
     }
 
 }
diff --git a/components/camel-ldif/src/main/java/org/apache/camel/component/ldif/LdifProducer.java b/components/camel-ldif/src/main/java/org/apache/camel/component/ldif/LdifProducer.java
index f851c907ad8..98c86f832c6 100644
--- a/components/camel-ldif/src/main/java/org/apache/camel/component/ldif/LdifProducer.java
+++ b/components/camel-ldif/src/main/java/org/apache/camel/component/ldif/LdifProducer.java
@@ -20,6 +20,7 @@ import java.io.InputStreamReader;
 import java.io.Reader;
 import java.io.StringReader;
 import java.net.MalformedURLException;
+import java.net.URI;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
@@ -78,7 +79,7 @@ public class LdifProducer extends DefaultProducer {
         } else {
             URL loc;
             try {
-                loc = new URL(body);
+                loc = URI.create(body).toURL();
                 LOG.debug("Reading from URL: {}", loc);
                 result = processLdif(new InputStreamReader(loc.openStream()));
             } catch (MalformedURLException e) {
diff --git a/components/camel-lra/src/main/java/org/apache/camel/service/lra/LRAClient.java b/components/camel-lra/src/main/java/org/apache/camel/service/lra/LRAClient.java
index 23f0f7e5b98..0d9747c1407 100644
--- a/components/camel-lra/src/main/java/org/apache/camel/service/lra/LRAClient.java
+++ b/components/camel-lra/src/main/java/org/apache/camel/service/lra/LRAClient.java
@@ -193,7 +193,7 @@ public class LRAClient implements Closeable {
         }
 
         try {
-            return new URL(url.toString());
+            return URI.create(url.toString()).toURL();
         } catch (Exception ex) {
             throw new RuntimeCamelException(ex);
         }
diff --git a/components/camel-lra/src/main/java/org/apache/camel/service/lra/LRASagaService.java b/components/camel-lra/src/main/java/org/apache/camel/service/lra/LRASagaService.java
index 1370f640638..e10eed2b07c 100644
--- a/components/camel-lra/src/main/java/org/apache/camel/service/lra/LRASagaService.java
+++ b/components/camel-lra/src/main/java/org/apache/camel/service/lra/LRASagaService.java
@@ -16,7 +16,7 @@
  */
 package org.apache.camel.service.lra;
 
-import java.net.URL;
+import java.net.URI;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ConcurrentHashMap;
@@ -70,7 +70,7 @@ public class LRASagaService extends ServiceSupport implements StaticService, Cam
     public CompletableFuture<CamelSagaCoordinator> getSaga(String id) {
         CompletableFuture<CamelSagaCoordinator> coordinator;
         try {
-            coordinator = CompletableFuture.completedFuture(new LRASagaCoordinator(this, new URL(id)));
+            coordinator = CompletableFuture.completedFuture(new LRASagaCoordinator(this, URI.create(id).toURL()));
         } catch (Exception ex) {
             coordinator = CompletableFuture.failedFuture(ex);
         }
diff --git a/components/camel-lra/src/test/java/org/apache/camel/service/lra/LRAClientTest.java b/components/camel-lra/src/test/java/org/apache/camel/service/lra/LRAClientTest.java
index 2c8a5156a09..e1cc66f8e93 100644
--- a/components/camel-lra/src/test/java/org/apache/camel/service/lra/LRAClientTest.java
+++ b/components/camel-lra/src/test/java/org/apache/camel/service/lra/LRAClientTest.java
@@ -18,7 +18,6 @@ package org.apache.camel.service.lra;
 
 import java.net.MalformedURLException;
 import java.net.URI;
-import java.net.URL;
 import java.net.http.HttpClient;
 import java.net.http.HttpRequest;
 
@@ -88,7 +87,7 @@ public class LRAClientTest extends CamelTestSupport {
         };
         Exchange exchange = Mockito.mock(Exchange.class);
         Assertions.assertThrows(ExchangeRuntimeException.class,
-                () -> client.compensate(new URL("https://localhost/saga"), exchange));
+                () -> client.compensate(URI.create("https://localhost/saga").toURL(), exchange));
     }
 
     @DisplayName("Tests whether LRAClient is calling prepareRequest with exchange from complete()")
@@ -103,7 +102,7 @@ public class LRAClientTest extends CamelTestSupport {
         };
         Exchange exchange = Mockito.mock(Exchange.class);
         Assertions.assertThrows(ExchangeRuntimeException.class,
-                () -> client.complete(new URL("https://localhost/saga"), exchange));
+                () -> client.complete(URI.create("https://localhost/saga").toURL(), exchange));
     }
 
     @DisplayName("Tests prepare request works without exchange")
diff --git a/components/camel-lra/src/test/java/org/apache/camel/service/lra/LRASagaCoordinatorTest.java b/components/camel-lra/src/test/java/org/apache/camel/service/lra/LRASagaCoordinatorTest.java
index cf849be3356..e85ef43f193 100644
--- a/components/camel-lra/src/test/java/org/apache/camel/service/lra/LRASagaCoordinatorTest.java
+++ b/components/camel-lra/src/test/java/org/apache/camel/service/lra/LRASagaCoordinatorTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.service.lra;
 
+import java.net.URI;
 import java.net.URL;
 import java.util.Collections;
 import java.util.concurrent.CompletableFuture;
@@ -43,7 +44,7 @@ public class LRASagaCoordinatorTest extends CamelTestSupport {
 
     @BeforeEach
     public void setup() throws Exception {
-        url = new URL("https://localhost/saga");
+        url = URI.create("https://localhost/saga").toURL();
         sagaService = Mockito.mock(LRASagaService.class);
         client = Mockito.mock(LRAClient.class);
         Mockito.when(sagaService.getClient()).thenReturn(client);
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
index 0ec9f4e1962..2ddf92415fd 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
@@ -158,11 +158,11 @@ public class NettyEndpoint extends DefaultEndpoint implements AsyncEndpoint, End
                 }
                 X509Certificate cert = (X509Certificate) certificates[0];
 
-                Principal subject = cert.getSubjectDN();
+                Principal subject = cert.getSubjectX500Principal();
                 if (subject != null) {
                     message.setHeader(NettyConstants.NETTY_SSL_CLIENT_CERT_SUBJECT_NAME, subject.getName());
                 }
-                Principal issuer = cert.getIssuerDN();
+                Principal issuer = cert.getIssuerX500Principal();
                 if (issuer != null) {
                     message.setHeader(NettyConstants.NETTY_SSL_CLIENT_CERT_ISSUER_NAME, issuer.getName());
                 }
diff --git a/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettySSLClientCertHeadersTest.java b/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettySSLClientCertHeadersTest.java
index 64d740b9a2e..9bd505c0c06 100644
--- a/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettySSLClientCertHeadersTest.java
+++ b/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettySSLClientCertHeadersTest.java
@@ -49,9 +49,9 @@ public class NettySSLClientCertHeadersTest extends BaseNettyTest {
         getMockEndpoint("mock:input").expectedMessageCount(1);
 
         getMockEndpoint("mock:input").expectedHeaderReceived(NettyConstants.NETTY_SSL_CLIENT_CERT_SUBJECT_NAME,
-                "CN=arlu15, OU=Sun Java System Application Server, O=Sun Microsystems, L=Santa Clara, ST=California, C=US");
+                "CN=arlu15,OU=Sun Java System Application Server,O=Sun Microsystems,L=Santa Clara,ST=California,C=US");
         getMockEndpoint("mock:input").expectedHeaderReceived(NettyConstants.NETTY_SSL_CLIENT_CERT_ISSUER_NAME,
-                "CN=arlu15, OU=Sun Java System Application Server, O=Sun Microsystems, L=Santa Clara, ST=California, C=US");
+                "CN=arlu15,OU=Sun Java System Application Server,O=Sun Microsystems,L=Santa Clara,ST=California,C=US");
         getMockEndpoint("mock:input").expectedHeaderReceived(NettyConstants.NETTY_SSL_CLIENT_CERT_SERIAL_NO, "1210701502");
 
         context.addRoutes(new RouteBuilder() {
diff --git a/components/camel-oauth/src/main/java/org/apache/camel/oauth/jakarta/ServletOAuth.java b/components/camel-oauth/src/main/java/org/apache/camel/oauth/jakarta/ServletOAuth.java
index c651b5d977f..3c3b62ca1f1 100644
--- a/components/camel-oauth/src/main/java/org/apache/camel/oauth/jakarta/ServletOAuth.java
+++ b/components/camel-oauth/src/main/java/org/apache/camel/oauth/jakarta/ServletOAuth.java
@@ -16,8 +16,8 @@
  */
 package org.apache.camel.oauth.jakarta;
 
+import java.net.URI;
 import java.net.URISyntaxException;
-import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.util.Base64;
 
@@ -78,7 +78,7 @@ public class ServletOAuth extends OAuth {
                 }
                 var jwksPath = config.getJwksPath();
                 if (!jwksPath.isBlank()) {
-                    config.setJWKSet(JWKSet.load(new URL(jwksPath)));
+                    config.setJWKSet(JWKSet.load(URI.create(jwksPath).toURL()));
                 }
             } catch (Exception ex) {
                 throw new OAuthException("Cannot discover OAuth config from: " + wellKnownUri, ex);
diff --git a/components/camel-oauth/src/main/java/org/apache/camel/oauth/vertx/VertxOAuth.java b/components/camel-oauth/src/main/java/org/apache/camel/oauth/vertx/VertxOAuth.java
index d5b3e97230f..ab729fa429e 100644
--- a/components/camel-oauth/src/main/java/org/apache/camel/oauth/vertx/VertxOAuth.java
+++ b/components/camel-oauth/src/main/java/org/apache/camel/oauth/vertx/VertxOAuth.java
@@ -16,7 +16,7 @@
  */
 package org.apache.camel.oauth.vertx;
 
-import java.net.URL;
+import java.net.URI;
 
 import com.nimbusds.jose.jwk.JWKSet;
 import io.vertx.core.Vertx;
@@ -81,7 +81,7 @@ public class VertxOAuth extends OAuth {
                         .setJwksPath(opts.getJwkPath());
                 var jwksPath = config.getJwksPath();
                 if (!jwksPath.isBlank()) {
-                    config.setJWKSet(JWKSet.load(new URL(jwksPath)));
+                    config.setJWKSet(JWKSet.load(URI.create(jwksPath).toURL()));
                 }
             } catch (Exception ex) {
                 throw new OAuthException("Cannot discover OAuth config from: " + wellKnownUri, ex);
diff --git a/components/camel-oauth/src/test/java/org/apache/camel/test/oauth/SSLCertTrustTest.java b/components/camel-oauth/src/test/java/org/apache/camel/test/oauth/SSLCertTrustTest.java
index 1f94f1cbab2..0a401caab9a 100644
--- a/components/camel-oauth/src/test/java/org/apache/camel/test/oauth/SSLCertTrustTest.java
+++ b/components/camel-oauth/src/test/java/org/apache/camel/test/oauth/SSLCertTrustTest.java
@@ -18,7 +18,7 @@ package org.apache.camel.test.oauth;
 
 import java.io.FileInputStream;
 import java.io.IOException;
-import java.net.URL;
+import java.net.URI;
 import java.security.KeyStore;
 import java.security.cert.CertificateException;
 import java.security.cert.CertificateFactory;
@@ -78,7 +78,7 @@ class SSLCertTrustTest extends AbstractKeycloakTest {
     }
 
     private static void connectToUrl(String httpsUrl) throws IOException {
-        var url = new URL(httpsUrl);
+        var url = URI.create(httpsUrl).toURL();
         var con = (HttpsURLConnection) url.openConnection();
         con.connect();
     }
diff --git a/components/camel-olingo2/camel-olingo2-api/src/main/java/org/apache/camel/component/olingo2/api/impl/Olingo2AppImpl.java b/components/camel-olingo2/camel-olingo2-api/src/main/java/org/apache/camel/component/olingo2/api/impl/Olingo2AppImpl.java
index ed460ac2cc4..200e98a6620 100644
--- a/components/camel-olingo2/camel-olingo2-api/src/main/java/org/apache/camel/component/olingo2/api/impl/Olingo2AppImpl.java
+++ b/components/camel-olingo2/camel-olingo2-api/src/main/java/org/apache/camel/component/olingo2/api/impl/Olingo2AppImpl.java
@@ -25,6 +25,7 @@ import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URLEncoder;
 import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.nio.charset.UnsupportedCharsetException;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -294,7 +295,7 @@ public final class Olingo2AppImpl implements Olingo2App {
         if (queryParams != null) {
             encodedQueryParams = new HashMap<>(queryParams.size());
             for (Map.Entry<String, String> entry : queryParams.entrySet()) {
-                encodedQueryParams.put(entry.getKey(), URLEncoder.encode(entry.getValue()));
+                encodedQueryParams.put(entry.getKey(), URLEncoder.encode(entry.getValue(), StandardCharsets.UTF_8));
             }
         }
         return encodedQueryParams;
diff --git a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiSupport.java b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiSupport.java
index ddfa07241c0..8db9e7c8266 100644
--- a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiSupport.java
+++ b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiSupport.java
@@ -17,6 +17,7 @@
 package org.apache.camel.openapi;
 
 import java.net.MalformedURLException;
+import java.net.URI;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.text.DateFormat;
@@ -138,9 +139,10 @@ public class RestOpenApiSupport {
         if (openapi.getServers() != null
                 && openapi.getServers().get(0) != null) {
             try {
-                URL serverUrl = new URL(
+                URL serverUrl = URI.create(
                         parseVariables(openapi.getServers().get(0).getUrl(),
-                                openapi.getServers().get(0)));
+                                openapi.getServers().get(0)))
+                        .toURL();
                 host = serverUrl.getHost();
             } catch (MalformedURLException e) {
                 LOG.debug("Error when parsing OpenApi 3.0 doc server url. This exception is ignored.", e);
@@ -160,9 +162,10 @@ public class RestOpenApiSupport {
                 }
                 if (basePath == null) {
                     // parse server url as fallback
-                    URL serverUrl = new URL(
+                    URL serverUrl = URI.create(
                             parseVariables(openapi.getServers().get(0).getUrl(),
-                                    openapi.getServers().get(0)));
+                                    openapi.getServers().get(0)))
+                            .toURL();
                     // strip off the first "/" if double "/" exists
                     basePath = serverUrl.getPath().replace("//", "/");
                     if ("/".equals(basePath)) {
diff --git a/components/camel-resourceresolver-github/src/main/java/org/apache/camel/github/GistResource.java b/components/camel-resourceresolver-github/src/main/java/org/apache/camel/github/GistResource.java
index ce20cc2322e..d5b358a2d2d 100644
--- a/components/camel-resourceresolver-github/src/main/java/org/apache/camel/github/GistResource.java
+++ b/components/camel-resourceresolver-github/src/main/java/org/apache/camel/github/GistResource.java
@@ -19,6 +19,7 @@ package org.apache.camel.github;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.URI;
 import java.net.URL;
 
 import org.apache.camel.CamelContext;
@@ -39,7 +40,7 @@ public final class GistResource extends ResourceSupport {
     public boolean exists() {
         if (!init) {
             try {
-                URL u = new URL(getLocation());
+                URL u = URI.create(getLocation()).toURL();
                 try (InputStream is = u.openStream()) {
                     cache = camelContext.getTypeConverter().tryConvertTo(byte[].class, is);
                 }
diff --git a/components/camel-resourceresolver-github/src/main/java/org/apache/camel/github/GitHubResource.java b/components/camel-resourceresolver-github/src/main/java/org/apache/camel/github/GitHubResource.java
index 2b76e7191bb..b5f4239ba9d 100644
--- a/components/camel-resourceresolver-github/src/main/java/org/apache/camel/github/GitHubResource.java
+++ b/components/camel-resourceresolver-github/src/main/java/org/apache/camel/github/GitHubResource.java
@@ -19,6 +19,7 @@ package org.apache.camel.github;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.URI;
 import java.net.URL;
 
 import org.apache.camel.CamelContext;
@@ -39,7 +40,7 @@ public final class GitHubResource extends ResourceSupport {
     public boolean exists() {
         if (!init) {
             try {
-                URL u = new URL(getLocation());
+                URL u = URI.create(getLocation()).toURL();
                 try (InputStream is = u.openStream()) {
                     cache = camelContext.getTypeConverter().tryConvertTo(byte[].class, is);
                 }
diff --git a/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssUtils.java b/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssUtils.java
index aa5d5f5c00d..b19536ade1a 100644
--- a/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssUtils.java
+++ b/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssUtils.java
@@ -17,7 +17,7 @@
 package org.apache.camel.component.rss;
 
 import java.io.IOException;
-import java.net.URL;
+import java.net.URI;
 
 import com.rometools.rome.feed.synd.SyndFeed;
 import com.rometools.rome.io.FeedException;
@@ -45,7 +45,7 @@ public final class RssUtils {
     }
 
     private static SyndFeed createSyndFeed(String feedUri) throws IOException, FeedException {
-        try (XmlReader reader = new XmlReader(new URL(feedUri))) {
+        try (XmlReader reader = new XmlReader(URI.create(feedUri).toURL())) {
             SyndFeedInput input = new SyndFeedInput();
             return input.build(reader);
         }
diff --git a/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksProcessor.java b/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksProcessor.java
index 5794dcfcdad..3e61290b497 100644
--- a/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksProcessor.java
+++ b/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/SmooksProcessor.java
@@ -21,7 +21,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.Reader;
 import java.net.MalformedURLException;
-import java.net.URL;
+import java.net.URI;
 import java.nio.charset.Charset;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -209,7 +209,7 @@ public class SmooksProcessor extends ServiceSupport implements Processor, CamelC
                     = new javax.xml.transform.stream.StreamSource((File) exchange.getIn().getBody(WrappedFile.class).getFile())
                             .getSystemId();
             try {
-                return new URLSource(new URL(systemId));
+                return new URLSource(URI.create(systemId).toURL());
             } catch (MalformedURLException e) {
                 throw new SmooksException(e);
             }
diff --git a/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/converter/SourceConverter.java b/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/converter/SourceConverter.java
index 773bf4127ed..d7be0730a75 100644
--- a/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/converter/SourceConverter.java
+++ b/components/camel-smooks/src/main/java/org/apache/camel/component/smooks/converter/SourceConverter.java
@@ -19,7 +19,7 @@ package org.apache.camel.component.smooks.converter;
 import java.io.File;
 import java.io.InputStream;
 import java.net.MalformedURLException;
-import java.net.URL;
+import java.net.URI;
 
 import org.apache.camel.Converter;
 import org.apache.camel.WrappedFile;
@@ -71,7 +71,7 @@ public class SourceConverter {
     public static Source toURISource(WrappedFile<File> genericFile) {
         String systemId = new javax.xml.transform.stream.StreamSource((File) genericFile.getBody()).getSystemId();
         try {
-            return new URLSource(new URL(systemId));
+            return new URLSource(URI.create(systemId).toURL());
         } catch (MalformedURLException e) {
             throw new SmooksException(e);
         }
diff --git a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConsumer.java b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConsumer.java
index d60eaf990ad..3e61e673aed 100644
--- a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConsumer.java
+++ b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConsumer.java
@@ -198,6 +198,9 @@ public class SmppConsumer extends DefaultConsumer {
                 reconnectLock.unlock();
             }
         } else {
+            // TODO Update once basline is java 21
+            //            LOG.warn("Thread {} could not acquire a lock for creating the session during consumer reconnection",
+            //                    Thread.currentThread().threadId());
             LOG.warn("Thread {} could not acquire a lock for creating the session during consumer reconnection",
                     Thread.currentThread().getId());
         }
diff --git a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java
index ecac4c9598b..0a327ed0ede 100644
--- a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java
+++ b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java
@@ -93,6 +93,9 @@ public class SmppProducer extends DefaultProducer {
                     connectLock.unlock();
                 }
             } else {
+                // TODO Update once basline is java 21
+                //                LOG.warn("Thread {} could not acquire a lock for creating the session during producer start",
+                //                        Thread.currentThread().threadId());
                 LOG.warn("Thread {} could not acquire a lock for creating the session during producer start",
                         Thread.currentThread().getId());
             }
@@ -169,6 +172,9 @@ public class SmppProducer extends DefaultProducer {
                         connectLock.unlock();
                     }
                 } else {
+                    // TODO Update once basline is java 21
+                    //                    LOG.warn("Thread {} could not acquire a lock for creating the session during lazy initialization",
+                    //                            Thread.currentThread().threadId());
                     LOG.warn("Thread {} could not acquire a lock for creating the session during lazy initialization",
                             Thread.currentThread().getId());
                 }
@@ -217,6 +223,9 @@ public class SmppProducer extends DefaultProducer {
                 connectLock.unlock();
             }
         } else {
+            // TODO Update once basline is java 21
+            //            LOG.warn("Thread {} could not acquire a lock for creating the session during producer reconnection",
+            //                    Thread.currentThread().threadId());
             LOG.warn("Thread {} could not acquire a lock for creating the session during producer reconnection",
                     Thread.currentThread().getId());
         }
diff --git a/components/camel-spring-parent/camel-spring/src/main/java/org/apache/camel/spring/util/ReflectionUtils.java b/components/camel-spring-parent/camel-spring/src/main/java/org/apache/camel/spring/util/ReflectionUtils.java
index 731c2b81313..cd9d5b6bea0 100644
--- a/components/camel-spring-parent/camel-spring/src/main/java/org/apache/camel/spring/util/ReflectionUtils.java
+++ b/components/camel-spring-parent/camel-spring/src/main/java/org/apache/camel/spring/util/ReflectionUtils.java
@@ -26,7 +26,7 @@ public class ReflectionUtils extends org.springframework.util.ReflectionUtils {
 
     public static void setField(Field f, Object instance, Object value) {
         try {
-            boolean oldAccessible = f.isAccessible();
+            boolean oldAccessible = f.canAccess(instance);
             boolean shouldSetAccessible = !Modifier.isPublic(f.getModifiers()) && !oldAccessible;
             if (shouldSetAccessible) {
                 f.setAccessible(true);
diff --git a/components/camel-stream/src/main/java/org/apache/camel/component/stream/StreamConsumer.java b/components/camel-stream/src/main/java/org/apache/camel/component/stream/StreamConsumer.java
index 8739b8ec5a2..dc8bc7a7d56 100644
--- a/components/camel-stream/src/main/java/org/apache/camel/component/stream/StreamConsumer.java
+++ b/components/camel-stream/src/main/java/org/apache/camel/component/stream/StreamConsumer.java
@@ -23,7 +23,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
-import java.net.URL;
+import java.net.URI;
 import java.net.URLConnection;
 import java.nio.charset.Charset;
 import java.util.ArrayList;
@@ -461,7 +461,7 @@ public class StreamConsumer extends DefaultConsumer implements Runnable {
         String url = endpoint.getHttpUrl();
         StringHelper.notEmpty(url, "httpUrl");
 
-        urlConnectionToClose = new URL(url).openConnection();
+        urlConnectionToClose = URI.create(url).toURL().openConnection();
         urlConnectionToClose.setUseCaches(false);
         String headers = endpoint.getHttpHeaders();
         if (headers != null) {
diff --git a/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/processor/SantuarioUtil.java b/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/processor/SantuarioUtil.java
index 540fb04efdc..be2d44fb257 100644
--- a/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/processor/SantuarioUtil.java
+++ b/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/processor/SantuarioUtil.java
@@ -17,9 +17,6 @@
 package org.apache.camel.component.xmlsecurity.processor;
 
 import java.lang.reflect.Field;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.security.PrivilegedExceptionAction;
 import java.security.Provider;
 import java.security.Security;
 
@@ -36,30 +33,24 @@ public final class SantuarioUtil {
         boolean wasSet = false;
         try {
             // Don't override if it was set explicitly
-            wasSet = AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
-                public Boolean run() {
-                    String lineBreakPropName = "org.apache.xml.security.ignoreLineBreaks";
-                    if (System.getProperty(lineBreakPropName) == null) {
-                        System.setProperty(lineBreakPropName, "true");
-                        return false;
-                    }
-                    return true;
-                }
-            });
+            String lineBreakPropName = "org.apache.xml.security.ignoreLineBreaks";
+            if (System.getProperty(lineBreakPropName) == null) {
+                System.setProperty(lineBreakPropName, "true");
+                wasSet = false;
+            } else {
+                wasSet = true;
+            }
         } catch (Exception t) {
             //ignore
         }
+
         org.apache.xml.security.Init.init();
+
         if (!wasSet) {
             try {
-                AccessController.doPrivileged(new PrivilegedExceptionAction<Boolean>() {
-                    public Boolean run() throws Exception {
-                        Field f = XMLUtils.class.getDeclaredField("ignoreLineBreaks");
-                        f.setAccessible(true);
-                        f.set(null, Boolean.TRUE);
-                        return false;
-                    }
-                });
+                Field f = XMLUtils.class.getDeclaredField("ignoreLineBreaks");
+                f.setAccessible(true);
+                f.set(null, Boolean.TRUE);
             } catch (Exception t) {
                 //ignore
             }
@@ -67,17 +58,11 @@ public final class SantuarioUtil {
     }
 
     public static void addSantuarioJSR105Provider() {
-        AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
-            public Boolean run() {
-                String providerName = "ApacheXMLDSig";
-                Provider currentProvider = Security.getProvider(providerName);
-                if (currentProvider != null) {
-                    Security.removeProvider(currentProvider.getName());
-                }
-                Security.addProvider(new XMLDSigRI());
-                return true;
-            }
-        });
+        String providerName = "ApacheXMLDSig";
+        Provider currentProvider = Security.getProvider(providerName);
+        if (currentProvider != null) {
+            Security.removeProvider(currentProvider.getName());
+        }
+        Security.addProvider(new XMLDSigRI());
     }
-
 }
diff --git a/components/camel-xmlsecurity/src/main/java/org/apache/camel/dataformat/xmlsecurity/XMLSecurityDataFormat.java b/components/camel-xmlsecurity/src/main/java/org/apache/camel/dataformat/xmlsecurity/XMLSecurityDataFormat.java
index 5f7e3679494..5832d426427 100644
--- a/components/camel-xmlsecurity/src/main/java/org/apache/camel/dataformat/xmlsecurity/XMLSecurityDataFormat.java
+++ b/components/camel-xmlsecurity/src/main/java/org/apache/camel/dataformat/xmlsecurity/XMLSecurityDataFormat.java
@@ -20,14 +20,11 @@ import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.lang.reflect.Field;
-import java.security.AccessController;
 import java.security.InvalidKeyException;
 import java.security.Key;
 import java.security.KeyStore;
 import java.security.NoSuchAlgorithmException;
 import java.security.PrivateKey;
-import java.security.PrivilegedAction;
-import java.security.PrivilegedExceptionAction;
 import java.security.PublicKey;
 import java.security.spec.InvalidKeySpecException;
 import java.util.Arrays;
@@ -116,30 +113,24 @@ public class XMLSecurityDataFormat extends ServiceSupport implements DataFormat,
         boolean wasSet = false;
         try {
             // Don't override if it was set explicitly
-            wasSet = AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
-                public Boolean run() {
-                    String lineBreakPropName = "org.apache.xml.security.ignoreLineBreaks";
-                    if (System.getProperty(lineBreakPropName) == null) {
-                        System.setProperty(lineBreakPropName, "true");
-                        return false;
-                    }
-                    return true;
-                }
-            });
+            String lineBreakPropName = "org.apache.xml.security.ignoreLineBreaks";
+            if (System.getProperty(lineBreakPropName) == null) {
+                System.setProperty(lineBreakPropName, "true");
+                wasSet = false;
+            } else {
+                wasSet = true;
+            }
         } catch (Exception t) {
             //ignore
         }
+
         org.apache.xml.security.Init.init();
+
         if (!wasSet) {
             try {
-                AccessController.doPrivileged(new PrivilegedExceptionAction<Boolean>() {
-                    public Boolean run() throws Exception {
-                        Field f = XMLUtils.class.getDeclaredField("ignoreLineBreaks");
-                        f.setAccessible(true);
-                        f.set(null, Boolean.TRUE);
-                        return false;
-                    }
-                });
+                Field f = XMLUtils.class.getDeclaredField("ignoreLineBreaks");
+                f.setAccessible(true);
+                f.set(null, Boolean.TRUE);
             } catch (Exception t) {
                 //ignore
             }
diff --git a/components/camel-xslt-saxon/src/main/java/org/apache/camel/component/xslt/saxon/XsltSaxonEndpoint.java b/components/camel-xslt-saxon/src/main/java/org/apache/camel/component/xslt/saxon/XsltSaxonEndpoint.java
index df9f3e8d2b8..43040569f38 100644
--- a/components/camel-xslt-saxon/src/main/java/org/apache/camel/component/xslt/saxon/XsltSaxonEndpoint.java
+++ b/components/camel-xslt-saxon/src/main/java/org/apache/camel/component/xslt/saxon/XsltSaxonEndpoint.java
@@ -24,6 +24,9 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
 import javax.xml.transform.Source;
 import javax.xml.transform.TransformerException;
 import javax.xml.transform.TransformerFactory;
@@ -33,7 +36,6 @@ import javax.xml.transform.stream.StreamSource;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.XMLReaderFactory;
 
 import net.sf.saxon.Configuration;
 import net.sf.saxon.TransformerFactoryImpl;
@@ -299,7 +301,10 @@ public class XsltSaxonEndpoint extends XsltEndpoint {
 
     private Source createReaderForSource(Source source) {
         try {
-            XMLReader xmlReader = XMLReaderFactory.createXMLReader();
+            SAXParserFactory factory = SAXParserFactory.newInstance();
+            SAXParser saxParser = factory.newSAXParser();
+            XMLReader xmlReader = saxParser.getXMLReader();
+
             for (Map.Entry<String, Object> entry : this.saxonReaderProperties.entrySet()) {
                 String key = entry.getKey();
                 Object value = entry.getValue();
@@ -312,16 +317,15 @@ public class XsltSaxonEndpoint extends XsltEndpoint {
                         xmlReader.setProperty(uri.toString(), value);
                     }
                 } catch (URISyntaxException e) {
-                    LOG.debug("{} isn't a valid URI, so ingore it", key);
+                    LOG.debug("{} isn't a valid URI, so ignore it", key);
                 }
             }
             InputSource inputSource = SAXSource.sourceToInputSource(source);
             return new SAXSource(xmlReader, inputSource);
-        } catch (SAXException e) {
-            LOG.info("Can't created XMLReader for source ", e);
+        } catch (SAXException | ParserConfigurationException e) {
+            LOG.info("Can't create XMLReader for source ", e);
             return null;
         }
-
     }
 
 }
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultAsyncProcessorAwaitManager.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultAsyncProcessorAwaitManager.java
index 3f189b0b400..2f2ff75d4ba 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultAsyncProcessorAwaitManager.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultAsyncProcessorAwaitManager.java
@@ -260,6 +260,8 @@ public class DefaultAsyncProcessorAwaitManager extends ServiceSupport implements
         sb.append(
                 "---------------------------------------------------------------------------------------------------------------------------------------\n");
 
+        // TODO once baseline is java 21
+        //        sb.append(style("Id:")).append(entry.getBlockedThread().threadId()).append("\n");
         sb.append(style("Id:")).append(entry.getBlockedThread().getId()).append("\n");
         sb.append(style("Name:")).append(entry.getBlockedThread().getName()).append("\n");
         sb.append(style("RouteId:")).append(safeNull(entry.getRouteId())).append("\n");
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultResourceResolvers.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultResourceResolvers.java
index 73b15cd28c7..01dd83eec05 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultResourceResolvers.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultResourceResolvers.java
@@ -298,7 +298,7 @@ public final class DefaultResourceResolvers {
         public boolean exists() {
             URLConnection connection = null;
             try {
-                connection = new URL(getLocation()).openConnection();
+                connection = URI.create(getLocation()).toURL().openConnection();
                 if (connection instanceof HttpURLConnection httpURLConnection) {
                     return httpURLConnection.getResponseCode() == HttpURLConnection.HTTP_OK;
                 }
@@ -316,7 +316,7 @@ public final class DefaultResourceResolvers {
 
         @Override
         public InputStream getInputStream() throws IOException {
-            URLConnection con = new URL(getLocation()).openConnection();
+            URLConnection con = URI.create(getLocation()).toURL().openConnection();
             con.setUseCaches(false);
             try {
                 setContentType(con.getContentType());
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java
index 1bf95915039..bd42f52baa3 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java
@@ -270,6 +270,8 @@ public final class CSimpleHelper {
     }
 
     public static long threadId() {
+        // TODO Once basline is Java 21
+        //        return Thread.currentThread().threadId();
         return Thread.currentThread().getId();
     }
 
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedAsyncProcessorAwaitManager.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedAsyncProcessorAwaitManager.java
index 7a2e4bf9663..e8a3535a092 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedAsyncProcessorAwaitManager.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedAsyncProcessorAwaitManager.java
@@ -82,6 +82,8 @@ public class ManagedAsyncProcessorAwaitManager extends ManagedService implements
 
     private static CompositeData toCompositeData(AsyncProcessorAwaitManager.AwaitThread entry, CompositeType ct)
             throws OpenDataException {
+        // TODO Once basline is Java 21
+        //        String id = Long.toString(entry.getBlockedThread().threadId());
         String id = Long.toString(entry.getBlockedThread().getId());
         String name = entry.getBlockedThread().getName();
         String exchangeId = entry.getExchange().getExchangeId();
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/ClassicUuidGenerator.java b/core/camel-support/src/main/java/org/apache/camel/support/ClassicUuidGenerator.java
index c473f09f57e..1ad962c73e2 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/ClassicUuidGenerator.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/ClassicUuidGenerator.java
@@ -45,10 +45,7 @@ public class ClassicUuidGenerator implements UuidGenerator {
         String stub = "";
         boolean canAccessSystemProps = true;
         try {
-            SecurityManager sm = System.getSecurityManager();
-            if (sm != null) {
-                sm.checkPropertiesAccess();
-            }
+            System.getProperty("java.version");
         } catch (SecurityException se) {
             canAccessSystemProps = false;
         }
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/ObjectHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/ObjectHelper.java
index 43ac378788f..6daf5abb47f 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/ObjectHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/ObjectHelper.java
@@ -478,7 +478,7 @@ public final class ObjectHelper {
     public static Object invokeMethodSafe(Method method, Object instance, Object... parameters)
             throws InvocationTargetException, IllegalAccessException {
         Object answer;
-        if (!method.isAccessible()) {
+        if (!method.canAccess(instance)) {
             method.setAccessible(true);
         }
         if (parameters != null) {
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java b/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java
index 8181e3b0e7c..669f05ab5a1 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java
@@ -1378,6 +1378,8 @@ public class ExpressionBuilder {
         return new ExpressionAdapter() {
             @Override
             public Object evaluate(Exchange exchange) {
+                // TODO When baseline will be Java 21
+                //                return Thread.currentThread().threadId();
                 return Thread.currentThread().getId();
             }
 
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/scan/DefaultPackageScanClassResolver.java b/core/camel-support/src/main/java/org/apache/camel/support/scan/DefaultPackageScanClassResolver.java
index 7be2ef5165d..640edc62551 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/scan/DefaultPackageScanClassResolver.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/scan/DefaultPackageScanClassResolver.java
@@ -21,6 +21,7 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.annotation.Annotation;
+import java.net.URI;
 import java.net.URL;
 import java.net.URLConnection;
 import java.util.ArrayList;
@@ -201,7 +202,7 @@ public class DefaultPackageScanClassResolver extends BasePackageScanResolver
                             // load resources using http/https, sonicfs and other acceptable scheme
                             // sonic ESB requires to be loaded using a regular URLConnection
                             LOG.trace("Loading from jar using url: {}", urlPath);
-                            URL urlStream = new URL(urlPath);
+                            URL urlStream = URI.create(urlPath).toURL();
                             URLConnection con = urlStream.openConnection();
                             // disable cache mainly to avoid jar file locking on Windows
                             con.setUseCaches(false);
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/scan/DefaultPackageScanResourceResolver.java b/core/camel-support/src/main/java/org/apache/camel/support/scan/DefaultPackageScanResourceResolver.java
index c47a9a5d0d8..b0e28253786 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/scan/DefaultPackageScanResourceResolver.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/scan/DefaultPackageScanResourceResolver.java
@@ -20,6 +20,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.URI;
 import java.net.URL;
 import java.net.URLConnection;
 import java.nio.file.Path;
@@ -173,7 +174,7 @@ public class DefaultPackageScanResourceResolver extends BasePackageScanResolver
                         // load resources using http/https, sonicfs and other acceptable scheme
                         // sonic ESB requires to be loaded using a regular URLConnection
                         LOG.trace("Loading from jar using url: {}", urlPath);
-                        URL urlStream = new URL(urlPath);
+                        URL urlStream = URI.create(urlPath).toURL();
                         URLConnection con = urlStream.openConnection();
                         // disable cache mainly to avoid jar file locking on Windows
                         con.setUseCaches(false);
diff --git a/core/camel-util/src/main/java/org/apache/camel/util/ClassLoadingAwareObjectInputStream.java b/core/camel-util/src/main/java/org/apache/camel/util/ClassLoadingAwareObjectInputStream.java
index a9ef057993e..db2656330fa 100644
--- a/core/camel-util/src/main/java/org/apache/camel/util/ClassLoadingAwareObjectInputStream.java
+++ b/core/camel-util/src/main/java/org/apache/camel/util/ClassLoadingAwareObjectInputStream.java
@@ -20,6 +20,8 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.ObjectInputStream;
 import java.io.ObjectStreamClass;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
 import java.util.HashMap;
 
@@ -58,6 +60,14 @@ public class ClassLoadingAwareObjectInputStream extends ObjectInputStream {
         return load(classDesc.getName(), cl, inLoader);
     }
 
+    class NoopDynamicInvocationHandler implements InvocationHandler {
+
+        @Override
+        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+            return null;
+        }
+    }
+
     @Override
     protected Class<?> resolveProxyClass(String[] interfaces) throws IOException, ClassNotFoundException {
         ClassLoader cl = Thread.currentThread().getContextClassLoader();
@@ -67,15 +77,16 @@ public class ClassLoadingAwareObjectInputStream extends ObjectInputStream {
         }
 
         try {
-            return Proxy.getProxyClass(cl, cinterfaces);
+            return Proxy.newProxyInstance(cl, cinterfaces, new NoopDynamicInvocationHandler()).getClass();
         } catch (IllegalArgumentException e) {
             try {
-                return Proxy.getProxyClass(inLoader, cinterfaces);
+                return Proxy.newProxyInstance(inLoader, cinterfaces, new NoopDynamicInvocationHandler()).getClass();
             } catch (IllegalArgumentException e1) {
                 // ignore
             }
             try {
-                return Proxy.getProxyClass(FALLBACK_CLASS_LOADER, cinterfaces);
+                return Proxy.newProxyInstance(FALLBACK_CLASS_LOADER, cinterfaces, new NoopDynamicInvocationHandler())
+                        .getClass();
             } catch (IllegalArgumentException e2) {
                 // ignore
             }
diff --git a/core/camel-util/src/main/java/org/apache/camel/util/PackageHelper.java b/core/camel-util/src/main/java/org/apache/camel/util/PackageHelper.java
index a16c9f7ecbe..e7a6e6a5e96 100644
--- a/core/camel-util/src/main/java/org/apache/camel/util/PackageHelper.java
+++ b/core/camel-util/src/main/java/org/apache/camel/util/PackageHelper.java
@@ -43,7 +43,7 @@ public final class PackageHelper {
      */
     public static boolean isValidVersion(String packageName, double minimumVersion) {
         try {
-            Package spring = Package.getPackage(packageName);
+            Package spring = Thread.currentThread().getContextClassLoader().getDefinedPackage(packageName);
             if (spring != null) {
                 String value = spring.getImplementationVersion();
                 if (value != null) {
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/SBOMGenerator.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/SBOMGenerator.java
index e1206185aa9..77ac173e05b 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/SBOMGenerator.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/SBOMGenerator.java
@@ -95,16 +95,16 @@ public class SBOMGenerator extends Export {
                 } else {
                     outputDirectoryParameter += "../../" + outputDirectory;
                 }
-                Process p = Runtime.getRuntime()
-                        .exec(mvnProgramCall + " org.cyclonedx:cyclonedx-maven-plugin:" + cyclonedxPluginVersion
-                              + ":makeAggregateBom "
-                              + outputDirectoryParameter
-                              + " -DoutputName="
-                              + outputName
-                              + " -DoutputFormat="
-                              + sbomOutputFormat,
-                                null,
-                                buildDir.toFile());
+                ProcessBuilder pb = new ProcessBuilder(
+                        mvnProgramCall,
+                        "org.cyclonedx:cyclonedx-maven-plugin:" + cyclonedxPluginVersion + ":makeAggregateBom",
+                        outputDirectoryParameter,
+                        "-DoutputName=" + outputName,
+                        "-DoutputFormat=" + sbomOutputFormat);
+
+                pb.directory(buildDir.toFile());
+
+                Process p = pb.start();
                 done = p.waitFor(60, TimeUnit.SECONDS);
                 if (!done) {
                     answer = 1;
@@ -125,13 +125,14 @@ public class SBOMGenerator extends Export {
                 } else if (sbomOutputFormat.equalsIgnoreCase(SBOM_XML_FORMAT)) {
                     outputFormat = "RDF/XML";
                 }
-                Process p = Runtime.getRuntime()
-                        .exec(mvnProgramCall + " org.spdx:spdx-maven-plugin:" + spdxPluginVersion
-                              + ":createSPDX -DspdxFileName="
-                              + Paths.get(outputDirectoryParameter, outputName + "." + sbomOutputFormat).toString()
-                              + " -DoutputFormat=" + outputFormat,
-                                null,
-                                buildDir.toFile());
+                ProcessBuilder pb = new ProcessBuilder(
+                        mvnProgramCall,
+                        "org.spdx:spdx-maven-plugin:" + spdxPluginVersion + ":createSPDX",
+                        "-DspdxFileName=" + Paths.get(outputDirectoryParameter, outputName + "." + sbomOutputFormat),
+                        "-DoutputFormat=" + outputFormat);
+                pb.directory(buildDir.toFile());
+
+                Process p = pb.start();
                 done = p.waitFor(60, TimeUnit.SECONDS);
                 if (!done) {
                     answer = 1;
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/bind/PipeProvider.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/bind/PipeProvider.java
index e5236ce577f..26cd72bcb9d 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/bind/PipeProvider.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/bind/PipeProvider.java
@@ -18,6 +18,7 @@
 package org.apache.camel.dsl.jbang.core.commands.bind;
 
 import java.io.InputStream;
+import java.net.URI;
 import java.net.URL;
 import java.util.HashMap;
 import java.util.Map;
@@ -107,7 +108,7 @@ public class PipeProvider extends ObjectReferenceBindingProvider {
                 resolver.close();
             }
             loc = res.getLocation();
-            URL u = new URL(loc);
+            URL u = URI.create(loc).toURL();
             is = u.openStream();
         }
         if (is != null) {
diff --git a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/OpenApiITCase.java b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/OpenApiITCase.java
index b0d01918fd6..b9cb27dd673 100644
--- a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/OpenApiITCase.java
+++ b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/OpenApiITCase.java
@@ -19,7 +19,6 @@ package org.apache.camel.dsl.jbang.it;
 import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
-import java.net.URL;
 import java.net.http.HttpClient;
 import java.net.http.HttpRequest;
 import java.net.http.HttpResponse;
@@ -87,8 +86,8 @@ public class OpenApiITCase extends JBangTestSupport {
         response = executeHttpRequest("/myapi/api-doc", true);
         Assertions.assertThat(response.statusCode()).isEqualTo(200);
         final ObjectMapper objectMapper = new ObjectMapper();
-        Map expectedDoc = objectMapper.readValue(new URL(
-                openApiUrl),
+        Map expectedDoc = objectMapper.readValue(URI.create(
+                openApiUrl).toURL(),
                 Map.class);
         Map actualDoc = objectMapper.readValue(response.body(), Map.class);
         Assertions.assertThat(((Map) actualDoc.get("paths")).size())
diff --git a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/support/JBangTestSupport.java b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/support/JBangTestSupport.java
index 07d94d28573..c6ad9814660 100644
--- a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/support/JBangTestSupport.java
+++ b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/support/JBangTestSupport.java
@@ -23,6 +23,7 @@ import java.io.InputStream;
 import java.io.Reader;
 import java.io.StringWriter;
 import java.net.MalformedURLException;
+import java.net.URI;
 import java.net.URL;
 import java.nio.channels.Channels;
 import java.nio.channels.ReadableByteChannel;
@@ -340,7 +341,7 @@ public abstract class JBangTestSupport {
 
     protected String downloadNewFileInDataFolder(String downloadUrl) {
         try {
-            return this.downloadNewFileInDataFolder(new URL(downloadUrl), null);
+            return this.downloadNewFileInDataFolder(URI.create(downloadUrl).toURL(), null);
         } catch (MalformedURLException e) {
             throw new RuntimeException(e);
         }
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
index 149f866103e..190b1f50913 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
@@ -20,6 +20,7 @@ import java.io.File;
 import java.lang.management.ManagementFactory;
 import java.lang.management.RuntimeMXBean;
 import java.net.MalformedURLException;
+import java.net.URI;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.ArrayList;
@@ -497,7 +498,7 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
         if (repositoryList != null) {
             for (String repo : repositoryList.split("\\s*,\\s*")) {
                 try {
-                    URL url = new URL(repo);
+                    URL url = URI.create(repo).toURL();
                     if (url.getHost().equals("repo1.maven.org")) {
                         continue;
                     }
diff --git a/test-infra/camel-test-infra-milvus/src/main/java/org/apache/camel/test/infra/milvus/services/MilvusLocalContainerInfraService.java b/test-infra/camel-test-infra-milvus/src/main/java/org/apache/camel/test/infra/milvus/services/MilvusLocalContainerInfraService.java
index 6afc5270b24..7605434debc 100644
--- a/test-infra/camel-test-infra-milvus/src/main/java/org/apache/camel/test/infra/milvus/services/MilvusLocalContainerInfraService.java
+++ b/test-infra/camel-test-infra-milvus/src/main/java/org/apache/camel/test/infra/milvus/services/MilvusLocalContainerInfraService.java
@@ -17,6 +17,7 @@
 package org.apache.camel.test.infra.milvus.services;
 
 import java.net.MalformedURLException;
+import java.net.URI;
 import java.net.URL;
 import java.time.Duration;
 
@@ -103,7 +104,7 @@ public class MilvusLocalContainerInfraService implements MilvusInfraService, Con
     public String host() {
         URL url = null;
         try {
-            url = new URL(container.getEndpoint());
+            url = URI.create(container.getEndpoint()).toURL();
         } catch (MalformedURLException e) {
             throw new RuntimeException(e);
         }
@@ -114,7 +115,7 @@ public class MilvusLocalContainerInfraService implements MilvusInfraService, Con
     public int port() {
         URL url = null;
         try {
-            url = new URL(container.getEndpoint());
+            url = URI.create(container.getEndpoint()).toURL();
         } catch (MalformedURLException e) {
             throw new RuntimeException(e);
         }
diff --git a/test-infra/camel-test-infra-pinecone/src/main/java/org/apache/camel/test/infra/pinecone/services/PineconeLocalContainerInfraService.java b/test-infra/camel-test-infra-pinecone/src/main/java/org/apache/camel/test/infra/pinecone/services/PineconeLocalContainerInfraService.java
index c79a111148e..d55ac3d8bd1 100644
--- a/test-infra/camel-test-infra-pinecone/src/main/java/org/apache/camel/test/infra/pinecone/services/PineconeLocalContainerInfraService.java
+++ b/test-infra/camel-test-infra-pinecone/src/main/java/org/apache/camel/test/infra/pinecone/services/PineconeLocalContainerInfraService.java
@@ -17,6 +17,7 @@
 package org.apache.camel.test.infra.pinecone.services;
 
 import java.net.MalformedURLException;
+import java.net.URI;
 import java.net.URL;
 import java.time.Duration;
 
@@ -105,7 +106,7 @@ public class PineconeLocalContainerInfraService implements PineconeInfraService,
     public String getPineconeHost() {
         URL url = null;
         try {
-            url = new URL(container.getEndpoint());
+            url = URI.create(container.getEndpoint()).toURL();
         } catch (MalformedURLException e) {
             throw new RuntimeException(e);
         }
@@ -116,7 +117,7 @@ public class PineconeLocalContainerInfraService implements PineconeInfraService,
     public int getPineconePort() {
         URL url = null;
         try {
-            url = new URL(container.getEndpoint());
+            url = URI.create(container.getEndpoint()).toURL();
         } catch (MalformedURLException e) {
             throw new RuntimeException(e);
         }
diff --git a/test-infra/camel-test-infra-weaviate/src/main/java/org/apache/camel/test/infra/weaviate/services/WeaviateLocalContainerInfraService.java b/test-infra/camel-test-infra-weaviate/src/main/java/org/apache/camel/test/infra/weaviate/services/WeaviateLocalContainerInfraService.java
index 74b984a2225..8a6247fc8f0 100644
--- a/test-infra/camel-test-infra-weaviate/src/main/java/org/apache/camel/test/infra/weaviate/services/WeaviateLocalContainerInfraService.java
+++ b/test-infra/camel-test-infra-weaviate/src/main/java/org/apache/camel/test/infra/weaviate/services/WeaviateLocalContainerInfraService.java
@@ -17,6 +17,7 @@
 package org.apache.camel.test.infra.weaviate.services;
 
 import java.net.MalformedURLException;
+import java.net.URI;
 import java.net.URL;
 import java.time.Duration;
 
@@ -106,7 +107,7 @@ public class WeaviateLocalContainerInfraService implements WeaviateInfraService,
     public String getWeaviateHost() {
         URL url = null;
         try {
-            url = new URL("http://" + container.getHttpHostAddress());
+            url = URI.create("http://" + container.getHttpHostAddress()).toURL();
         } catch (MalformedURLException e) {
             throw new RuntimeException(e);
         }
@@ -117,7 +118,7 @@ public class WeaviateLocalContainerInfraService implements WeaviateInfraService,
     public int getWeaviatePort() {
         URL url = null;
         try {
-            url = new URL("http://" + container.getHttpHostAddress());
+            url = URI.create("http://" + container.getHttpHostAddress()).toURL();
         } catch (MalformedURLException e) {
             throw new RuntimeException(e);
         }
diff --git a/test-infra/camel-test-infra-xmpp/src/main/java/org/apache/camel/test/infra/xmpp/services/XmppServerContainer.java b/test-infra/camel-test-infra-xmpp/src/main/java/org/apache/camel/test/infra/xmpp/services/XmppServerContainer.java
index 6c721eed732..d35233c4969 100644
--- a/test-infra/camel-test-infra-xmpp/src/main/java/org/apache/camel/test/infra/xmpp/services/XmppServerContainer.java
+++ b/test-infra/camel-test-infra-xmpp/src/main/java/org/apache/camel/test/infra/xmpp/services/XmppServerContainer.java
@@ -18,6 +18,7 @@ package org.apache.camel.test.infra.xmpp.services;
 
 import java.io.IOException;
 import java.net.HttpURLConnection;
+import java.net.URI;
 import java.net.URL;
 
 import org.apache.camel.test.infra.common.LocalPropertyResolver;
@@ -64,8 +65,8 @@ public class XmppServerContainer extends GenericContainer<XmppServerContainer> {
     }
 
     private void get(String urlAppendix) throws IOException {
-        URL url = new URL(
-                String.format("http://%s:%d/%s", this.getHost(), getMappedPort(PORT_REST), urlAppendix));
+        URL url = URI.create(
+                String.format("http://%s:%d/%s", this.getHost(), getMappedPort(PORT_REST), urlAppendix)).toURL();
         HttpURLConnection conn = (HttpURLConnection) url.openConnection();
         conn.setRequestMethod("GET");
         conn.getInputStream();
diff --git a/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloaderImpl.java b/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloaderImpl.java
index efca4ed967d..1f815f4ac58 100644
--- a/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloaderImpl.java
+++ b/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloaderImpl.java
@@ -20,6 +20,7 @@ import java.io.BufferedInputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.net.MalformedURLException;
+import java.net.URI;
 import java.net.URL;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -1244,7 +1245,7 @@ public class MavenDownloaderImpl extends ServiceSupport implements MavenDownload
             if (p != null) {
                 for (Repository r : p.getRepositories()) {
                     try {
-                        URL url = new URL(r.getUrl());
+                        URL url = URI.create(r.getUrl()).toURL();
                         if (repositoryURLs.add(r.getUrl())) {
                             if (mavenApacheSnapshotEnabled && url.getHost().equals("repository.apache.org")
                                     && url.getPath().startsWith("/snapshots")) {
@@ -1303,7 +1304,7 @@ public class MavenDownloaderImpl extends ServiceSupport implements MavenDownload
             try {
                 repo = repositoryResolver.resolveRepository(repo);
                 if (repo != null && !repo.isBlank()) {
-                    URL url = new URL(repo);
+                    URL url = URI.create(repo).toURL();
                     if (mavenCentralEnabled && url.getHost().equals("repo1.maven.org")) {
                         // Maven Central is always used, so skip it
                         return;
diff --git a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/AbstractGeneratorMojo.java b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/AbstractGeneratorMojo.java
index eb1ca59219d..884ef3c104b 100644
--- a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/AbstractGeneratorMojo.java
+++ b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/AbstractGeneratorMojo.java
@@ -21,6 +21,7 @@ import java.io.IOError;
 import java.io.IOException;
 import java.io.StringWriter;
 import java.net.MalformedURLException;
+import java.net.URI;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.nio.file.Path;
@@ -133,7 +134,7 @@ public abstract class AbstractGeneratorMojo extends AbstractMojo {
 
         // if there are no urls then its because we are testing ourselves, then add the urls for source so java source parser can find them
         if (urls.length == 0) {
-            urls = new URL[] { new URL("file:src/main/java/"), new URL("file:src/test/java/") };
+            urls = new URL[] { URI.create("file:src/main/java/").toURL(), URI.create("file:src/test/java/").toURL() };
         }
 
         ClassLoader tccl = Thread.currentThread().getContextClassLoader();
diff --git a/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RunMojo.java b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RunMojo.java
index 85b2693368d..7fc94982c65 100644
--- a/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RunMojo.java
+++ b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RunMojo.java
@@ -473,9 +473,6 @@ public class RunMojo extends AbstractExecMojo {
 
         @Override
         public void uncaughtException(Thread thread, Throwable throwable) {
-            if (throwable instanceof ThreadDeath) {
-                return; // harmless
-            }
             boolean doLog = false;
             synchronized (this) {
                 // only remember the first one
@@ -560,8 +557,9 @@ public class RunMojo extends AbstractExecMojo {
                 uncooperativeThreads.add(thread); // ensure we don't process
                 // again
                 if (stopUnresponsiveDaemonThreads) {
-                    getLog().warn("thread " + thread + " will be Thread.stop()'ed");
-                    thread.stop();
+                    getLog().warn("thread " + thread + " is unresponsive to interruption and will be left to run");
+                    // Try to interrupt again
+                    thread.interrupt();
                 } else {
                     getLog().warn("thread " + thread
                                   + " will linger despite being asked to die via interruption");
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelWriterGeneratorMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelWriterGeneratorMojo.java
index f1b78964b43..a7f7a2244c9 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelWriterGeneratorMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelWriterGeneratorMojo.java
@@ -27,7 +27,7 @@ import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
-import java.net.URL;
+import java.net.URI;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -114,7 +114,7 @@ public abstract class ModelWriterGeneratorMojo extends AbstractGeneratorMojo {
         String resName = routesDefinitionClass.getName().replace('.', '/') + ".class";
         String url = classLoader.getResource(resName).toExternalForm().replace(resName, JandexStore.DEFAULT_NAME);
         Index index;
-        try (InputStream is = new URL(url).openStream()) {
+        try (InputStream is = URI.create(url).toURL().openStream()) {
             index = new IndexReader(is).read();
         } catch (IOException e) {
             throw new MojoExecutionException("IOException: " + e.getMessage(), e);
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelXmlParserGeneratorMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelXmlParserGeneratorMojo.java
index fd8e90c9be6..18add034fda 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelXmlParserGeneratorMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelXmlParserGeneratorMojo.java
@@ -25,7 +25,7 @@ import java.lang.reflect.Member;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.lang.reflect.ParameterizedType;
-import java.net.URL;
+import java.net.URI;
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -117,7 +117,7 @@ public class ModelXmlParserGeneratorMojo extends AbstractGeneratorMojo {
         String resName = outputDefinitionClass.getName().replace('.', '/') + ".class";
         String url = classLoader.getResource(resName).toExternalForm().replace(resName, JandexStore.DEFAULT_NAME);
         Index index;
-        try (InputStream is = new URL(url).openStream()) {
+        try (InputStream is = URI.create(url).toURL().openStream()) {
             index = new IndexReader(is).read();
         } catch (IOException e) {
             throw new MojoExecutionException("IOException: " + e.getMessage(), e);