Skip to content

Commit

Permalink
Enhancement: Allow MergedSpecBuilder title, version and description t…
Browse files Browse the repository at this point in the history
…o be configured OpenAPITools#20822
  • Loading branch information
saulgillEST committed Mar 10, 2025
1 parent 21be5f5 commit a2d542a
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*/
Expand Down Expand Up @@ -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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down Expand Up @@ -80,8 +91,8 @@ public String buildMergedSpec() {
return mergedFilePath.toString();
}

private static Map<String, Object> generatedMergedSpec(String openapiVersion, List<SpecWithPaths> allPaths) {
Map<String, Object> spec = generateHeader(openapiVersion);
private Map<String, Object> generatedMergedSpec(String openapiVersion, List<SpecWithPaths> allPaths) {
Map<String, Object> spec = generateHeader(openapiVersion, mergedFileInfoName, mergedFileInfoDescription, mergedFileInfoVersion);
Map<String, Object> paths = new HashMap<>();
spec.put("paths", paths);

Expand All @@ -97,13 +108,13 @@ private static Map<String, Object> generatedMergedSpec(String openapiVersion, Li
return spec;
}

private static Map<String, Object> generateHeader(String openapiVersion) {
private static Map<String, Object> generateHeader(String openapiVersion, String title, String description, String version) {
Map<String, Object> 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")
Expand Down

0 comments on commit a2d542a

Please sign in to comment.