From 5421c39b1d02f5a99435a0a1b64a69dd5995b6eb Mon Sep 17 00:00:00 2001 From: Wojciech Romanek Date: Wed, 27 Oct 2021 12:51:05 +0200 Subject: [PATCH] Fix: do not log warning for absolute file paths passed for linting. --- README.md | 3 +++ .../com/backbase/oss/boat/quay/BoatLinter.java | 5 +++++ .../oss/boat/quay/BoatLinterTests.java | 18 +++++++++++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0c6942c5f..4dbaf513b 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,9 @@ The project is very much Work In Progress and will be published on maven central # Release Notes BOAT is still under development and subject to change. +## 0.15.2 +* *Maven Plugin* + * Fixed handling of absolute file paths for linting OpenAPI specs ## 0.15.1 * *Maven Plugin* * Made `boat:radio` goal properties w.r.t boat-bay server unique. diff --git a/boat-quay/boat-quay-lint/src/main/java/com/backbase/oss/boat/quay/BoatLinter.java b/boat-quay/boat-quay-lint/src/main/java/com/backbase/oss/boat/quay/BoatLinter.java index b11c42f16..757b245a3 100644 --- a/boat-quay/boat-quay-lint/src/main/java/com/backbase/oss/boat/quay/BoatLinter.java +++ b/boat-quay/boat-quay-lint/src/main/java/com/backbase/oss/boat/quay/BoatLinter.java @@ -62,6 +62,11 @@ public BoatLintReport lint(File inputFile) throws IOException, OpenAPILoaderExce @NotNull private Path getFilePath(File inputFile) { File workingDirectory = new File("."); + + if (inputFile.isAbsolute()) { + workingDirectory = workingDirectory.getAbsoluteFile(); + } + Path relativize; try { relativize = workingDirectory.toPath().relativize(inputFile.toPath()); diff --git a/boat-quay/boat-quay-lint/src/test/java/com/backbase/oss/boat/quay/BoatLinterTests.java b/boat-quay/boat-quay-lint/src/test/java/com/backbase/oss/boat/quay/BoatLinterTests.java index e27b1fdbf..9639fefa2 100644 --- a/boat-quay/boat-quay-lint/src/test/java/com/backbase/oss/boat/quay/BoatLinterTests.java +++ b/boat-quay/boat-quay-lint/src/test/java/com/backbase/oss/boat/quay/BoatLinterTests.java @@ -1,5 +1,9 @@ package com.backbase.oss.boat.quay; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + import com.backbase.oss.boat.loader.OpenAPILoaderException; import com.backbase.oss.boat.quay.model.BoatLintReport; import com.backbase.oss.boat.quay.model.BoatLintRule; @@ -11,7 +15,6 @@ import java.util.List; import java.util.Optional; import org.apache.commons.io.IOUtils; -import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -55,6 +58,19 @@ void testRulesWithFile() throws IOException, OpenAPILoaderException { assertTrue(boatLintReport.hasViolations()); } + @Test + void testRulesWithFile_absolutePath() throws IOException, OpenAPILoaderException { + // Can't ret relative file from class path resources. Copy into new file + String openApiContents = IOUtils.resourceToString("/openapi/presentation-client-api/openapi.yaml", Charset.defaultCharset()); + + File inputFile = new File("target/openapi.yaml").getAbsoluteFile(); + Files.write(inputFile.toPath(), openApiContents.getBytes()); + + BoatLintReport boatLintReport = boatLinter.lint(inputFile); + + assertTrue(boatLintReport.hasViolations()); + } + @Test void ruleManager() { List availableRules = boatLinter.getAvailableRules();