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);
