diff --git a/modules/openapi-generator/pom.xml b/modules/openapi-generator/pom.xml index fd565603dcb..39a3310fb2b 100644 --- a/modules/openapi-generator/pom.xml +++ b/modules/openapi-generator/pom.xml @@ -341,6 +341,11 @@ 3.24.0 test + + org.openrewrite + rewrite-maven + test + org.reflections reflections @@ -374,6 +379,11 @@ rgxgen ${rxgen.version} + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + com.fasterxml.jackson.datatype jackson-datatype-joda diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java index 337f0c73a82..35de2c3ce21 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java @@ -18,12 +18,16 @@ import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.servers.Server; import io.swagger.v3.parser.core.models.ParseOptions; +import org.apache.commons.io.IOUtils; import org.openapitools.codegen.MockDefaultGenerator.WrittenTemplateBasedFile; import org.openapitools.codegen.utils.ModelUtils; +import org.openrewrite.maven.internal.RawPom; import org.testng.Assert; +import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -125,6 +129,43 @@ public class TestUtils { assertFalse(generatedFiles.contains(path.toFile()), "File '" + path.toAbsolutePath() + "' was found in the list of generated files"); } + public static void validatePomXmlFiles(final Map fileMap) { + fileMap.forEach( (fileName, fileContents) -> { + if ("pom.xml".equals(fileName)) { + assertValidPomXml(fileContents); + } + }); + } + + public static void validatePomXmlFiles(final List files) { + files.forEach( f -> { + String fileName = f.getName(); + if ("pom.xml".equals(fileName)) { + try { + String fileContents = new String(Files.readAllBytes(f.toPath()), StandardCharsets.UTF_8); + assertValidPomXml(fileContents); + } catch (IOException exception) { + throw new RuntimeException(exception); + } + } + } + ); + } + + private static void assertValidPomXml(final String fileContents) { + final InputStream input = new ByteArrayInputStream(fileContents.getBytes(StandardCharsets.UTF_8)); + try { + RawPom pom = RawPom.parse(input, null); + assertTrue(pom.getDependencies().getDependencies().size() > 0); + assertNotNull(pom.getName()); + assertNotNull(pom.getArtifactId()); + assertNotNull(pom.getGroupId()); + assertNotNull(pom.getVersion()); + } finally { + IOUtils.closeQuietly(input); + } + } + public static void validateJavaSourceFiles(Map fileMap) { fileMap.forEach( (fileName, fileContents) -> { if (fileName.endsWith(".java")) { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJerseyServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJerseyServerCodegenTest.java index 7cfb0c23c00..df50cfcace3 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJerseyServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJerseyServerCodegenTest.java @@ -126,6 +126,7 @@ public class JavaJerseyServerCodegenTest extends JavaJaxrsBaseTest { Assert.assertTrue(files.size() > 0); TestUtils.validateJavaSourceFiles(files); + TestUtils.validatePomXmlFiles(files); return files.stream().collect(Collectors.toMap(e -> e.getName().replace(outputPath, ""), i -> i)); } diff --git a/pom.xml b/pom.xml index b9cd286012c..0658e9cd153 100644 --- a/pom.xml +++ b/pom.xml @@ -1436,6 +1436,12 @@ ${testng.version} test + + org.openrewrite + rewrite-maven + ${openrewrite.version} + test + @@ -1483,6 +1489,7 @@ 1.7.32 3.1.12.2 3.0.0-M5 + 7.18.2 2.1.12 io.swagger.parser.v3 2.0.29