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 2026/02/28 14:26:30 UTC
(camel) branch gradle updated (7a27cafff6ef -> fc6b7335b1e0)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a change to branch gradle
in repository https://gitbox.apache.org/repos/asf/camel.git
from 7a27cafff6ef CAMEL-22801: camel-jbang - Remove deprecated export to gradle
add 7c8eaa861273 CAMEL-23102: camel-jbang - Automatic keep up to date list of Camel FactoryFinder as known dependencies
new 7ac29c48a666 Merge branch 'main' into gradle
new 1ed2864eb234 CAMEL-22801: camel-jbang - Remove deprecated export to gradle
new 03c92d96a6e3 CAMEL-23102: camel-jbang - Automatic keep up to date list of Camel FactoryFinder as known dependencies
new c3abdaf47821 CAMEL-23102: camel-jbang - Automatic keep up to date list of Camel FactoryFinder as known dependencies
new fc6b7335b1e0 CAMEL-23102: camel-jbang - Automatic keep up to date list of Camel FactoryFinder as known dependencies
The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../jbang/camel-jbang-configuration-metadata.json | 2 -
.../apache/camel/component/avro/AvroListener.java | 10 ++--
.../apache/camel/component/cron/CronHelper.java | 9 ++--
.../language/csimple/joor/JoorCSimpleCompiler.java | 3 +-
.../camel/component/knative/KnativeComponent.java | 20 +++-----
.../apache/camel/openapi/RestOpenApiSupport.java | 3 +-
.../platform/http/PlatformHttpComponent.java | 13 ++---
.../platform/http/PlatformHttpPluginRegistry.java | 25 ++-------
.../reactive/streams/ReactiveStreamsHelper.java | 21 ++------
.../camel/component/rest/RestApiEndpoint.java | 10 ++--
.../apache/camel/component/rest/RestEndpoint.java | 19 ++-----
.../apache/camel/spring/SpringCamelContext.java | 3 +-
.../camel/impl/engine/AbstractCamelContext.java | 7 ++-
.../impl/engine/DefaultTransformerResolver.java | 7 +--
.../impl/engine/DefaultUriFactoryResolver.java | 1 +
.../engine/DefaultVariableRepositoryFactory.java | 4 +-
.../camel/impl/engine/SimpleCamelContext.java | 60 ++++++----------------
.../simple/ast/SimpleFunctionExpression.java | 12 ++---
.../camel/builder/AdviceWithRouteBuilder.java | 11 ++--
.../cloud/ServiceCallDefinitionConstants.java | 1 +
.../org/apache/camel/reifier/ResumableReifier.java | 24 ++-------
.../camel/reifier/tokenizer/TokenizerReifier.java | 18 ++-----
.../org/apache/camel/main/BaseMainSupport.java | 60 +++++++++-------------
.../camel/support/HeaderSelectorProducer.java | 32 ++++++------
.../java/org/apache/camel/support/OAuthHelper.java | 2 +-
.../org/apache/camel/support/ResolverHelper.java | 31 +++++++++++
.../apache/camel/support/resume/AdapterHelper.java | 18 ++-----
.../download/DependencyDownloadFactoryFinder.java | 10 ++++
.../DependencyDownloadFactoryFinderResolver.java | 3 +-
29 files changed, 166 insertions(+), 273 deletions(-)
(camel) 02/05: CAMEL-22801: camel-jbang - Remove deprecated export to gradle
Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch gradle
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 1ed2864eb2341e0bdb1ef4529f6f92f0e7ebee5e
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Feb 28 11:36:48 2026 +0100
CAMEL-22801: camel-jbang - Remove deprecated export to gradle
---
.../apache/camel/catalog/jbang/camel-jbang-configuration-metadata.json | 2 --
1 file changed, 2 deletions(-)
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/jbang/camel-jbang-configuration-metadata.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/jbang/camel-jbang-configuration-metadata.json
index 22ca438bb84d..01c0f4bbcdec 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/jbang/camel-jbang-configuration-metadata.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/jbang/camel-jbang-configuration-metadata.json
@@ -3,7 +3,6 @@
{ "name": "camel.jbang", "description": "Camel JBang configurations" }
],
"properties": [
- { "name": "camel.jbang.buildTool", "required": false, "description": "Build tool to use (Maven or Gradle)", "type": "string", "javaType": "String", "defaultValue": "Maven", "secret": false },
{ "name": "camel.jbang.camel-version", "required": false, "description": "The version of Apache Camel to use", "type": "string", "javaType": "String", "secret": false },
{ "name": "camel.jbang.camelSpringBootVersion", "required": false, "description": "To use a custom Camel version when running or export to Spring Boot", "label": "spring-boot", "type": "string", "javaType": "String", "secret": false },
{ "name": "camel.jbang.classpathFiles", "required": false, "description": "Additional files to add to classpath (Use commas to separate multiple files).", "type": "string", "javaType": "String", "secret": false },
@@ -17,7 +16,6 @@
{ "name": "camel.jbang.excludes", "required": false, "description": "Exclude files by name or pattern (Use commas to separate multiple files)", "type": "string", "javaType": "String", "secret": false },
{ "name": "camel.jbang.exportDir", "required": false, "description": "Directory where the project will be exported", "type": "string", "javaType": "String", "defaultValue": ".", "secret": false },
{ "name": "camel.jbang.gav", "required": false, "description": "Maven coordinate (groupId:artifactId:version)", "type": "string", "javaType": "String", "secret": false },
- { "name": "camel.jbang.gradleWrapper", "required": false, "description": "Include Gradle Wrapper files in the exported project", "type": "boolean", "javaType": "boolean", "defaultValue": true, "secret": false },
{ "name": "camel.jbang.groovyFiles", "required": false, "description": "Additional groovy source files to export to src\/main\/resources\/camel-groovy directory (Use commas to separate multiple files)", "type": "string", "javaType": "String", "secret": false },
{ "name": "camel.jbang.health", "required": false, "description": "Health check at \/observe\/health on local HTTP server (port 8080 by default)", "type": "boolean", "javaType": "boolean", "defaultValue": false, "secret": false, "deprecated": true },
{ "name": "camel.jbang.ignoreLoadingError", "required": false, "description": "Whether to ignore route loading and compilation errors (use this with care!)", "label": "advanced", "type": "boolean", "javaType": "boolean", "defaultValue": false, "secret": false },
(camel) 05/05: CAMEL-23102: camel-jbang - Automatic keep up to date list of Camel FactoryFinder as known dependencies
Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch gradle
in repository https://gitbox.apache.org/repos/asf/camel.git
commit fc6b7335b1e081048bc0a3709332dffb8e1aa7bd
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Feb 28 14:42:30 2026 +0100
CAMEL-23102: camel-jbang - Automatic keep up to date list of Camel FactoryFinder as known dependencies
---
.../camel/main/download/DependencyDownloadFactoryFinder.java | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloadFactoryFinder.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloadFactoryFinder.java
index f91038333b12..8691795cc0bc 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloadFactoryFinder.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloadFactoryFinder.java
@@ -46,6 +46,16 @@ public class DependencyDownloadFactoryFinder extends DefaultFactoryFinder {
return super.findClass(key);
}
+ @Override
+ public Optional<Class<?>> findOptionalClass(String key) {
+ // this is not optional so we can auto download the JAR as it's intended to be on the classpath
+ MavenGav gav = knownDependenciesResolver.mavenGavForClass(FactoryFinder.DEFAULT_PATH + key);
+ if (gav != null) {
+ downloadLoader(gav.getGroupId(), gav.getArtifactId(), gav.getVersion());
+ }
+ return super.findOptionalClass(key);
+ }
+
private void downloadLoader(String groupId, String artifactId, String version) {
if (!downloader.alreadyOnClasspath(groupId, artifactId, version)) {
downloader.downloadDependency(groupId, artifactId, version);
(camel) 04/05: CAMEL-23102: camel-jbang - Automatic keep up to date list of Camel FactoryFinder as known dependencies
Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch gradle
in repository https://gitbox.apache.org/repos/asf/camel.git
commit c3abdaf4782132e9fefe11ea144a8d924e7c36ef
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Feb 28 13:48:50 2026 +0100
CAMEL-23102: camel-jbang - Automatic keep up to date list of Camel FactoryFinder as known dependencies
---
.../apache/camel/component/avro/AvroListener.java | 10 +++-------
.../org/apache/camel/component/cron/CronHelper.java | 9 ++++-----
.../language/csimple/joor/JoorCSimpleCompiler.java | 3 +--
.../camel/component/knative/KnativeComponent.java | 20 +++++++-------------
.../apache/camel/openapi/RestOpenApiSupport.java | 3 +--
.../platform/http/PlatformHttpComponent.java | 13 ++++---------
.../reactive/streams/ReactiveStreamsHelper.java | 21 ++++-----------------
.../camel/component/rest/RestApiEndpoint.java | 10 +++++-----
.../apache/camel/component/rest/RestEndpoint.java | 19 +++++--------------
.../org/apache/camel/spring/SpringCamelContext.java | 3 +--
10 files changed, 35 insertions(+), 76 deletions(-)
diff --git a/components/camel-avro-rpc/camel-avro-rpc-component/src/main/java/org/apache/camel/component/avro/AvroListener.java b/components/camel-avro-rpc/camel-avro-rpc-component/src/main/java/org/apache/camel/component/avro/AvroListener.java
index 8e5dacbbec51..9c15ec507650 100644
--- a/components/camel-avro-rpc/camel-avro-rpc-component/src/main/java/org/apache/camel/component/avro/AvroListener.java
+++ b/components/camel-avro-rpc/camel-avro-rpc-component/src/main/java/org/apache/camel/component/avro/AvroListener.java
@@ -30,8 +30,8 @@ import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.ExchangePattern;
import org.apache.camel.component.avro.spi.AvroRpcHttpServerFactory;
-import org.apache.camel.spi.FactoryFinder;
import org.apache.camel.support.ExchangeHelper;
+import org.apache.camel.support.ResolverHelper;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -82,12 +82,8 @@ public class AvroListener {
private static Server createServer(AvroConfiguration configuration, CamelContext camelContext, SpecificResponder responder)
throws Exception {
if (AVRO_HTTP_TRANSPORT.equalsIgnoreCase(configuration.getTransport().name())) {
- AvroRpcHttpServerFactory factory = camelContext
- .getCamelContextExtension()
- .getFactoryFinder(FactoryFinder.DEFAULT_PATH)
- .newInstance("avro-rpc-http-server-factory", AvroRpcHttpServerFactory.class)
- .orElseThrow(() -> new IllegalStateException(
- "AvroRpcHttpServerFactory is neither set on this endpoint neither found in Camel Registry or FactoryFinder."));
+ AvroRpcHttpServerFactory factory = ResolverHelper.resolveMandatoryService(camelContext,
+ "avro-rpc-http-server-factory", AvroRpcHttpServerFactory.class, "camel-avro-rpc");
return factory.create(responder, configuration.getPort());
} else if (AVRO_NETTY_TRANSPORT.equalsIgnoreCase(configuration.getTransport().name())) {
return new NettyServer(responder, new InetSocketAddress(configuration.getHost(), configuration.getPort()));
diff --git a/components/camel-cron/src/main/java/org/apache/camel/component/cron/CronHelper.java b/components/camel-cron/src/main/java/org/apache/camel/component/cron/CronHelper.java
index 55942a21795d..fbcf39ca0db5 100644
--- a/components/camel-cron/src/main/java/org/apache/camel/component/cron/CronHelper.java
+++ b/components/camel-cron/src/main/java/org/apache/camel/component/cron/CronHelper.java
@@ -18,13 +18,13 @@ package org.apache.camel.component.cron;
import org.apache.camel.CamelContext;
import org.apache.camel.component.cron.api.CamelCronService;
-import org.apache.camel.spi.FactoryFinder;
import org.apache.camel.support.CamelContextHelper;
+import org.apache.camel.support.ResolverHelper;
import org.apache.camel.util.ObjectHelper;
public final class CronHelper {
- private static final String RESOURCE_PATH = "META-INF/services/org/apache/camel/cron/";
- private static final String FACTORY_KEY = "cron-service";
+
+ private static final String FACTORY_KEY = "cron/cron-service";
private CronHelper() {
}
@@ -45,8 +45,7 @@ public final class CronHelper {
}
// Fallback to factory finder
- FactoryFinder finder = context.getCamelContextExtension().getFactoryFinder(RESOURCE_PATH);
- return finder.newInstance(FACTORY_KEY, CamelCronService.class).orElse(null);
+ return ResolverHelper.resolveBootstrapService(context, FACTORY_KEY, CamelCronService.class).orElse(null);
}
}
diff --git a/components/camel-csimple-joor/src/main/java/org/apache/camel/language/csimple/joor/JoorCSimpleCompiler.java b/components/camel-csimple-joor/src/main/java/org/apache/camel/language/csimple/joor/JoorCSimpleCompiler.java
index 1ba78af5813e..1fa390fd4e7d 100644
--- a/components/camel-csimple-joor/src/main/java/org/apache/camel/language/csimple/joor/JoorCSimpleCompiler.java
+++ b/components/camel-csimple-joor/src/main/java/org/apache/camel/language/csimple/joor/JoorCSimpleCompiler.java
@@ -168,9 +168,8 @@ public class JoorCSimpleCompiler extends ServiceSupport implements CSimpleCompil
protected void doStart() throws Exception {
// check if camel-attachment is on classpath which then includes custom csimple functions
if (camelContext != null) {
- Optional<SimpleLanguageFunctionFactory> factory = ResolverHelper.resolveService(
+ Optional<SimpleLanguageFunctionFactory> factory = ResolverHelper.resolveBootstrapService(
camelContext,
- camelContext.getCamelContextExtension().getBootstrapFactoryFinder(),
SimpleLanguageFunctionFactory.FACTORY + "/camel-attachments",
SimpleLanguageFunctionFactory.class);
if (factory.isPresent()) {
diff --git a/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/KnativeComponent.java b/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/KnativeComponent.java
index 7a96ef3e3de9..1eee1f19497a 100644
--- a/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/KnativeComponent.java
+++ b/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/KnativeComponent.java
@@ -30,6 +30,7 @@ import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.annotations.Component;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.HealthCheckComponent;
+import org.apache.camel.support.ResolverHelper;
import org.apache.camel.support.service.ServiceHelper;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.PropertiesHelper;
@@ -290,12 +291,9 @@ public class KnativeComponent extends HealthCheckComponent {
if (producerFactory == null) {
this.producerFactory = CamelContextHelper.lookup(getCamelContext(), protocol.name(), KnativeProducerFactory.class);
if (this.producerFactory == null) {
- this.producerFactory = getCamelContext()
- .getCamelContextExtension()
- .getBootstrapFactoryFinder(Knative.KNATIVE_TRANSPORT_RESOURCE_PATH)
- .newInstance(protocol.name() + "-producer", KnativeProducerFactory.class)
- .orElseThrow(() -> new IllegalArgumentException(
- "Cannot create KnativeProducerFactory. Make sure camel-knative-http JAR is on classpath."));
+ String key = "knative/transport/" + protocol.name() + "-producer";
+ this.producerFactory = ResolverHelper.resolveMandatoryBootstrapService(getCamelContext(), key,
+ KnativeProducerFactory.class, "camel-knative-http");
if (configuration.getTransportOptions() != null) {
setProperties(producerFactory, new HashMap<>(configuration.getTransportOptions()));
}
@@ -303,7 +301,6 @@ public class KnativeComponent extends HealthCheckComponent {
}
LOGGER.debug("Using Knative producer factory: {} for protocol: {}", producerFactory, protocol.name());
}
-
return producerFactory;
}
@@ -311,12 +308,9 @@ public class KnativeComponent extends HealthCheckComponent {
if (consumerFactory == null) {
this.consumerFactory = CamelContextHelper.lookup(getCamelContext(), protocol.name(), KnativeConsumerFactory.class);
if (this.consumerFactory == null) {
- this.consumerFactory = getCamelContext()
- .getCamelContextExtension()
- .getBootstrapFactoryFinder(Knative.KNATIVE_TRANSPORT_RESOURCE_PATH)
- .newInstance(protocol.name() + "-consumer", KnativeConsumerFactory.class)
- .orElseThrow(() -> new IllegalArgumentException(
- "Cannot create KnativeConsumerFactory. Make sure camel-knative-http JAR is on classpath."));
+ String key = "knative/transport/" + protocol.name() + "-consumer";
+ this.consumerFactory = ResolverHelper.resolveMandatoryBootstrapService(getCamelContext(), key,
+ KnativeConsumerFactory.class, "camel-knative-http");
if (configuration.getTransportOptions() != null) {
setProperties(consumerFactory, new HashMap<>(configuration.getTransportOptions()));
}
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 d4b0de1c21d5..6bfa861e7864 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
@@ -300,9 +300,8 @@ public class RestOpenApiSupport {
}
protected RestDefinitionsResolver createJmxRestDefinitionsResolver(CamelContext camelContext) {
- return ResolverHelper.resolveMandatoryService(
+ return ResolverHelper.resolveMandatoryBootstrapService(
camelContext,
- camelContext.getCamelContextExtension().getBootstrapFactoryFinder(),
JMX_REST_DEFINITION_RESOLVER,
RestDefinitionsResolver.class,
"camel-openapi-java");
diff --git a/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpComponent.java b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpComponent.java
index c272ac263a08..2ac0a76b8afb 100644
--- a/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpComponent.java
+++ b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpComponent.java
@@ -29,7 +29,6 @@ import org.apache.camel.Consumer;
import org.apache.camel.Endpoint;
import org.apache.camel.Processor;
import org.apache.camel.component.platform.http.spi.PlatformHttpEngine;
-import org.apache.camel.spi.FactoryFinder;
import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.RestApiConsumerFactory;
import org.apache.camel.spi.RestConfiguration;
@@ -38,6 +37,7 @@ import org.apache.camel.spi.RestOpenApiConsumerFactory;
import org.apache.camel.spi.annotations.Component;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.HeaderFilterStrategyComponent;
+import org.apache.camel.support.ResolverHelper;
import org.apache.camel.support.RestComponentHelper;
import org.apache.camel.support.service.ServiceHelper;
import org.apache.camel.util.FileUtil;
@@ -338,14 +338,9 @@ public class PlatformHttpComponent extends HeaderFilterStrategyComponent
if (engine == null) {
LOG.debug("Lookup platform http engine from factory");
-
- engine = getCamelContext()
- .getCamelContextExtension()
- .getFactoryFinder(FactoryFinder.DEFAULT_PATH)
- .newInstance(PlatformHttpConstants.PLATFORM_HTTP_ENGINE_FACTORY, PlatformHttpEngine.class)
- .orElseThrow(() -> new IllegalStateException(
- "PlatformHttpEngine is neither set on this endpoint neither found in Camel Registry or FactoryFinder."));
-
+ engine = ResolverHelper.resolveMandatoryService(getCamelContext(),
+ PlatformHttpConstants.PLATFORM_HTTP_ENGINE_FACTORY, PlatformHttpEngine.class,
+ "camel-platform-http-vertx");
localEngine = true;
}
}
diff --git a/components/camel-reactive-streams/src/main/java/org/apache/camel/component/reactive/streams/ReactiveStreamsHelper.java b/components/camel-reactive-streams/src/main/java/org/apache/camel/component/reactive/streams/ReactiveStreamsHelper.java
index e15379bbf783..b074fc24b968 100644
--- a/components/camel-reactive-streams/src/main/java/org/apache/camel/component/reactive/streams/ReactiveStreamsHelper.java
+++ b/components/camel-reactive-streams/src/main/java/org/apache/camel/component/reactive/streams/ReactiveStreamsHelper.java
@@ -23,12 +23,13 @@ import org.apache.camel.component.reactive.streams.api.CamelReactiveStreamsServi
import org.apache.camel.component.reactive.streams.api.CamelReactiveStreamsServiceFactory;
import org.apache.camel.component.reactive.streams.api.DispatchCallback;
import org.apache.camel.component.reactive.streams.engine.ReactiveStreamsEngineConfiguration;
-import org.apache.camel.spi.FactoryFinder;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.DefaultExchange;
+import org.apache.camel.support.ResolverHelper;
import org.apache.camel.util.ObjectHelper;
public final class ReactiveStreamsHelper {
+
private ReactiveStreamsHelper() {
}
@@ -114,21 +115,7 @@ public final class ReactiveStreamsHelper {
}
public static CamelReactiveStreamsServiceFactory resolveServiceFactory(CamelContext context, String serviceType) {
- try {
- FactoryFinder finder
- = context.getCamelContextExtension().getFactoryFinder(ReactiveStreamsConstants.SERVICE_PATH);
- Class<?> serviceClass = finder.findClass(serviceType).orElse(null);
- if (serviceClass != null) {
- return (CamelReactiveStreamsServiceFactory) context.getInjector().newInstance(serviceClass);
- } else {
- throw new IllegalStateException(
- "Class referenced in '" + ReactiveStreamsConstants.SERVICE_PATH + serviceType + "' not found");
- }
- } catch (Exception e) {
- throw new IllegalStateException(
- "Unable to create the reactive stream service defined in '" + ReactiveStreamsConstants.SERVICE_PATH
- + serviceType + "'",
- e);
- }
+ return ResolverHelper.resolveMandatoryService(context, "reactive-streams/" + serviceType,
+ CamelReactiveStreamsServiceFactory.class, null);
}
}
diff --git a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
index 61148135361c..4eeef1a0d522 100644
--- a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
+++ b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestApiEndpoint.java
@@ -26,7 +26,6 @@ import org.apache.camel.ExchangePattern;
import org.apache.camel.NoSuchBeanException;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
-import org.apache.camel.spi.FactoryFinder;
import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.RestApiConsumerFactory;
import org.apache.camel.spi.RestApiProcessorFactory;
@@ -36,6 +35,7 @@ import org.apache.camel.spi.UriParam;
import org.apache.camel.spi.UriPath;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.DefaultEndpoint;
+import org.apache.camel.support.ResolverHelper;
import org.apache.camel.util.HostUtils;
import org.apache.camel.util.ObjectHelper;
import org.slf4j.Logger;
@@ -146,8 +146,8 @@ public class RestApiEndpoint extends DefaultEndpoint {
if (name == null) {
name = DEFAULT_API_COMPONENT_NAME; //use openapi first
}
- FactoryFinder finder = getCamelContext().getCamelContextExtension().getFactoryFinder(RESOURCE_PATH);
- factory = finder.newInstance(name, RestApiProcessorFactory.class).orElse(null);
+ factory = ResolverHelper.resolveService(getCamelContext(), "restapi/" + name, RestApiProcessorFactory.class)
+ .orElse(null);
}
if (factory == null) {
@@ -155,8 +155,8 @@ public class RestApiEndpoint extends DefaultEndpoint {
if (name == null) {
name = "swagger"; //use swagger as fallback
}
- FactoryFinder finder = getCamelContext().getCamelContextExtension().getFactoryFinder(RESOURCE_PATH);
- factory = finder.newInstance(name, RestApiProcessorFactory.class).orElse(null);
+ factory = ResolverHelper.resolveService(getCamelContext(), "restapi/" + name, RestApiProcessorFactory.class)
+ .orElse(null);
}
if (factory != null) {
diff --git a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
index 5a686150b655..0a241412c69a 100644
--- a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
+++ b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
@@ -23,11 +23,9 @@ import org.apache.camel.Category;
import org.apache.camel.Component;
import org.apache.camel.Consumer;
import org.apache.camel.ExchangePattern;
-import org.apache.camel.NoFactoryAvailableException;
import org.apache.camel.NoSuchBeanException;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
-import org.apache.camel.spi.FactoryFinder;
import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.RestConfiguration;
import org.apache.camel.spi.RestConsumerFactory;
@@ -39,6 +37,7 @@ import org.apache.camel.spi.UriPath;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.DefaultEndpoint;
import org.apache.camel.support.PluginHelper;
+import org.apache.camel.support.ResolverHelper;
import org.apache.camel.support.component.PropertyConfigurerSupport;
import org.apache.camel.util.HostUtils;
import org.apache.camel.util.MimeTypeHelper;
@@ -351,18 +350,10 @@ public class RestEndpoint extends DefaultEndpoint {
return null;
}
LOG.debug("Discovering camel-openapi-java on classpath for using api-doc: {}", apiDoc);
- try {
- FactoryFinder finder = getCamelContext().getCamelContextExtension().getFactoryFinder(RESOURCE_PATH);
- RestProducerFactory apiDocFactory = finder.newInstance(DEFAULT_API_COMPONENT_NAME, RestProducerFactory.class)
- .orElse(null);
- if (apiDocFactory == null) {
- throw new NoFactoryAvailableException("Cannot find camel-openapi-java on classpath");
- }
- parameters.put("apiDoc", apiDoc);
- return apiDocFactory;
- } catch (NoFactoryAvailableException e) {
- throw new IllegalStateException("Cannot find camel-openapi-java on classpath to use with api-doc: " + apiDoc);
- }
+ RestProducerFactory apiDocFactory = ResolverHelper.resolveMandatoryService(getCamelContext(),
+ "rest/" + DEFAULT_API_COMPONENT_NAME, RestProducerFactory.class, "camel-openapi-java");
+ parameters.put("apiDoc", apiDoc);
+ return apiDocFactory;
}
private record ProducerFactoryResult(RestProducerFactory factory, String name) {
diff --git a/components/camel-spring-parent/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java b/components/camel-spring-parent/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java
index ee490b001bb5..9c7726e45254 100644
--- a/components/camel-spring-parent/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java
+++ b/components/camel-spring-parent/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java
@@ -256,9 +256,8 @@ public class SpringCamelContext extends DefaultCamelContext
@Override
protected ModelJAXBContextFactory createModelJAXBContextFactory() {
- return ResolverHelper.resolveMandatoryService(
+ return ResolverHelper.resolveMandatoryBootstrapService(
getCamelContextReference(),
- getCamelContextExtension().getBootstrapFactoryFinder(),
ModelJAXBContextFactory.FACTORY + "-spring",
ModelJAXBContextFactory.class,
"camel-spring-xml");
(camel) 01/05: Merge branch 'main' into gradle
Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch gradle
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 7ac29c48a6667dd19d52e727d38e14a5d878a3db
Merge: 7a27cafff6ef 7c8eaa861273
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Feb 28 11:24:55 2026 +0100
Merge branch 'main' into gradle
.../camel/impl/engine/AbstractCamelContext.java | 7 ++-
.../impl/engine/DefaultTransformerResolver.java | 7 +--
.../impl/engine/DefaultUriFactoryResolver.java | 1 +
.../engine/DefaultVariableRepositoryFactory.java | 4 +-
.../camel/impl/engine/SimpleCamelContext.java | 60 ++++++----------------
.../simple/ast/SimpleFunctionExpression.java | 12 ++---
.../camel/builder/AdviceWithRouteBuilder.java | 11 ++--
.../cloud/ServiceCallDefinitionConstants.java | 1 +
.../org/apache/camel/reifier/ResumableReifier.java | 24 ++-------
.../camel/reifier/tokenizer/TokenizerReifier.java | 18 ++-----
.../org/apache/camel/main/BaseMainSupport.java | 60 +++++++++-------------
.../camel/support/HeaderSelectorProducer.java | 32 ++++++------
.../java/org/apache/camel/support/OAuthHelper.java | 2 +-
.../org/apache/camel/support/ResolverHelper.java | 31 +++++++++++
.../apache/camel/support/resume/AdapterHelper.java | 18 ++-----
.../DependencyDownloadFactoryFinderResolver.java | 3 +-
16 files changed, 118 insertions(+), 173 deletions(-)
(camel) 03/05: CAMEL-23102: camel-jbang - Automatic keep up to date list of Camel FactoryFinder as known dependencies
Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch gradle
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 03c92d96a6e35cfaead008b015b93489cde67a34
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Feb 28 13:16:28 2026 +0100
CAMEL-23102: camel-jbang - Automatic keep up to date list of Camel FactoryFinder as known dependencies
---
.../platform/http/PlatformHttpPluginRegistry.java | 25 +++-------------------
1 file changed, 3 insertions(+), 22 deletions(-)
diff --git a/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpPluginRegistry.java b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpPluginRegistry.java
index 4493687af9ce..fd3c7b63caa8 100644
--- a/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpPluginRegistry.java
+++ b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpPluginRegistry.java
@@ -24,8 +24,8 @@ import java.util.TreeSet;
import org.apache.camel.CamelContext;
import org.apache.camel.CamelContextAware;
import org.apache.camel.component.platform.http.spi.PlatformHttpPlugin;
-import org.apache.camel.spi.FactoryFinder;
import org.apache.camel.spi.annotations.JdkService;
+import org.apache.camel.support.ResolverHelper;
import org.apache.camel.support.service.ServiceHelper;
import org.apache.camel.support.service.ServiceSupport;
import org.apache.camel.util.ObjectHelper;
@@ -41,9 +41,6 @@ public class PlatformHttpPluginRegistry extends ServiceSupport
private static final Logger LOG = LoggerFactory.getLogger(PlatformHttpPluginRegistry.class);
- private static final String PLATFORM_HTTP_PLUGIN_FACTORY_PATH
- = "META-INF/services/org/apache/camel/platform-http/";
-
private CamelContext camelContext;
private final Set<PlatformHttpPlugin> plugins = new TreeSet<>(Comparator.comparing(PlatformHttpPlugin::getId));
@@ -93,24 +90,8 @@ public class PlatformHttpPluginRegistry extends ServiceSupport
}
private PlatformHttpPlugin resolvePluginWithFactoryFinderById(String id) {
- PlatformHttpPlugin answer = null;
-
- FactoryFinder factoryFinder
- = getCamelContext().getCamelContextExtension().getBootstrapFactoryFinder(PLATFORM_HTTP_PLUGIN_FACTORY_PATH);
- Class<?> type = factoryFinder.findOptionalClass(id).orElse(null);
- if (type != null) {
- if (PlatformHttpPlugin.class.isAssignableFrom(type)) {
- answer = (PlatformHttpPlugin) camelContext.getInjector().newInstance(type, false);
- CamelContextAware.trySetCamelContext(answer, camelContext);
- } else {
- throw new IllegalArgumentException(
- "Resolving platform-http-plugin: " + id
- + " detected type conflict: Not a PlatformHttpPlugin implementation. Found: "
- + type.getName());
- }
- }
-
- return answer;
+ return ResolverHelper.resolveBootstrapService(camelContext, "platform-http/" + id, PlatformHttpPlugin.class)
+ .orElse(null);
}
}