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:43:01 UTC

[camel] branch main updated: CAMEL-19771: camel-yaml-dsl - Inject Resource if aware

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 ebe55d4e4a1 CAMEL-19771: camel-yaml-dsl - Inject Resource if aware
ebe55d4e4a1 is described below

commit ebe55d4e4a1ef4b0fd2c83eb8435c45d6f280953
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Aug 22 07:42:47 2023 +0200

    CAMEL-19771: camel-yaml-dsl - Inject Resource if aware
---
 .../org/apache/camel/dsl/yaml/common/YamlDeserializerBase.java    | 8 ++++++++
 .../apache/camel/dsl/yaml/deserializers/BeansDeserializer.java    | 3 +++
 2 files changed, 11 insertions(+)

diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlDeserializerBase.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlDeserializerBase.java
index 9ad857c5f8a..9135519540e 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlDeserializerBase.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlDeserializerBase.java
@@ -21,6 +21,7 @@ import java.util.Locale;
 import org.apache.camel.LineNumberAware;
 import org.apache.camel.dsl.yaml.common.exception.UnsupportedFieldException;
 import org.apache.camel.dsl.yaml.common.exception.UnsupportedNodeTypeException;
+import org.apache.camel.spi.ResourceAware;
 import org.apache.camel.util.StringHelper;
 import org.snakeyaml.engine.v2.api.ConstructNode;
 import org.snakeyaml.engine.v2.nodes.MappingNode;
@@ -143,6 +144,13 @@ public abstract class YamlDeserializerBase<T> extends YamlDeserializerSupport im
                 lna.setLocation(ctx.getResource().getLocation());
             }
         }
+        if (target instanceof ResourceAware) {
+            ResourceAware ra = (ResourceAware) target;
+            YamlDeserializationContext ctx = getDeserializationContext(node);
+            if (ctx != null) {
+                ra.setResource(ctx.getResource());
+            }
+        }
     }
 
 }
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/BeansDeserializer.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/BeansDeserializer.java
index e4bb570b140..5cd0301f3eb 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/BeansDeserializer.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/main/java/org/apache/camel/dsl/yaml/deserializers/BeansDeserializer.java
@@ -54,6 +54,9 @@ public class BeansDeserializer extends YamlDeserializerSupport implements Constr
             setDeserializationContext(item, dc);
 
             RegistryBeanDefinition bean = asType(item, RegistryBeanDefinition.class);
+            if (dc != null) {
+                bean.setResource(dc.getResource());
+            }
 
             ObjectHelper.notNull(bean.getName(), "The bean name must be set");
             ObjectHelper.notNull(bean.getType(), "The bean type must be set");