You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2025/11/19 10:24:49 UTC

(camel) branch main updated: CAMEL-22696: camel-jbang: make modeline optional as its only used for jbang //DEPS style that is not relevant for traditional CSB/CEQ (#19980)

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 81b3e72136b3 CAMEL-22696: camel-jbang: make modeline optional as its only used for jbang //DEPS style that is not relevant for traditional CSB/CEQ (#19980)
81b3e72136b3 is described below

commit 81b3e72136b31c30afd8cdc55c0885f884e6d8c1
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Nov 19 11:24:43 2025 +0100

    CAMEL-22696: camel-jbang: make modeline optional as its only used for jbang //DEPS style that is not relevant for traditional CSB/CEQ (#19980)
---
 .../java/org/apache/camel/impl/engine/DefaultRoutesLoader.java | 10 ++++++----
 .../java/org/apache/camel/impl/engine/SimpleCamelContext.java  |  8 ++------
 .../src/main/java/org/apache/camel/main/RoutesConfigurer.java  | 10 ++++++----
 .../src/main/java/org/apache/camel/support/PluginHelper.java   |  2 +-
 4 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRoutesLoader.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRoutesLoader.java
index 7faf18c30ceb..fc462f70087a 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRoutesLoader.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRoutesLoader.java
@@ -132,11 +132,13 @@ public class DefaultRoutesLoader extends ServiceSupport implements RoutesLoader,
 
         // first we need to parse for modeline to gather all the configurations
         if (camelContext.isModeline()) {
+            // parse modelines for all resources (if camel-dsl-modeline JAR is on classpath)
             ModelineFactory factory = PluginHelper.getModelineFactory(camelContext);
-            for (Map.Entry<RoutesBuilderLoader, List<Resource>> entry : groups.entrySet()) {
-                // parse modelines for all resources
-                for (Resource resource : entry.getValue()) {
-                    factory.parseModeline(resource);
+            if (factory != null) {
+                for (Map.Entry<RoutesBuilderLoader, List<Resource>> entry : groups.entrySet()) {
+                    for (Resource resource : entry.getValue()) {
+                        factory.parseModeline(resource);
+                    }
                 }
             }
         }
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java
index 9b855ffac68b..d96b9658a92e 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java
@@ -273,12 +273,8 @@ public class SimpleCamelContext extends AbstractCamelContext {
                 ModelineFactory.FACTORY,
                 ModelineFactory.class);
 
-        if (result.isPresent()) {
-            return result.get();
-        } else {
-            throw new IllegalArgumentException(
-                    "Cannot find ModelineFactory on classpath. Add camel-dsl-modeline to classpath.");
-        }
+        // camel-dsl-modeline is optional
+        return result.orElse(null);
     }
 
     @Override
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/RoutesConfigurer.java b/core/camel-main/src/main/java/org/apache/camel/main/RoutesConfigurer.java
index 1931ddbce0b1..eeba7982a96c 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/RoutesConfigurer.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/RoutesConfigurer.java
@@ -480,11 +480,13 @@ public class RoutesConfigurer extends ServiceSupport implements NonManagedServic
 
         step = recorder.beginStep(RoutesConfigurer.class, "parseModeline", "Routes Configurer");
         if (camelContext.isModeline()) {
-            // parse modelines for all resources
+            // parse modelines for all resources (if camel-dsl-modeline JAR is on classpath)
             ModelineFactory factory = PluginHelper.getModelineFactory(camelContext);
-            for (Map.Entry<RoutesBuilderLoader, List<Resource>> entry : groups.entrySet()) {
-                for (Resource resource : entry.getValue()) {
-                    factory.parseModeline(resource);
+            if (factory != null) {
+                for (Map.Entry<RoutesBuilderLoader, List<Resource>> entry : groups.entrySet()) {
+                    for (Resource resource : entry.getValue()) {
+                        factory.parseModeline(resource);
+                    }
                 }
             }
         }
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
index 1ee27042bfa9..d69f86035151 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
@@ -253,7 +253,7 @@ public final class PluginHelper {
     }
 
     /**
-     * Gets the {@link ModelineFactory}.
+     * Gets the {@link ModelineFactory} if present.
      */
     public static ModelineFactory getModelineFactory(CamelContext camelContext) {
         return getModelineFactory(camelContext.getCamelContextExtension());