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