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 <claus.ib...@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