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 d539d86b493 CAMEL-21688: camel-jbang - Export to SB should enable run 
controller if no http server included, to keep SB running..
d539d86b493 is described below

commit d539d86b49387e44c6d2bb77ee1f1c7af25609af
Author: Claus Ibsen <[email protected]>
AuthorDate: Fri Jan 31 09:35:53 2025 +0100

    CAMEL-21688: camel-jbang - Export to SB should enable run controller if no 
http server included, to keep SB running..
---
 .../camel/dsl/jbang/core/commands/ExportSpringBoot.java | 17 +++++++++++------
 .../camel/dsl/jbang/core/commands/ExportTest.java       |  4 ++++
 2 files changed, 15 insertions(+), 6 deletions(-)

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 3471cdcdc48..e7f2116dd09 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
@@ -107,19 +107,24 @@ class ExportSpringBoot extends Export {
         copySourceFiles(settings, profile, srcJavaDirRoot, srcJavaDir, 
srcResourcesDir, srcCamelResourcesDir,
                 srcKameletsResourcesDir, srcPackageName);
 
+        // create main class
+        createMainClassSource(srcJavaDir, srcPackageName, mainClassname);
+        // gather dependencies
+        final Set<String> deps = resolveDependencies(settings, profile);
+        // copy local lib JARs
+        copyLocalLibDependencies(deps);
         // copy from settings to profile
         copySettingsAndProfile(settings, profile, srcResourcesDir, prop -> {
             if (!hasModeline(settings)) {
                 prop.remove("camel.main.modeline");
             }
+            // ensure spring-boot keeps running if no HTTP server included
+            boolean http = deps.stream().anyMatch(s -> 
s.contains("mvn:org.apache.camel:camel-platform-http"));
+            if (!http) {
+                prop.put("camel.springboot.main-run-controller", "true");
+            }
             return prop;
         });
-        // create main class
-        createMainClassSource(srcJavaDir, srcPackageName, mainClassname);
-        // gather dependencies
-        Set<String> deps = resolveDependencies(settings, profile);
-        // copy local lib JARs
-        copyLocalLibDependencies(deps);
         if ("maven".equals(buildTool)) {
             createMavenPom(settings, profile, new File(BUILD_DIR, "pom.xml"), 
deps);
             if (mavenWrapper) {
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportTest.java
 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportTest.java
index 1c5a760d3b5..04abd543a78 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportTest.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportTest.java
@@ -363,6 +363,10 @@ class ExportTest {
                 
Assertions.assertFalse(content.contains("camel.main.routes-include-pattern"),
                         "should not contain camel.main.routes-include-pattern 
property, was " + content);
             }
+            if (rt == RuntimeType.springBoot) {
+                
Assertions.assertTrue(content.contains("camel.springboot.main-run-controller=true"),
+                        "should contain camel.springboot.main-run-controller 
property, was " + content);
+            }
         }
     }
 

Reply via email to