forked from loafle/openapi-generator-original
Enhancement: Allow MergedSpecBuilder title, version and description to be configured #20822 (#20839)
This commit is contained in:
parent
27a705efd5
commit
c14c7a0421
@ -116,6 +116,24 @@ public class CodeGenMojo extends AbstractMojo {
|
|||||||
@Parameter(name = "mergedFileName", property = "openapi.generator.maven.plugin.mergedFileName", defaultValue = "_merged_spec")
|
@Parameter(name = "mergedFileName", property = "openapi.generator.maven.plugin.mergedFileName", defaultValue = "_merged_spec")
|
||||||
private String mergedFileName;
|
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.
|
* Git host, e.g. gitlab.com.
|
||||||
*/
|
*/
|
||||||
@ -545,7 +563,8 @@ public class CodeGenMojo extends AbstractMojo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(inputSpecRootDirectory)) {
|
if (StringUtils.isNotBlank(inputSpecRootDirectory)) {
|
||||||
inputSpec = new MergedSpecBuilder(inputSpecRootDirectory, mergedFileName)
|
inputSpec = new MergedSpecBuilder(inputSpecRootDirectory, mergedFileName,
|
||||||
|
mergedFileInfoName, mergedFileInfoDescription, mergedFileInfoVersion)
|
||||||
.buildMergedSpec();
|
.buildMergedSpec();
|
||||||
LOGGER.info("Merge input spec would be used - {}", inputSpec);
|
LOGGER.info("Merge input spec would be used - {}", inputSpec);
|
||||||
}
|
}
|
||||||
|
@ -25,10 +25,21 @@ public class MergedSpecBuilder {
|
|||||||
|
|
||||||
private final String inputSpecRootDirectory;
|
private final String inputSpecRootDirectory;
|
||||||
private final String mergeFileName;
|
private final String mergeFileName;
|
||||||
|
private final String mergedFileInfoName;
|
||||||
|
private final String mergedFileInfoDescription;
|
||||||
|
private final String mergedFileInfoVersion;
|
||||||
|
|
||||||
public MergedSpecBuilder(final String rootDirectory, final String mergeFileName) {
|
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.inputSpecRootDirectory = rootDirectory;
|
||||||
this.mergeFileName = mergeFileName;
|
this.mergeFileName = mergeFileName;
|
||||||
|
this.mergedFileInfoName = mergedFileInfoName;
|
||||||
|
this.mergedFileInfoDescription = mergedFileInfoDescription;
|
||||||
|
this.mergedFileInfoVersion = mergedFileInfoVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String buildMergedSpec() {
|
public String buildMergedSpec() {
|
||||||
@ -80,8 +91,8 @@ public class MergedSpecBuilder {
|
|||||||
return mergedFilePath.toString();
|
return mergedFilePath.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Map<String, Object> generatedMergedSpec(String openapiVersion, List<SpecWithPaths> allPaths) {
|
private Map<String, Object> generatedMergedSpec(String openapiVersion, List<SpecWithPaths> allPaths) {
|
||||||
Map<String, Object> spec = generateHeader(openapiVersion);
|
Map<String, Object> spec = generateHeader(openapiVersion, mergedFileInfoName, mergedFileInfoDescription, mergedFileInfoVersion);
|
||||||
Map<String, Object> paths = new HashMap<>();
|
Map<String, Object> paths = new HashMap<>();
|
||||||
spec.put("paths", paths);
|
spec.put("paths", paths);
|
||||||
|
|
||||||
@ -97,13 +108,13 @@ public class MergedSpecBuilder {
|
|||||||
return spec;
|
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<String, Object> map = new HashMap<>();
|
||||||
map.put("openapi", openapiVersion);
|
map.put("openapi", openapiVersion);
|
||||||
map.put("info", ImmutableMap.of(
|
map.put("info", ImmutableMap.of(
|
||||||
"title", "merged spec",
|
"title", title,
|
||||||
"description", "merged spec",
|
"description", description,
|
||||||
"version", "1.0.0"
|
"version", version
|
||||||
));
|
));
|
||||||
map.put("servers", Collections.singleton(
|
map.put("servers", Collections.singleton(
|
||||||
ImmutableMap.of("url", "http://localhost:8080")
|
ImmutableMap.of("url", "http://localhost:8080")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user