diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 8df4b1c03..42186f9f2 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -18,10 +18,10 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} - name: Autobuild - uses: github/codeql-action/autobuild@v2 + uses: github/codeql-action/autobuild@v3 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 diff --git a/boat-maven-plugin/pom.xml b/boat-maven-plugin/pom.xml index 0e5141cd4..05b16b382 100644 --- a/boat-maven-plugin/pom.xml +++ b/boat-maven-plugin/pom.xml @@ -52,7 +52,7 @@ org.openapitools.openapidiff openapi-diff-core - 2.1.0-beta.6 + 2.1.0-beta.8 @@ -101,7 +101,7 @@ org.codehaus.plexus plexus-archiver - 4.9.0 + 4.9.1 diff --git a/boat-maven-plugin/src/main/java/com/backbase/oss/boat/DiffMojo.java b/boat-maven-plugin/src/main/java/com/backbase/oss/boat/DiffMojo.java index 60089fb0d..5c2b476be 100644 --- a/boat-maven-plugin/src/main/java/com/backbase/oss/boat/DiffMojo.java +++ b/boat-maven-plugin/src/main/java/com/backbase/oss/boat/DiffMojo.java @@ -1,12 +1,7 @@ package com.backbase.oss.boat; -import java.io.File; -import java.io.IOException; -import java.nio.charset.StandardCharsets; - import lombok.extern.slf4j.Slf4j; -import org.apache.commons.io.FileUtils; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.Mojo; @@ -19,6 +14,8 @@ import org.openapitools.openapidiff.core.output.MarkdownRender; import org.openapitools.openapidiff.core.output.Render; +import java.io.*; + /** * Calculates a Change log for APIs. */ @@ -52,12 +49,12 @@ public void execute() throws MojoExecutionException { ConsoleRender consoleRender = new ConsoleRender(); if (changedOpenApi.isIncompatible()) { - log.error("\n{}", consoleRender.render(changedOpenApi)); + log.error("\n{}", renderChangedOpenApi(consoleRender, changedOpenApi)); if (breakOnBreakingChanges) { throw new MojoExecutionException("newFile: " + newFile + " contains breaking changes!"); } } else { - log.info("\n{}", consoleRender.render(changedOpenApi)); + log.info("\n{}", renderChangedOpenApi(consoleRender, changedOpenApi)); } if (writeChangelog) { @@ -73,8 +70,9 @@ public void execute() throws MojoExecutionException { } else { throw new MojoExecutionException("Invalid changelogRender. Supported types are 'markdown' and 'html"); } - try { - FileUtils.write(new File(changelogOutput, "changelog." + extension), render.render(changedOpenApi), StandardCharsets.UTF_8); + File output = new File(changelogOutput, "changelog." + extension); + try (FileOutputStream outputStream = new FileOutputStream(output)) { + render.render(changedOpenApi, new OutputStreamWriter(outputStream)); } catch (IOException e) { throw new MojoExecutionException("Failed to write output", e); } @@ -82,6 +80,15 @@ public void execute() throws MojoExecutionException { } + public static String renderChangedOpenApi(Render render, ChangedOpenApi changedOpenApi) { + try (OutputStream outputStream = new ByteArrayOutputStream()) { + render.render(changedOpenApi, new OutputStreamWriter(outputStream)); + return outputStream.toString(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + public void setNewFile(File newFile) { this.newFile = newFile; } diff --git a/boat-maven-plugin/src/main/java/com/backbase/oss/boat/diff/BatchOpenApiDiff.java b/boat-maven-plugin/src/main/java/com/backbase/oss/boat/diff/BatchOpenApiDiff.java index 17b72fb4f..90e58bb5f 100644 --- a/boat-maven-plugin/src/main/java/com/backbase/oss/boat/diff/BatchOpenApiDiff.java +++ b/boat-maven-plugin/src/main/java/com/backbase/oss/boat/diff/BatchOpenApiDiff.java @@ -1,10 +1,21 @@ package com.backbase.oss.boat.diff; +import com.backbase.oss.boat.DiffMojo; import com.backbase.oss.boat.serializer.SerializerUtils; import io.swagger.parser.OpenAPIParser; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.parser.core.models.ParseOptions; import io.swagger.v3.parser.core.models.SwaggerParseResult; +import lombok.experimental.UtilityClass; +import org.apache.commons.lang3.tuple.Pair; +import org.apache.maven.artifact.versioning.DefaultArtifactVersion; +import org.openapitools.openapidiff.core.compare.OpenApiDiff; +import org.openapitools.openapidiff.core.compare.OpenApiDiffOptions; +import org.openapitools.openapidiff.core.model.ChangedOpenApi; +import org.openapitools.openapidiff.core.output.MarkdownRender; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -15,14 +26,6 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import lombok.experimental.UtilityClass; -import org.apache.commons.lang3.tuple.Pair; -import org.apache.maven.artifact.versioning.DefaultArtifactVersion; -import org.openapitools.openapidiff.core.compare.OpenApiDiff; -import org.openapitools.openapidiff.core.model.ChangedOpenApi; -import org.openapitools.openapidiff.core.output.MarkdownRender; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; @UtilityClass public class BatchOpenApiDiff { @@ -44,6 +47,7 @@ public static void diff(Path outputDirectory, Map success, Map oldVersionPair = sortedSpecs.get(i-1); Pair newVersionPair = sortedSpecs.get(i); @@ -53,7 +57,7 @@ public static void diff(Path outputDirectory, Map success, Map changeLog = getChangeLog(oldOpenAPI); changeLog.add(compare); String changelogMarkdown = renderChangeLog(changeLog); @@ -126,7 +130,7 @@ private static String renderChangeLog(List changeLog) { if (diff.isIncompatible()) { markDown.append("**Note:** API has incompatible changes!!\n"); } - String changes = BatchOpenApiDiff.markdownRender.render(diff); + String changes = DiffMojo.renderChangedOpenApi(markdownRender, diff); markDown.append(changes); } }); diff --git a/boat-quay/boat-quay-lint/pom.xml b/boat-quay/boat-quay-lint/pom.xml index ad91fcc15..eba88b978 100644 --- a/boat-quay/boat-quay-lint/pom.xml +++ b/boat-quay/boat-quay-lint/pom.xml @@ -17,7 +17,7 @@ ${basedir}/../${aggregate.report.dir} - 1.9.21 + 1.9.22 false @@ -86,7 +86,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.11.0 + 3.12.1 diff --git a/boat-quay/boat-quay-rules/pom.xml b/boat-quay/boat-quay-rules/pom.xml index be66290fc..f669f9b03 100644 --- a/boat-quay/boat-quay-rules/pom.xml +++ b/boat-quay/boat-quay-rules/pom.xml @@ -92,7 +92,7 @@ org.assertj assertj-core - 3.24.2 + 3.25.0 @@ -168,6 +168,13 @@ true + + org.apache.maven.plugins + maven-compiler-plugin + + true + + diff --git a/boat-quay/pom.xml b/boat-quay/pom.xml index 26df2af89..0c2a08fc8 100644 --- a/boat-quay/pom.xml +++ b/boat-quay/pom.xml @@ -19,7 +19,7 @@ ${basedir}/../${aggregate.report.dir} - 1.9.21 + 1.9.22 false 1.1.1 diff --git a/boat-scaffold/pom.xml b/boat-scaffold/pom.xml index 9b39d5941..8bfb1bb45 100644 --- a/boat-scaffold/pom.xml +++ b/boat-scaffold/pom.xml @@ -155,7 +155,7 @@ com.github.javaparser javaparser-core - 3.25.7 + 3.25.8 test diff --git a/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java b/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java index 0c083f418..bd078a0b5 100644 --- a/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java +++ b/boat-scaffold/src/main/java/com/backbase/oss/codegen/angular/BoatAngularGenerator.java @@ -151,7 +151,7 @@ public void preprocessOpenAPI(OpenAPI openAPI) { @Override protected void addAdditionPropertiesToCodeGenModel(CodegenModel codegenModel, Schema schema) { - codegenModel.additionalPropertiesType = getTypeDeclaration(ModelUtils.getAdditionalProperties(openAPI, schema)); + codegenModel.additionalPropertiesType = getTypeDeclaration(ModelUtils.getAdditionalProperties(schema)); addImport(codegenModel, codegenModel.additionalPropertiesType); } diff --git a/boat-scaffold/src/main/java/com/backbase/oss/codegen/java/BoatSpringCodeGen.java b/boat-scaffold/src/main/java/com/backbase/oss/codegen/java/BoatSpringCodeGen.java index 177837e28..827cd98ca 100644 --- a/boat-scaffold/src/main/java/com/backbase/oss/codegen/java/BoatSpringCodeGen.java +++ b/boat-scaffold/src/main/java/com/backbase/oss/codegen/java/BoatSpringCodeGen.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.IOException; import java.io.Writer; +import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Set; @@ -354,9 +355,9 @@ public void processOpts() { writePropertyBack(USE_PROTECTED_FIELDS, this.useProtectedFields); - this.additionalProperties.put("indent4", new IndentedLambda(4, " ")); + this.additionalProperties.put("indent4", new IndentedLambda(4, " ", true, true)); this.additionalProperties.put("newLine4", new NewLineIndent(4, " ")); - this.additionalProperties.put("indent8", new IndentedLambda(8, " ")); + this.additionalProperties.put("indent8", new IndentedLambda(8, " ", true, true)); this.additionalProperties.put("newLine8", new NewLineIndent(8, " ")); this.additionalProperties.put("toOneLine", new FormatToOneLine()); this.additionalProperties.put("trimAndIndent4", new TrimAndIndent(4, " ")); @@ -381,6 +382,9 @@ private boolean needApiUtil() { */ @Override public CodegenOperation fromOperation(String path, String httpMethod, Operation operation, List servers) { + if (operation.getExtensions() == null) { + operation.setExtensions(new LinkedHashMap<>()); + } final CodegenOperation codegenOperation = super.fromOperation(path, httpMethod, operation, servers); if (this.addServletRequest) { final CodegenParameter codegenParameter = new CodegenParameter() { diff --git a/pom.xml b/pom.xml index 2af9d2b74..17b1d0baa 100644 --- a/pom.xml +++ b/pom.xml @@ -56,16 +56,16 @@ backbase https://sonarcloud.io - 6.6.0 + 7.2.0 tests/target/site/jacoco-aggregate/jacoco.xml ${aggregate.report.dir} 1.18.30 - 2.16.0 + 2.16.1 5.8.0 1.7.30 - 2.2.19 + 2.2.20 2.1.6 2.2 0.8.11 @@ -117,7 +117,7 @@ org.slf4j slf4j-api - 2.0.9 + 2.0.10 @@ -203,7 +203,7 @@ org.slf4j slf4j-ext - 2.0.9 + 2.0.10 @@ -353,7 +353,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.11.0 + 3.12.1 org.apache.maven.plugins @@ -378,7 +378,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.2.2 + 3.2.3 org.sonarsource.scanner.maven