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 af34d38b8735 CAMEL-22931: camel-jbang - command for yaml dsl validator
af34d38b8735 is described below

commit af34d38b8735d26eef1b3b27bfbc65e53652c8b4
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Feb 11 15:48:39 2026 +0100

    CAMEL-22931: camel-jbang - command for yaml dsl validator
---
 .../modules/ROOT/pages/camel-jbang.adoc            |  37 +++++++
 .../camel/dsl/jbang/core/common/PluginType.java    |   3 +-
 .../jbang/core/commands/plugin/PluginGetTest.java  |   8 +-
 .../camel-jbang-plugin-route-parser/pom.xml        |   2 +-
 .../pom.xml                                        |  15 +--
 .../camel-jbang-plugin/camel-jbang-plugin-validate |   2 +
 .../core/commands/validate/ValidateCommand.java    |  37 +++++++
 .../core/commands/validate/ValidatePlugin.java     |  35 ++++++
 .../commands/validate/YamlValidateCommand.java     | 123 +++++++++++++++++++++
 dsl/camel-jbang/pom.xml                            |   1 +
 .../camel/dsl/yaml/validator/ValidateMojo.java     |  15 +--
 .../camel/dsl/yaml/validator/YamlValidator.java    |  42 +++----
 12 files changed, 272 insertions(+), 48 deletions(-)

diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
index 7c2a0579bb4b..bfdf1e2fdb04 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
@@ -4348,6 +4348,43 @@ are downloaded to your local Maven repository `~/.m2`.
 So if you find problems with running Camel JBang using what is seems like an 
outdated JAR, then you can
 try to delete these directories or parts of it.
 
+== Validate Plugin
+
+*Available as of Camel 4.18*
+
+You can add the *validate* plugin to camel-jbang which makes it easy to 
quickly validate your Camel source code, such as YAML DSL
+files if they can be parsed and are valid according to the YAML DSL spec.
+
+First install the validate plugin
+
+[source,bash]
+----
+$ camel plugin add validate
+----
+
+Then you can use this plugin to validate source files such as:
+
+[source,bash]
+----
+$ camel validate yaml cheese.yaml bad.yaml
+Validation error detected (errors:1)
+
+       File: bad.yaml
+               /0/from: required property 'steps' not found
+----
+
+Here you can see we validated 2 files (cheese.yaml and bad.yaml) and there was 
a validation error in bad.yaml as show above.
+
+If all files are valid then the command report success:
+
+
+[source,bash]
+----
+$ camel validate yaml cheese.yaml bad.yaml
+Validation success (files:2)
+----
+
+
 == Infrastructure
 
 Camel JBang `infra` command can be used to `list`, `run` and `stop` external 
