Skip to content

Commit 3db2ba1

Browse files
committed
Replace joda-time with java.time
1 parent 2002be3 commit 3db2ba1

106 files changed

Lines changed: 755 additions & 741 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

pom.xml

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -243,16 +243,7 @@
243243
<version>${okhttp3.version}</version>
244244
<scope>test</scope>
245245
</dependency>
246-
<dependency>
247-
<groupId>joda-time</groupId>
248-
<artifactId>joda-time</artifactId>
249-
<version>2.10.6</version>
250-
</dependency>
251-
<dependency>
252-
<groupId>com.fatboyindustrial.gson-jodatime-serialisers</groupId>
253-
<artifactId>gson-jodatime-serialisers</artifactId>
254-
<version>1.8.0</version>
255-
</dependency>
246+
256247
<dependency>
257248
<groupId>org.apache.maven.surefire</groupId>
258249
<artifactId>surefire</artifactId>

src/main/java/com/recurly/v3/BaseClient.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
import okhttp3.*;
2323
import okhttp3.Request.Builder;
2424
import okhttp3.logging.HttpLoggingInterceptor;
25-
import org.joda.time.DateTime;
25+
import java.time.ZonedDateTime;
26+
import java.time.format.DateTimeFormatter;
2627

2728
public abstract class BaseClient {
2829
private static final List<String> BINARY_TYPES = Arrays.asList("application/pdf");
@@ -34,25 +35,28 @@ public abstract class BaseClient {
3435
private String apiUrl;
3536

3637
protected BaseClient(final String apiKey) {
37-
this(apiKey, newHttpClient(apiKey), new ClientOptions());
38+
this(apiKey, newHttpClient(validateApiKey(apiKey)), new ClientOptions());
3839
}
3940

4041
protected BaseClient(final String apiKey, final ClientOptions clientOptions) {
41-
this(apiKey, newHttpClient(apiKey), clientOptions);
42+
this(apiKey, newHttpClient(validateApiKey(apiKey)), clientOptions);
4243
}
4344

4445
protected BaseClient(final String apiKey, final OkHttpClient client) {
4546
this(apiKey, client, new ClientOptions());
4647
}
4748

4849
protected BaseClient(final String apiKey, final OkHttpClient client, final ClientOptions clientOptions) {
50+
this.apiKey = validateApiKey(apiKey);
51+
this.client = client;
52+
this.apiUrl = clientOptions.getBaseUrl();
53+
}
54+
55+
private static String validateApiKey(final String apiKey) {
4956
if (apiKey == null || apiKey.isEmpty()) {
5057
throw new IllegalArgumentException("apiKey cannot be null or empty");
5158
}
52-
53-
this.apiKey = apiKey;
54-
this.client = client;
55-
this.apiUrl = clientOptions.getBaseUrl();
59+
return apiKey;
5660
}
5761

5862
private static OkHttpClient newHttpClient(final String apiKey) {
@@ -207,8 +211,8 @@ private okhttp3.Request buildRequest(
207211
continue;
208212
} else if (value instanceof String) {
209213
stringValue = value.toString();
210-
} else if (value instanceof DateTime) {
211-
stringValue = value.toString();
214+
} else if (value instanceof ZonedDateTime) {
215+
stringValue = DateTimeFormatter.ISO_OFFSET_DATE_TIME.format((ZonedDateTime) value);
212216
} else if (value instanceof Integer) {
213217
stringValue = Integer.toString((Integer) value);
214218
} else if (value instanceof Float) {

src/main/java/com/recurly/v3/Client.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import com.recurly.v3.resources.*;
1212
import com.recurly.v3.queryparams.*;
1313
import okhttp3.OkHttpClient;
14-
import org.joda.time.DateTime;
14+
import java.time.ZonedDateTime;
1515

1616
import java.lang.reflect.Type;
1717
import java.util.HashMap;

src/main/java/com/recurly/v3/JsonSerializer.java

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package com.recurly.v3;
22

3-
import com.fatboyindustrial.gsonjodatime.Converters;
3+
import java.time.LocalDateTime;
4+
import java.time.ZoneOffset;
5+
import java.time.format.DateTimeFormatter;
6+
import java.time.format.DateTimeParseException;
47
import com.google.gson.*;
58
import com.google.gson.annotations.SerializedName;
69
import com.google.gson.reflect.TypeToken;
@@ -14,22 +17,37 @@
1417
import java.util.HashMap;
1518
import java.util.Map;
1619

17-
import org.joda.time.DateTime;
20+
import java.time.ZonedDateTime;
1821

1922
public class JsonSerializer {
20-
private class DateDeserializer implements JsonDeserializer<DateTime> {
23+
private class DateDeserializer implements JsonDeserializer<ZonedDateTime> {
2124
@Override
22-
public DateTime deserialize(JsonElement element, Type arg1, JsonDeserializationContext arg2)
25+
public ZonedDateTime deserialize(JsonElement element, Type arg1, JsonDeserializationContext arg2)
2326
throws JsonParseException {
24-
return DateTime.parse(element.getAsString());
27+
String s = element.getAsString();
28+
try {
29+
return ZonedDateTime.parse(s);
30+
} catch (DateTimeParseException e) {
31+
return LocalDateTime.parse(s).atZone(ZoneOffset.UTC);
32+
}
33+
}
34+
}
35+
36+
private class DateSerializer implements com.google.gson.JsonSerializer<ZonedDateTime> {
37+
@Override
38+
public JsonElement serialize(ZonedDateTime src, Type typeOfSrc, JsonSerializationContext context) {
39+
return new JsonPrimitive(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(src));
2540
}
2641
}
2742

28-
private final Gson gsonSerializer = Converters.registerDateTime(new GsonBuilder()).create();
43+
private final Gson gsonSerializer =
44+
new GsonBuilder()
45+
.registerTypeAdapter(ZonedDateTime.class, new DateSerializer())
46+
.create();
2947
private final Gson gsonDeserializer =
3048
new GsonBuilder()
3149
.excludeFieldsWithoutExposeAnnotation()
32-
.registerTypeAdapter(DateTime.class, new DateDeserializer())
50+
.registerTypeAdapter(ZonedDateTime.class, new DateDeserializer())
3351
.registerTypeAdapterFactory(new RecurlyEnumTypeAdapterFactory())
3452
.create();
3553

src/main/java/com/recurly/v3/queryparams/ListAccountAcquisitionParams.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import com.recurly.v3.AbstractQueryParams;
99
import com.recurly.v3.Constants;
1010
import java.util.List;
11-
import org.joda.time.DateTime;
11+
import java.time.ZonedDateTime;
1212

1313
public class ListAccountAcquisitionParams extends AbstractQueryParams {
1414

@@ -28,11 +28,11 @@ public void setSort(final Constants.TimestampSort sort) {
2828
this.add("sort", sort);
2929
}
3030

31-
public void setBeginTime(final DateTime beginTime) {
31+
public void setBeginTime(final ZonedDateTime beginTime) {
3232
this.add("begin_time", beginTime);
3333
}
3434

35-
public void setEndTime(final DateTime endTime) {
35+
public void setEndTime(final ZonedDateTime endTime) {
3636
this.add("end_time", endTime);
3737
}
3838
}

src/main/java/com/recurly/v3/queryparams/ListAccountCouponRedemptionsParams.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import com.recurly.v3.AbstractQueryParams;
99
import com.recurly.v3.Constants;
1010
import java.util.List;
11-
import org.joda.time.DateTime;
11+
import java.time.ZonedDateTime;
1212

1313
public class ListAccountCouponRedemptionsParams extends AbstractQueryParams {
1414

@@ -20,11 +20,11 @@ public void setSort(final Constants.TimestampSort sort) {
2020
this.add("sort", sort);
2121
}
2222

23-
public void setBeginTime(final DateTime beginTime) {
23+
public void setBeginTime(final ZonedDateTime beginTime) {
2424
this.add("begin_time", beginTime);
2525
}
2626

27-
public void setEndTime(final DateTime endTime) {
27+
public void setEndTime(final ZonedDateTime endTime) {
2828
this.add("end_time", endTime);
2929
}
3030

src/main/java/com/recurly/v3/queryparams/ListAccountCreditPaymentsParams.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import com.recurly.v3.AbstractQueryParams;
99
import com.recurly.v3.Constants;
10-
import org.joda.time.DateTime;
10+
import java.time.ZonedDateTime;
1111

1212
public class ListAccountCreditPaymentsParams extends AbstractQueryParams {
1313

@@ -23,11 +23,11 @@ public void setSort(final Constants.TimestampSort sort) {
2323
this.add("sort", sort);
2424
}
2525

26-
public void setBeginTime(final DateTime beginTime) {
26+
public void setBeginTime(final ZonedDateTime beginTime) {
2727
this.add("begin_time", beginTime);
2828
}
2929

30-
public void setEndTime(final DateTime endTime) {
30+
public void setEndTime(final ZonedDateTime endTime) {
3131
this.add("end_time", endTime);
3232
}
3333
}

src/main/java/com/recurly/v3/queryparams/ListAccountInvoicesParams.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import com.recurly.v3.AbstractQueryParams;
99
import com.recurly.v3.Constants;
1010
import java.util.List;
11-
import org.joda.time.DateTime;
11+
import java.time.ZonedDateTime;
1212

1313
public class ListAccountInvoicesParams extends AbstractQueryParams {
1414

@@ -32,11 +32,11 @@ public void setSort(final Constants.TimestampSort sort) {
3232
this.add("sort", sort);
3333
}
3434

35-
public void setBeginTime(final DateTime beginTime) {
35+
public void setBeginTime(final ZonedDateTime beginTime) {
3636
this.add("begin_time", beginTime);
3737
}
3838

39-
public void setEndTime(final DateTime endTime) {
39+
public void setEndTime(final ZonedDateTime endTime) {
4040
this.add("end_time", endTime);
4141
}
4242

src/main/java/com/recurly/v3/queryparams/ListAccountLineItemsParams.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import com.recurly.v3.AbstractQueryParams;
99
import com.recurly.v3.Constants;
1010
import java.util.List;
11-
import org.joda.time.DateTime;
11+
import java.time.ZonedDateTime;
1212

1313
public class ListAccountLineItemsParams extends AbstractQueryParams {
1414

@@ -28,11 +28,11 @@ public void setSort(final Constants.TimestampSort sort) {
2828
this.add("sort", sort);
2929
}
3030

31-
public void setBeginTime(final DateTime beginTime) {
31+
public void setBeginTime(final ZonedDateTime beginTime) {
3232
this.add("begin_time", beginTime);
3333
}
3434

35-
public void setEndTime(final DateTime endTime) {
35+
public void setEndTime(final ZonedDateTime endTime) {
3636
this.add("end_time", endTime);
3737
}
3838

src/main/java/com/recurly/v3/queryparams/ListAccountSubscriptionsParams.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import com.recurly.v3.AbstractQueryParams;
99
import com.recurly.v3.Constants;
1010
import java.util.List;
11-
import org.joda.time.DateTime;
11+
import java.time.ZonedDateTime;
1212

1313
public class ListAccountSubscriptionsParams extends AbstractQueryParams {
1414

@@ -28,11 +28,11 @@ public void setSort(final Constants.TimestampSort sort) {
2828
this.add("sort", sort);
2929
}
3030

31-
public void setBeginTime(final DateTime beginTime) {
31+
public void setBeginTime(final ZonedDateTime beginTime) {
3232
this.add("begin_time", beginTime);
3333
}
3434

35-
public void setEndTime(final DateTime endTime) {
35+
public void setEndTime(final ZonedDateTime endTime) {
3636
this.add("end_time", endTime);
3737
}
3838

0 commit comments

Comments
 (0)