This is an automated email from the ASF dual-hosted git repository. ningjiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-toolkit.git
commit 0927cd177ca8b9e88d25049252ff2a6149e30657 Author: Daniel Qian <chanjars...@gmail.com> AuthorDate: Tue Nov 5 22:55:28 2019 +0800 SCB-1553 Integrate oas-validator compliance check to cli Fix syntax check logical bug. --- .../compatibility/CompatibilityCheckParser.java | 9 ---- .../CompatibilityCheckParserTest.java} | 40 +++++++---------- .../toolkit/oasv/compatibility/parser-test.yaml | 48 +++++++++++++++++++++ .../oasv/compliance/ComplianceCheckParser.java | 9 ---- .../compliance/ComplianceCheckParserTest.java} | 40 +++++++---------- .../toolkit/oasv/compliance/parser-test.yaml | 48 +++++++++++++++++++++ .../toolkit/oasv/util/SyntaxChecker.java} | 29 ++++++------- .../toolkit/oasv/util/SyntaxCheckerTest.java | 50 ++++++++++++++++++++++ .../servicecomb/toolkit/oasv/util/syntax-bad.yaml | 48 +++++++++++++++++++++ .../servicecomb/toolkit/oasv/util/syntax-good.yaml | 48 +++++++++++++++++++++ .../api/controller/CompatibilityController.java | 5 ++- .../web/api/controller/ComplianceController.java | 3 +- 12 files changed, 289 insertions(+), 88 deletions(-) diff --git a/oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/CompatibilityCheckParser.java b/oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/CompatibilityCheckParser.java index 13a52f8..4ca49f7 100644 --- a/oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/CompatibilityCheckParser.java +++ b/oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/CompatibilityCheckParser.java @@ -17,10 +17,6 @@ package org.apache.servicecomb.toolkit.oasv.compatibility; -import static java.util.Collections.emptyList; - -import java.util.List; - import io.swagger.v3.parser.OpenAPIV3Parser; import io.swagger.v3.parser.core.models.ParseOptions; import io.swagger.v3.parser.core.models.SwaggerParseResult; @@ -36,11 +32,6 @@ public abstract class CompatibilityCheckParser { return parser.readContents(yaml, null, createParseOptions()); } - public static List<String> checkSyntax(String yaml) { - SwaggerParseResult result = parseYaml(yaml); - return result.getMessages() == null ? emptyList() : result.getMessages(); - } - private static ParseOptions createParseOptions() { ParseOptions parseOptions = new ParseOptions(); diff --git a/oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/CompatibilityCheckParser.java b/oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/CompatibilityCheckParserTest.java similarity index 50% copy from oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/CompatibilityCheckParser.java copy to oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/CompatibilityCheckParserTest.java index 13a52f8..8846d29 100644 --- a/oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/CompatibilityCheckParser.java +++ b/oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/CompatibilityCheckParserTest.java @@ -17,37 +17,27 @@ package org.apache.servicecomb.toolkit.oasv.compatibility; -import static java.util.Collections.emptyList; -import java.util.List; +import static org.assertj.core.api.Assertions.assertThat; -import io.swagger.v3.parser.OpenAPIV3Parser; -import io.swagger.v3.parser.core.models.ParseOptions; -import io.swagger.v3.parser.core.models.SwaggerParseResult; - -public abstract class CompatibilityCheckParser { +import org.junit.Test; - private CompatibilityCheckParser() { - // singleton - } +import io.swagger.v3.parser.core.models.SwaggerParseResult; +import io.swagger.v3.parser.util.ClasspathHelper; - public static SwaggerParseResult parseYaml(String yaml) { - OpenAPIV3Parser parser = new OpenAPIV3Parser(); - return parser.readContents(yaml, null, createParseOptions()); - } +public class CompatibilityCheckParserTest { - public static List<String> checkSyntax(String yaml) { - SwaggerParseResult result = parseYaml(yaml); - return result.getMessages() == null ? emptyList() : result.getMessages(); + @Test + public void parseYaml() { + String yaml = loadRelative("parser-test.yaml"); + SwaggerParseResult swaggerParseResult = CompatibilityCheckParser.parseYaml(yaml); + assertThat(swaggerParseResult).isNotNull(); + assertThat(swaggerParseResult.getOpenAPI()).isNotNull(); + assertThat(swaggerParseResult.getMessages()).isEmpty(); } - private static ParseOptions createParseOptions() { - - ParseOptions parseOptions = new ParseOptions(); - parseOptions.setResolve(true); - parseOptions.setResolveCombinators(true); - parseOptions.setResolveFully(true); - parseOptions.setFlatten(false); - return parseOptions; + private String loadRelative(String filename) { + String basePath = getClass().getPackage().getName().replaceAll("\\.", "/"); + return ClasspathHelper.loadFileFromClasspath(basePath + "/" + filename); } } diff --git a/oas-validator/oas-validator-compatibility/src/test/resources/org/apache/servicecomb/toolkit/oasv/compatibility/parser-test.yaml b/oas-validator/oas-validator-compatibility/src/test/resources/org/apache/servicecomb/toolkit/oasv/compatibility/parser-test.yaml new file mode 100644 index 0000000..f7b88b5 --- /dev/null +++ b/oas-validator/oas-validator-compatibility/src/test/resources/org/apache/servicecomb/toolkit/oasv/compatibility/parser-test.yaml @@ -0,0 +1,48 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- +openapi: "3.0.0" +info: + version: 1.0.0 + title: Pet petstore +paths: + /pets: + get: + summary: List all pets + operationId: listpets + responses: + '200': + description: A paged array of pets + + post: + summary: List all pets + operationId: foo + requestBody: + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + foo: + type: string + bar: + type: string + encoding: + foo: + contentType: 'application/octet-stream' + responses: + '200': + description: A paged array of pets diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/ComplianceCheckParser.java b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/ComplianceCheckParser.java index 7f0bf4a..f98e577 100644 --- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/ComplianceCheckParser.java +++ b/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/ComplianceCheckParser.java @@ -17,10 +17,6 @@ package org.apache.servicecomb.toolkit.oasv.compliance; -import static java.util.Collections.emptyList; - -import java.util.List; - import io.swagger.v3.parser.OpenAPIV3Parser; import io.swagger.v3.parser.core.models.ParseOptions; import io.swagger.v3.parser.core.models.SwaggerParseResult; @@ -36,11 +32,6 @@ public abstract class ComplianceCheckParser { return parser.readContents(yaml, null, createParseOptions()); } - public static List<String> checkSyntax(String yaml) { - SwaggerParseResult result = parseYaml(yaml); - return result.getMessages() == null ? emptyList() : result.getMessages(); - } - private static ParseOptions createParseOptions() { ParseOptions parseOptions = new ParseOptions(); diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/ComplianceCheckParser.java b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/ComplianceCheckParserTest.java similarity index 50% copy from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/ComplianceCheckParser.java copy to oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/ComplianceCheckParserTest.java index 7f0bf4a..9760dee 100644 --- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/ComplianceCheckParser.java +++ b/oas-validator/oas-validator-compliance/src/test/java/org/apache/servicecomb/toolkit/oasv/compliance/ComplianceCheckParserTest.java @@ -17,37 +17,27 @@ package org.apache.servicecomb.toolkit.oasv.compliance; -import static java.util.Collections.emptyList; +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.*; -import java.util.List; +import org.junit.Test; -import io.swagger.v3.parser.OpenAPIV3Parser; -import io.swagger.v3.parser.core.models.ParseOptions; import io.swagger.v3.parser.core.models.SwaggerParseResult; +import io.swagger.v3.parser.util.ClasspathHelper; -public abstract class ComplianceCheckParser { +public class ComplianceCheckParserTest { - private ComplianceCheckParser() { - // singleton + @Test + public void parseYaml() { + String yaml = loadRelative("parser-test.yaml"); + SwaggerParseResult swaggerParseResult = ComplianceCheckParser.parseYaml(yaml); + assertThat(swaggerParseResult).isNotNull(); + assertThat(swaggerParseResult.getOpenAPI()).isNotNull(); + assertThat(swaggerParseResult.getMessages()).isEmpty(); } - public static SwaggerParseResult parseYaml(String yaml) { - OpenAPIV3Parser parser = new OpenAPIV3Parser(); - return parser.readContents(yaml, null, createParseOptions()); - } - - public static List<String> checkSyntax(String yaml) { - SwaggerParseResult result = parseYaml(yaml); - return result.getMessages() == null ? emptyList() : result.getMessages(); - } - - private static ParseOptions createParseOptions() { - - ParseOptions parseOptions = new ParseOptions(); - parseOptions.setResolve(true); - parseOptions.setResolveCombinators(false); - parseOptions.setResolveFully(false); - parseOptions.setFlatten(false); - return parseOptions; + private String loadRelative(String filename) { + String basePath = getClass().getPackage().getName().replaceAll("\\.", "/"); + return ClasspathHelper.loadFileFromClasspath(basePath + "/" + filename); } } diff --git a/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/parser-test.yaml b/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/parser-test.yaml new file mode 100644 index 0000000..f7b88b5 --- /dev/null +++ b/oas-validator/oas-validator-compliance/src/test/resources/org/apache/servicecomb/toolkit/oasv/compliance/parser-test.yaml @@ -0,0 +1,48 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- +openapi: "3.0.0" +info: + version: 1.0.0 + title: Pet petstore +paths: + /pets: + get: + summary: List all pets + operationId: listpets + responses: + '200': + description: A paged array of pets + + post: + summary: List all pets + operationId: foo + requestBody: + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + foo: + type: string + bar: + type: string + encoding: + foo: + contentType: 'application/octet-stream' + responses: + '200': + description: A paged array of pets diff --git a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/ComplianceCheckParser.java b/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/util/SyntaxChecker.java similarity index 73% copy from oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/ComplianceCheckParser.java copy to oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/util/SyntaxChecker.java index 7f0bf4a..e0dc645 100644 --- a/oas-validator/oas-validator-compliance/src/main/java/org/apache/servicecomb/toolkit/oasv/compliance/ComplianceCheckParser.java +++ b/oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/util/SyntaxChecker.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.servicecomb.toolkit.oasv.compliance; +package org.apache.servicecomb.toolkit.oasv.util; import static java.util.Collections.emptyList; @@ -25,29 +25,24 @@ import io.swagger.v3.parser.OpenAPIV3Parser; import io.swagger.v3.parser.core.models.ParseOptions; import io.swagger.v3.parser.core.models.SwaggerParseResult; -public abstract class ComplianceCheckParser { +public class SyntaxChecker { - private ComplianceCheckParser() { + private SyntaxChecker() { // singleton } - public static SwaggerParseResult parseYaml(String yaml) { - OpenAPIV3Parser parser = new OpenAPIV3Parser(); - return parser.readContents(yaml, null, createParseOptions()); - } - - public static List<String> checkSyntax(String yaml) { - SwaggerParseResult result = parseYaml(yaml); - return result.getMessages() == null ? emptyList() : result.getMessages(); - } - - private static ParseOptions createParseOptions() { + public static List<String> check(String oasSpecContent) { ParseOptions parseOptions = new ParseOptions(); - parseOptions.setResolve(true); - parseOptions.setResolveCombinators(false); + parseOptions.setResolve(false); parseOptions.setResolveFully(false); + parseOptions.setResolveCombinators(false); parseOptions.setFlatten(false); - return parseOptions; + + OpenAPIV3Parser parser = new OpenAPIV3Parser(); + SwaggerParseResult result = parser.readContents(oasSpecContent, null, parseOptions); + return result.getMessages() == null ? emptyList() : result.getMessages(); + } + } diff --git a/oas-validator/oas-validator-core/src/test/java/org/apache/servicecomb/toolkit/oasv/util/SyntaxCheckerTest.java b/oas-validator/oas-validator-core/src/test/java/org/apache/servicecomb/toolkit/oasv/util/SyntaxCheckerTest.java new file mode 100644 index 0000000..a7f7644 --- /dev/null +++ b/oas-validator/oas-validator-core/src/test/java/org/apache/servicecomb/toolkit/oasv/util/SyntaxCheckerTest.java @@ -0,0 +1,50 @@ +/* + * 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.servicecomb.toolkit.oasv.util; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.*; + +import java.util.List; + +import org.junit.Test; + +import io.swagger.v3.parser.util.ClasspathHelper; + +public class SyntaxCheckerTest { + + @Test + public void checkGood() { + String yaml = loadRelative("syntax-good.yaml"); + List<String> errors = SyntaxChecker.check(yaml); + assertThat(errors).isEmpty(); + } + + @Test + public void checkBad() { + String yaml = loadRelative("syntax-bad.yaml"); + List<String> errors = SyntaxChecker.check(yaml); + assertThat(errors).containsExactly("attribute paths.'/pets'(post).summary2 is unexpected"); + } + + private String loadRelative(String filename) { + String basePath = getClass().getPackage().getName().replaceAll("\\.", "/"); + return ClasspathHelper.loadFileFromClasspath(basePath + "/" + filename); + } + +} diff --git a/oas-validator/oas-validator-core/src/test/resources/org/apache/servicecomb/toolkit/oasv/util/syntax-bad.yaml b/oas-validator/oas-validator-core/src/test/resources/org/apache/servicecomb/toolkit/oasv/util/syntax-bad.yaml new file mode 100644 index 0000000..46b822e --- /dev/null +++ b/oas-validator/oas-validator-core/src/test/resources/org/apache/servicecomb/toolkit/oasv/util/syntax-bad.yaml @@ -0,0 +1,48 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- +openapi: "3.0.0" +info: + version: 1.0.0 + title: Pet petstore +paths: + /pets: + get: + summary: List all pets + operationId: listpets + responses: + '200': + description: A paged array of pets + + post: + summary2: List all pets + operationId: foo + requestBody: + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + foo: + type: string + bar: + type: string + encoding: + foo: + contentType: 'application/octet-stream' + responses: + '200': + description: A paged array of pets diff --git a/oas-validator/oas-validator-core/src/test/resources/org/apache/servicecomb/toolkit/oasv/util/syntax-good.yaml b/oas-validator/oas-validator-core/src/test/resources/org/apache/servicecomb/toolkit/oasv/util/syntax-good.yaml new file mode 100644 index 0000000..f7b88b5 --- /dev/null +++ b/oas-validator/oas-validator-core/src/test/resources/org/apache/servicecomb/toolkit/oasv/util/syntax-good.yaml @@ -0,0 +1,48 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- +openapi: "3.0.0" +info: + version: 1.0.0 + title: Pet petstore +paths: + /pets: + get: + summary: List all pets + operationId: listpets + responses: + '200': + description: A paged array of pets + + post: + summary: List all pets + operationId: foo + requestBody: + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + foo: + type: string + bar: + type: string + encoding: + foo: + contentType: 'application/octet-stream' + responses: + '200': + description: A paged array of pets diff --git a/oas-validator/oas-validator-web/src/main/java/org/apache/servicecomb/toolkit/oasv/web/api/controller/CompatibilityController.java b/oas-validator/oas-validator-web/src/main/java/org/apache/servicecomb/toolkit/oasv/web/api/controller/CompatibilityController.java index 5a045ee..f625789 100755 --- a/oas-validator/oas-validator-web/src/main/java/org/apache/servicecomb/toolkit/oasv/web/api/controller/CompatibilityController.java +++ b/oas-validator/oas-validator-web/src/main/java/org/apache/servicecomb/toolkit/oasv/web/api/controller/CompatibilityController.java @@ -27,6 +27,7 @@ import org.apache.servicecomb.toolkit.oasv.compatibility.CompatibilityCheckParse import org.apache.servicecomb.toolkit.oasv.diffvalidation.api.OasDiffValidationContext; import org.apache.servicecomb.toolkit.oasv.diffvalidation.api.OasDiffViolation; import org.apache.servicecomb.toolkit.oasv.diffvalidation.api.OasSpecDiffValidator; +import org.apache.servicecomb.toolkit.oasv.util.SyntaxChecker; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.util.MimeTypeUtils; @@ -66,8 +67,8 @@ public class CompatibilityController { String leftYaml = yaml.split("---\n")[0]; String rightYaml = yaml.split("---\n")[1]; - importError.addLeftParseErrors(CompatibilityCheckParser.checkSyntax(leftYaml)); - importError.addRightParseErrors(CompatibilityCheckParser.checkSyntax(rightYaml)); + importError.addLeftParseErrors(SyntaxChecker.check(leftYaml)); + importError.addRightParseErrors(SyntaxChecker.check(rightYaml)); if (importError.isNotEmpty()) { return importError; diff --git a/oas-validator/oas-validator-web/src/main/java/org/apache/servicecomb/toolkit/oasv/web/api/controller/ComplianceController.java b/oas-validator/oas-validator-web/src/main/java/org/apache/servicecomb/toolkit/oasv/web/api/controller/ComplianceController.java index e6b5c99..636b91c 100755 --- a/oas-validator/oas-validator-web/src/main/java/org/apache/servicecomb/toolkit/oasv/web/api/controller/ComplianceController.java +++ b/oas-validator/oas-validator-web/src/main/java/org/apache/servicecomb/toolkit/oasv/web/api/controller/ComplianceController.java @@ -24,6 +24,7 @@ import java.util.Map; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.servicecomb.toolkit.oasv.compliance.ComplianceCheckParser; +import org.apache.servicecomb.toolkit.oasv.util.SyntaxChecker; import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator; import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext; import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation; @@ -64,7 +65,7 @@ public class ComplianceController { private ImportError doValidate(String yaml) { ImportError importError = new ImportError(); - importError.addParseErrors(ComplianceCheckParser.checkSyntax(yaml)); + importError.addParseErrors(SyntaxChecker.check(yaml)); if (importError.isNotEmpty()) { return importError; }