This is an automated email from the ASF dual-hosted git repository. ggrzybek pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit e17061f04cd42f0d8b20b69e031e06bdb55bc917 Author: Grzegorz Grzybek <gr.grzy...@gmail.com> AuthorDate: Thu May 18 12:52:43 2023 +0200 [CAMEL-18189] camel-xml-io-dsl uses Camel own DI annotations instead of JSR-330 ones (@Inject) --- core/camel-support/pom.xml | 6 ---- .../camel/dsl/xml/io/XmlRoutesBuilderLoader.java | 33 ++++++++-------------- .../apache/camel/dsl/xml/io/XmlLoadAppTest.java | 3 -- .../org/apache/camel/dsl/xml/io/beans/Greeter.java | 16 ++++++----- .../camel/dsl/xml/io/beans/GreeterMessage.java | 8 ++---- tooling/camel-tooling-maven/pom.xml | 6 ++++ .../camel/tooling/maven/MavenDownloaderImpl.java | 2 +- .../camel/tooling/maven}/support/DIRegistry.java | 3 +- .../camel/tooling/maven/MavenResolverTest.java | 2 +- .../tooling/maven}/support/DIRegistryTest.java | 2 +- 10 files changed, 35 insertions(+), 46 deletions(-) diff --git a/core/camel-support/pom.xml b/core/camel-support/pom.xml index bdab2c3a19b..ab29756f251 100644 --- a/core/camel-support/pom.xml +++ b/core/camel-support/pom.xml @@ -56,12 +56,6 @@ <artifactId>camel-util-json</artifactId> </dependency> - <dependency> - <groupId>jakarta.inject</groupId> - <artifactId>jakarta.inject-api</artifactId> - <version>${jakarta-inject-version}</version> - </dependency> - <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> diff --git a/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java index e4e1a02c3ed..fb4387dffe1 100644 --- a/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java +++ b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java @@ -18,11 +18,9 @@ package org.apache.camel.dsl.xml.io; import java.util.ArrayList; import java.util.List; -import java.util.Optional; import java.util.Set; -import jakarta.inject.Named; - +import org.apache.camel.BindToRegistry; import org.apache.camel.CamelContextAware; import org.apache.camel.api.management.ManagedResource; import org.apache.camel.builder.RouteBuilder; @@ -39,13 +37,12 @@ import org.apache.camel.model.TemplatedRoutesDefinition; import org.apache.camel.model.app.BeansDefinition; import org.apache.camel.model.rest.RestDefinition; import org.apache.camel.model.rest.RestsDefinition; -import org.apache.camel.spi.BeanRepository; +import org.apache.camel.spi.Injector; import org.apache.camel.spi.PackageScanClassResolver; +import org.apache.camel.spi.Registry; import org.apache.camel.spi.Resource; import org.apache.camel.spi.annotations.RoutesLoader; import org.apache.camel.support.CachedResource; -import org.apache.camel.support.DIRegistry; -import org.apache.camel.support.DefaultRegistry; import org.apache.camel.xml.in.ModelParser; import org.apache.camel.xml.io.util.XmlStreamDetector; import org.apache.camel.xml.io.util.XmlStreamInfo; @@ -133,26 +130,20 @@ public class XmlRoutesBuilderLoader extends RouteBuilderLoaderSupport { packagesToScan.add(cs.getBasePackage()); }); if (!packagesToScan.isEmpty()) { - DIRegistry registry = null; - DefaultRegistry camelRegistry = getCamelContext().getRegistry(DefaultRegistry.class); - if (camelRegistry != null) { - List<BeanRepository> repos = camelRegistry.getRepositories(); - if (repos != null) { - Optional<BeanRepository> diRegistry - = repos.stream().filter(r -> DIRegistry.class.isAssignableFrom(r.getClass())).findAny(); - if (diRegistry.isPresent()) { - registry = (DIRegistry) diRegistry.get(); - } - } - } + Registry registry = getCamelContext().getRegistry(); if (registry != null) { PackageScanClassResolver scanner = getCamelContext().getCamelContextExtension().getContextPlugin(PackageScanClassResolver.class); - if (scanner != null) { + Injector injector = getCamelContext().getInjector(); + if (scanner != null && injector != null) { for (String pkg : packagesToScan) { - Set<Class<?>> classes = scanner.findAnnotated(Named.class, pkg); + Set<Class<?>> classes = scanner.findAnnotated(BindToRegistry.class, pkg); for (Class<?> c : classes) { - registry.bind(c, c); + // should: + // - call org.apache.camel.spi.CamelBeanPostProcessor.postProcessBeforeInitialization + // - call org.apache.camel.spi.CamelBeanPostProcessor.postProcessAfterInitialization + // - bind to registry if @org.apache.camel.BindToRegistry is present + injector.newInstance(c, true); } } } diff --git a/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlLoadAppTest.java b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlLoadAppTest.java index 89eb56bc862..8034a36f4b0 100644 --- a/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlLoadAppTest.java +++ b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlLoadAppTest.java @@ -19,8 +19,6 @@ package org.apache.camel.dsl.xml.io; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.spi.Resource; -import org.apache.camel.support.DIRegistry; -import org.apache.camel.support.DefaultRegistry; import org.apache.camel.support.PluginHelper; import org.junit.jupiter.api.Test; @@ -32,7 +30,6 @@ public class XmlLoadAppTest { @Test public void testLoadCamelAppFromXml() throws Exception { try (DefaultCamelContext context = new DefaultCamelContext()) { - context.getCamelContextExtension().setRegistry(new DefaultRegistry(new DIRegistry())); context.start(); // load route from XML and add them to the existing camel context diff --git a/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/beans/Greeter.java b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/beans/Greeter.java index 81f29e8d34b..6bef9a02efa 100644 --- a/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/beans/Greeter.java +++ b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/beans/Greeter.java @@ -16,20 +16,22 @@ */ package org.apache.camel.dsl.xml.io.beans; -import jakarta.inject.Inject; -import jakarta.inject.Named; - +import org.apache.camel.BeanInject; +import org.apache.camel.BindToRegistry; import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.apache.camel.util.StringHelper; -@Named("bean-from-registry") +@BindToRegistry("bean-from-registry") public class Greeter implements Processor { - private final GreeterMessage message; + private GreeterMessage message; + + public Greeter() { + } - @Inject - public Greeter(GreeterMessage message) { + @BeanInject + public void setMessage(GreeterMessage message) { this.message = message; } diff --git a/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/beans/GreeterMessage.java b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/beans/GreeterMessage.java index f091c25c544..f7344b34913 100644 --- a/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/beans/GreeterMessage.java +++ b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/beans/GreeterMessage.java @@ -16,15 +16,13 @@ */ package org.apache.camel.dsl.xml.io.beans; -import jakarta.inject.Named; +import org.apache.camel.BindToRegistry; -@Named +@BindToRegistry public class GreeterMessage { - private final String msg = "Hello"; - public String getMsg() { - return msg; + return "Hello"; } } diff --git a/tooling/camel-tooling-maven/pom.xml b/tooling/camel-tooling-maven/pom.xml index adecc316e89..378cb70cc71 100644 --- a/tooling/camel-tooling-maven/pom.xml +++ b/tooling/camel-tooling-maven/pom.xml @@ -47,6 +47,12 @@ <artifactId>camel-support</artifactId> </dependency> + <dependency> + <groupId>jakarta.inject</groupId> + <artifactId>jakarta.inject-api</artifactId> + <version>${jakarta-inject-version}</version> + </dependency> + <!-- maven / maven resolver --> <dependency> <groupId>org.apache.maven</groupId> diff --git a/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloaderImpl.java b/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloaderImpl.java index ae59d11514e..3340e24fbb5 100644 --- a/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloaderImpl.java +++ b/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenDownloaderImpl.java @@ -37,8 +37,8 @@ import java.util.UUID; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; -import org.apache.camel.support.DIRegistry; import org.apache.camel.support.service.ServiceSupport; +import org.apache.camel.tooling.maven.support.DIRegistry; import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader; import org.apache.maven.model.building.DefaultModelBuilderFactory; import org.apache.maven.model.building.ModelBuilder; diff --git a/core/camel-support/src/main/java/org/apache/camel/support/DIRegistry.java b/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/support/DIRegistry.java similarity index 99% rename from core/camel-support/src/main/java/org/apache/camel/support/DIRegistry.java rename to tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/support/DIRegistry.java index 83a94967582..775f3e79b28 100644 --- a/core/camel-support/src/main/java/org/apache/camel/support/DIRegistry.java +++ b/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/support/DIRegistry.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.support; +package org.apache.camel.tooling.maven.support; import java.lang.annotation.Annotation; import java.lang.reflect.Array; @@ -39,6 +39,7 @@ import java.util.function.Supplier; import jakarta.inject.Inject; import jakarta.inject.Named; +import org.apache.camel.support.SupplierRegistry; import org.apache.camel.util.StringHelper; import org.apache.camel.util.function.Suppliers; diff --git a/tooling/camel-tooling-maven/src/test/java/org/apache/camel/tooling/maven/MavenResolverTest.java b/tooling/camel-tooling-maven/src/test/java/org/apache/camel/tooling/maven/MavenResolverTest.java index d871db62043..7ce93bdbdcc 100644 --- a/tooling/camel-tooling-maven/src/test/java/org/apache/camel/tooling/maven/MavenResolverTest.java +++ b/tooling/camel-tooling-maven/src/test/java/org/apache/camel/tooling/maven/MavenResolverTest.java @@ -26,7 +26,7 @@ import java.util.List; import java.util.Properties; import java.util.concurrent.TimeUnit; -import org.apache.camel.support.DIRegistry; +import org.apache.camel.tooling.maven.support.DIRegistry; import org.apache.camel.util.FileUtil; import org.apache.commons.codec.binary.Hex; import org.apache.http.Header; diff --git a/core/camel-support/src/test/java/org/apache/camel/support/DIRegistryTest.java b/tooling/camel-tooling-maven/src/test/java/org/apache/camel/tooling/maven/support/DIRegistryTest.java similarity index 99% rename from core/camel-support/src/test/java/org/apache/camel/support/DIRegistryTest.java rename to tooling/camel-tooling-maven/src/test/java/org/apache/camel/tooling/maven/support/DIRegistryTest.java index cb7bad6070d..f3c619d0899 100644 --- a/core/camel-support/src/test/java/org/apache/camel/support/DIRegistryTest.java +++ b/tooling/camel-tooling-maven/src/test/java/org/apache/camel/tooling/maven/support/DIRegistryTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.support; +package org.apache.camel.tooling.maven.support; import java.io.FilenameFilter; import java.io.IOException;