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 2023/08/22 05:31:49 UTC

[camel] branch main updated: CAMEL-19771: camel-core-model - RegistryBeanDefinition should be resource

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 13f192440c7 CAMEL-19771: camel-core-model - RegistryBeanDefinition should be resource
13f192440c7 is described below

commit 13f192440c7cebffc8df57c32f0de9e1e1f55c1e
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Aug 22 07:31:29 2023 +0200

    CAMEL-19771: camel-core-model - RegistryBeanDefinition should be resource
---
 .../apache/camel/model/app/RegistryBeanDefinition.java | 18 ++++++++++++++++--
 .../camel/dsl/xml/io/XmlRoutesBuilderLoader.java       | 10 ++++++----
 2 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/app/RegistryBeanDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/app/RegistryBeanDefinition.java
index 13cd644a507..fc24ba49670 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/app/RegistryBeanDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/app/RegistryBeanDefinition.java
@@ -22,10 +22,13 @@ import jakarta.xml.bind.annotation.XmlAccessType;
 import jakarta.xml.bind.annotation.XmlAccessorType;
 import jakarta.xml.bind.annotation.XmlAttribute;
 import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 import jakarta.xml.bind.annotation.XmlType;
 import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.camel.spi.Metadata;
+import org.apache.camel.spi.Resource;
+import org.apache.camel.spi.ResourceAware;
 
 /**
  * A Pojo representing simplified "bean" element to declare registry beans using any DSL. This is not the same as "bean
@@ -34,13 +37,15 @@ import org.apache.camel.spi.Metadata;
 @Metadata(label = "configuration")
 @XmlType
 @XmlAccessorType(XmlAccessType.FIELD)
-public class RegistryBeanDefinition {
+public class RegistryBeanDefinition implements ResourceAware {
+
+    @XmlTransient
+    private Resource resource;
 
     @XmlAttribute
     private String name;
     @XmlAttribute
     private String type;
-
     @XmlElement(name = "properties")
     @XmlJavaTypeAdapter(BeanPropertiesAdapter.class)
     private Map<String, Object> properties;
@@ -69,4 +74,13 @@ public class RegistryBeanDefinition {
         this.properties = properties;
     }
 
+    @Override
+    public Resource getResource() {
+        return resource;
+    }
+
+    @Override
+    public void setResource(Resource resource) {
+        this.resource = resource;
+    }
 }
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 956d98512a0..91cd9354341 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
@@ -169,8 +169,9 @@ public class XmlRoutesBuilderLoader extends RouteBuilderLoaderSupport {
             private void configureCamel(BeansDefinition app) {
                 if (!delayedRegistrations.isEmpty()) {
                     // some of the beans were not available yet, so we have to try register them now
-                    for (RegistryBeanDefinition bean : delayedRegistrations) {
-                        registerBeanDefinition(bean, false);
+                    for (RegistryBeanDefinition def : delayedRegistrations) {
+                        def.setResource(getResource());
+                        registerBeanDefinition(def, false);
                     }
                     delayedRegistrations.clear();
                 }
@@ -283,8 +284,9 @@ public class XmlRoutesBuilderLoader extends RouteBuilderLoaderSupport {
         PackageScanHelper.registerBeans(getCamelContext(), packagesToScan);
 
         // <bean>s - register Camel beans directly with Camel injection
-        for (RegistryBeanDefinition bean : app.getBeans()) {
-            registerBeanDefinition(bean, true);
+        for (RegistryBeanDefinition def : app.getBeans()) {
+            def.setResource(resource);
+            registerBeanDefinition(def, true);
         }
 
         // <s:bean>, <s:beans> and <s:alias> elements - all the elements in single BeansDefinition have