This is an automated email from the ASF dual-hosted git repository.
orpiske 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 342e77e371e CAMEL-21434: decouple configuration references from the
KameletMain class
342e77e371e is described below
commit 342e77e371e1c0512389ead26fad4a0654044e30
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Mon Nov 11 16:04:50 2024 +0100
CAMEL-21434: decouple configuration references from the KameletMain class
---
.../apache/camel/dsl/jbang/core/commands/Run.java | 3 +-
.../jbang/core/commands/version/VersionList.java | 4 +-
.../dsl/jbang/core/common/CamelCommandHelper.java | 1 +
.../java/org/apache/camel/main/KameletMain.java | 72 +++++++++++++---------
4 files changed, 50 insertions(+), 30 deletions(-)
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 c4b2b18a8b0..d48d4bcd58d 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
@@ -67,6 +67,7 @@ import picocli.CommandLine.Command;
import picocli.CommandLine.Option;
import picocli.CommandLine.Parameters;
+import static
org.apache.camel.dsl.jbang.core.common.CamelCommandHelper.CAMEL_INSTANCE_TYPE;
import static
org.apache.camel.dsl.jbang.core.common.GistHelper.asGistSingleUrl;
import static org.apache.camel.dsl.jbang.core.common.GistHelper.fetchGistUrls;
import static
org.apache.camel.dsl.jbang.core.common.GitHubHelper.asGithubSingleUrl;
@@ -1475,7 +1476,7 @@ public class Run extends CamelCommand {
private KameletMain createMainInstance() {
KameletMain main;
if (localKameletDir == null || localKameletDir.isEmpty()) {
- main = new KameletMain();
+ main = new KameletMain(CAMEL_INSTANCE_TYPE);
} else {
StringJoiner sj = new StringJoiner(",");
String[] parts = localKameletDir.split(",");
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/version/VersionList.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/version/VersionList.java
index 7c633e9e0aa..c18827f39f3 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/version/VersionList.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/version/VersionList.java
@@ -52,6 +52,8 @@ import org.apache.camel.util.StringHelper;
import org.apache.camel.util.json.Jsoner;
import picocli.CommandLine;
+import static
org.apache.camel.dsl.jbang.core.common.CamelCommandHelper.CAMEL_INSTANCE_TYPE;
+
@CommandLine.Command(name = "list", description = "Displays available Camel
versions",
sortOptions = false)
public class VersionList extends CamelCommand {
@@ -100,7 +102,7 @@ public class VersionList extends CamelCommand {
@Override
public Integer doCall() throws Exception {
- KameletMain main = new KameletMain();
+ KameletMain main = new KameletMain(CAMEL_INSTANCE_TYPE);
List<String[]> versions;
try {
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CamelCommandHelper.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CamelCommandHelper.java
index 26ba2d85884..29a197df0d9 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CamelCommandHelper.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CamelCommandHelper.java
@@ -19,6 +19,7 @@ package org.apache.camel.dsl.jbang.core.common;
import org.apache.camel.util.json.Jsoner;
public final class CamelCommandHelper {
+ public static final String CAMEL_INSTANCE_TYPE = "camel.jbang";
private CamelCommandHelper() {
}
diff --git
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
index a1b9637fbf3..059984a0077 100644
---
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
+++
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
@@ -110,6 +110,7 @@ public class KameletMain extends MainCommandLineSupport {
public static final String DEFAULT_KAMELETS_LOCATION =
"classpath:kamelets,github:apache:camel-kamelets/kamelets";
+ private final String instanceType;
protected final MainRegistry registry = new MainRegistry();
private String profile = "dev";
private boolean download = true;
@@ -128,11 +129,22 @@ public class KameletMain extends MainCommandLineSupport {
private final SpringXmlBeansHandler springXmlBeansHandler = new
SpringXmlBeansHandler();
private final BlueprintXmlBeansHandler blueprintXmlBeansHandler = new
BlueprintXmlBeansHandler();
- public KameletMain() {
+ /**
+ * Deprecated constructor - to tightly bound to Camel JBang. Do not use.
+ */
+ @Deprecated(since = "4.9.0")
+ KameletMain() {
+ this("camel.jbang");
+ }
+
+ public KameletMain(String instanceType) {
+ this.instanceType = instanceType;
+
configureInitialProperties(DEFAULT_KAMELETS_LOCATION);
}
- public KameletMain(String overrides) {
+ public KameletMain(String overrides, String instanceType) {
+ this.instanceType = instanceType;
Objects.requireNonNull(overrides);
String locations = overrides + "," + DEFAULT_KAMELETS_LOCATION;
@@ -398,14 +410,14 @@ public class KameletMain extends MainCommandLineSupport {
@Override
protected CamelContext createCamelContext() {
- this.verbose =
"true".equals(getInitialProperties().get("camel.jbang.verbose"));
+ this.verbose =
"true".equals(getInitialProperties().get(getInstanceType() + ".verbose"));
// do not build/init camel context yet
DefaultCamelContext answer = new DefaultCamelContext(false);
// setup backlog recorder from very start
answer.getCamelContextExtension().setStartupStepRecorder(new
BacklogStartupStepRecorder());
- boolean export =
"true".equals(getInitialProperties().get("camel.jbang.export"));
+ boolean export =
"true".equals(getInitialProperties().get(getInstanceType() + ".export"));
if (export) {
// when exporting we should ignore some errors and keep attempting
to export as far as we can
addInitialProperty("camel.component.properties.ignore-missing-property",
"true");
@@ -429,7 +441,7 @@ public class KameletMain extends MainCommandLineSupport {
pc.setPropertiesFunctionResolver(new
DependencyDownloaderPropertiesFunctionResolver(answer, false));
}
- boolean prompt =
"true".equals(getInitialProperties().get("camel.jbang.prompt"));
+ boolean prompt =
"true".equals(getInitialProperties().get(getInstanceType() + ".prompt"));
if (prompt) {
answer.getPropertiesComponent().addPropertiesSource(new
PromptPropertyPlaceholderSource());
}
@@ -497,7 +509,7 @@ public class KameletMain extends MainCommandLineSupport {
answer.setLoadHealthChecks(true);
// annotation based dependency injection for camel/spring/quarkus
annotations in DSLs and Java beans
- boolean lazyBean =
"true".equals(getInitialProperties().get("camel.jbang.lazyBean"));
+ boolean lazyBean =
"true".equals(getInitialProperties().get(getInstanceType() + ".lazyBean"));
new AnnotationDependencyInjection(answer, lazyBean);
if (!silent) {
@@ -522,34 +534,34 @@ public class KameletMain extends MainCommandLineSupport {
configure().withProfile(profile);
// embed HTTP server if port is specified
- Object port =
getInitialProperties().get("camel.jbang.platform-http.port");
+ Object port = getInitialProperties().get(getInstanceType() +
".platform-http.port");
if (port != null) {
configure().httpServer().withEnabled(true);
configure().httpServer().withPort(Integer.parseInt(port.toString()));
}
- boolean console =
"true".equals(getInitialProperties().get("camel.jbang.console"));
+ boolean console =
"true".equals(getInitialProperties().get(getInstanceType() + ".console"));
if (console) {
configure().setDevConsoleEnabled(true);
configure().httpServer().withEnabled(true);
configure().httpServer().withInfoEnabled(true); // also enable
info if console is enabled
configure().httpServer().withDevConsoleEnabled(true);
}
- boolean tracing =
"true".equals(getInitialProperties().get("camel.jbang.backlogTracing"));
+ boolean tracing =
"true".equals(getInitialProperties().get(getInstanceType() +
".backlogTracing"));
if (tracing) {
configure().tracerConfig().withEnabled(true);
}
- boolean infoConsole =
"true".equals(getInitialProperties().get("camel.jbang.info"));
+ boolean infoConsole =
"true".equals(getInitialProperties().get(getInstanceType() + ".info"));
if (infoConsole) {
configure().httpServer().withEnabled(true);
configure().httpServer().withInfoEnabled(true);
}
- boolean health =
"true".equals(getInitialProperties().get("camel.jbang.health"));
+ boolean health =
"true".equals(getInitialProperties().get(getInstanceType() + ".health"));
if (health) {
configure().health().withEnabled(true);
configure().httpServer().withEnabled(true);
configure().httpServer().withHealthCheckEnabled(true);
}
- boolean metrics =
"true".equals(getInitialProperties().get("camel.jbang.metrics"));
+ boolean metrics =
"true".equals(getInitialProperties().get(getInstanceType() + ".metrics"));
if (metrics) {
configure().metrics()
.witheEnableRouteEventNotifier(true)
@@ -559,14 +571,14 @@ public class KameletMain extends MainCommandLineSupport {
configure().httpServer().withEnabled(true);
configure().httpServer().withMetricsEnabled(true);
}
- boolean ignoreLoading =
"true".equals(getInitialProperties().get("camel.jbang.ignoreLoadingError"));
+ boolean ignoreLoading =
"true".equals(getInitialProperties().get(getInstanceType() +
".ignoreLoadingError"));
if (ignoreLoading) {
configure().withRoutesCollectorIgnoreLoadingError(true);
answer.getPropertiesComponent().setIgnoreMissingProperty(true);
answer.getPropertiesComponent().setIgnoreMissingLocation(true);
}
// if transforming DSL then disable processors as we just want to work
on the model (not runtime processors)
- boolean transform =
"true".equals(getInitialProperties().get("camel.jbang.transform"));
+ boolean transform =
"true".equals(getInitialProperties().get(getInstanceType() + ".transform"));
if (transform) {
// we just want to transform, so disable all processors
answer.getGlobalOptions().put(ProcessorReifier.DISABLE_ALL_PROCESSORS, "true");
@@ -578,8 +590,8 @@ public class KameletMain extends MainCommandLineSupport {
}
// need to setup jfr early
- Object jfr = getInitialProperties().get("camel.jbang.jfr");
- Object jfrProfile =
getInitialProperties().get("camel.jbang.jfr-profile");
+ Object jfr = getInitialProperties().get(getInstanceType() + ".jfr");
+ Object jfrProfile = getInitialProperties().get(getInstanceType() +
".jfr-profile");
if ("jfr".equals(jfr) || jfrProfile != null) {
FlightRecorderStartupStepRecorder recorder = new
FlightRecorderStartupStepRecorder();
recorder.setRecording(true);
@@ -590,7 +602,7 @@ public class KameletMain extends MainCommandLineSupport {
}
// special for source compilation to a specific package based on Maven
GAV
- String gav = getInitialProperties().getProperty("camel.jbang.gav");
+ String gav = getInitialProperties().getProperty(getInstanceType() +
".gav");
if (gav != null) {
MavenGav g = MavenGav.parseGav(gav);
if (g.getGroupId() != null && g.getArtifactId() != null) {
@@ -602,17 +614,17 @@ public class KameletMain extends MainCommandLineSupport {
}
// source-dir
- String sourceDir =
getInitialProperties().getProperty("camel.jbang.sourceDir");
+ String sourceDir =
getInitialProperties().getProperty(getInstanceType() + ".sourceDir");
try {
// dependencies from CLI
- Object dependencies =
getInitialProperties().get("camel.jbang.dependencies");
+ Object dependencies = getInitialProperties().get(getInstanceType()
+ ".dependencies");
if (dependencies != null) {
answer.addService(new CommandLineDependencyDownloader(answer,
dependencies.toString()));
}
- String springBootVersion = (String)
getInitialProperties().get("camel.jbang.springBootVersion");
- String quarkusVersion = (String)
getInitialProperties().get("camel.jbang.quarkusVersion");
+ String springBootVersion = (String)
getInitialProperties().get(getInstanceType() + ".springBootVersion");
+ String quarkusVersion = (String)
getInitialProperties().get(getInstanceType() + ".quarkusVersion");
KnownDependenciesResolver knownDeps = new
KnownDependenciesResolver(answer, springBootVersion, quarkusVersion);
knownDeps.loadKnownDependencies();
@@ -647,7 +659,7 @@ public class KameletMain extends MainCommandLineSupport {
new DependencyDownloaderResourceLoader(answer, sourceDir));
answer.setInjector(new KameletMainInjector(answer.getInjector(),
stubPattern, silent));
- Object kameletsVersion =
getInitialProperties().get("camel.jbang.kameletsVersion");
+ Object kameletsVersion =
getInitialProperties().get(getInstanceType() + ".kameletsVersion");
if (kameletsVersion != null) {
answer.addService(new DependencyDownloaderKamelet(answer,
kameletsVersion.toString()));
} else {
@@ -694,7 +706,7 @@ public class KameletMain extends MainCommandLineSupport {
}
// reload with openapi
- String openapi =
getInitialProperties().getProperty("camel.jbang.open-api");
+ String openapi =
getInitialProperties().getProperty(getInstanceType() + ".open-api");
String reload =
getInitialProperties().getProperty("camel.main.routesReloadDirectory");
if (openapi != null && (reload != null || sourceDir != null)) {
// add open-api reloader that generate output to
.camel-jbang/generated-openapi.yaml
@@ -709,6 +721,10 @@ public class KameletMain extends MainCommandLineSupport {
return answer;
}
+ private String getInstanceType() {
+ return instanceType;
+ }
+
@Override
protected void autoconfigure(CamelContext camelContext) throws Exception {
ClassLoader cl = createApplicationContextClassLoader(camelContext);
@@ -731,7 +747,7 @@ public class KameletMain extends MainCommandLineSupport {
// create class loader (that are download capable) only once
// any additional files to add to classpath
ClassLoader parentCL = KameletMain.class.getClassLoader();
- String cpFiles =
getInitialProperties().getProperty("camel.jbang.classpathFiles");
+ String cpFiles =
getInitialProperties().getProperty(getInstanceType() + ".classpathFiles");
if (cpFiles != null) {
String[] arr = cpFiles.split(",");
List<String> files = new ArrayList<>();
@@ -774,7 +790,7 @@ public class KameletMain extends MainCommandLineSupport {
ExtendedCamelContext ecc = camelContext.getCamelContextExtension();
// need to configure compile work dir as its used from routes loader
when it discovered code to dynamic compile
- String dir =
getInitialProperties().getProperty("camel.jbang.compileWorkDir");
+ String dir = getInitialProperties().getProperty(getInstanceType() +
".compileWorkDir");
if (dir != null) {
CompileStrategy cs =
camelContext.getCamelContextExtension().getContextPlugin(CompileStrategy.class);
if (cs == null) {
@@ -785,8 +801,8 @@ public class KameletMain extends MainCommandLineSupport {
}
DependencyDownloaderRoutesLoader routesLoader;
- Object camelVersion =
getInitialProperties().get("camel.jbang.camelVersion");
- Object kameletsVersion =
getInitialProperties().get("camel.jbang.kameletsVersion");
+ Object camelVersion = getInitialProperties().get(getInstanceType() +
".camelVersion");
+ Object kameletsVersion = getInitialProperties().get(getInstanceType()
+ ".kameletsVersion");
if (camelVersion != null || kameletsVersion != null) {
routesLoader = new DependencyDownloaderRoutesLoader(
camelContext,
@@ -799,7 +815,7 @@ public class KameletMain extends MainCommandLineSupport {
// routes loader should ignore unknown extensions when using
--source-dir as users may drop files
// in this folder that are not Camel routes but resource files.
- String sourceDir =
getInitialProperties().getProperty("camel.jbang.sourceDir");
+ String sourceDir =
getInitialProperties().getProperty(getInstanceType() + ".sourceDir");
if (sourceDir != null) {
routesLoader.setIgnoreUnknownExtensions(true);
}