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