This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch blueprint in repository https://gitbox.apache.org/repos/asf/camel.git
commit a1f0ac8aac06e42e1f1c008feada1f52ca3169b3 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Wed Aug 30 12:55:47 2023 +0200 CAMEL-19807: Move spring XML <beans> logic to its own class --- .../java/org/apache/camel/main/KameletMain.java | 8 ++-- .../xml/blueprint/BlueprintXmlBeansHandler.java | 53 ++++++++++++++++++++++ .../xml/{ => spring}/SpringXmlBeansHandler.java | 8 +++- 3 files changed, 64 insertions(+), 5 deletions(-) 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 aaea4d2631d..800dd4ecb5f 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 @@ -59,7 +59,8 @@ import org.apache.camel.main.download.PackageNameSourceLoader; import org.apache.camel.main.download.TypeConverterLoaderDownloadListener; import org.apache.camel.main.injection.AnnotationDependencyInjection; import org.apache.camel.main.util.ExtraFilesClassLoader; -import org.apache.camel.main.xml.SpringXmlBeansHandler; +import org.apache.camel.main.xml.blueprint.BlueprintXmlBeansHandler; +import org.apache.camel.main.xml.spring.SpringXmlBeansHandler; import org.apache.camel.spi.ClassResolver; import org.apache.camel.spi.CliConnector; import org.apache.camel.spi.CliConnectorFactory; @@ -100,6 +101,7 @@ public class KameletMain extends MainCommandLineSupport { private DependencyDownloaderClassLoader classLoader; private final SpringXmlBeansHandler springXmlBeansHandler = new SpringXmlBeansHandler(); + private final BlueprintXmlBeansHandler blueprintXmlBeansHandler = new BlueprintXmlBeansHandler(); public KameletMain() { configureInitialProperties(DEFAULT_KAMELETS_LOCATION); @@ -662,14 +664,14 @@ public class KameletMain extends MainCommandLineSupport { springXmlBeansHandler.processSpringBeans(camelContext, config, springXmls); } if (!blueprintXmls.isEmpty()) { - // TODO: blueprint + blueprintXmlBeansHandler.processBlueprintBeans(camelContext, config, blueprintXmls); } } @Override protected void postProcessCamelRegistry(CamelContext camelContext, MainConfigurationProperties config) { springXmlBeansHandler.createAndRegisterBeans(camelContext); - // TODO: blueprint + blueprintXmlBeansHandler.createAndRegisterBeans(camelContext); } @Override diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/xml/blueprint/BlueprintXmlBeansHandler.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/xml/blueprint/BlueprintXmlBeansHandler.java new file mode 100644 index 00000000000..959dd09a610 --- /dev/null +++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/xml/blueprint/BlueprintXmlBeansHandler.java @@ -0,0 +1,53 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.main.xml.blueprint; + +import java.util.Map; + +import org.w3c.dom.Document; + +import org.apache.camel.CamelContext; +import org.apache.camel.main.MainConfigurationProperties; +import org.apache.camel.main.xml.spring.SpringXmlBeansHandler; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Used for parsing and discovering legacy OSGi <blueprint> XML to make it runnable on camel-jbang, and for tooling to + * migrate this to modern Camel DSL in plain Camel XML or YAML DSL. + */ +public class BlueprintXmlBeansHandler { + + private static final Logger LOG = LoggerFactory.getLogger(SpringXmlBeansHandler.class); + + /** + * Parses the XML documents and discovers blueprint beans, which will be created manually via Camel. + */ + public void processBlueprintBeans( + CamelContext camelContext, MainConfigurationProperties config, final Map<String, Document> xmls) { + + LOG.debug("Loading beans from classic OSGi <blueprint> XML"); + } + + /** + * Invoked at later stage to create and register Blueprint beans into Camel {@link org.apache.camel.spi.Registry}. + */ + public void createAndRegisterBeans(CamelContext camelContext) { + + } + +} diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/xml/SpringXmlBeansHandler.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/xml/spring/SpringXmlBeansHandler.java similarity index 98% rename from dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/xml/SpringXmlBeansHandler.java rename to dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/xml/spring/SpringXmlBeansHandler.java index 6e813560e07..f84ae377082 100644 --- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/xml/SpringXmlBeansHandler.java +++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/xml/spring/SpringXmlBeansHandler.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.main.xml; +package org.apache.camel.main.xml.spring; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -60,6 +60,10 @@ import org.springframework.core.io.AbstractResource; import org.springframework.core.io.Resource; import org.springframework.core.metrics.StartupStep; +/** + * Used for parsing and discovering legacy Spring XML <beans> to make it runnable on camel-jbang, and for tooling to + * migrate this to modern Camel DSL in plain Camel XML or YAML DSL. + */ public class SpringXmlBeansHandler { private static final Logger LOG = LoggerFactory.getLogger(SpringXmlBeansHandler.class); @@ -134,7 +138,7 @@ public class SpringXmlBeansHandler { } /** - * Invoked at later stage to create and register spring beans into Camel {@link org.apache.camel.spi.Registry}. + * Invoked at later stage to create and register Spring beans into Camel {@link org.apache.camel.spi.Registry}. */ public void createAndRegisterBeans(CamelContext camelContext) { if (delayedBeans.isEmpty()) {