Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@
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";
Expand All @@ -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";
Expand Down Expand Up @@ -144,7 +146,7 @@ public AbstractJavaCodegen() {
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()));
Expand Down Expand Up @@ -1038,12 +1040,18 @@ public void preprocessOpenAPI(OpenAPI openAPI) {
}
}

// 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)) {
Expand Down Expand Up @@ -1433,7 +1441,10 @@ private String deriveInvokerPackageName(String input) {
* @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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,11 @@ public void convertModelName() throws Exception {

@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);
Expand All @@ -133,17 +136,25 @@ public void testInitialConfigValues() throws Exception {
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);
Expand All @@ -154,17 +165,24 @@ public void testSettersForConfigValues() throws Exception {
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);
Expand All @@ -175,6 +193,8 @@ public void testAdditionalPropertiesPutForConfigValues() throws Exception {
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
Expand Down Expand Up @@ -306,6 +326,34 @@ public void snapshotVersionTest() {
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();
Expand Down