This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new d316bc07eeb5 camel-jbang - Remove gradle (#21646)
d316bc07eeb5 is described below
commit d316bc07eeb5d0680103985474a780caedf690ba
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Feb 28 18:05:09 2026 +0100
camel-jbang - Remove gradle (#21646)
* CAMEL-22801: camel-jbang - Remove deprecated export to gradle
* CAMEL-23102: camel-jbang - Automatic keep up to date list of Camel
FactoryFinder as known dependencies
* CAMEL-23104: camel-jbang-it - CustomJarsITCase test is failing locally
---
.../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/main/ManagementHttpServer.java | 7 +-
.../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 +-
.../ROOT/pages/camel-4x-upgrade-guide-4_19.adoc | 13 +-
.../modules/ROOT/pages/camel-jbang.adoc | 33 +---
.../camel-jbang-dependency-copy.adoc | 4 +-
.../camel-jbang-dependency-list.adoc | 4 +-
.../camel-jbang-dependency-update.adoc | 4 +-
.../pages/jbang-commands/camel-jbang-export.adoc | 4 +-
.../pages/jbang-commands/camel-jbang-sbom.adoc | 4 +-
.../META-INF/camel-jbang-commands-metadata.json | 6 +-
.../camel-jbang-configuration-metadata.json | 2 -
.../camel/dsl/jbang/core/commands/Export.java | 7 -
.../dsl/jbang/core/commands/ExportBaseCommand.java | 41 +----
.../dsl/jbang/core/commands/ExportCamelMain.java | 18 +-
.../dsl/jbang/core/commands/ExportQuarkus.java | 139 +---------------
.../dsl/jbang/core/commands/ExportSpringBoot.java | 111 +------------
.../apache/camel/dsl/jbang/core/commands/Run.java | 8 +-
.../camel/dsl/jbang/core/commands/RunHelper.java | 2 +-
.../dsl/jbang/core/commands/TransformRoute.java | 2 +
.../dsl/jbang/core/common/CamelJBangConstants.java | 8 -
.../resources/gradle-wrapper/gradle-wrapper.jar | Bin 58910 -> 0 bytes
.../gradle-wrapper/gradle-wrapper.properties | 21 ---
.../src/main/resources/gradle-wrapper/gradlew | 185 ---------------------
.../src/main/resources/gradle-wrapper/gradlew.bat | 104 ------------
.../resources/templates/quarkus-build-gradle.tmpl | 39 -----
.../templates/quarkus-gradle-properties.tmpl | 6 -
.../templates/quarkus-settings-gradle.tmpl | 11 --
.../templates/spring-boot-build-gradle.tmpl | 31 ----
dsl/camel-jbang/camel-jbang-it/pom.xml | 14 ++
.../camel/dsl/jbang/it/CustomJarsITCase.java | 13 +-
.../apache/camel/dsl/jbang/it/ExportITCase.java | 11 --
.../camel/dsl/jbang/it/MavenGradleITCase.java | 54 ------
.../dsl/jbang/it/support/JBangTestSupport.java | 6 +-
.../src/test/resources/jbang/it/CustomJar.java | 41 +++++
.../resources/jbang/it/maven-gradle/build.gradle | 57 -------
.../core/commands/kubernetes/KubernetesExport.java | 10 +-
.../core/commands/kubernetes/KubernetesRun.java | 4 +-
48 files changed, 148 insertions(+), 1014 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 },
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-main/src/main/java/org/apache/camel/component/platform/http/main/ManagementHttpServer.java
b/components/camel-platform-http-main/src/main/java/org/apache/camel/component/platform/http/main/ManagementHttpServer.java
index 6ec3285eb3ca..05900bf0d054 100644
---
a/components/camel-platform-http-main/src/main/java/org/apache/camel/component/platform/http/main/ManagementHttpServer.java
+++
b/components/camel-platform-http-main/src/main/java/org/apache/camel/component/platform/http/main/ManagementHttpServer.java
@@ -656,9 +656,10 @@ public class ManagementHttpServer extends ServiceSupport
implements CamelContext
protected void setupJolokia() {
// load plugin
- jolokiaPlugin =
pluginRegistry.resolvePluginById(JolokiaPlatformHttpPlugin.NAME,
JolokiaPlatformHttpPlugin.class)
- .orElseThrow(() -> new RuntimeException(
- "JolokiaPlatformHttpPlugin not found. Add
camel-platform-http-jolokia dependency."));
+ jolokiaPlugin = ResolverHelper.resolveMandatoryService(camelContext,
+ "platform-http/" + JolokiaPlatformHttpPlugin.NAME,
JolokiaPlatformHttpPlugin.class,
+ "camel-platform-http-jolokia");
+ pluginRegistry.register(jolokiaPlugin);
Route jolokia = router.route(jolokiaPath + "/*");
jolokia.method(HttpMethod.GET).method(HttpMethod.POST)
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-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);
}
}
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");
diff --git
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_19.adoc
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_19.adoc
index 6545038b6f4c..f05528b0cb61 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_19.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_19.adoc
@@ -171,10 +171,6 @@ Should be changed to have semicolons as shown below:
orderId=$sku,total=$sum
----
-=== camel-json-patch
-
-The `camel-json-patch` is now deprecated - the library it uses is not active
maintained and this module does not work with Jackon 3.
-
=== camel-test-infra
The test infrastructure modules no longer produce `test-jar` artifacts. All
classes (service interfaces,
@@ -220,6 +216,11 @@ commonly used at in the top. EIPs such as `circuitBreaker`
now has `onFallback`
This order is also the same order that UI builders like Camel Karavan and
Kaoto do as well.
+=== camel-jbang
+
+Support for exporting to use Gradle as build tool has been removed (it was
deprecated and not working well)
+The deprecated options `buildToool` and `gradleWrapper` has been removed.
+
=== camel-kafka
The Kafka client library has been upgraded from 3.9.1 to 4.2.0. This is a
major version upgrade of Apache Kafka with several notable changes:
@@ -241,6 +242,10 @@ Google recommends migrating your Pub/Sub Lite workloads to
either:
* **Google Cloud Pub/Sub** → use the `camel-google-pubsub` component
* **Google Cloud Managed Service for Apache Kafka** → use the `camel-kafka`
component
+=== camel-json-patch
+
+The `camel-json-patch` is now deprecated - the library it uses is not active
maintained and this module does not work with Jackon 3.
+
=== camel-mail
When configured a custom `IdempotentRepository` on `camel-mail` endpoint, then
Camel will now auto-start
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
index ae2d6fb3cc60..f8337ba60480 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
@@ -234,10 +234,10 @@ camel run *
TIP: The run goal can also detect files that are `properties`, such as
`application.properties`.
-=== Running a Maven or Gradle based project
+=== Running a Maven based project
Camel JBang is intended for flat-file-based projects, where you run small
integrations.
-However, Camel JBang may be used as a tool for migrating existing Maven or
Gradle based projects.
+However, Camel JBang may be used as a tool for migrating existing Maven based
projects.
To make the migration easier, then JBang can do _best effort_ to run, export,
or transform these projects.
For example, if you have a Maven-based project, you can execute
@@ -247,13 +247,6 @@ For example, if you have a Maven-based project, you can
execute
camel run pom.xml
----
-or for a Gradle project
-
-[source,bash]
-----
-camel run build.gradle
-----
-
Camel JBang will then scan in `src/main/java` and `src/main/resources` for
files to include (recursive).
NOTE: Using `camel run pom.xml` is not intended as a fully compatible way of
running an existing Maven-based project. It cannot start Quarkus or Spring Boot
applications; instead, use the proper plugins/commands. The command is mainly
used to migrate from old projects.
@@ -2218,7 +2211,7 @@ The plugin uses the capabilities of the Open Source test
framework https://citru
The automated test is able to prepare required infrastructure (e.g. PostgreSQL
database, Kafka message broker) using containers and Camel infra services.
Also, the test is able to automatically start the Camel integration locally
with Camel JBang. Following from that the test is able to invoke exposed
services of the Camel integration and verify its outcome.
Once the prototyping phase with Camel JBang is complete you can include the
automated tests into the project export.
-Usually, the export creates a Maven/Gradle project on top of Quarkus or
SpringBoot and the automated tests become part of this project, so the tests
are run with the project build lifecycle.
+Usually, the export creates a Maven project on top of Quarkus or SpringBoot
and the automated tests become part of this project, so the tests are run with
the project build lifecycle.
Read about the plugin in the xref:camel-jbang-test.adoc[Camel Testing plugin]
documentation.
@@ -3796,7 +3789,7 @@ See the
https://github.com/apache/camel-kamelets-examples/tree/main/jbang/open-a
== Gathering list of dependencies
When working with Camel JBang, then dependencies are automatically resolved.
This means that
-you do not have to use a build system like Maven or Gradle to add every Camel
component
+you do not have to use a build system like Maven to add every Camel component
as a dependency.
However, you may want to know what dependencies are required to run the Camel
integration.
@@ -3984,7 +3977,7 @@ To export to another directory (copies the files), you
execute:
camel export --runtime=spring-boot --gav=com.foo:acme:1.0-SNAPSHOT
--directory=../myproject
----
-When exporting to Spring Boot then the Camel version defined in the `pom.xml`
or `build.gradle` is
+When exporting to Spring Boot then the Camel version defined in the `pom.xml`
is
the same version as Camel JBang uses. However, you can specify the Camel
version as shown below:
[source,bash]
@@ -4099,16 +4092,6 @@ As you can see the first export command will only
include `Foo.java`, and then 2
NOTE: If you have `application.properties` in the folder as well, then this
will be included in both exports.
-=== Exporting as Gradle Project
-
-Camel JBang exports by default as a Maven-based project. To use Gradle
instead, you can
-specify the `--build-tool=gradle` when exporting, such as:
-
-[source,bash]
-----
-camel export --build-tool=gradle --runtime=spring-boot
--gav=com.foo:acme:1.0-SNAPSHOT --directory=../myproject
-----
-
=== Exporting with JMX management included
Usually when exporting to Spring Boot, Quarkus or Camel Main, then JMX
management is not included out of the box.
@@ -4149,12 +4132,11 @@ The follow options related to _exporting_ or _running_,
can be configured in `ap
// jbang options: START
=== Camel JBang configurations
-The camel.jbang supports 47 options, which are listed below.
+The camel.jbang supports 45 options, which are listed below.
[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
-| *camel.jbang.buildTool* | Build tool to use (Maven or Gradle) | Maven |
String
| *camel.jbang.camel-version* | The version of Apache Camel to use | | String
| *camel.jbang.camelSpringBoot{zwsp}Version* | To use a custom Camel version
when running or export to Spring Boot | | String
| *camel.jbang.classpathFiles* | Additional files to add to classpath (Use
commas to separate multiple files). | | String
@@ -4168,7 +4150,6 @@ The camel.jbang supports 47 options, which are listed
below.
| *camel.jbang.excludes* | Exclude files by name or pattern (Use commas to
separate multiple files) | | String
| *camel.jbang.exportDir* | Directory where the project will be exported | . |
String
| *camel.jbang.gav* | Maven coordinate (groupId:artifactId:version) | | String
-| *camel.jbang.gradleWrapper* | Include Gradle Wrapper files in the exported
project | true | boolean
| *camel.jbang.groovyFiles* | Additional groovy source files to export to
src/main/resources/camel-groovy directory (Use commas to separate multiple
files) | | String
| *camel.jbang.health* | Health check at /observe/health on local HTTP server
(port 8080 by default) | false | boolean
| *camel.jbang.ignoreLoadingError* | Whether to ignore route loading and
compilation errors (use this with care!) | false | boolean
@@ -4343,7 +4324,7 @@ IMPORTANT: This feature is only intended to include
smaller groovy sources as sm
that makes it easier to use together with Camel for low-code integrations. It
is not
intended to support Groovy as a general purpose programming language for
Camel. For this kind
then you can use groovy and Java together and follow best practices for this,
such as
-using the joint-compilation via Maven / Gradle plugins during build.
+using the joint-compilation via Maven plugins during build.
== Troubleshooting
diff --git
a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-copy.adoc
b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-copy.adoc
index d0d3a850f05e..9d7b3e80d7d2 100644
---
a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-copy.adoc
+++
b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-copy.adoc
@@ -19,8 +19,7 @@ camel dependency copy [options]
[cols="2,5,1,2",options="header"]
|===
| Option | Description | Default | Type
-| `--build-property` | Maven/Gradle build properties, ex.
--build-property=prop1=foo | | List
-| `--build-tool` _(deprecated)_ | DEPRECATED: Build tool to use (maven or
gradle) (gradle is deprecated) | maven | String
+| `--build-property` | Maven build properties, ex. --build-property=prop1=foo
| | List
| `--camel-spring-boot-version` | Camel version to use with Spring Boot | |
String
| `--camel-version` | To export using a different Camel version than the
default version. | | String
| `--clean-dir` | If exporting to current directory (default) then all
existing files are preserved. Enabling this option will force cleaning current
directory including all sub dirs (use this with care) | false | boolean
@@ -30,7 +29,6 @@ camel dependency copy [options]
| `--exclude` | Exclude files by name or pattern | | List
| `--fresh` | Make sure we use fresh (i.e. non-cached) resources | false |
boolean
| `--gav` | The Maven group:artifact:version | | String
-| `--gradle-wrapper` _(deprecated)_ | DEPRECATED: Include Gradle Wrapper files
in exported project | true | boolean
| `--groovy-pre-compiled` | Whether to include pre-compiled Groovy classes in
the export (only supported with runtime=camel-main) | false | boolean
| `--hawtio` | Whether to include Hawtio web console (only available for
exporting to Spring Boot or Quarkus) | false | boolean
| `--hawtio-version` | Version of the Hawtio web console |
HawtioVersion.HAWTIO_VERSION | String
diff --git
a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-list.adoc
b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-list.adoc
index cd7e75dda8f9..2f5bcdbcf93f 100644
---
a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-list.adoc
+++
b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-list.adoc
@@ -19,8 +19,7 @@ camel dependency list [options]
[cols="2,5,1,2",options="header"]
|===
| Option | Description | Default | Type
-| `--build-property` | Maven/Gradle build properties, ex.
--build-property=prop1=foo | | List
-| `--build-tool` _(deprecated)_ | DEPRECATED: Build tool to use (maven or
gradle) (gradle is deprecated) | maven | String
+| `--build-property` | Maven build properties, ex. --build-property=prop1=foo
| | List
| `--camel-spring-boot-version` | Camel version to use with Spring Boot | |
String
| `--camel-version` | To export using a different Camel version than the
default version. | | String
| `--clean-dir` | If exporting to current directory (default) then all
existing files are preserved. Enabling this option will force cleaning current
directory including all sub dirs (use this with care) | false | boolean
@@ -30,7 +29,6 @@ camel dependency list [options]
| `--exclude` | Exclude files by name or pattern | | List
| `--fresh` | Make sure we use fresh (i.e. non-cached) resources | false |
boolean
| `--gav` | The Maven group:artifact:version | | String
-| `--gradle-wrapper` _(deprecated)_ | DEPRECATED: Include Gradle Wrapper files
in exported project | true | boolean
| `--groovy-pre-compiled` | Whether to include pre-compiled Groovy classes in
the export (only supported with runtime=camel-main) | false | boolean
| `--hawtio` | Whether to include Hawtio web console (only available for
exporting to Spring Boot or Quarkus) | false | boolean
| `--hawtio-version` | Version of the Hawtio web console |
HawtioVersion.HAWTIO_VERSION | String
diff --git
a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-update.adoc
b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-update.adoc
index bc004afa5d61..f90aa9e28f13 100644
---
a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-update.adoc
+++
b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-update.adoc
@@ -19,8 +19,7 @@ camel dependency update [options]
[cols="2,5,1,2",options="header"]
|===
| Option | Description | Default | Type
-| `--build-property` | Maven/Gradle build properties, ex.
--build-property=prop1=foo | | List
-| `--build-tool` _(deprecated)_ | DEPRECATED: Build tool to use (maven or
gradle) (gradle is deprecated) | maven | String
+| `--build-property` | Maven build properties, ex. --build-property=prop1=foo
| | List
| `--camel-spring-boot-version` | Camel version to use with Spring Boot | |
String
| `--camel-version` | To export using a different Camel version than the
default version. | | String
| `--clean` | Regenerate list of dependencies (do not keep existing
dependencies). Not supported for pom.xml | | boolean
@@ -31,7 +30,6 @@ camel dependency update [options]
| `--exclude` | Exclude files by name or pattern | | List
| `--fresh` | Make sure we use fresh (i.e. non-cached) resources | false |
boolean
| `--gav` | The Maven group:artifact:version | | String
-| `--gradle-wrapper` _(deprecated)_ | DEPRECATED: Include Gradle Wrapper files
in exported project | true | boolean
| `--groovy-pre-compiled` | Whether to include pre-compiled Groovy classes in
the export (only supported with runtime=camel-main) | false | boolean
| `--hawtio` | Whether to include Hawtio web console (only available for
exporting to Spring Boot or Quarkus) | false | boolean
| `--hawtio-version` | Version of the Hawtio web console |
HawtioVersion.HAWTIO_VERSION | String
diff --git
a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-export.adoc
b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-export.adoc
index 23dbb66d6c15..516845c858c7 100644
--- a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-export.adoc
+++ b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-export.adoc
@@ -19,8 +19,7 @@ camel export [options]
[cols="2,5,1,2",options="header"]
|===
| Option | Description | Default | Type
-| `--build-property` | Maven/Gradle build properties, ex.
--build-property=prop1=foo | | List
-| `--build-tool` _(deprecated)_ | DEPRECATED: Build tool to use (maven or
gradle) (gradle is deprecated) | maven | String
+| `--build-property` | Maven build properties, ex. --build-property=prop1=foo
| | List
| `--camel-spring-boot-version` | Camel version to use with Spring Boot | |
String
| `--camel-version` | To export using a different Camel version than the
default version. | | String
| `--clean-dir` | If exporting to current directory (default) then all
existing files are preserved. Enabling this option will force cleaning current
directory including all sub dirs (use this with care) | false | boolean
@@ -30,7 +29,6 @@ camel export [options]
| `--exclude` | Exclude files by name or pattern | | List
| `--fresh` | Make sure we use fresh (i.e. non-cached) resources | false |
boolean
| `--gav` | The Maven group:artifact:version | | String
-| `--gradle-wrapper` _(deprecated)_ | DEPRECATED: Include Gradle Wrapper files
in exported project | true | boolean
| `--groovy-pre-compiled` | Whether to include pre-compiled Groovy classes in
the export (only supported with runtime=camel-main) | false | boolean
| `--hawtio` | Whether to include Hawtio web console (only available for
exporting to Spring Boot or Quarkus) | false | boolean
| `--hawtio-version` | Version of the Hawtio web console |
HawtioVersion.HAWTIO_VERSION | String
diff --git
a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-sbom.adoc
b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-sbom.adoc
index e82f8f7b9ae4..bb869a20c6bc 100644
--- a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-sbom.adoc
+++ b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-sbom.adoc
@@ -19,8 +19,7 @@ camel sbom [options]
[cols="2,5,1,2",options="header"]
|===
| Option | Description | Default | Type
-| `--build-property` | Maven/Gradle build properties, ex.
--build-property=prop1=foo | | List
-| `--build-tool` _(deprecated)_ | DEPRECATED: Build tool to use (maven or
gradle) (gradle is deprecated) | maven | String
+| `--build-property` | Maven build properties, ex. --build-property=prop1=foo
| | List
| `--camel-spring-boot-version` | Camel version to use with Spring Boot | |
String
| `--camel-version` | To export using a different Camel version than the
default version. | | String
| `--clean-dir` | If exporting to current directory (default) then all
existing files are preserved. Enabling this option will force cleaning current
directory including all sub dirs (use this with care) | false | boolean
@@ -31,7 +30,6 @@ camel sbom [options]
| `--exclude` | Exclude files by name or pattern | | List
| `--fresh` | Make sure we use fresh (i.e. non-cached) resources | false |
boolean
| `--gav` | The Maven group:artifact:version | | String
-| `--gradle-wrapper` _(deprecated)_ | DEPRECATED: Include Gradle Wrapper files
in exported project | true | boolean
| `--groovy-pre-compiled` | Whether to include pre-compiled Groovy classes in
the export (only supported with runtime=camel-main) | false | boolean
| `--hawtio` | Whether to include Hawtio web console (only available for
exporting to Spring Boot or Quarkus) | false | boolean
| `--hawtio-version` | Version of the Hawtio web console |
HawtioVersion.HAWTIO_VERSION | String
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-commands-metadata.json
b/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-commands-metadata.json
index 040138e6926b..5af741efc0b4 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-commands-metadata.json
+++
b/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-commands-metadata.json
@@ -6,12 +6,12 @@
{ "name": "completion", "fullName": "completion", "description": "Generate
completion script for bash\/zsh", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.Complete", "options": [ { "names":
"-h,--help", "description": "Display the help and sub-commands", "javaType":
"boolean", "type": "boolean" } ] },
{ "name": "config", "fullName": "config", "description": "Get and set user
configuration values", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.config.ConfigCommand", "options": [ {
"names": "-h,--help", "description": "Display the help and sub-commands",
"javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "get",
"fullName": "config get", "description": "Display user configuration value",
"sourceClass": "org.apache.camel.dsl.jbang.core.commands.config. [...]
{ "name": "debug", "fullName": "debug", "description": "Debug local Camel
integration", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Debug",
"options": [ { "names": "--ago", "description": "Use ago instead of yyyy-MM-dd
HH:mm:ss in timestamp.", "javaType": "boolean", "type": "boolean" }, { "names":
"--background", "description": "Run in the background", "defaultValue":
"false", "javaType": "boolean", "type": "boolean" }, { "names":
"--background-wait", "description": "To [...]
- { "name": "dependency", "fullName": "dependency", "description": "Displays
all Camel dependencies required to run", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.DependencyCommand", "options": [ {
"names": "-h,--help", "description": "Display the help and sub-commands",
"javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name":
"copy", "fullName": "dependency copy", "description": "Copies all Camel
dependencies required to run to a specific directory", "sourc [...]
+ { "name": "dependency", "fullName": "dependency", "description": "Displays
all Camel dependencies required to run", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.DependencyCommand", "options": [ {
"names": "-h,--help", "description": "Display the help and sub-commands",
"javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name":
"copy", "fullName": "dependency copy", "description": "Copies all Camel
dependencies required to run to a specific directory", "sourc [...]
{ "name": "dirty", "fullName": "dirty", "description": "Check if there are
dirty files from previous Camel runs that did not terminate gracefully",
"sourceClass": "org.apache.camel.dsl.jbang.core.commands.process.Dirty",
"options": [ { "names": "--clean", "description": "Clean dirty files which are
no longer in use", "defaultValue": "false", "javaType": "boolean", "type":
"boolean" }, { "names": "-h,--help", "description": "Display the help and
sub-commands", "javaType": "boolean", " [...]
{ "name": "doc", "fullName": "doc", "description": "Shows documentation
for kamelet, component, and other Camel resources", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.catalog.CatalogDoc", "options": [ {
"names": "--camel-version", "description": "To use a different Camel version
than the default version", "javaType": "java.lang.String", "type": "string" },
{ "names": "--download", "description": "Whether to allow automatic downloading
JAR dependencies (over the internet [...]
{ "name": "eval", "fullName": "eval", "description": "Evaluate Camel
expressions and scripts", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.EvalCommand", "options": [ { "names":
"-h,--help", "description": "Display the help and sub-commands", "javaType":
"boolean", "type": "boolean" } ], "subcommands": [ { "name": "expression",
"fullName": "eval expression", "description": "Evaluates Camel expression",
"sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.EvalEx [...]
{ "name": "explain", "fullName": "explain", "description": "Explain what a
Camel route does using AI\/LLM", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.Explain", "options": [ { "names":
"--api-key", "description": "API key for authentication. Also reads
OPENAI_API_KEY or LLM_API_KEY env vars", "javaType": "java.lang.String",
"type": "string" }, { "names": "--api-type", "description": "API type: 'ollama'
or 'openai' (OpenAI-compatible)", "defaultValue": "ollama", "javaTyp [...]
- { "name": "export", "fullName": "export", "description": "Export to other
runtimes (Camel Main, Spring Boot, or Quarkus)", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.Export", "options": [ { "names":
"--build-property", "description": "Maven\/Gradle build properties, ex.
--build-property=prop1=foo", "javaType": "java.util.List", "type": "array" }, {
"names": "--build-tool", "description": "DEPRECATED: Build tool to use (maven
or gradle) (gradle is deprecated)", "defaultV [...]
+ { "name": "export", "fullName": "export", "description": "Export to other
runtimes (Camel Main, Spring Boot, or Quarkus)", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.Export", "options": [ { "names":
"--build-property", "description": "Maven build properties, ex.
--build-property=prop1=foo", "javaType": "java.util.List", "type": "array" }, {
"names": "--camel-spring-boot-version", "description": "Camel version to use
with Spring Boot", "javaType": "java.lang.String", "ty [...]
{ "name": "get", "fullName": "get", "description": "Get status of Camel
integrations", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.process.CamelStatus", "options": [ {
"names": "--watch", "description": "Execute periodically and showing output
fullscreen", "javaType": "boolean", "type": "boolean" }, { "names":
"-h,--help", "description": "Display the help and sub-commands", "javaType":
"boolean", "type": "boolean" } ], "subcommands": [ { "name": "bean",
"fullName": "get [...]
{ "name": "harden", "fullName": "harden", "description": "Suggest security
hardening for Camel routes using AI\/LLM", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.Harden", "options": [ { "names":
"--api-key", "description": "API key for authentication. Also reads
OPENAI_API_KEY or LLM_API_KEY env vars", "javaType": "java.lang.String",
"type": "string" }, { "names": "--api-type", "description": "API type: 'ollama'
or 'openai' (OpenAI-compatible)", "defaultValue": "ollama", [...]
{ "name": "hawtio", "fullName": "hawtio", "description": "Launch Hawtio
web console", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.process.Hawtio", "options": [ {
"names": "--openUrl", "description": "To automatic open Hawtio web console in
the web browser", "defaultValue": "true", "javaType": "boolean", "type":
"boolean" }, { "names": "--port", "description": "Port number to use for Hawtio
web console (port 8888 by default)", "defaultValue": "8888", "javaType": "int",
"t [...]
@@ -23,7 +23,7 @@
{ "name": "plugin", "fullName": "plugin", "description": "Manage plugins
that add sub-commands to this CLI", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.plugin.PluginCommand", "options": [ {
"names": "-h,--help", "description": "Display the help and sub-commands",
"javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "add",
"fullName": "plugin add", "description": "Add new plugin", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.plugin.PluginA [...]
{ "name": "ps", "fullName": "ps", "description": "List running Camel
integrations", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.process.ListProcess", "options": [ {
"names": "--json", "description": "Output in JSON Format", "javaType":
"boolean", "type": "boolean" }, { "names": "--pid", "description": "List only
pid in the output", "javaType": "boolean", "type": "boolean" }, { "names":
"--remote", "description": "Break down counters into remote\/total pairs",
"javaType": [...]
{ "name": "run", "fullName": "run", "description": "Run as local Camel
integration", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Run",
"options": [ { "names": "--background", "description": "Run in the background",
"defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names":
"--background-wait", "description": "To wait for run in background to startup
successfully, before returning", "defaultValue": "true", "javaType": "boolean",
"type": "boolean" }, { [...]
- { "name": "sbom", "fullName": "sbom", "description": "Generate a CycloneDX
or SPDX SBOM for a specific project", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.SBOMGenerator", "options": [ {
"names": "--build-property", "description": "Maven\/Gradle build properties,
ex. --build-property=prop1=foo", "javaType": "java.util.List", "type": "array"
}, { "names": "--build-tool", "description": "DEPRECATED: Build tool to use
(maven or gradle) (gradle is deprecated)", "defaultValu [...]
+ { "name": "sbom", "fullName": "sbom", "description": "Generate a CycloneDX
or SPDX SBOM for a specific project", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.SBOMGenerator", "options": [ {
"names": "--build-property", "description": "Maven build properties, ex.
--build-property=prop1=foo", "javaType": "java.util.List", "type": "array" }, {
"names": "--camel-spring-boot-version", "description": "Camel version to use
with Spring Boot", "javaType": "java.lang.String", "type" [...]
{ "name": "script", "fullName": "script", "description": "Run Camel
integration as shell script for terminal scripting", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.Script", "options": [ { "names":
"--logging", "description": "Can be used to turn on logging (logs to file in
<user home>\/.camel directory)", "defaultValue": "false", "javaType":
"boolean", "type": "boolean" }, { "names": "--logging-level", "description":
"Logging level ()", "defaultValue": "info", "javaType [...]
{ "name": "shell", "fullName": "shell", "description": "Interactive Camel
JBang shell.", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Shell",
"options": [ { "names": "-h,--help", "description": "Display the help and
sub-commands", "javaType": "boolean", "type": "boolean" } ] },
{ "name": "stop", "fullName": "stop", "description": "Shuts down running
Camel integrations", "sourceClass":
"org.apache.camel.dsl.jbang.core.commands.process.StopProcess", "options": [ {
"names": "--kill", "description": "To force killing the process (SIGKILL)",
"javaType": "boolean", "type": "boolean" }, { "names": "-h,--help",
"description": "Display the help and sub-commands", "javaType": "boolean",
"type": "boolean" } ] },
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-configuration-metadata.json
b/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-configuration-metadata.json
index 22ca438bb84d..01c0f4bbcdec 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-configuration-metadata.json
+++
b/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/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 },
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
index 8f6e5a735374..7ac476c14e9b 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
@@ -37,13 +37,11 @@ import org.apache.camel.util.FileUtil;
import org.apache.camel.util.IOHelper;
import picocli.CommandLine.Command;
-import static
org.apache.camel.dsl.jbang.core.common.CamelJBangConstants.BUILD_TOOL;
import static
org.apache.camel.dsl.jbang.core.common.CamelJBangConstants.CAMEL_SPRING_BOOT_VERSION;
import static
org.apache.camel.dsl.jbang.core.common.CamelJBangConstants.CAMEL_VERSION;
import static
org.apache.camel.dsl.jbang.core.common.CamelJBangConstants.EXCLUDES;
import static
org.apache.camel.dsl.jbang.core.common.CamelJBangConstants.EXPORT_DIR;
import static org.apache.camel.dsl.jbang.core.common.CamelJBangConstants.GAV;
-import static
org.apache.camel.dsl.jbang.core.common.CamelJBangConstants.GRADLE_WRAPPER;
import static
org.apache.camel.dsl.jbang.core.common.CamelJBangConstants.JAVA_VERSION;
import static
org.apache.camel.dsl.jbang.core.common.CamelJBangConstants.KAMELETS_VERSION;
import static
org.apache.camel.dsl.jbang.core.common.CamelJBangConstants.LOCAL_KAMELET_DIR;
@@ -186,10 +184,7 @@ public class Export extends ExportBaseCommand {
this.springBootVersion = props.getProperty(SPRING_BOOT_VERSION,
this.springBootVersion);
this.mavenWrapper
= "true".equals(props.getProperty(MAVEN_WRAPPER,
this.mavenWrapper ? "true" : "false"));
- this.gradleWrapper
- = "true".equals(props.getProperty(GRADLE_WRAPPER,
this.gradleWrapper ? "true" : "false"));
this.exportDir = props.getProperty(EXPORT_DIR, this.exportDir);
- this.buildTool = props.getProperty(BUILD_TOOL, this.buildTool);
this.openapi = props.getProperty(OPEN_API, this.openapi);
this.repositories = props.getProperty(REPOS, this.repositories);
this.mavenSettings = props.getProperty(MAVEN_SETTINGS,
this.mavenSettings);
@@ -249,8 +244,6 @@ public class Export extends ExportBaseCommand {
cmd.quarkusVersion = this.quarkusVersion;
cmd.springBootVersion = this.springBootVersion;
cmd.mavenWrapper = this.mavenWrapper;
- cmd.gradleWrapper = this.gradleWrapper;
- cmd.buildTool = this.buildTool;
cmd.quiet = this.quiet;
cmd.buildProperties = this.buildProperties;
cmd.openapi = this.openapi;
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
index cadd13b095a6..261bf91a6b8f 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
@@ -203,16 +203,6 @@ public abstract class ExportBaseCommand extends
CamelCommand {
description = "Include Maven Wrapper files in exported
project")
protected boolean mavenWrapper = true;
- @CommandLine.Option(names = { "--gradle-wrapper" }, defaultValue = "true",
- description = "DEPRECATED: Include Gradle Wrapper
files in exported project")
- @Deprecated
- protected boolean gradleWrapper = true;
-
- @CommandLine.Option(names = { "--build-tool" }, defaultValue = "maven",
- description = "DEPRECATED: Build tool to use (maven or
gradle) (gradle is deprecated)")
- @Deprecated
- protected String buildTool = "maven";
-
@CommandLine.Option(names = { "--open-api" }, description = "Adds an
OpenAPI spec from the given file (json or yaml file)")
protected String openapi;
@@ -250,7 +240,7 @@ public abstract class ExportBaseCommand extends
CamelCommand {
protected boolean packageScanJars;
@CommandLine.Option(names = { "--build-property" },
- description = "Maven/Gradle build properties, ex.
--build-property=prop1=foo")
+ description = "Maven build properties, ex.
--build-property=prop1=foo")
protected List<String> buildProperties = new ArrayList<>();
@CommandLine.Option(names = { "--prop", "--property" },
@@ -936,35 +926,6 @@ public abstract class ExportBaseCommand extends
CamelCommand {
FileUtil.setPosixFilePermissions(mvnwCmdPath, "rwxr-xr-x");
}
- protected void copyGradleWrapper() throws Exception {
- Path wrapperPath = Paths.get(BUILD_DIR, "gradle/wrapper");
- Files.createDirectories(wrapperPath);
- // copy files
- Path gradlewPath = Paths.get(BUILD_DIR, "gradlew");
- Path gradlewBatPath = Paths.get(BUILD_DIR, "gradlew.bat");
- Path wrapperJarPath = wrapperPath.resolve("gradle-wrapper.jar");
- Path wrapperPropsPath =
wrapperPath.resolve("gradle-wrapper.properties");
-
- try (InputStream is =
ExportBaseCommand.class.getClassLoader().getResourceAsStream("gradle-wrapper/gradlew"))
{
- Files.copy(is, gradlewPath, StandardCopyOption.REPLACE_EXISTING);
- }
- try (InputStream is =
ExportBaseCommand.class.getClassLoader().getResourceAsStream("gradle-wrapper/gradlew.bat"))
{
- Files.copy(is, gradlewBatPath,
StandardCopyOption.REPLACE_EXISTING);
- }
- try (InputStream is
- =
ExportBaseCommand.class.getClassLoader().getResourceAsStream("gradle-wrapper/gradle-wrapper.jar"))
{
- Files.copy(is, wrapperJarPath,
StandardCopyOption.REPLACE_EXISTING);
- }
- try (InputStream is
- =
ExportBaseCommand.class.getClassLoader().getResourceAsStream("gradle-wrapper/gradle-wrapper.properties"))
{
- Files.copy(is, wrapperPropsPath,
StandardCopyOption.REPLACE_EXISTING);
- }
-
- // set execute file permission on gradlew/gradlew.bat files
- FileUtil.setPosixFilePermissions(gradlewPath, "rwxr-xr-x");
- FileUtil.setPosixFilePermissions(gradlewBatPath, "rwxr-xr-x");
- }
-
protected String applicationPropertyLine(String key, String value) {
return key + "=" + value;
}
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
index a68728e1da25..0d9fe58cc3ec 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
@@ -55,14 +55,6 @@ class ExportCamelMain extends Export {
printer().printErr("--gav must be in syntax:
groupId:artifactId:version");
return 1;
}
- if (!buildTool.equals("maven") && !buildTool.equals("gradle")) {
- printer().printErr("--build-tool must either be maven or gradle,
was: " + buildTool);
- return 1;
- }
- if (buildTool.equals("gradle")) {
- printer().printErr("--build-tool=gradle is not support yet for
camel-main runtime.");
- return 1;
- }
// the settings file has information what to export
Path settings =
CommandLineHelper.getWorkDir().resolve(Run.RUN_SETTINGS_FILE);
@@ -163,12 +155,10 @@ class ExportCamelMain extends Export {
// copy agent JARs and remove as dependency
copyAgentDependencies(deps);
deps.removeIf(d -> d.startsWith("agent:"));
- if ("maven".equals(buildTool)) {
- createMavenPom(settings, profile,
- buildDir.resolve("pom.xml"), deps, srcPackageName);
- if (mavenWrapper) {
- copyMavenWrapper();
- }
+ createMavenPom(settings, profile,
+ buildDir.resolve("pom.xml"), deps, srcPackageName);
+ if (mavenWrapper) {
+ copyMavenWrapper();
}
copyDockerFiles(BUILD_DIR);
String appJar = Paths.get("target", ids[1] + "-" + ids[2] +
".jar").toString();
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
index 029ae2d7d4fd..bd3b4366ec51 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
@@ -60,13 +60,6 @@ class ExportQuarkus extends Export {
printer().printErr("--gav must be in syntax:
groupId:artifactId:version");
return 1;
}
- if (!buildTool.equals("maven") && !buildTool.equals("gradle")) {
- printer().printErr("--build-tool must either be maven or gradle,
was: " + buildTool);
- return 1;
- }
- if (buildTool.equals("gradle")) {
- printer().println("WARN: --build-tool=gradle is deprecated.");
- }
exportBaseDir = exportBaseDir != null ? exportBaseDir : Path.of(".");
Path profile = exportBaseDir.resolve("application.properties");
@@ -142,18 +135,9 @@ class ExportQuarkus extends Export {
Set<String> deps = resolveDependencies(settings, profile);
// copy local lib JARs
copyLocalLibDependencies(deps);
- if ("maven".equals(buildTool)) {
- createMavenPom(settings, buildDir.resolve("pom.xml"), deps);
- if (mavenWrapper) {
- copyMavenWrapper();
- }
- } else if ("gradle".equals(buildTool)) {
- createGradleProperties(buildDir.resolve("gradle.properties"));
- createSettingsGradle(buildDir.resolve("settings.gradle"));
- createBuildGradle(settings, buildDir.resolve("build.gradle"),
deps);
- if (gradleWrapper) {
- copyGradleWrapper();
- }
+ createMavenPom(settings, buildDir.resolve("pom.xml"), deps);
+ if (mavenWrapper) {
+ copyMavenWrapper();
}
if (cleanExportDir || !exportDir.equals(".")) {
@@ -243,123 +227,6 @@ class ExportQuarkus extends Export {
return fileName;
}
- private void createGradleProperties(Path output) throws Exception {
- InputStream is =
ExportQuarkus.class.getClassLoader().getResourceAsStream("templates/quarkus-gradle-properties.tmpl");
- String context = IOHelper.loadText(is);
- IOHelper.close(is);
-
- context = context.replaceFirst("\\{\\{ \\.QuarkusGroupId }}",
quarkusGroupId);
- context = context.replaceFirst("\\{\\{ \\.QuarkusArtifactId }}",
quarkusArtifactId);
- context = context.replaceAll("\\{\\{ \\.QuarkusVersion }}",
quarkusVersion);
-
- Files.writeString(output, context);
- }
-
- private void createSettingsGradle(Path output) throws Exception {
- String[] ids = gav.split(":");
-
- InputStream is =
ExportQuarkus.class.getClassLoader().getResourceAsStream("templates/quarkus-settings-gradle.tmpl");
- String context = IOHelper.loadText(is);
- IOHelper.close(is);
-
- context = context.replaceFirst("\\{\\{ \\.GroupId }}", ids[0]);
- context = context.replaceFirst("\\{\\{ \\.ArtifactId }}", ids[1]);
- context = context.replaceFirst("\\{\\{ \\.Version }}", ids[2]);
-
- Files.writeString(output, context);
- }
-
- private void createBuildGradle(Path settings, Path gradleBuild,
Set<String> deps) throws Exception {
- String[] ids = gav.split(":");
-
- InputStream is =
ExportSpringBoot.class.getClassLoader().getResourceAsStream("templates/quarkus-build-gradle.tmpl");
- String context = IOHelper.loadText(is);
- IOHelper.close(is);
-
- Properties prop = new CamelCaseOrderedProperties();
- RuntimeUtil.loadProperties(prop, settings.toFile());
- // quarkus controls the camel version
- String repos = getMavenRepositories(settings, prop, quarkusVersion);
-
- CamelCatalog catalog = CatalogLoader.loadQuarkusCatalog(repos,
quarkusVersion, quarkusGroupId, download);
- if (camelVersion == null) {
- camelVersion = catalog.getCatalogVersion();
- }
-
- context = context.replaceFirst("\\{\\{ \\.GroupId }}", ids[0]);
- context = context.replaceFirst("\\{\\{ \\.ArtifactId }}", ids[1]);
- context = context.replaceFirst("\\{\\{ \\.Version }}", ids[2]);
- context = context.replaceFirst("\\{\\{ \\.QuarkusGroupId }}",
quarkusGroupId);
- context = context.replaceFirst("\\{\\{ \\.QuarkusArtifactId }}",
quarkusArtifactId);
- context = context.replaceAll("\\{\\{ \\.QuarkusVersion }}",
quarkusVersion);
- context = context.replaceAll("\\{\\{ \\.JavaVersion }}", javaVersion);
- context = context.replaceAll("\\{\\{ \\.CamelVersion }}",
camelVersion);
-
- if (repos == null || repos.isEmpty()) {
- context = context.replaceFirst("\\{\\{ \\.MavenRepositories }}",
"");
- } else {
- StringBuilder sb = new StringBuilder();
- for (String repo : repos.split(",")) {
- sb.append(" maven {\n");
- sb.append(" url '").append(repo).append("'\n");
- if (repo.contains("snapshots")) {
- sb.append(" mavenContent {\n");
- sb.append(" snapshotsOnly()\n");
- sb.append(" }\n");
- }
- sb.append(" }\n");
- }
- context = context.replaceFirst("\\{\\{ \\.MavenRepositories }}",
sb.toString());
- }
-
- List<MavenGav> gavs = new ArrayList<>();
- for (String dep : deps) {
- MavenGav gav = parseMavenGav(dep);
- String gid = gav.getGroupId();
- String aid = gav.getArtifactId();
- // transform to camel-quarkus extension GAV
- if ("org.apache.camel".equals(gid)) {
- String qaid = aid.replace("camel-", "camel-quarkus-");
- ArtifactModel<?> am =
catalog.modelFromMavenGAV("org.apache.camel.quarkus", qaid, null);
- if (am != null) {
- // use quarkus extension
- gav.setGroupId(am.getGroupId());
- gav.setArtifactId(am.getArtifactId());
- gav.setVersion(null); // uses BOM so version should not be
included
- } else {
- // there is no quarkus extension so use plain camel
- gav.setVersion(camelVersion);
- }
- }
- gavs.add(gav);
- }
-
- // replace dependencies with special quarkus dependencies if we can
find any
- replaceQuarkusDependencies(gavs);
-
- // sort artifacts
- gavs.sort(mavenGavComparator());
-
- StringBuilder sb = new StringBuilder();
- for (MavenGav gav : gavs) {
- if ("lib".equals(gav.getPackaging())) {
- // special for lib JARs
- sb.append(" implementation
files('lib/").append(gav.getArtifactId())
-
.append("-").append(gav.getVersion()).append(".jar')\n");
- } else if ("camel-kamelets-utils".equals(gav.getArtifactId())) {
- // special for camel-kamelets-utils
- sb.append(" implementation ('").append(gav).append("')
{\n");
- sb.append(" exclude group: 'org.apache.camel', module:
'*'\n");
- sb.append(" }\n");
- } else {
- sb.append(" implementation '").append(gav).append("'\n");
- }
- }
- context = context.replaceFirst("\\{\\{ \\.CamelDependencies }}",
sb.toString());
-
- Files.writeString(gradleBuild, context);
- }
-
private void replaceQuarkusDependencies(List<MavenGav> gavs) {
// load information about dependencies that should be replaced
Map<MavenGav, MavenGav> replace = new HashMap<>();
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
index 03e008560fbe..5070cd2e0914 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
@@ -58,13 +58,6 @@ class ExportSpringBoot extends Export {
printer().printErr("--gav must be in syntax:
groupId:artifactId:version");
return 1;
}
- if (!buildTool.equals("maven") && !buildTool.equals("gradle")) {
- printer().printErr("--build-tool must either be maven or gradle,
was: " + buildTool);
- return 1;
- }
- if (buildTool.equals("gradle")) {
- printer().println("WARN: --build-tool=gradle is deprecated.");
- }
exportBaseDir = exportBaseDir != null ? exportBaseDir : Path.of(".");
Path profile = exportBaseDir.resolve("application.properties");
@@ -156,17 +149,9 @@ class ExportSpringBoot extends Export {
}
return prop;
});
- if ("maven".equals(buildTool)) {
- createMavenPom(settings, profile, buildDir.resolve("pom.xml"),
deps);
- if (mavenWrapper) {
- copyMavenWrapper();
- }
- } else if ("gradle".equals(buildTool)) {
- createSettingsGradle(buildDir.resolve("settings.gradle"));
- createBuildGradle(settings, buildDir.resolve("build.gradle"),
deps);
- if (gradleWrapper) {
- copyGradleWrapper();
- }
+ createMavenPom(settings, profile, buildDir.resolve("pom.xml"), deps);
+ if (mavenWrapper) {
+ copyMavenWrapper();
}
copyDockerFiles(BUILD_DIR);
String appJar = "target" + File.separator + ids[1] + "-" + ids[2] +
".jar";
@@ -183,13 +168,6 @@ class ExportSpringBoot extends Export {
return 0;
}
- private void createSettingsGradle(Path file) throws Exception {
- String[] ids = gav.split(":");
-
- String text = String.format("rootProject.name = '%s'", ids[1]);
- IOHelper.writeText(text, Files.newOutputStream(file));
- }
-
private void createMavenPom(Path settings, Path profile, Path pom,
Set<String> deps) throws Exception {
String[] ids = gav.split(":");
@@ -295,89 +273,6 @@ class ExportSpringBoot extends Export {
IOHelper.writeText(context, Files.newOutputStream(pom));
}
- private void createBuildGradle(Path settings, Path gradleBuild,
Set<String> deps) throws Exception {
- String[] ids = gav.split(":");
-
- String context =
readResourceTemplate("templates/spring-boot-build-gradle.tmpl");
-
- Properties prop = new CamelCaseOrderedProperties();
- RuntimeUtil.loadProperties(prop, settings);
- String repos = getMavenRepositories(settings, prop,
camelSpringBootVersion);
-
- CamelCatalog catalog = CatalogLoader.loadSpringBootCatalog(repos,
camelSpringBootVersion, download);
- String camelVersion = catalog.getLoadedVersion();
-
- context = context.replaceFirst("\\{\\{ \\.GroupId }}", ids[0]);
- context = context.replaceFirst("\\{\\{ \\.ArtifactId }}", ids[1]);
- context = context.replaceFirst("\\{\\{ \\.Version }}", ids[2]);
- context = context.replaceAll("\\{\\{ \\.SpringBootVersion }}",
springBootVersion);
- context = context.replaceFirst("\\{\\{ \\.JavaVersion }}",
javaVersion);
- context = context.replaceAll("\\{\\{ \\.CamelVersion }}",
camelVersion);
- context = context.replaceFirst("\\{\\{ \\.CamelSpringBootVersion }}",
- Objects.requireNonNullElse(camelSpringBootVersion,
camelVersion));
-
- if (repos == null || repos.isEmpty()) {
- context = context.replaceFirst("\\{\\{ \\.MavenRepositories }}",
"");
- } else {
- StringBuilder sb = new StringBuilder();
- for (String repo : repos.split(",")) {
- sb.append(" maven {\n");
- sb.append(" url '").append(repo).append("'\n");
- if (repo.contains("snapshots")) {
- sb.append(" mavenContent {\n");
- sb.append(" snapshotsOnly()\n");
- sb.append(" }\n");
- }
- sb.append(" }\n");
- }
- context = context.replaceFirst("\\{\\{ \\.MavenRepositories }}",
sb.toString());
- }
-
- List<MavenGav> gavs = new ArrayList<>();
- for (String dep : deps) {
- MavenGav gav = parseMavenGav(dep);
- String gid = gav.getGroupId();
- String aid = gav.getArtifactId();
-
- // transform to camel-spring-boot starter GAV
- if ("org.apache.camel".equals(gid)) {
- ArtifactModel<?> am =
catalog.modelFromMavenGAV("org.apache.camel.springboot", aid + "-starter",
null);
- if (am != null) {
- // use spring-boot starter
- gav.setGroupId(am.getGroupId());
- gav.setArtifactId(am.getArtifactId());
- gav.setVersion(am.getVersion());
- } else {
- // there is no spring boot starter so use plain camel
- gav.setVersion(camelVersion);
- }
- }
- gavs.add(gav);
- }
-
- // sort artifacts
- gavs.sort(mavenGavComparator());
-
- StringBuilder sb = new StringBuilder();
- for (MavenGav gav : gavs) {
- if ("lib".equals(gav.getPackaging())) {
- // special for lib JARs
- sb.append(" implementation
files('lib/").append(gav.getArtifactId())
-
.append("-").append(gav.getVersion()).append(".jar')\n");
- } else if ("camel-kamelets-utils".equals(gav.getArtifactId())) {
- // special for camel-kamelets-utils
- sb.append(" implementation ('").append(gav).append("')
{\n");
- sb.append(" exclude group: 'org.apache.camel', module:
'*'\n");
- sb.append(" }\n");
- } else {
- sb.append(" implementation '").append(gav).append("'\n");
- }
- }
- context = context.replaceFirst("\\{\\{ \\.CamelDependencies }}",
sb.toString());
-
- IOHelper.writeText(context, Files.newOutputStream(gradleBuild));
- }
-
@Override
protected Set<String> resolveDependencies(Path settings, Path profile)
throws Exception {
Set<String> answer = super.resolveDependencies(settings, profile);
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
index 935f8d603fc6..a042542637b4 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
@@ -754,15 +754,15 @@ public class Run extends CamelCommand {
files.add(OPENAPI_GENERATED_FILE);
}
- // if we only run pom.xml/build.gradle then auto discover from the
Maven/Gradle based project
- if (files.size() == 1 && (files.get(0).endsWith("pom.xml") ||
files.get(0).endsWith("build.gradle"))) {
+ // if we only run pom.xml then auto discover from the Maven based
project
+ if (files.size() == 1 && (files.get(0).endsWith("pom.xml"))) {
Path projectDir = Path.of(files.get(0)).toAbsolutePath();
// use a better name when running
if (name == null || "CamelJBang".equals(name)) {
name = RunHelper.mavenArtifactId(projectDir);
}
// find source files
- files = RunHelper.scanMavenOrGradleProject(projectDir.getParent());
+ files = RunHelper.scanMavenProject(projectDir.getParent());
// include extra dependencies from pom.xml
var pomDependencies =
RunHelper.scanMavenDependenciesFromPom(projectDir);
addDependencies(pomDependencies.toArray(new String[0]));
@@ -1122,7 +1122,6 @@ public class Run extends CamelCommand {
eq.javaLiveReload = this.dev;
eq.symbolicLink = this.dev;
eq.mavenWrapper = true;
- eq.gradleWrapper = false;
eq.quarkusVersion =
PropertyResolver.fromSystemProperty(QUARKUS_VERSION, () -> this.quarkusVersion);
eq.quarkusGroupId =
PropertyResolver.fromSystemProperty(QUARKUS_GROUP_ID, () ->
this.quarkusGroupId);
eq.quarkusArtifactId =
PropertyResolver.fromSystemProperty(QUARKUS_ARTIFACT_ID, () ->
this.quarkusArtifactId);
@@ -1230,7 +1229,6 @@ public class Run extends CamelCommand {
eq.javaLiveReload = false;
eq.symbolicLink = this.dev;
eq.mavenWrapper = true;
- eq.gradleWrapper = false;
eq.springBootVersion = this.springBootVersion;
eq.camelVersion = this.camelVersion;
eq.camelSpringBootVersion =
PropertyResolver.fromSystemProperty(CAMEL_SPRING_BOOT_VERSION,
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/RunHelper.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/RunHelper.java
index b7aa8830316d..b315fafafd62 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/RunHelper.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/RunHelper.java
@@ -164,7 +164,7 @@ public final class RunHelper {
return value;
}
- public static List<String> scanMavenOrGradleProject(Path parentPath) {
+ public static List<String> scanMavenProject(Path parentPath) {
List<String> answer = new ArrayList<>();
// scan as maven based project
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/TransformRoute.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/TransformRoute.java
index 300e919a4e88..1c04f5f520ef 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/TransformRoute.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/TransformRoute.java
@@ -96,6 +96,8 @@ public class TransformRoute extends CamelCommand {
main.addInitialProperty("camel.main.dumpRoutesResolvePlaceholders",
Boolean.toString(resolvePlaceholders));
main.addInitialProperty("camel.main.dumpRoutesUriAsParameters",
Boolean.toString(uriAsParameters));
main.addInitialProperty("camel.main.dumpRoutesOutput", target);
+ // turn debug off as this can otherwise include source
location in dump
+ main.addInitialProperty("camel.debug.enabled", "false");
main.addInitialProperty(CamelJBangConstants.TRANSFORM, "true");
main.addInitialProperty("camel.component.properties.ignoreMissingProperty",
"true");
if (ignoreLoadingError) {
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CamelJBangConstants.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CamelJBangConstants.java
index 0c62a6979f78..435119ffe579 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CamelJBangConstants.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CamelJBangConstants.java
@@ -92,14 +92,6 @@ public final class CamelJBangConstants {
javaType = "boolean", defaultValue = "true")
public static final String MAVEN_WRAPPER = "camel.jbang.mavenWrapper";
- @Metadata(description = "Include Gradle Wrapper files in the exported
project",
- javaType = "boolean", defaultValue = "true")
- public static final String GRADLE_WRAPPER = "camel.jbang.gradleWrapper";
-
- @Metadata(description = "Build tool to use (Maven or Gradle)",
- javaType = "String", defaultValue = "Maven")
- public static final String BUILD_TOOL = "camel.jbang.buildTool";
-
@Metadata(description = "Directory where the project will be exported",
javaType = "String", defaultValue = ".")
public static final String EXPORT_DIR = "camel.jbang.exportDir";
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/gradle-wrapper/gradle-wrapper.jar
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/gradle-wrapper/gradle-wrapper.jar
deleted file mode 100644
index 62d4c053550b..000000000000
Binary files
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/gradle-wrapper/gradle-wrapper.jar
and /dev/null differ
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/gradle-wrapper/gradle-wrapper.properties
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/gradle-wrapper/gradle-wrapper.properties
deleted file mode 100644
index 8e8899bc243f..000000000000
---
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/gradle-wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/gradle-wrapper/gradlew
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/gradle-wrapper/gradlew
deleted file mode 100755
index fbd7c515832d..000000000000
--- a/dsl/camel-jbang/camel-jbang-core/src/main/resources/gradle-wrapper/gradlew
+++ /dev/null
@@ -1,185 +0,0 @@
-#!/usr/bin/env sh
-
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to
pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn () {
- echo "$*"
-}
-
-die () {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
- NONSTOP* )
- nonstop=true
- ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no
'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ;
then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\"
\"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ###
Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ###
Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=`expr $i + 1`
- done
- case $i in
- 0) set -- ;;
- 1) set -- "$args0" ;;
- 2) set -- "$args0" "$args1" ;;
- 3) set -- "$args0" "$args1" "$args2" ;;
- 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5"
"$args6" ;;
- 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5"
"$args6" "$args7" ;;
- 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5"
"$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Escape application args
-save () {
- for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ;
done
- echo " "
-}
-APP_ARGS=`save "$@"`
-
-# Collect all arguments for the java command, following the shell quoting and
substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
"\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\""
org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-
-exec "$JAVACMD" "$@"
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/gradle-wrapper/gradlew.bat
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/gradle-wrapper/gradlew.bat
deleted file mode 100755
index a9f778a7a964..000000000000
---
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/gradle-wrapper/gradlew.bat
+++ /dev/null
@@ -1,104 +0,0 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS
to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your
PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS%
"-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%"
org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code
instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/quarkus-build-gradle.tmpl
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/quarkus-build-gradle.tmpl
deleted file mode 100644
index f64a9a4f46a6..000000000000
---
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/quarkus-build-gradle.tmpl
+++ /dev/null
@@ -1,39 +0,0 @@
-plugins {
- id 'java'
- id 'io.quarkus'
-}
-
-repositories {
- mavenCentral()
- mavenLocal()
-{{ .MavenRepositories }}
-}
-
-dependencies {
- implementation
enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
- implementation
enforcedPlatform("${quarkusPlatformGroupId}:quarkus-camel-bom:${quarkusPlatformVersion}")
- implementation 'io.quarkus:quarkus-arc'
-{{ .CamelDependencies }}
- testImplementation 'io.quarkus:quarkus-junit5'
- testImplementation
'org.apache.camel.quarkus:camel-quarkus-junit5:${quarkusPlatformVersion}'
-}
-
-group = '{{ .GroupId }}'
-version = '{{ .Version }}'
-
-java {
- sourceCompatibility = '{{ .JavaVersion }}'
- targetCompatibility = '{{ .JavaVersion }}'
-}
-
-test {
- systemProperty "java.util.logging.manager",
"org.jboss.logmanager.LogManager"
-}
-compileJava {
- options.encoding = 'UTF-8'
- options.compilerArgs << '-parameters'
-}
-
-compileTestJava {
- options.encoding = 'UTF-8'
-}
\ No newline at end of file
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/quarkus-gradle-properties.tmpl
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/quarkus-gradle-properties.tmpl
deleted file mode 100644
index 75c914f229d9..000000000000
---
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/quarkus-gradle-properties.tmpl
+++ /dev/null
@@ -1,6 +0,0 @@
-#Gradle properties
-quarkusPluginId=io.quarkus
-quarkusPluginVersion={{ .QuarkusVersion }}
-quarkusPlatformGroupId={{ .QuarkusGroupId }}
-quarkusPlatformArtifactId={{ .QuarkusArtifactId }}
-quarkusPlatformVersion={{ .QuarkusVersion }}
\ No newline at end of file
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/quarkus-settings-gradle.tmpl
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/quarkus-settings-gradle.tmpl
deleted file mode 100644
index 4d63110b59d5..000000000000
---
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/quarkus-settings-gradle.tmpl
+++ /dev/null
@@ -1,11 +0,0 @@
-pluginManagement {
- repositories {
- mavenCentral()
- gradlePluginPortal()
- mavenLocal()
- }
- plugins {
- id "${quarkusPluginId}" version "${quarkusPluginVersion}"
- }
-}
-rootProject.name='{{ .ArtifactId }}'
\ No newline at end of file
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-build-gradle.tmpl
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-build-gradle.tmpl
deleted file mode 100644
index 0c28385abb36..000000000000
---
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-build-gradle.tmpl
+++ /dev/null
@@ -1,31 +0,0 @@
-plugins {
- id 'java'
- id 'org.springframework.boot' version '{{ .SpringBootVersion }}'
- id 'io.spring.dependency-management' version '1.1.5'
-}
-
-group = '{{ .GroupId }}'
-version = '{{ .Version }}'
-
-java {
- sourceCompatibility = '{{ .JavaVersion }}'
-}
-
-repositories {
- mavenCentral()
- mavenLocal()
-{{ .MavenRepositories }}
-}
-
-dependencies {
- implementation 'org.springframework.boot:spring-boot-starter-web'
- implementation 'org.springframework.boot:spring-boot-starter-actuator'
- implementation 'org.apache.camel.springboot:camel-spring-boot-starter:{{
.CamelVersion }}'
-{{ .CamelDependencies }}
- testImplementation 'org.springframework.boot:spring-boot-starter-test'
- testImplementation 'org.apache.camel:camel-test-spring-junit5:{{
.CamelVersion }}'
-}
-
-tasks.named('test') {
- useJUnitPlatform()
-}
\ No newline at end of file
diff --git a/dsl/camel-jbang/camel-jbang-it/pom.xml
b/dsl/camel-jbang/camel-jbang-it/pom.xml
index f2199c15032f..d0454aeb6afe 100644
--- a/dsl/camel-jbang/camel-jbang-it/pom.xml
+++ b/dsl/camel-jbang/camel-jbang-it/pom.xml
@@ -277,6 +277,20 @@
<failsafe.forkCount>1</failsafe.forkCount>
<failsafe.excludedGroups>container-only</failsafe.excludedGroups>
</properties>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-test-infra-cli</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-test-infra-mosquitto</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
</profile>
</profiles>
diff --git
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/CustomJarsITCase.java
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/CustomJarsITCase.java
index b612b90b24d4..1da09964a522 100644
---
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/CustomJarsITCase.java
+++
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/CustomJarsITCase.java
@@ -26,16 +26,13 @@ public class CustomJarsITCase extends JBangTestSupport {
@Test
public void testCustomJars() throws IOException {
- copyResourceInDataFolder(TestResources.CIRCUIT_BREAKER);
+ copyResourceInDataFolder(TestResources.CUSTOM_JAR);
Assertions
.assertThatCode(() -> execute(
- String.format("run %s/CircuitBreakerRoute.java
--max-seconds=30", mountPoint())))
+ String.format("run %s/CustomJar.java
--max-seconds=30", mountPoint())))
.as("the application without dependency will cause error")
- .hasStackTraceContaining("Failed to create route:
circuitBreaker")
- .hasStackTraceContaining(
- "Cannot find camel-resilience4j or
camel-microprofile-fault-tolerance on the classpath.");
- executeBackground(String.format("run %s/CircuitBreakerRoute.java
--dep=camel-timer,camel-resilience4j", mountPoint()));
- checkLogContains("timer called");
- checkLogContains("Fallback message", 10);
+ .hasStackTraceContaining("Compilation error");
+ executeBackground(String.format("run %s/CustomJar.java
--dep=org.apache.commons:commons-text:1.15.0", mountPoint()));
+ checkLogContains("Random password");
}
}
diff --git
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/ExportITCase.java
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/ExportITCase.java
index 4d645fa55177..af6ce440f2f8 100644
---
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/ExportITCase.java
+++
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/ExportITCase.java
@@ -70,17 +70,6 @@ public class ExportITCase extends JBangTestSupport {
assertFileInDataFolderExists("src/main/resources/camel/server.yaml");
}
- @Test
- @Tag("spring-boot")
- public void testExportGradle() {
- execute(String.format(
- "export --build-tool=gradle --runtime=spring-boot
--gav=com.foo:acme:1.0-SNAPSHOT --directory=%s",
- mountPoint()));
- assertFileInDataFolderExists("gradlew");
- assertFileInDataFolderExists("build.gradle");
- assertFileInDataFolderExists("gradle/wrapper/gradle-wrapper.jar");
- }
-
@Test
@Tag("quarkus")
public void testExportProperties() throws IOException {
diff --git
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/MavenGradleITCase.java
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/MavenGradleITCase.java
deleted file mode 100644
index a632e797b715..000000000000
---
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/MavenGradleITCase.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.dsl.jbang.it;
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-
-import org.apache.camel.dsl.jbang.it.support.JBangTestSupport;
-import org.junit.jupiter.api.Test;
-
-public class MavenGradleITCase extends JBangTestSupport {
-
- @Test
- public void runFromMavenModuleTest() {
- execInContainer(String.format("mkdir %s/mvn-app", mountPoint()));
- execInContainer(String.format("cd %s/mvn-app && %s init cheese.xml",
mountPoint(), getMainCommand()));
- execInContainer(String.format(
- "cd %s/mvn-app && %s export --runtime=camel-main
--gav=org.jbang:maven-app:1.0-SNAPSHOT", mountPoint(),
- getMainCommand()));
- execInContainer(String.format("cd %s/mvn-app && %s run pom.xml
--background", mountPoint(), getMainCommand()));
- checkLogContains("Apache Camel " + version() + " (maven-app) started");
- checkLogContains("Hello Camel from route1");
- }
-
- @Test
- public void runFromGradleTest() throws IOException {
- execInContainer(String.format("mkdir %s/gradle-app", mountPoint()));
- execInContainer(String.format("cd %s/gradle-app && %s init
cheese.xml", mountPoint(), getMainCommand()));
- execInContainer(String.format(
- "cd %s/gradle-app && %s export --runtime=camel-main
--gav=org.jbang:gradle-app:1.0-SNAPSHOT", mountPoint(),
- getMainCommand()));
- copyResourceInDataFolder(TestResources.BUILD_GRADLE);
- Files.move(Path.of(String.format("%s/build.gradle", getDataFolder())),
- Path.of(String.format("%s/gradle-app/build.gradle",
getDataFolder())));
- execInContainer(String.format("cd %s/gradle-app && %s run pom.xml
--background", mountPoint(), getMainCommand()));
- checkLogContains("Apache Camel " + version() + " (gradle-app)
started");
- checkLogContains("Hello Camel from route1");
- }
-}
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 74d9e8da358f..d81da695a221 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
@@ -45,7 +45,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.camel.test.infra.cli.common.CliProperties;
import org.apache.camel.test.infra.cli.services.CliService;
import org.apache.camel.test.infra.cli.services.CliServiceFactory;
-import org.apache.commons.io.FileUtils;
+import org.apache.camel.util.FileUtil;
import org.assertj.core.api.Assertions;
import org.awaitility.Awaitility;
import org.junit.jupiter.api.AfterEach;
@@ -90,7 +90,7 @@ public abstract class JBangTestSupport {
assertNoErrors();
logger.debug("clean up data folder");
if (containerDataFolder != null) {
- FileUtils.deleteQuietly(new File(containerDataFolder));
+ FileUtil.removeDir(new File(containerDataFolder));
}
}
@@ -100,10 +100,10 @@ public abstract class JBangTestSupport {
HELLO_NAME("helloName.xml", "/jbang/it/helloName.xml"),
JOKE("joke.yaml", "/jbang/it/joke.yaml"),
MQQT_CONSUMER("mqttConsumer.yaml", "/jbang/it/mqttConsumer.yaml"),
- BUILD_GRADLE("build.gradle", "/jbang/it/maven-gradle/build.gradle"),
DIR_ROUTE("FromDirectoryRoute.java",
"/jbang/it/from-source-dir/FromDirectoryRoute.java"),
SERVER_ROUTE("server.yaml", "/jbang/it/server.yaml"),
CIRCUIT_BREAKER("CircuitBreakerRoute.java",
"/jbang/it/CircuitBreakerRoute.java"),
+ CUSTOM_JAR("CustomJar.java", "/jbang/it/CustomJar.java"),
SRC_MAPPING_DATA("data.json", "/jbang/it/data-mapping/src/data.json"),
SRC_MAPPING_TEMPLATE("transform.yaml",
"/jbang/it/data-mapping/src/transform.yaml"),
COMP_MAPPING_DATA("data.xml",
"/jbang/it/data-mapping/components/data.xml"),
diff --git
a/dsl/camel-jbang/camel-jbang-it/src/test/resources/jbang/it/CustomJar.java
b/dsl/camel-jbang/camel-jbang-it/src/test/resources/jbang/it/CustomJar.java
new file mode 100644
index 000000000000..998c83979d81
--- /dev/null
+++ b/dsl/camel-jbang/camel-jbang-it/src/test/resources/jbang/it/CustomJar.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.RouteBuilder;
+
+import org.apache.commons.text.RandomStringGenerator;
+
+public class CustomJar extends RouteBuilder {
+ @Override
+ public void configure() {
+ from("timer:x?repeatCount=1")
+ .log("timer called")
+ .process(new Processor() {
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ RandomStringGenerator alphanumeric =
RandomStringGenerator.builder()
+ .withinRange('0', '9')
+ .withinRange('A', 'Z')
+ .withinRange('a', 'z')
+ .build();
+
exchange.getMessage().setBody(alphanumeric.generate(8));
+ }
+ })
+ .log("Random password: ${body}");
+ }
+}
diff --git
a/dsl/camel-jbang/camel-jbang-it/src/test/resources/jbang/it/maven-gradle/build.gradle
b/dsl/camel-jbang/camel-jbang-it/src/test/resources/jbang/it/maven-gradle/build.gradle
deleted file mode 100644
index c3e003fd08c7..000000000000
---
a/dsl/camel-jbang/camel-jbang-it/src/test/resources/jbang/it/maven-gradle/build.gradle
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*
- * This file was generated by the Gradle 'init' task.
- */
-
-plugins {
- id 'java-library'
- id 'maven-publish'
-}
-
-repositories {
- mavenLocal()
-}
-
-dependencies {
- api libs.org.apache.camel.camel.core
- api libs.org.apache.camel.camel.main
- runtimeOnly libs.org.apache.logging.log4j.log4j.slf4j2.impl
- runtimeOnly libs.org.apache.logging.log4j.log4j.core
- testImplementation libs.org.apache.camel.camel.test.main.junit5
-}
-
-group = 'org.jbang'
-version = '1.0-SNAPSHOT'
-description = 'A Camel Route'
-java.sourceCompatibility = JavaVersion.VERSION_17
-
-publishing {
- publications {
- maven(MavenPublication) {
- from(components.java)
- }
- }
-}
-
-tasks.withType(JavaCompile) {
- options.encoding = 'UTF-8'
-}
-
-tasks.withType(Javadoc) {
- options.encoding = 'UTF-8'
-}
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java
index 20aa42601d9d..3782d7191412 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java
@@ -54,7 +54,7 @@ import org.apache.camel.util.StringHelper;
import picocli.CommandLine;
import picocli.CommandLine.Command;
-@Command(name = "export", description = "Export as Maven/Gradle project that
contains a Kubernetes deployment manifest",
+@Command(name = "export", description = "Export as Maven project that contains
a Kubernetes deployment manifest",
sortOptions = false)
public class KubernetesExport extends Export {
@@ -168,7 +168,6 @@ public class KubernetesExport extends Export {
camelSpringBootVersion = configurer.camelSpringBootVersion;
quarkusGroupId = configurer.quarkusGroupId;
quarkusArtifactId = configurer.quarkusArtifactId;
- buildTool = configurer.buildTool;
openapi = configurer.openapi;
exportDir = configurer.exportDir;
packageName = configurer.packageName;
@@ -177,7 +176,6 @@ public class KubernetesExport extends Export {
javaLiveReload = configurer.javaLiveReload;
ignoreLoadingError = configurer.ignoreLoadingError;
mavenWrapper = configurer.mavenWrapper;
- gradleWrapper = configurer.gradleWrapper;
fresh = configurer.fresh;
download = configurer.download;
skipPlugins = configurer.skipPlugins;
@@ -211,10 +209,6 @@ public class KubernetesExport extends Export {
printer().println("Exporting application ...");
- if (!buildTool.equals("maven")) {
- printer().printf("--build-tool=%s is not yet supported%n",
buildTool);
- }
-
// Resolve image group and registry
String resolvedImageGroup = resolveImageGroup();
String resolvedImageRegistry = resolveImageRegistry();
@@ -641,7 +635,6 @@ public class KubernetesExport extends Export {
String camelSpringBootVersion,
String quarkusGroupId,
String quarkusArtifactId,
- String buildTool,
String openapi,
String exportDir,
String packageName,
@@ -650,7 +643,6 @@ public class KubernetesExport extends Export {
boolean javaLiveReload,
boolean ignoreLoadingError,
boolean mavenWrapper,
- boolean gradleWrapper,
boolean fresh,
boolean download,
boolean packageScanJars,
diff --git
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java
index e02ce08f1dbe..3da2ca43b9ae 100644
---
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java
+++
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java
@@ -275,7 +275,7 @@ public class KubernetesRun extends KubernetesBaseCommand {
String packageName;
@CommandLine.Option(names = { "--build-property" },
- description = "Maven/Gradle build properties, ex.
--build-property=prop1=foo")
+ description = "Maven properties, ex.
--build-property=prop1=foo")
List<String> buildProperties = new ArrayList<>();
@CommandLine.Option(names = { "--disable-auto" },
@@ -457,7 +457,6 @@ public class KubernetesRun extends KubernetesBaseCommand {
camelSpringBootVersion,
quarkusGroupId,
quarkusArtifactId,
- "maven",
openApi,
workingDir,
packageName,
@@ -467,7 +466,6 @@ public class KubernetesRun extends KubernetesBaseCommand {
true,
true,
false,
- true,
download,
packageScanJars,
(quiet || output != null),