Fixed Java 8 time in Jersey 1 Client

Made the Jersey 1 client work with java 8 time classes.  Also tightened
up newlines in templates.
This commit is contained in:
ant3 2016-06-12 19:15:38 +01:00
parent b8ebee1ec3
commit 56c6e081d5
6 changed files with 46 additions and 74 deletions

View File

@ -1,8 +1,9 @@
package {{invokerPackage}};
import com.fasterxml.jackson.annotation.*;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.datatype.joda.*;
import com.fasterxml.jackson.databind.*;{{#java8}}
import com.fasterxml.jackson.datatype.jsr310.*;{{/java8}}{{^java8}}
import com.fasterxml.jackson.datatype.joda.*;{{/java8}}
import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import com.sun.jersey.api.client.Client;
@ -64,8 +65,9 @@ public class ApiClient {
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
objectMapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);
objectMapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);
objectMapper.registerModule(new JodaModule());
objectMapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);{{#java8}}
objectMapper.registerModule(new JavaTimeModule());{{/java8}}{{^java8}}
objectMapper.registerModule(new JodaModule());{{/java8}}
objectMapper.setDateFormat(ApiClient.buildDefaultDateFormat());
dateFormat = ApiClient.buildDefaultDateFormat();

View File

@ -1,13 +1,9 @@
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 com.fasterxml.jackson.databind.*;{{#java8}}
import com.fasterxml.jackson.datatype.jsr310.*;{{/java8}}{{^java8}}
import com.fasterxml.jackson.datatype.joda.*;{{/java8}}
import java.text.DateFormat;
@ -23,13 +19,9 @@ public class JSON implements ContextResolver<ObjectMapper> {
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
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}}
mapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);{{#java8}}
mapper.registerModule(new JavaTimeModule());{{/java8}}{{^java8}}
mapper.registerModule(new JodaModule());{{/java8}}
}
/**

View File

@ -31,15 +31,11 @@ if(hasProperty('target') && target == 'android') {
minSdkVersion 14
targetSdkVersion 23
}
compileOptions {
{{#java8}}
compileOptions { {{#java8}}
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
{{/java8}}
{{^java8}}
targetCompatibility JavaVersion.VERSION_1_8{{/java8}}{{^java8}}
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
{{/java8}}
targetCompatibility JavaVersion.VERSION_1_7{{/java8}}
}
// Rename the aar correctly
@ -83,15 +79,11 @@ if(hasProperty('target') && target == 'android') {
apply plugin: 'java'
apply plugin: 'maven'
{{#java8}}
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
{{/java8}}
{{^java8}}
targetCompatibility = JavaVersion.VERSION_1_8{{/java8}}{{^java8}}
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
{{/java8}}
targetCompatibility = JavaVersion.VERSION_1_7{{/java8}}
install {
repositories.mavenInstaller {
@ -108,10 +100,8 @@ if(hasProperty('target') && target == 'android') {
ext {
swagger_annotations_version = "1.5.8"
jackson_version = "2.7.0"
jersey_version = "2.22.2"
{{^java8}}
jodatime_version = "2.9.3"
{{/java8}}
jersey_version = "2.22.2"{{^java8}}
jodatime_version = "2.9.3"{{/java8}}
junit_version = "4.12"
}
@ -122,15 +112,10 @@ dependencies {
compile "org.glassfish.jersey.media:jersey-media-json-jackson:2.22.1"
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.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 "joda-time:joda-time:$jodatime_version"{{/java8}}
compile "com.brsanthu:migbase64:2.2"
testCompile "junit:junit:$junit_version"
}

View File

@ -15,14 +15,10 @@ lazy val root = (project in file(".")).
"org.glassfish.jersey.media" % "jersey-media-json-jackson" % "2.22.1",
"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.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}}
"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"

View File

@ -99,15 +99,11 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
{{#java8}}
<configuration>{{#java8}}
<source>1.8</source>
<target>1.8</target>
{{/java8}}
{{^java8}}
<target>1.8</target>{{/java8}}{{^java8}}
<source>1.7</source>
<target>1.7</target>
{{/java8}}
<target>1.7</target>{{/java8}}
</configuration>
</plugin>
<!-- For testing build.gradle -->
@ -172,15 +168,12 @@
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson-version}</version>
</dependency>
{{#java8}}
</dependency>{{#java8}}
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>${jackson-version}</version>
</dependency>
{{/java8}}
{{^java8}}
</dependency>{{/java8}}{{^java8}}
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-joda</artifactId>
@ -190,8 +183,7 @@
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${jodatime-version}</version>
</dependency>
{{/java8}}
</dependency>{{/java8}}
<!-- Base64 encoding that works in both JVM and Android -->
<dependency>
@ -211,10 +203,8 @@
<properties>
<swagger-core-version>1.5.8</swagger-core-version>
<jersey-version>2.22.2</jersey-version>
<jackson-version>2.7.0</jackson-version>
{{^java8}}
<jodatime-version>2.9.3</jodatime-version>
{{/java8}}
<jackson-version>2.7.0</jackson-version>{{^java8}}
<jodatime-version>2.9.3</jodatime-version>{{/java8}}
<maven-plugin-version>1.0.0</maven-plugin-version>
<junit-version>4.12</junit-version>
</properties>

View File

@ -96,9 +96,11 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<configuration>{{#java8}}
<source>1.8</source>
<target>1.8</target>{{/java8}}{{^java8}}
<source>1.7</source>
<target>1.7</target>
<target>1.7</target>{{/java8}}
</configuration>
</plugin>
</plugins>
@ -142,7 +144,12 @@
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>${jackson-version}</version>
</dependency>
</dependency>{{#java8}}
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>${jackson-version}</version>
</dependency>{{/java8}}{{^java8}}
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-joda</artifactId>
@ -152,7 +159,7 @@
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${jodatime-version}</version>
</dependency>
</dependency>{{/java8}}
<!-- Base64 encoding that works in both JVM and Android -->
<dependency>
@ -173,8 +180,8 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<swagger-annotations-version>1.5.8</swagger-annotations-version>
<jersey-version>1.19.1</jersey-version>
<jackson-version>2.7.0</jackson-version>
<jodatime-version>2.9.3</jodatime-version>
<jackson-version>2.7.0</jackson-version>{{^java8}}
<jodatime-version>2.9.3</jodatime-version>{{/java8}}
<maven-plugin-version>1.0.0</maven-plugin-version>
<junit-version>4.12</junit-version>
</properties>