Skip to content

Commit a8edb0e

Browse files
committed
upgrade to jackson 2.8.0 and use DateTime for zendesk start times
There was a BUG in jackson FasterXML/jackson-databind#1124 fixed in 2.7.2. In addition spring 4.3.0 officially claims compatibility with jackson 2.8.0
1 parent e69f120 commit a8edb0e

File tree

3 files changed

+9
-11
lines changed

3 files changed

+9
-11
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ The *GoodData Java SDK* uses:
2929
* the [GoodData HTTP client](https://github.com/gooddata/gooddata-http-client) version 0.9.3 or later
3030
* the *Apache HTTP Client* version 4.3 or later (for white-labeled domains at least version 4.3.2 is required)
3131
* the *Spring Framework* version 4.3.*
32-
* the *Jackson JSON Processor* version 2.7.0 (*GoodData Java SDK* version 0.x requires version 1.9)
32+
* the *Jackson JSON Processor* version 2.8.*
3333
* the *Java Development Kit (JDK)* version 7 or later
3434

3535
## License

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
4444
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
4545
<httpclient.version>4.3.3</httpclient.version>
46-
<jackson.version>2.7.0</jackson.version>
46+
<jackson.version>2.8.0</jackson.version>
4747
<spring.version>4.3.1.RELEASE</spring.version>
4848
<jadler.version>1.1.1</jadler.version>
4949
<json-unit.version>1.5.3</json-unit.version>

src/main/java/com/gooddata/connector/Zendesk4ProcessExecution.java

+7-9
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,9 @@
88
import static com.gooddata.util.Validate.notNull;
99

1010
import com.fasterxml.jackson.annotation.JsonAnyGetter;
11+
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
12+
import com.gooddata.util.ISODateTimeSerializer;
1113
import org.joda.time.DateTime;
12-
import org.joda.time.DateTimeZone;
13-
import org.joda.time.format.DateTimeFormatter;
14-
import org.joda.time.format.ISODateTimeFormat;
1514

1615
import java.util.Map;
1716
import java.util.TreeMap;
@@ -21,11 +20,9 @@
2120
*/
2221
public class Zendesk4ProcessExecution implements ProcessExecution {
2322

24-
private static final DateTimeFormatter FORMATTER = ISODateTimeFormat.dateTime().withZone(DateTimeZone.UTC);
25-
2623
private Boolean incremental;
2724

28-
private Map<String, String> startTimes;
25+
private Map<String, DateTime> startTimes;
2926

3027
@Override
3128
public ConnectorType getConnectorType() {
@@ -41,7 +38,8 @@ public void setIncremental(final Boolean incremental) {
4138
}
4239

4340
@JsonAnyGetter
44-
public Map<String, String> getStartTimes() {
41+
@JsonSerialize(contentUsing = ISODateTimeSerializer.class)
42+
public Map<String, DateTime> getStartTimes() {
4543
return startTimes;
4644
}
4745

@@ -50,8 +48,8 @@ public void setStartTime(final String resource, final DateTime startTime) {
5048
notEmpty(resource, "resource can't be empty");
5149
notNull(startTime, "startTime can't be null");
5250

53-
startTimes = startTimes == null ? new TreeMap<String, String>() : startTimes;
51+
startTimes = startTimes == null ? new TreeMap<String, DateTime>() : startTimes;
5452

55-
startTimes.put(resource + "StartDate", FORMATTER.print(startTime));
53+
startTimes.put(resource + "StartDate", startTime);
5654
}
5755
}

0 commit comments

Comments
 (0)