Skip to content

Commit c14c7a0

Browse files
authored
Enhancement: Allow MergedSpecBuilder title, version and description to be configured #20822 (#20839)
1 parent 27a705e commit c14c7a0

2 files changed

Lines changed: 37 additions & 7 deletions

File tree

modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,24 @@ public class CodeGenMojo extends AbstractMojo {
116116
@Parameter(name = "mergedFileName", property = "openapi.generator.maven.plugin.mergedFileName", defaultValue = "_merged_spec")
117117
private String mergedFileName;
118118

119+
/**
120+
* Name that will appear in the info section of the merged spec
121+
*/
122+
@Parameter(name = "mergedFileInfoName", property = "openapi.generator.maven.plugin.mergedFileInfoName", defaultValue = "merged spec")
123+
private String mergedFileInfoName;
124+
125+
/**
126+
* Description that will appear in the info section of the merged spec
127+
*/
128+
@Parameter(name = "mergedFileInfoDescription", property = "openapi.generator.maven.plugin.mergedFileInfoDescription", defaultValue = "merged spec")
129+
private String mergedFileInfoDescription;
130+
131+
/**
132+
* Version that will appear in the info section of the merged spec
133+
*/
134+
@Parameter(name = "mergedFileInfoVersion", property = "openapi.generator.maven.plugin.mergedFileInfoVersion", defaultValue = "1.0.0")
135+
private String mergedFileInfoVersion;
136+
119137
/**
120138
* Git host, e.g. gitlab.com.
121139
*/
@@ -545,7 +563,8 @@ public void execute() throws MojoExecutionException {
545563
}
546564

547565
if (StringUtils.isNotBlank(inputSpecRootDirectory)) {
548-
inputSpec = new MergedSpecBuilder(inputSpecRootDirectory, mergedFileName)
566+
inputSpec = new MergedSpecBuilder(inputSpecRootDirectory, mergedFileName,
567+
mergedFileInfoName, mergedFileInfoDescription, mergedFileInfoVersion)
549568
.buildMergedSpec();
550569
LOGGER.info("Merge input spec would be used - {}", inputSpec);
551570
}

modules/openapi-generator/src/main/java/org/openapitools/codegen/config/MergedSpecBuilder.java

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,21 @@ public class MergedSpecBuilder {
2525

2626
private final String inputSpecRootDirectory;
2727
private final String mergeFileName;
28+
private final String mergedFileInfoName;
29+
private final String mergedFileInfoDescription;
30+
private final String mergedFileInfoVersion;
2831

2932
public MergedSpecBuilder(final String rootDirectory, final String mergeFileName) {
33+
this(rootDirectory, mergeFileName, "merged spec", "merged spec", "1.0.0");
34+
}
35+
36+
public MergedSpecBuilder(final String rootDirectory, final String mergeFileName,
37+
final String mergedFileInfoName, final String mergedFileInfoDescription, final String mergedFileInfoVersion) {
3038
this.inputSpecRootDirectory = rootDirectory;
3139
this.mergeFileName = mergeFileName;
40+
this.mergedFileInfoName = mergedFileInfoName;
41+
this.mergedFileInfoDescription = mergedFileInfoDescription;
42+
this.mergedFileInfoVersion = mergedFileInfoVersion;
3243
}
3344

3445
public String buildMergedSpec() {
@@ -80,8 +91,8 @@ public String buildMergedSpec() {
8091
return mergedFilePath.toString();
8192
}
8293

83-
private static Map<String, Object> generatedMergedSpec(String openapiVersion, List<SpecWithPaths> allPaths) {
84-
Map<String, Object> spec = generateHeader(openapiVersion);
94+
private Map<String, Object> generatedMergedSpec(String openapiVersion, List<SpecWithPaths> allPaths) {
95+
Map<String, Object> spec = generateHeader(openapiVersion, mergedFileInfoName, mergedFileInfoDescription, mergedFileInfoVersion);
8596
Map<String, Object> paths = new HashMap<>();
8697
spec.put("paths", paths);
8798

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

100-
private static Map<String, Object> generateHeader(String openapiVersion) {
111+
private static Map<String, Object> generateHeader(String openapiVersion, String title, String description, String version) {
101112
Map<String, Object> map = new HashMap<>();
102113
map.put("openapi", openapiVersion);
103114
map.put("info", ImmutableMap.of(
104-
"title", "merged spec",
105-
"description", "merged spec",
106-
"version", "1.0.0"
115+
"title", title,
116+
"description", description,
117+
"version", version
107118
));
108119
map.put("servers", Collections.singleton(
109120
ImmutableMap.of("url", "http://localhost:8080")

0 commit comments

Comments
 (0)