From 9a9d5ebd9fb0083d76d195694833b05c74affb20 Mon Sep 17 00:00:00 2001 From: ant3 Date: Sun, 5 Jun 2016 23:11:29 +0100 Subject: [PATCH] Allow generation of Jersey2 clients with JSR310 classes If the -DdateLibrary=java8 option is set on the command line then jersey2 client code will be generated using JSR310 classes rather than Joda time. Because JSR310 requires java8 the java target version is also changed in the build files. --- .../Java/libraries/jersey2/JSON.mustache | 10 ++++++++++ .../libraries/jersey2/build.gradle.mustache | 20 +++++++++++++++++++ .../Java/libraries/jersey2/build.sbt.mustache | 5 +++++ .../Java/libraries/jersey2/pom.mustache | 17 ++++++++++++++++ 4 files changed, 52 insertions(+) diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/JSON.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/JSON.mustache index cc3f1baba140..243e444cf013 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/JSON.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/JSON.mustache @@ -2,7 +2,12 @@ package {{invokerPackage}}; import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.*; +{{#java8}} +import com.fasterxml.jackson.datatype.jsr310.*; +{{/java8}} +{{^java8}} import com.fasterxml.jackson.datatype.joda.*; +{{/java8}} import java.text.DateFormat; @@ -19,7 +24,12 @@ public class JSON implements ContextResolver { mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); mapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING); mapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING); + {{#java8}} + mapper.registerModule(new JavaTimeModule()); + {{/java8}} + {{^java8}} mapper.registerModule(new JodaModule()); + {{/java8}} } /** diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/build.gradle.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/build.gradle.mustache index aa0e6da3fb06..81b6f4cb9b5f 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/build.gradle.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/build.gradle.mustache @@ -32,8 +32,14 @@ if(hasProperty('target') && target == 'android') { targetSdkVersion 23 } compileOptions { + {{#java8}} + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + {{/java8}} + {{^java8}} sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 + {{/java8}} } // Rename the aar correctly @@ -78,8 +84,14 @@ if(hasProperty('target') && target == 'android') { apply plugin: 'java' apply plugin: 'maven' + {{#java8}} + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + {{/java8}} + {{^java8}} sourceCompatibility = JavaVersion.VERSION_1_7 targetCompatibility = JavaVersion.VERSION_1_7 + {{/java8}} install { repositories.mavenInstaller { @@ -97,7 +109,9 @@ ext { swagger_annotations_version = "1.5.8" jackson_version = "2.7.0" jersey_version = "2.22.2" + {{^java8}} jodatime_version = "2.9.3" + {{/java8}} junit_version = "4.12" } @@ -109,8 +123,14 @@ dependencies { compile "com.fasterxml.jackson.core:jackson-core:$jackson_version" compile "com.fasterxml.jackson.core:jackson-annotations:$jackson_version" compile "com.fasterxml.jackson.core:jackson-databind:$jackson_version" + {{#java8}} + compile "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jackson_version" + {{/java8}} + {{^java8}} compile "com.fasterxml.jackson.datatype:jackson-datatype-joda:2.1.5" compile "joda-time:joda-time:$jodatime_version" + {{/java8}} + compile "com.brsanthu:migbase64:2.2" testCompile "junit:junit:$junit_version" } diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/build.sbt.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/build.sbt.mustache index 0a297497d9db..a08a200f2a7f 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/build.sbt.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/build.sbt.mustache @@ -16,8 +16,13 @@ lazy val root = (project in file(".")). "com.fasterxml.jackson.core" % "jackson-core" % "2.7.0", "com.fasterxml.jackson.core" % "jackson-annotations" % "2.7.0", "com.fasterxml.jackson.core" % "jackson-databind" % "2.7.0", + {{#java8}} + "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % "2.7.0", + {{/java8}} + {{^java8}} "com.fasterxml.jackson.datatype" % "jackson-datatype-joda" % "2.1.5", "joda-time" % "joda-time" % "2.9.3", + {{/java8}} "com.brsanthu" % "migbase64" % "2.2", "junit" % "junit" % "4.12" % "test", "com.novocode" % "junit-interface" % "0.10" % "test" diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/pom.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/pom.mustache index 472bbf9b9b8e..75eabc5b0a6c 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/pom.mustache @@ -100,8 +100,14 @@ maven-compiler-plugin 2.3.2 + {{#java8}} + 1.8 + 1.8 + {{/java8}} + {{^java8}} 1.7 1.7 + {{/java8}} @@ -167,6 +173,14 @@ jackson-databind ${jackson-version} + {{#java8}} + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + ${jackson-version} + + {{/java8}} + {{^java8}} com.fasterxml.jackson.datatype jackson-datatype-joda @@ -177,6 +191,7 @@ joda-time ${jodatime-version} + {{/java8}} @@ -197,7 +212,9 @@ 1.5.8 2.22.2 2.7.0 + {{^java8}} 2.9.3 + {{/java8}} 1.0.0 4.12