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 7e058efd3fb CAMEL-20674: camel-xml-io - Allow parser to santize uris from XML that may be set by end user using multi line which causes uri to be with whitespace noise. 7e058efd3fb is described below commit 7e058efd3fbd9c40c1641eda66c6f217f8540e6f Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Mon Apr 15 11:54:25 2024 +0200 CAMEL-20674: camel-xml-io - Allow parser to santize uris from XML that may be set by end user using multi line which causes uri to be with whitespace noise. --- .../java/org/apache/camel/xml/in/ModelParser.java | 18 +++++++++--------- .../main/java/org/apache/camel/xml/in/BaseParser.java | 4 ++++ .../maven/packaging/ModelXmlParserGeneratorMojo.java | 7 ++++++- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java index 8b16a1acddd..1c430a68830 100644 --- a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java +++ b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java @@ -479,7 +479,7 @@ public class ModelParser extends BaseParser { protected FromDefinition doParseFromDefinition() throws IOException, XmlPullParserException { return doParse(new FromDefinition(), (def, key, val) -> { switch (key) { - case "uri": def.setUri(val); break; + case "uri": def.setUri(sanitizeUri(val)); break; case "variableReceive": def.setVariableReceive(val); break; default: return optionalIdentifiedDefinitionAttributeHandler().accept(def, key, val); } @@ -536,7 +536,7 @@ public class ModelParser extends BaseParser { protected InterceptFromDefinition doParseInterceptFromDefinition() throws IOException, XmlPullParserException { return doParse(new InterceptFromDefinition(), (def, key, val) -> { if ("uri".equals(key)) { - def.setUri(val); + def.setUri(sanitizeUri(val)); return true; } return processorDefinitionAttributeHandler().accept(def, key, val); @@ -547,7 +547,7 @@ public class ModelParser extends BaseParser { switch (key) { case "afterUri": def.setAfterUri(val); break; case "skipSendToOriginalEndpoint": def.setSkipSendToOriginalEndpoint(val); break; - case "uri": def.setUri(val); break; + case "uri": def.setUri(sanitizeUri(val)); break; default: return processorDefinitionAttributeHandler().accept(def, key, val); } return true; @@ -1564,7 +1564,7 @@ public class ModelParser extends BaseParser { protected <T extends SendDefinition> AttributeHandler<T> sendDefinitionAttributeHandler() { return (def, key, val) -> { if ("uri".equals(key)) { - def.setUri(val); + def.setUri(sanitizeUri(val)); return true; } return processorDefinitionAttributeHandler().accept(def, key, val); @@ -1578,7 +1578,7 @@ public class ModelParser extends BaseParser { case "cacheSize": def.setCacheSize(val); break; case "ignoreInvalidEndpoint": def.setIgnoreInvalidEndpoint(val); break; case "pattern": def.setPattern(val); break; - case "uri": def.setUri(val); break; + case "uri": def.setUri(sanitizeUri(val)); break; case "variableReceive": def.setVariableReceive(val); break; case "variableSend": def.setVariableSend(val); break; default: return processorDefinitionAttributeHandler().accept(def, key, val); @@ -1985,7 +1985,7 @@ public class ModelParser extends BaseParser { case "serviceChooserRef": def.setServiceChooserRef(val); break; case "serviceDiscoveryRef": def.setServiceDiscoveryRef(val); break; case "serviceFilterRef": def.setServiceFilterRef(val); break; - case "uri": def.setUri(val); break; + case "uri": def.setUri(sanitizeUri(val)); break; default: return identifiedTypeAttributeHandler().accept(def, key, val); } return true; @@ -2039,7 +2039,7 @@ public class ModelParser extends BaseParser { case "serviceChooserRef": def.setServiceChooserRef(val); break; case "serviceDiscoveryRef": def.setServiceDiscoveryRef(val); break; case "serviceFilterRef": def.setServiceFilterRef(val); break; - case "uri": def.setUri(val); break; + case "uri": def.setUri(sanitizeUri(val)); break; default: return processorDefinitionAttributeHandler().accept(def, key, val); } return true; @@ -3447,7 +3447,7 @@ public class ModelParser extends BaseParser { return doParse(new EndpointTransformerDefinition(), (def, key, val) -> { switch (key) { case "ref": def.setRef(val); break; - case "uri": def.setUri(val); break; + case "uri": def.setUri(sanitizeUri(val)); break; default: return transformerDefinitionAttributeHandler().accept(def, key, val); } return true; @@ -3499,7 +3499,7 @@ public class ModelParser extends BaseParser { return doParse(new EndpointValidatorDefinition(), (def, key, val) -> { switch (key) { case "ref": def.setRef(val); break; - case "uri": def.setUri(val); break; + case "uri": def.setUri(sanitizeUri(val)); break; default: return validatorDefinitionAttributeHandler().accept(def, key, val); } return true; diff --git a/core/camel-xml-io/src/main/java/org/apache/camel/xml/in/BaseParser.java b/core/camel-xml-io/src/main/java/org/apache/camel/xml/in/BaseParser.java index aa168ff15f5..f114b3f3123 100644 --- a/core/camel-xml-io/src/main/java/org/apache/camel/xml/in/BaseParser.java +++ b/core/camel-xml-io/src/main/java/org/apache/camel/xml/in/BaseParser.java @@ -538,4 +538,8 @@ public class BaseParser { return false; } + protected static String sanitizeUri(String uri) { + return uri; + } + } diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelXmlParserGeneratorMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelXmlParserGeneratorMojo.java index 02c1535d408..d16672bf2fe 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelXmlParserGeneratorMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ModelXmlParserGeneratorMojo.java @@ -299,7 +299,12 @@ public class ModelXmlParserGeneratorMojo extends AbstractGeneratorMojo { an = member instanceof Method ? propname(mn) : mn; } String sn = member instanceof Method ? mn : "set" + uppercase(mn); - cases.put(an, "def." + sn + "(" + conversion(parser, type, "val", clazz.getName()) + ");"); + String val = "val"; + // special for uri + if ("uri".equals(an)) { + val = "sanitizeUri(val)"; + } + cases.put(an, "def." + sn + "(" + conversion(parser, type, val, clazz.getName()) + ");"); } String defaultCase = baseAttributeHandler != null ? baseAttributeHandler + ".accept(def, key, val)" : "false"; if (attributeMembers.size() == 1) {