diff --git a/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java b/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java index e1aa64b3f1ed..f4efda22ef08 100644 --- a/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java +++ b/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java @@ -116,6 +116,24 @@ public class CodeGenMojo extends AbstractMojo { @Parameter(name = "mergedFileName", property = "openapi.generator.maven.plugin.mergedFileName", defaultValue = "_merged_spec") private String mergedFileName; + /** + * Name that will appear in the info section of the merged spec + */ + @Parameter(name = "mergedFileInfoName", property = "openapi.generator.maven.plugin.mergedFileInfoName", defaultValue = "merged spec") + private String mergedFileInfoName; + + /** + * Description that will appear in the info section of the merged spec + */ + @Parameter(name = "mergedFileInfoDescription", property = "openapi.generator.maven.plugin.mergedFileInfoDescription", defaultValue = "merged spec") + private String mergedFileInfoDescription; + + /** + * Version that will appear in the info section of the merged spec + */ + @Parameter(name = "mergedFileInfoVersion", property = "openapi.generator.maven.plugin.mergedFileInfoVersion", defaultValue = "1.0.0") + private String mergedFileInfoVersion; + /** * Git host, e.g. gitlab.com. */ @@ -545,7 +563,8 @@ public void execute() throws MojoExecutionException { } if (StringUtils.isNotBlank(inputSpecRootDirectory)) { - inputSpec = new MergedSpecBuilder(inputSpecRootDirectory, mergedFileName) + inputSpec = new MergedSpecBuilder(inputSpecRootDirectory, mergedFileName, + mergedFileInfoName, mergedFileInfoDescription, mergedFileInfoVersion) .buildMergedSpec(); LOGGER.info("Merge input spec would be used - {}", inputSpec); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/MergedSpecBuilder.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/MergedSpecBuilder.java index bdbea3122ba8..c04ed439adba 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/MergedSpecBuilder.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/MergedSpecBuilder.java @@ -25,10 +25,21 @@ public class MergedSpecBuilder { private final String inputSpecRootDirectory; private final String mergeFileName; + private final String mergedFileInfoName; + private final String mergedFileInfoDescription; + private final String mergedFileInfoVersion; public MergedSpecBuilder(final String rootDirectory, final String mergeFileName) { + this(rootDirectory, mergeFileName, "merged spec", "merged spec", "1.0.0"); + } + + public MergedSpecBuilder(final String rootDirectory, final String mergeFileName, + final String mergedFileInfoName, final String mergedFileInfoDescription, final String mergedFileInfoVersion) { this.inputSpecRootDirectory = rootDirectory; this.mergeFileName = mergeFileName; + this.mergedFileInfoName = mergedFileInfoName; + this.mergedFileInfoDescription = mergedFileInfoDescription; + this.mergedFileInfoVersion = mergedFileInfoVersion; } public String buildMergedSpec() { @@ -80,8 +91,8 @@ public String buildMergedSpec() { return mergedFilePath.toString(); } - private static Map generatedMergedSpec(String openapiVersion, List allPaths) { - Map spec = generateHeader(openapiVersion); + private Map generatedMergedSpec(String openapiVersion, List allPaths) { + Map spec = generateHeader(openapiVersion, mergedFileInfoName, mergedFileInfoDescription, mergedFileInfoVersion); Map paths = new HashMap<>(); spec.put("paths", paths); @@ -97,13 +108,13 @@ private static Map generatedMergedSpec(String openapiVersion, Li return spec; } - private static Map generateHeader(String openapiVersion) { + private static Map generateHeader(String openapiVersion, String title, String description, String version) { Map map = new HashMap<>(); map.put("openapi", openapiVersion); map.put("info", ImmutableMap.of( - "title", "merged spec", - "description", "merged spec", - "version", "1.0.0" + "title", title, + "description", description, + "version", version )); map.put("servers", Collections.singleton( ImmutableMap.of("url", "http://localhost:8080")