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

Reply via email to