Repository: camel Updated Branches: refs/heads/camel-2.16.x e9cdfbafe -> d739530db refs/heads/master 95fceb73c -> 3690b9d24
Camel catalog - Improve validation of dataformat endpoint as we can use the df scheme to validate its options. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/3690b9d2 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/3690b9d2 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/3690b9d2 Branch: refs/heads/master Commit: 3690b9d249f71d8f0e7b9ab9bf2bb46404d50275 Parents: 95fceb7 Author: Claus Ibsen <davscl...@apache.org> Authored: Tue Jan 5 13:32:59 2016 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Tue Jan 5 13:32:59 2016 +0100 ---------------------------------------------------------------------- .../org/apache/camel/catalog/DefaultCamelCatalog.java | 13 +++++++++++++ .../org/apache/camel/catalog/CamelCatalogTest.java | 4 ++++ 2 files changed, 17 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/3690b9d2/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java ---------------------------------------------------------------------- diff --git a/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java b/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java index 6c5c444..f04bd3f 100644 --- a/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java +++ b/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java @@ -766,6 +766,19 @@ public class DefaultCamelCatalog implements CamelCatalog { return result; } + // the dataformat component refers to a data format so lets add the properties for the selected + // data format to the list of rows + if ("dataformat".equals(scheme)) { + String dfName = properties.get("name"); + if (dfName != null) { + String dfJson = dataFormatJSonSchema(dfName); + List<Map<String, String>> dfRows = JSonSchemaHelper.parseJsonSchema("properties", dfJson, true); + if (dfRows != null && !dfRows.isEmpty()) { + rows.addAll(dfRows); + } + } + } + // validate all the options for (Map.Entry<String, String> property : properties.entrySet()) { String value = property.getValue(); http://git-wip-us.apache.org/repos/asf/camel/blob/3690b9d2/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java ---------------------------------------------------------------------- diff --git a/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java b/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java index d20cfa0..b59f872 100644 --- a/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java +++ b/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java @@ -497,6 +497,10 @@ public class CamelCatalogTest { result = catalog.validateEndpointProperties("dataformat:string:marshal?foo=bar", true); assertFalse(result.isSuccess()); assertTrue(result.getUnknown().contains("foo")); + + // data format + result = catalog.validateEndpointProperties("dataformat:string:marshal?charset=utf-8", true); + assertTrue(result.isSuccess()); } @Test