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 8e881b7703985469c5c0b124df26557d9fd72f23
Author: Croway <[email protected]>
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..d8bb083975e 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..b6acbe6c588 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..4510e05a880 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..06ff7a24769 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..a5f51990359 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..1eb6be0d219 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..31f7133f0f4 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..e279e4ae870 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..72ff9f0dd6e 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);


Reply via email to