services that can be used for fast prototyping and testing.
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginType.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginType.java
index 5c952404d3b0..cde0536e1541 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginType.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/PluginType.java
@@ -28,7 +28,8 @@ public enum PluginType {
     GENERATE("generate", "generate", "Generate code such as DTOs", "4.8.0", 
null),
     EDIT("edit", "edit", "Edit Camel files with suggestions", "4.12.0", null),
     TEST("test", "test", "Manage tests for Camel applications", "4.14.0", 
null),
-    ROUTE_PARSER("route-parser", "route-parser", "Parses Java route and dumps 
route structure", "4.17.0", null);
+    ROUTE_PARSER("route-parser", "route-parser", "Parses Java route and dumps 
route structure", "4.17.0", null),
+    VALIDATE("validate", "validate", "Validate Camel routes", "4.18.0", null);
 
     private final String name;
     private final String command;
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginGetTest.java
 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginGetTest.java
index 887c0af4a879..0bc0f68be52c 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginGetTest.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/plugin/PluginGetTest.java
@@ -70,7 +70,7 @@ class PluginGetTest extends CamelCommandBaseTestSupport {
         command.doCall();
 
         List<String> output = printer.getLines();
-        Assertions.assertEquals(8, output.size());
+        Assertions.assertEquals(9, output.size());
         Assertions.assertEquals("Supported plugins:", output.get(0));
         Assertions.assertEquals("NAME          COMMAND       DEPENDENCY        
                                DESCRIPTION",
                 output.get(2));
@@ -120,7 +120,7 @@ class PluginGetTest extends CamelCommandBaseTestSupport {
         command.doCall();
 
         List<String> output = printer.getLines();
-        Assertions.assertEquals(11, output.size());
+        Assertions.assertEquals(12, output.size());
         Assertions.assertEquals("NAME        COMMAND  DEPENDENCY               
          DESCRIPTION", output.get(0));
         Assertions.assertEquals(
                 "foo-plugin  foo      org.apache.camel:foo-plugin:1.0.0  
Plugin foo-plugin called with command foo",
@@ -149,6 +149,10 @@ class PluginGetTest extends CamelCommandBaseTestSupport {
                 "route-parser  route-parser  
org.apache.camel:camel-jbang-plugin-route-parser  %s"
                         .formatted(PluginType.ROUTE_PARSER.getDescription()),
                 output.get(10));
+        Assertions.assertEquals(
+                "validate      validate      
org.apache.camel:camel-jbang-plugin-validate      %s"
+                        .formatted(PluginType.VALIDATE.getDescription()),
+                output.get(11));
     }
 
 }
diff --git a/dsl/camel-jbang/camel-jbang-plugin-route-parser/pom.xml 
b/dsl/camel-jbang/camel-jbang-plugin-route-parser/pom.xml
index 29ebec91a61e..451dde9b96ea 100644
--- a/dsl/camel-jbang/camel-jbang-plugin-route-parser/pom.xml
+++ b/dsl/camel-jbang/camel-jbang-plugin-route-parser/pom.xml
@@ -31,7 +31,7 @@
     <artifactId>camel-jbang-plugin-route-parser</artifactId>
 
     <name>Camel :: JBang :: Plugin :: Route Parser</name>
-    <description>Camel JBang Edit Route Parser</description>
+    <description>Camel JBang Route Parser</description>
 
     <properties>
         <firstVersion>4.17.0</firstVersion>
diff --git a/dsl/camel-jbang/camel-jbang-plugin-route-parser/pom.xml 
b/dsl/camel-jbang/camel-jbang-plugin-validate/pom.xml
similarity index 78%
copy from dsl/camel-jbang/camel-jbang-plugin-route-parser/pom.xml
copy to dsl/camel-jbang/camel-jbang-plugin-validate/pom.xml
index 29ebec91a61e..4c31f5589cb1 100644
--- a/dsl/camel-jbang/camel-jbang-plugin-route-parser/pom.xml
+++ b/dsl/camel-jbang/camel-jbang-plugin-validate/pom.xml
@@ -28,13 +28,13 @@
         <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>camel-jbang-plugin-route-parser</artifactId>
+    <artifactId>camel-jbang-plugin-validate</artifactId>
 
-    <name>Camel :: JBang :: Plugin :: Route Parser</name>
-    <description>Camel JBang Edit Route Parser</description>
+    <name>Camel :: JBang :: Plugin :: Validate</name>
+    <description>Camel JBang Route Validator</description>
 
     <properties>
-        <firstVersion>4.17.0</firstVersion>
+        <firstVersion>4.18.0</firstVersion>
         <label>jbang</label>
         <supportLevel>Preview</supportLevel>
         <camel-prepare-component>false</camel-prepare-component>
@@ -47,12 +47,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-route-parser</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.forge.roaster</groupId>
-            <artifactId>roaster-jdt</artifactId>
-            <version>${roaster-version}</version>
+            <artifactId>camel-yaml-dsl-validator</artifactId>
         </dependency>
     </dependencies>
 </project>
diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-validate/src/generated/resources/META-INF/services/org/apache/camel/camel-jbang-plugin/camel-jbang-plugin-validate
 
b/dsl/camel-jbang/camel-jbang-plugin-validate/src/generated/resources/META-INF/services/org/apache/camel/camel-jbang-plugin/camel-jbang-plugin-validate
new file mode 100644
index 000000000000..e03314ead693
--- /dev/null
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-validate/src/generated/resources/META-INF/services/org/apache/camel/camel-jbang-plugin/camel-jbang-plugin-validate
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.dsl.jbang.core.commands.validate.ValidatePlugin
diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-validate/src/main/java/org/apache/camel/dsl/jbang/core/commands/validate/ValidateCommand.java
 
b/dsl/camel-jbang/camel-jbang-plugin-validate/src/main/java/org/apache/camel/dsl/jbang/core/commands/validate/ValidateCommand.java
new file mode 100644
index 000000000000..045b4e2fc0d0
--- /dev/null
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-validate/src/main/java/org/apache/camel/dsl/jbang/core/commands/validate/ValidateCommand.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.dsl.jbang.core.commands.validate;
+
+import org.apache.camel.dsl.jbang.core.commands.CamelCommand;
+import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain;
+import picocli.CommandLine;
+
[email protected](name = "validate",
+                     description = "Validate Camel source code (use validate 
--help to see sub commands)")
+public class ValidateCommand extends CamelCommand {
+
+    public ValidateCommand(CamelJBangMain main) {
+        super(main);
+    }
+
+    @Override
+    public Integer doCall() throws Exception {
+        // defaults to printing the help message
+        new CommandLine(new CommandLine.HelpCommand()).execute();
+        return 0;
+    }
+}
diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-validate/src/main/java/org/apache/camel/dsl/jbang/core/commands/validate/ValidatePlugin.java
 
b/dsl/camel-jbang/camel-jbang-plugin-validate/src/main/java/org/apache/camel/dsl/jbang/core/commands/validate/ValidatePlugin.java
new file mode 100644
index 000000000000..e8e1915b098c
--- /dev/null
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-validate/src/main/java/org/apache/camel/dsl/jbang/core/commands/validate/ValidatePlugin.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.dsl.jbang.core.commands.validate;
+
+import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain;
+import org.apache.camel.dsl.jbang.core.common.CamelJBangPlugin;
+import org.apache.camel.dsl.jbang.core.common.Plugin;
+import picocli.CommandLine;
+
+@CamelJBangPlugin(name = "camel-jbang-plugin-validate", firstVersion = 
"4.18.0")
+public class ValidatePlugin implements Plugin {
+
+    @Override
+    public void customize(CommandLine commandLine, CamelJBangMain main) {
+        var cmd = new CommandLine(new ValidateCommand(main))
+                .addSubcommand("yaml", new CommandLine(new 
YamlValidateCommand(main)));
+
+        commandLine.addSubcommand("validate", cmd);
+    }
+
+}
diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-validate/src/main/java/org/apache/camel/dsl/jbang/core/commands/validate/YamlValidateCommand.java
 
b/dsl/camel-jbang/camel-jbang-plugin-validate/src/main/java/org/apache/camel/dsl/jbang/core/commands/validate/YamlValidateCommand.java
new file mode 100644
index 000000000000..aff68433c32e
--- /dev/null
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-validate/src/main/java/org/apache/camel/dsl/jbang/core/commands/validate/YamlValidateCommand.java
@@ -0,0 +1,123 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.dsl.jbang.core.commands.validate;
+
+import java.io.File;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Stack;
+
+import com.networknt.schema.ValidationMessage;
+import org.apache.camel.dsl.jbang.core.commands.CamelCommand;
+import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain;
+import org.apache.camel.dsl.yaml.validator.YamlValidator;
+import org.apache.camel.util.FileUtil;
+import picocli.CommandLine;
+
[email protected](name = "yaml", description = "Parse and validate YAML 
routes")
+public class YamlValidateCommand extends CamelCommand {
+
+    private static final String IGNORE_FILE = "application";
+
+    @CommandLine.Parameters(description = { "The Camel YAML source files to 
parse." },
+                            arity = "1..9",
+                            paramLabel = "<files>",
+                            parameterConsumer = FilesConsumer.class)
+    Path[] filePaths;
+    List<String> files = new ArrayList<>();
+
+    @CommandLine.Option(names = { "--json" },
+                        description = "To dump validation report in JSon 
format")
+    boolean json;
+
+    public YamlValidateCommand(CamelJBangMain main) {
+        super(main);
+    }
+
+    @Override
+    public Integer doCall() throws Exception {
+        YamlValidator validator = new YamlValidator();
+        validator.init();
+
+        Map<String, List<ValidationMessage>> reports = new LinkedHashMap<>();
+        for (String n : files) {
+            if (matchFile(n)) {
+                var report = validator.validate(new File(n));
+                reports.put(n, report);
+            }
+        }
+
+        int count = errorCounts(reports);
+        if (count > 0) {
+            StringBuilder sb = new StringBuilder();
+            sb.append("Validation error detected 
(errors:").append(count).append(")\n\n");
+
+            for (var e : reports.entrySet()) {
+                String name = e.getKey();
+                var report = e.getValue();
+                if (!report.isEmpty()) {
+                    sb.append("\tFile: ").append(name).append("\n");
+                    for (var r : report) {
+                        sb.append("\t\t").append(r.toString()).append("\n");
+                    }
+                    sb.append("\n");
+                }
+            }
+            printer().println(sb.toString());
+
+            return 1;
+        } else {
+            printer().println("Validation success (files:" + reports.size() + 
")");
+        }
+
+        return 0;
+    }
+
+    private static boolean matchFile(String name) {
+        String no = FileUtil.onlyName(name).toLowerCase(Locale.ROOT);
+        if (IGNORE_FILE.equals(no)) {
+            return false;
+        }
+        String ext = FileUtil.onlyExt(name);
+        if (ext == null) {
+            return false;
+        }
+        ext = ext.toLowerCase(Locale.ROOT);
+        return "yml".equals(ext) || "yaml".equals(ext);
+    }
+
+    private static int errorCounts(Map<String, List<ValidationMessage>> 
reports) {
+        int count = 0;
+        for (List<ValidationMessage> list : reports.values()) {
+            if (!list.isEmpty()) {
+                count++;
+            }
+        }
+        return count;
+    }
+
+    static class FilesConsumer extends 
CamelCommand.ParameterConsumer<YamlValidateCommand> {
+        protected void doConsumeParameters(Stack<String> args, 
YamlValidateCommand cmd) {
+            String arg = args.pop();
+            cmd.files.add(arg);
+        }
+    }
+}
diff --git a/dsl/camel-jbang/pom.xml b/dsl/camel-jbang/pom.xml
index 20b03bf31eef..bbe639d10a6d 100644
--- a/dsl/camel-jbang/pom.xml
+++ b/dsl/camel-jbang/pom.xml
@@ -43,6 +43,7 @@
         <module>camel-jbang-plugin-kubernetes</module>
         <module>camel-jbang-plugin-route-parser</module>
         <module>camel-jbang-plugin-test</module>
+        <module>camel-jbang-plugin-validate</module>
         <module>camel-jbang-it</module>
         <module>camel-launcher</module>
     </modules>
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator-maven-plugin/src/main/java/org/apache/camel/dsl/yaml/validator/ValidateMojo.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator-maven-plugin/src/main/java/org/apache/camel/dsl/yaml/validator/ValidateMojo.java
index bea0fe93e0bb..56da16719c1e 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator-maven-plugin/src/main/java/org/apache/camel/dsl/yaml/validator/ValidateMojo.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator-maven-plugin/src/main/java/org/apache/camel/dsl/yaml/validator/ValidateMojo.java
@@ -150,21 +150,22 @@ public class ValidateMojo extends AbstractMojo {
     private void validateResults(Map<File, List<ValidationMessage>> reports) 
throws MojoExecutionException {
         int count = errorCounts(reports);
         if (count == 0) {
-            getLog().info("Validation success");
+            getLog().info("Validation success (files:" + reports.size() + ")");
             return;
         }
         StringBuilder sb = new StringBuilder();
-        sb.append("Validation error detected in ").append(count).append(" 
files\n\n");
+        sb.append("Validation error detected 
(errors:").append(count).append(")\n\n");
 
         for (var e : reports.entrySet()) {
             String name = e.getKey().getName();
             var report = e.getValue();
-
-            sb.append("\tFile: ").append(name).append("\n");
-            for (var r : report) {
-                sb.append("\t\t").append(r.toString()).append("\n");
+            if (!report.isEmpty()) {
+                sb.append("\tFile: ").append(name).append("\n");
+                for (var r : report) {
+                    sb.append("\t\t").append(r.toString()).append("\n");
+                }
+                sb.append("\n");
             }
-            sb.append("\n");
         }
         getLog().warn("\n\n" + sb + "\n\n");
 
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/YamlValidator.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/YamlValidator.java
index c28edeef540b..39b3d7a13e33 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/YamlValidator.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/YamlValidator.java
@@ -17,13 +17,10 @@
 package org.apache.camel.dsl.yaml.validator;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 
-import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
 import com.networknt.schema.JsonMetaSchema;
@@ -34,45 +31,36 @@ import com.networknt.schema.SchemaValidatorsConfig;
 import com.networknt.schema.SpecVersionDetector;
 import com.networknt.schema.ValidationMessage;
 
+/**
+ * YAML DSL validator that tooling can use to validate Camel source files if 
they can be parsed and are valid according
+ * to the Camel YAML DSL spec.
+ */
 public class YamlValidator {
 
     private static final String DRAFT = 
"http://json-schema.org/draft-04/schema#";;
+    private static final String LOCATION = "/schema/camelYamlDsl.json";
 
-    // TODO: yaml-dsl-parser to see if its validate camel
-
-    private ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
-    private JsonNode model;
-    private JsonSchemaFactory factory;
-    private SchemaValidatorsConfig config;
+    private final ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
     private JsonSchema schema;
 
-    private String jsonSchema = "/schema/camelYamlDsl.json";
-
-    public String getJsonSchema() {
-        return jsonSchema;
-    }
-
-    /**
-     * The schema to use for validating
-     */
-    public void setJsonSchema(String jsonSchema) {
-        this.jsonSchema = jsonSchema;
-    }
-
     public List<ValidationMessage> validate(File file) throws Exception {
         if (schema == null) {
             init();
         }
-        try (InputStream is = new FileInputStream(file)) {
-            var target = mapper.readTree(is);
+        try {
+            var target = mapper.readTree(file);
             return new ArrayList<>(schema.validate(target));
+        } catch (Exception e) {
+            ValidationMessage vm = ValidationMessage.builder().type("parser")
+                    .messageSupplier(() -> e.getClass().getName() + ": " + 
e.getMessage()).build();
+            return List.of(vm);
         }
     }
 
     public void init() throws Exception {
-        model = 
mapper.readTree(YamlValidator.class.getResourceAsStream(jsonSchema));
-        factory = 
JsonSchemaFactory.getInstance(SpecVersionDetector.detect(model));
-        config = 
SchemaValidatorsConfig.builder().locale(Locale.ENGLISH).build();
+        var model = 
mapper.readTree(YamlValidator.class.getResourceAsStream(LOCATION));
+        var factory = 
JsonSchemaFactory.getInstance(SpecVersionDetector.detect(model));
+        var config = 
SchemaValidatorsConfig.builder().locale(Locale.ENGLISH).build();
         // include deprecated as an unknown keyword so the validator does not 
WARN log about this
         JsonMetaSchema jms = factory.getMetaSchema(DRAFT, null);
         jms.getKeywords().put("deprecated", new 
NonValidationKeyword("deprecated"));

Reply via email to