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;

Reply via email to