forked from loafle/openapi-generator-original
[java] allow to use setArtifactVersion() programmatically (#3907)
* [java] allow to use setArtifactVersion() programmatically * Fix default value in the docs and cli help
This commit is contained in:
parent
af74f3443f
commit
078d7a38c0
@ -43,6 +43,8 @@ import static org.openapitools.codegen.utils.StringUtils.*;
|
||||
public abstract class AbstractJavaCodegen extends DefaultCodegen implements CodegenConfig {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractJavaCodegen.class);
|
||||
private static final String ARTIFACT_VERSION_DEFAULT_VALUE = "1.0.0";
|
||||
|
||||
public static final String FULL_JAVA_UTIL = "fullJavaUtil";
|
||||
public static final String DEFAULT_LIBRARY = "<default>";
|
||||
public static final String DATE_LIBRARY = "dateLibrary";
|
||||
@ -60,7 +62,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
||||
protected String invokerPackage = "org.openapitools";
|
||||
protected String groupId = "org.openapitools";
|
||||
protected String artifactId = "openapi-java";
|
||||
protected String artifactVersion = "1.0.0";
|
||||
protected String artifactVersion = null;
|
||||
protected String artifactUrl = "https://github.com/openapitools/openapi-generator";
|
||||
protected String artifactDescription = "OpenAPI Java";
|
||||
protected String developerName = "OpenAPI-Generator Contributors";
|
||||
@ -144,7 +146,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
||||
cliOptions.add(new CliOption(CodegenConstants.INVOKER_PACKAGE, CodegenConstants.INVOKER_PACKAGE_DESC).defaultValue(this.getInvokerPackage()));
|
||||
cliOptions.add(new CliOption(CodegenConstants.GROUP_ID, CodegenConstants.GROUP_ID_DESC).defaultValue(this.getGroupId()));
|
||||
cliOptions.add(new CliOption(CodegenConstants.ARTIFACT_ID, CodegenConstants.ARTIFACT_ID_DESC).defaultValue(this.getArtifactId()));
|
||||
cliOptions.add(new CliOption(CodegenConstants.ARTIFACT_VERSION, CodegenConstants.ARTIFACT_VERSION_DESC).defaultValue(this.getArtifactVersion()));
|
||||
cliOptions.add(new CliOption(CodegenConstants.ARTIFACT_VERSION, CodegenConstants.ARTIFACT_VERSION_DESC).defaultValue(ARTIFACT_VERSION_DEFAULT_VALUE));
|
||||
cliOptions.add(new CliOption(CodegenConstants.ARTIFACT_URL, CodegenConstants.ARTIFACT_URL_DESC).defaultValue(this.getArtifactUrl()));
|
||||
cliOptions.add(new CliOption(CodegenConstants.ARTIFACT_DESCRIPTION, CodegenConstants.ARTIFACT_DESCRIPTION_DESC).defaultValue(this.getArtifactDescription()));
|
||||
cliOptions.add(new CliOption(CodegenConstants.SCM_CONNECTION, CodegenConstants.SCM_CONNECTION_DESC).defaultValue(this.getScmConnection()));
|
||||
@ -1038,12 +1040,18 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
||||
}
|
||||
}
|
||||
|
||||
// If no artifactVersion is provided in additional properties, version from API specification is used.
|
||||
// If none of them is provided then fallbacks to default version
|
||||
if (additionalProperties.containsKey(CodegenConstants.ARTIFACT_VERSION)) {
|
||||
this.setArtifactVersion((String) additionalProperties.get(CodegenConstants.ARTIFACT_VERSION));
|
||||
} else if (openAPI.getInfo() != null && openAPI.getInfo().getVersion() != null) {
|
||||
this.setArtifactVersion(openAPI.getInfo().getVersion());
|
||||
if(artifactVersion == null) {
|
||||
// If no artifactVersion is provided in additional properties, version from API specification is used.
|
||||
// If none of them is provided then fallbacks to default version
|
||||
if (additionalProperties.containsKey(CodegenConstants.ARTIFACT_VERSION)) {
|
||||
this.setArtifactVersion((String) additionalProperties.get(CodegenConstants.ARTIFACT_VERSION));
|
||||
} else if (openAPI.getInfo() != null && openAPI.getInfo().getVersion() != null) {
|
||||
this.setArtifactVersion(openAPI.getInfo().getVersion());
|
||||
} else {
|
||||
this.setArtifactVersion(ARTIFACT_VERSION_DEFAULT_VALUE);
|
||||
}
|
||||
} else {
|
||||
additionalProperties.put(CodegenConstants.ARTIFACT_VERSION, artifactVersion);
|
||||
}
|
||||
|
||||
if (additionalProperties.containsKey(CodegenConstants.SNAPSHOT_VERSION)) {
|
||||
@ -1433,7 +1441,10 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
||||
* @return SNAPSHOT version
|
||||
*/
|
||||
private String buildSnapshotVersion(String version) {
|
||||
return version + "-" + "SNAPSHOT";
|
||||
if(version.endsWith("-SNAPSHOT")) {
|
||||
return version;
|
||||
}
|
||||
return version + "-SNAPSHOT";
|
||||
}
|
||||
|
||||
public void setSupportJava6(boolean value) {
|
||||
|
@ -121,8 +121,11 @@ public class AbstractJavaCodegenTest {
|
||||
|
||||
@Test
|
||||
public void testInitialConfigValues() throws Exception {
|
||||
OpenAPI openAPI = TestUtils.createOpenAPI();
|
||||
|
||||
final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen();
|
||||
codegen.processOpts();
|
||||
codegen.preprocessOpenAPI(openAPI);
|
||||
|
||||
Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP), Boolean.FALSE);
|
||||
Assert.assertEquals(codegen.isHideGenerationTimestamp(), false);
|
||||
@ -133,17 +136,25 @@ public class AbstractJavaCodegenTest {
|
||||
Assert.assertEquals(codegen.getInvokerPackage(), "org.openapitools");
|
||||
Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.INVOKER_PACKAGE), "org.openapitools");
|
||||
Assert.assertEquals(codegen.additionalProperties().get(AbstractJavaCodegen.BOOLEAN_GETTER_PREFIX), "get");
|
||||
Assert.assertEquals(codegen.getArtifactVersion(), openAPI.getInfo().getVersion());
|
||||
Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.ARTIFACT_VERSION), openAPI.getInfo().getVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSettersForConfigValues() throws Exception {
|
||||
OpenAPI openAPI = TestUtils.createOpenAPI();
|
||||
|
||||
final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen();
|
||||
|
||||
codegen.setHideGenerationTimestamp(true);
|
||||
codegen.setModelPackage("xyz.yyyyy.zzzzzzz.model");
|
||||
codegen.setApiPackage("xyz.yyyyy.zzzzzzz.api");
|
||||
codegen.setInvokerPackage("xyz.yyyyy.zzzzzzz.invoker");
|
||||
codegen.setBooleanGetterPrefix("is");
|
||||
codegen.setArtifactVersion("0.9.0-SNAPSHOT");
|
||||
|
||||
codegen.processOpts();
|
||||
codegen.preprocessOpenAPI(openAPI);
|
||||
|
||||
Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP), Boolean.TRUE);
|
||||
Assert.assertEquals(codegen.isHideGenerationTimestamp(), true);
|
||||
@ -154,17 +165,24 @@ public class AbstractJavaCodegenTest {
|
||||
Assert.assertEquals(codegen.getInvokerPackage(), "xyz.yyyyy.zzzzzzz.invoker");
|
||||
Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.INVOKER_PACKAGE), "xyz.yyyyy.zzzzzzz.invoker");
|
||||
Assert.assertEquals(codegen.additionalProperties().get(AbstractJavaCodegen.BOOLEAN_GETTER_PREFIX), "is");
|
||||
Assert.assertEquals(codegen.getArtifactVersion(), "0.9.0-SNAPSHOT");
|
||||
Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.ARTIFACT_VERSION), "0.9.0-SNAPSHOT");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAdditionalPropertiesPutForConfigValues() throws Exception {
|
||||
OpenAPI openAPI = TestUtils.createOpenAPI();
|
||||
|
||||
final AbstractJavaCodegen codegen = new P_AbstractJavaCodegen();
|
||||
codegen.additionalProperties().put(CodegenConstants.HIDE_GENERATION_TIMESTAMP, false);
|
||||
codegen.additionalProperties().put(CodegenConstants.MODEL_PACKAGE, "xyz.yyyyy.model.oooooo");
|
||||
codegen.additionalProperties().put(CodegenConstants.API_PACKAGE, "xyz.yyyyy.api.oooooo");
|
||||
codegen.additionalProperties().put(CodegenConstants.INVOKER_PACKAGE, "xyz.yyyyy.invoker.oooooo");
|
||||
codegen.additionalProperties().put(AbstractJavaCodegen.BOOLEAN_GETTER_PREFIX, "getBoolean");
|
||||
codegen.additionalProperties().put(CodegenConstants.ARTIFACT_VERSION, "0.8.0-SNAPSHOT");
|
||||
codegen.processOpts();
|
||||
codegen.preprocessOpenAPI(openAPI);
|
||||
|
||||
|
||||
Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP), Boolean.FALSE);
|
||||
Assert.assertEquals(codegen.isHideGenerationTimestamp(), false);
|
||||
@ -175,6 +193,8 @@ public class AbstractJavaCodegenTest {
|
||||
Assert.assertEquals(codegen.getInvokerPackage(), "xyz.yyyyy.invoker.oooooo");
|
||||
Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.INVOKER_PACKAGE), "xyz.yyyyy.invoker.oooooo");
|
||||
Assert.assertEquals(codegen.additionalProperties().get(AbstractJavaCodegen.BOOLEAN_GETTER_PREFIX), "getBoolean");
|
||||
Assert.assertEquals(codegen.getArtifactVersion(), "0.8.0-SNAPSHOT");
|
||||
Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.ARTIFACT_VERSION), "0.8.0-SNAPSHOT");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -306,6 +326,34 @@ public class AbstractJavaCodegenTest {
|
||||
Assert.assertEquals(codegen.getArtifactVersion(), "1.0.0-SNAPSHOT");
|
||||
}
|
||||
|
||||
@Test(description = "tests if default version with snapshot is used when OpenAPI version has been provided")
|
||||
public void snapshotVersionOpenAPITest() {
|
||||
final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen();
|
||||
|
||||
codegen.additionalProperties().put(CodegenConstants.SNAPSHOT_VERSION, "true");
|
||||
|
||||
OpenAPI api = TestUtils.createOpenAPI();
|
||||
api.getInfo().setVersion("2.0");
|
||||
codegen.processOpts();
|
||||
codegen.preprocessOpenAPI(api);
|
||||
|
||||
Assert.assertEquals(codegen.getArtifactVersion(), "2.0-SNAPSHOT");
|
||||
}
|
||||
|
||||
@Test(description = "tests if default version with snapshot is used when setArtifactVersion is used")
|
||||
public void snapshotVersionAlreadySnapshotTest() {
|
||||
final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen();
|
||||
|
||||
codegen.additionalProperties().put(CodegenConstants.SNAPSHOT_VERSION, "true");
|
||||
|
||||
OpenAPI api = TestUtils.createOpenAPI();
|
||||
codegen.setArtifactVersion("4.1.2-SNAPSHOT");
|
||||
codegen.processOpts();
|
||||
codegen.preprocessOpenAPI(api);
|
||||
|
||||
Assert.assertEquals(codegen.getArtifactVersion(), "4.1.2-SNAPSHOT");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toDefaultValueTest() {
|
||||
final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen();
|
||||
|
Loading…
x
Reference in New Issue
Block a user