From b8328fef4e9df2cd1ae896f6366eec34dbe64819 Mon Sep 17 00:00:00 2001 From: Claus Ibsen Date: Mon, 2 Oct 2023 14:28:25 +0200 Subject: [PATCH] camel-jbang - Transform to load blueprint and ignore some blueprint stuff --- .../org/apache/camel/reifier/ProcessorReifier.java | 4 ++-- .../camel/dsl/jbang/core/commands/Transform.java | 1 + .../org/apache/camel/dsl/xml/io/XmlModelParser.java | 11 +++++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java index 3901c54006b71..886f25f2976e3 100644 --- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java +++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java @@ -126,8 +126,6 @@ public abstract class ProcessorReifier> extends AbstractReifier { - private static final Logger LOG = LoggerFactory.getLogger(ProcessorReifier.class); - /** * Global option on {@link CamelContext#getGlobalOptions()} that tooling can use to disable all route processors, * which allows to startup Camel without wiring up and initializing all route EIPs that may use custom processors, @@ -136,6 +134,8 @@ public abstract class ProcessorReifier> extends */ public static final String DISABLE_ALL_PROCESSORS = "DisableAllProcessors"; + private static final Logger LOG = LoggerFactory.getLogger(ProcessorReifier.class); + // for custom reifiers private static final Map, BiFunction, ProcessorReifier>>> PROCESSORS = new HashMap<>(0); diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Transform.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Transform.java index ec17b149155e5..4439455a27bc8 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Transform.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Transform.java @@ -83,6 +83,7 @@ protected void doAddInitialProperty(KameletMain main) { main.addInitialProperty("camel.main.dumpRoutesUriAsParameters", "" + uriAsParameters); main.addInitialProperty("camel.main.dumpRoutesOutput", target); main.addInitialProperty("camel.jbang.transform", "true"); + main.addInitialProperty("camel.component.properties.ignoreMissingProperty", "true"); if (ignoreLoadingError) { // turn off bean method validator if ignore loading error main.addInitialProperty("camel.language.bean.validate", "false"); diff --git a/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlModelParser.java b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlModelParser.java index 1f38c614c02b3..5fe845c438ec7 100644 --- a/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlModelParser.java +++ b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlModelParser.java @@ -45,7 +45,7 @@ public XmlModelParser(Resource input, String namespace) throws IOException, XmlP @Override protected boolean handleUnexpectedElement(String namespace, String name) throws XmlPullParserException { - if (isWithinCamelContext(namespace, name)) { + if (isWithinCamelContext(namespace, name) || isAriesBlueprint(namespace)) { return true; } return super.handleUnexpectedElement(namespace, name); @@ -53,12 +53,19 @@ protected boolean handleUnexpectedElement(String namespace, String name) throws @Override protected boolean ignoreUnexpectedElement(String namespace, String name) throws XmlPullParserException { - if (isWithinCamelContext(namespace, name)) { + if (isWithinCamelContext(namespace, name) || isAriesBlueprint(namespace)) { return true; } return super.ignoreUnexpectedElement(namespace, name); } + private boolean isAriesBlueprint(String namespace) { + if (namespace != null && namespace.startsWith("http://aries.apache.org/blueprint/")) { + return true; + } + return false; + } + private boolean isWithinCamelContext(String namespace, String name) { // accept embedded inside Spring XML files or OSGi files, // so we can discover embedded inside this .