forked from loafle/openapi-generator-original
[Java] adds snapshotVersion CLI option and uses API version as artifactVersion by default (#2033)
* [Java]: adds snapshotVersion CLI option and uses API version as artifactVersion by default * fix some typos * fix naming diff between branches * ensure-up-to-date * update samples
This commit is contained in:
parent
8d5b600277
commit
ad8aa7dc0e
@ -41,4 +41,5 @@ sidebar_label: groovy
|
||||
|parentGroupId|parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentArtifactId|parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentVersion|parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|snapshotVersion|Uses a SNAPSHOT version.| |null|
|
||||
|configPackage|configuration package for generated code| |null|
|
||||
|
@ -41,3 +41,4 @@ sidebar_label: java-inflector
|
||||
|parentGroupId|parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentArtifactId|parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentVersion|parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|snapshotVersion|Uses a SNAPSHOT version.| |null|
|
||||
|
@ -41,6 +41,7 @@ sidebar_label: java-msf4j
|
||||
|parentGroupId|parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentArtifactId|parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentVersion|parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|snapshotVersion|Uses a SNAPSHOT version.| |null|
|
||||
|implFolder|folder for generated implementation code| |null|
|
||||
|title|a title describing the application| |null|
|
||||
|useBeanValidation|Use BeanValidation API annotations| |true|
|
||||
|
@ -41,6 +41,7 @@ sidebar_label: java-pkmst
|
||||
|parentGroupId|parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentArtifactId|parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentVersion|parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|snapshotVersion|Uses a SNAPSHOT version.| |null|
|
||||
|groupId|groupId in generated pom.xml| |null|
|
||||
|artifactId|artifactId in generated pom.xml| |null|
|
||||
|artifactVersion|artifact version in generated pom.xml| |null|
|
||||
|
@ -41,6 +41,7 @@ sidebar_label: java-play-framework
|
||||
|parentGroupId|parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentArtifactId|parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentVersion|parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|snapshotVersion|Uses a SNAPSHOT version.| |null|
|
||||
|title|server title name or client service name| |null|
|
||||
|configPackage|configuration package for generated code| |null|
|
||||
|basePackage|base package for generated code| |null|
|
||||
|
@ -41,3 +41,4 @@ sidebar_label: java-undertow-server
|
||||
|parentGroupId|parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentArtifactId|parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentVersion|parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|snapshotVersion|Uses a SNAPSHOT version.| |null|
|
||||
|
@ -41,5 +41,6 @@ sidebar_label: java-vertx
|
||||
|parentGroupId|parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentArtifactId|parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentVersion|parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|snapshotVersion|Uses a SNAPSHOT version.| |null|
|
||||
|rxInterface|When specified, API interfaces are generated with RX and methods return Single<> and Comparable.| |false|
|
||||
|vertxSwaggerRouterVersion|Specify the version of the swagger router library| |null|
|
||||
|
@ -41,6 +41,7 @@ sidebar_label: java
|
||||
|parentGroupId|parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentArtifactId|parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentVersion|parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|snapshotVersion|Uses a SNAPSHOT version.| |null|
|
||||
|useRxJava|Whether to use the RxJava adapter with the retrofit2 library.| |false|
|
||||
|useRxJava2|Whether to use the RxJava2 adapter with the retrofit2 library.| |false|
|
||||
|parcelableModel|Whether to generate models for Android that implement Parcelable with the okhttp-gson library.| |false|
|
||||
|
@ -41,6 +41,7 @@ sidebar_label: jaxrs-cxf-cdi
|
||||
|parentGroupId|parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentArtifactId|parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentVersion|parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|snapshotVersion|Uses a SNAPSHOT version.| |null|
|
||||
|implFolder|folder for generated implementation code| |null|
|
||||
|title|a title describing the application| |null|
|
||||
|useBeanValidation|Use BeanValidation API annotations| |true|
|
||||
|
@ -41,6 +41,7 @@ sidebar_label: jaxrs-cxf-client
|
||||
|parentGroupId|parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentArtifactId|parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentVersion|parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|snapshotVersion|Uses a SNAPSHOT version.| |null|
|
||||
|useBeanValidation|Use BeanValidation API annotations| |false|
|
||||
|useGzipFeatureForTests|Use Gzip Feature for tests| |false|
|
||||
|useLoggingFeatureForTests|Use Logging Feature for tests| |false|
|
||||
|
@ -41,6 +41,7 @@ sidebar_label: jaxrs-cxf
|
||||
|parentGroupId|parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentArtifactId|parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentVersion|parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|snapshotVersion|Uses a SNAPSHOT version.| |null|
|
||||
|implFolder|folder for generated implementation code| |null|
|
||||
|title|a title describing the application| |null|
|
||||
|useBeanValidation|Use BeanValidation API annotations| |true|
|
||||
|
@ -41,6 +41,7 @@ sidebar_label: jaxrs-jersey
|
||||
|parentGroupId|parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentArtifactId|parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentVersion|parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|snapshotVersion|Uses a SNAPSHOT version.| |null|
|
||||
|implFolder|folder for generated implementation code| |null|
|
||||
|title|a title describing the application| |null|
|
||||
|useBeanValidation|Use BeanValidation API annotations| |true|
|
||||
|
@ -41,6 +41,7 @@ sidebar_label: jaxrs-resteasy-eap
|
||||
|parentGroupId|parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentArtifactId|parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentVersion|parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|snapshotVersion|Uses a SNAPSHOT version.| |null|
|
||||
|implFolder|folder for generated implementation code| |null|
|
||||
|title|a title describing the application| |null|
|
||||
|useBeanValidation|Use BeanValidation API annotations| |true|
|
||||
|
@ -41,6 +41,7 @@ sidebar_label: jaxrs-resteasy
|
||||
|parentGroupId|parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentArtifactId|parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentVersion|parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|snapshotVersion|Uses a SNAPSHOT version.| |null|
|
||||
|implFolder|folder for generated implementation code| |null|
|
||||
|title|a title describing the application| |null|
|
||||
|useBeanValidation|Use BeanValidation API annotations| |true|
|
||||
|
@ -41,6 +41,7 @@ sidebar_label: jaxrs-spec
|
||||
|parentGroupId|parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentArtifactId|parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentVersion|parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|snapshotVersion|Uses a SNAPSHOT version.| |null|
|
||||
|implFolder|folder for generated implementation code| |null|
|
||||
|title|a title describing the application| |null|
|
||||
|useBeanValidation|Use BeanValidation API annotations| |true|
|
||||
|
@ -41,6 +41,7 @@ sidebar_label: spring
|
||||
|parentGroupId|parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentArtifactId|parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|parentVersion|parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
|
||||
|snapshotVersion|Uses a SNAPSHOT version.| |null|
|
||||
|title|server title name or client service name| |null|
|
||||
|configPackage|configuration package for generated code| |null|
|
||||
|basePackage|base package (invokerPackage) for generated code| |null|
|
||||
|
@ -283,10 +283,14 @@ public class CodegenConstants {
|
||||
public static final String ENABLE_POST_PROCESS_FILE_DESC = "Enable post-processing file using environment variables.";
|
||||
|
||||
public static final String OPEN_API_SPEC_NAME = "openAPISpecName";
|
||||
|
||||
|
||||
public static final String GENERATE_ALIAS_AS_MODEL = "generateAliasAsModel";
|
||||
public static final String GENERATE_ALIAS_AS_MODEL_DESC = "Generate alias to map, array as models";
|
||||
|
||||
public static final String USE_COMPARE_NET_OBJECTS = "useCompareNetObjects";
|
||||
public static final String USE_COMPARE_NET_OBJECTS_DESC = "Use KellermanSoftware.CompareNetObjects for deep recursive object comparison. WARNING: this option incurs potential performance impact.";
|
||||
|
||||
public static final String SNAPSHOT_VERSION = "snapshotVersion";
|
||||
public static final String SNAPSHOT_VERSION_DESC = "Uses a SNAPSHOT version.";
|
||||
|
||||
}
|
@ -191,6 +191,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
||||
cliOptions.add(CliOption.newString(CodegenConstants.PARENT_GROUP_ID, CodegenConstants.PARENT_GROUP_ID_DESC));
|
||||
cliOptions.add(CliOption.newString(CodegenConstants.PARENT_ARTIFACT_ID, CodegenConstants.PARENT_ARTIFACT_ID_DESC));
|
||||
cliOptions.add(CliOption.newString(CodegenConstants.PARENT_VERSION, CodegenConstants.PARENT_VERSION_DESC));
|
||||
cliOptions.add(CliOption.newString(CodegenConstants.SNAPSHOT_VERSION, CodegenConstants.SNAPSHOT_VERSION_DESC));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -264,11 +265,21 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
||||
|
||||
if (additionalProperties.containsKey(CodegenConstants.ARTIFACT_VERSION)) {
|
||||
this.setArtifactVersion((String) additionalProperties.get(CodegenConstants.ARTIFACT_VERSION));
|
||||
} else if (this.getVersionFromSpecification() != null) {
|
||||
this.setArtifactVersion(this.getVersionFromSpecification());
|
||||
} else {
|
||||
//not set, use to be passed to template
|
||||
additionalProperties.put(CodegenConstants.ARTIFACT_VERSION, artifactVersion);
|
||||
}
|
||||
|
||||
if (additionalProperties.containsKey(CodegenConstants.SNAPSHOT_VERSION)) {
|
||||
Boolean useSnapshotVersion = Boolean.valueOf((String) additionalProperties.get(CodegenConstants.SNAPSHOT_VERSION));
|
||||
|
||||
if (useSnapshotVersion) {
|
||||
this.setArtifactVersion(this.buildSnapshotVersion(this.artifactVersion));
|
||||
}
|
||||
}
|
||||
|
||||
if (additionalProperties.containsKey(CodegenConstants.ARTIFACT_URL)) {
|
||||
this.setArtifactUrl((String) additionalProperties.get(CodegenConstants.ARTIFACT_URL));
|
||||
} else {
|
||||
@ -1340,6 +1351,29 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets version from API specification.
|
||||
*
|
||||
* @return API version
|
||||
*/
|
||||
private String getVersionFromSpecification () {
|
||||
if (this.openAPI != null && this.openAPI.getInfo() != null) {
|
||||
return this.openAPI.getInfo().getVersion();
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds a SNAPSHOT version from a given version.
|
||||
*
|
||||
* @param version
|
||||
* @return SNAPSHOT version
|
||||
*/
|
||||
private String buildSnapshotVersion (String version) {
|
||||
return version + "-" + "SNAPSHOT";
|
||||
}
|
||||
|
||||
public void setSupportJava6(boolean value) {
|
||||
this.supportJava6 = value;
|
||||
}
|
||||
|
@ -198,6 +198,52 @@ public class AbstractJavaCodegenTest {
|
||||
codegen.setOutputDir("/User/open.api.tools");
|
||||
Assert.assertEquals(codegen.apiDocFileFolder(), "/User/open.api.tools/docs/".replace('/', File.separatorChar));
|
||||
}
|
||||
|
||||
@Test(description = "tests if API version specification is used if no version is provided in additional properties")
|
||||
public void openApiversionTest() {
|
||||
final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen();
|
||||
|
||||
OpenAPI api = TestUtils.createOpenAPI();
|
||||
codegen.setOpenAPI(api);
|
||||
|
||||
codegen.processOpts();
|
||||
|
||||
Assert.assertEquals(codegen.getArtifactVersion(), "1.0.7");
|
||||
}
|
||||
|
||||
@Test(description = "tests if artifactVersion additional property is used")
|
||||
public void additionalPropertyArtifactVersionTest() {
|
||||
final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen();
|
||||
|
||||
codegen.additionalProperties().put("artifactVersion", "1.1.1");
|
||||
|
||||
OpenAPI api = TestUtils.createOpenAPI();
|
||||
codegen.setOpenAPI(api);
|
||||
|
||||
codegen.processOpts();
|
||||
|
||||
Assert.assertEquals(codegen.getArtifactVersion(), "1.1.1");
|
||||
}
|
||||
|
||||
@Test(description = "tests if default version is used when neither OpenAPI version nor artifactVersion additional property has been provided")
|
||||
public void defautlVersionTest() {
|
||||
final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen();
|
||||
|
||||
codegen.processOpts();
|
||||
|
||||
Assert.assertEquals(codegen.getArtifactVersion(), "1.0.0");
|
||||
}
|
||||
|
||||
@Test(description = "tests if default version is used when neither OpenAPI version nor artifactVersion additional property has been provided")
|
||||
public void snapshotVersionTest() {
|
||||
final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen();
|
||||
|
||||
codegen.additionalProperties().put("snapshotVersion", "true");
|
||||
|
||||
codegen.processOpts();
|
||||
|
||||
Assert.assertEquals(codegen.getArtifactVersion(), "1.0.0-SNAPSHOT");
|
||||
}
|
||||
|
||||
private static class P_AbstractJavaCodegen extends AbstractJavaCodegen {
|
||||
@Override
|
||||
@ -214,5 +260,11 @@ public class AbstractJavaCodegenTest {
|
||||
public String getHelp() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets artifact version.
|
||||
* Only for testing purposes.
|
||||
*/
|
||||
public String getArtifactVersion () { return this.artifactVersion; }
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user