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 2022/03/30 09:40:41 UTC
[camel] 01/02: CAMEL-17806: camel-yaml-dsl - Make parser more forgiving and not report weird exception if yaml is not camel route.
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
commit 982c441ee0321f508c656e58eb91984c5a65c258
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Mar 30 11:00:48 2022 +0200
CAMEL-17806: camel-yaml-dsl - Make parser more forgiving and not report weird exception if yaml is not camel route.
---
.../org/apache/camel/dsl/yaml/common/YamlDeserializerSupport.java | 8 ++++++++
.../java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java | 5 +++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlDeserializerSupport.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlDeserializerSupport.java
index 7148197..9a2376c 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlDeserializerSupport.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/main/java/org/apache/camel/dsl/yaml/common/YamlDeserializerSupport.java
@@ -258,6 +258,14 @@ public class YamlDeserializerSupport {
return (SequenceNode) node;
}
+ public static boolean isSequenceNode(Node node) {
+ if (node == null) {
+ return false;
+ }
+
+ return node.getNodeType() == NodeType.SEQUENCE;
+ }
+
public static Node getNamedNode(MappingNode node, String name) throws YamlDeserializationException {
if (node == null) {
return null;
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java
index 3d6d141..659cc81 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java
@@ -79,6 +79,7 @@ import static org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.asMapping
import static org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.asSequenceNode;
import static org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.asStringList;
import static org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.asText;
+import static org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.isSequenceNode;
import static org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.nodeAt;
import static org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.setDeserializationContext;
@@ -123,7 +124,7 @@ public class YamlRoutesBuilderLoader extends YamlRoutesBuilderLoaderSupport {
Iterator<?> it = ObjectHelper.createIterator(target);
while (it.hasNext()) {
target = it.next();
- if (target instanceof Node) {
+ if (target instanceof Node && isSequenceNode((Node) target)) {
SequenceNode seq = asSequenceNode((Node) target);
for (Node node : seq.getValue()) {
int idx = -1;
@@ -215,7 +216,7 @@ public class YamlRoutesBuilderLoader extends YamlRoutesBuilderLoaderSupport {
Iterator<?> it = ObjectHelper.createIterator(target);
while (it.hasNext()) {
target = it.next();
- if (target instanceof Node) {
+ if (target instanceof Node && isSequenceNode((Node) target)) {
SequenceNode seq = asSequenceNode((Node) target);
for (Node node : seq.getValue()) {
int idx = -1;