You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2025/08/01 07:41:34 UTC
(camel) branch main updated: CAMEL-22257: Java 25 deprecations commits (#18789)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new b4d982e5afc CAMEL-22257: Java 25 deprecations commits (#18789)
b4d982e5afc is described below
commit b4d982e5afc4283e45b97c45dfb7ecf3d9382ed1
Author: Federico Mariani <34...@users.noreply.github.com>
AuthorDate: Fri Aug 1 09:41:29 2025 +0200
CAMEL-22257: Java 25 deprecations commits (#18789)
* Use threadId() instead of getId(), TODO update once baseline is java 21
* use URI.create instead of deprecated new URL()
* SecurityManager deprecations and removals
* java 25 deprecations
---
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 | 12 ++++-
.../camel/support/builder/ExpressionBuilder.java | 2 +
.../scan/DefaultPackageScanClassResolver.java | 3 +-
.../scan/DefaultPackageScanResourceResolver.java | 3 +-
.../util/ClassLoadingAwareObjectInputStream.java | 37 ++++++++++++++--
.../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, 231 insertions(+), 170 deletions(-)
diff --git a/components/camel-ai/pom.xml b/components/camel-ai/pom.xml
index 38442c66edf..9293fc8161e 100644
--- a/components/camel-ai/pom.xml
+++ b/components/camel-ai/pom.xml
@@ -54,4 +54,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..afdcb7cb93b 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 baseline 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..c69a38f86d5 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 baseline 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..79af598dfa2 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 once baseline is Java 21
+ // 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..c6955b686c9 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 once baseline is Java 21
+ // 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..9550f91ed43 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 baseline 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..22b50890773 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 once baseline 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..b5d38167010 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 baseline 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..78d16d9b442 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 baseline 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 baseline 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 baseline 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..5b69a6dc39e 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 Update 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..575cadbd6b3 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 Update once baseline 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..ab7f74e38be 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 Update once baseline 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..91b49af2d7c 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
@@ -21,6 +21,7 @@ import java.io.IOException;
import java.lang.reflect.Array;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -478,9 +479,16 @@ public final class ObjectHelper {
public static Object invokeMethodSafe(Method method, Object instance, Object... parameters)
throws InvocationTargetException, IllegalAccessException {
Object answer;
- if (!method.isAccessible()) {
- method.setAccessible(true);
+ if (Modifier.isStatic(method.getModifiers())) {
+ if (!method.canAccess(null)) {
+ method.setAccessible(true);
+ }
+ } else {
+ if (!method.canAccess(instance)) {
+ method.setAccessible(true);
+ }
}
+
if (parameters != null) {
answer = method.invoke(instance, parameters);
} else {
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..ca1c65a071d 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,7 @@ 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.Proxy;
import java.util.HashMap;
@@ -58,6 +59,35 @@ public class ClassLoadingAwareObjectInputStream extends ObjectInputStream {
return load(classDesc.getName(), cl, inLoader);
}
+ /**
+ * We only need to retrieve the proxy class, an invocation is not supposed to happen but let's handle primitives to
+ * avoid potential NPE
+ */
+ private static final InvocationHandler NOOP_HANDLER = (proxy, method, args) -> {
+ Class<?> returnType = method.getReturnType();
+ if (returnType == void.class) {
+ return null;
+ } else if (returnType.isPrimitive()) {
+ if (returnType == boolean.class)
+ return Boolean.FALSE;
+ if (returnType == byte.class)
+ return (byte) 0;
+ if (returnType == short.class)
+ return (short) 0;
+ if (returnType == int.class)
+ return 0;
+ if (returnType == long.class)
+ return 0L;
+ if (returnType == float.class)
+ return 0.0f;
+ if (returnType == double.class)
+ return 0.0d;
+ if (returnType == char.class)
+ return '\0';
+ }
+ return null;
+ };
+
@Override
protected Class<?> resolveProxyClass(String[] interfaces) throws IOException, ClassNotFoundException {
ClassLoader cl = Thread.currentThread().getContextClassLoader();
@@ -67,15 +97,16 @@ public class ClassLoadingAwareObjectInputStream extends ObjectInputStream {
}
try {
- return Proxy.getProxyClass(cl, cinterfaces);
+ return Proxy.newProxyInstance(cl, cinterfaces, NOOP_HANDLER).getClass();
} catch (IllegalArgumentException e) {
try {
- return Proxy.getProxyClass(inLoader, cinterfaces);
+ return Proxy.newProxyInstance(inLoader, cinterfaces, NOOP_HANDLER).getClass();
} catch (IllegalArgumentException e1) {
// ignore
}
try {
- return Proxy.getProxyClass(FALLBACK_CLASS_LOADER, cinterfaces);
+ return Proxy.newProxyInstance(FALLBACK_CLASS_LOADER, cinterfaces, NOOP_HANDLER)
+ .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);