Skip to content

Commit acf17c8

Browse files
committed
add joda support to retrofit clients and use it in samples
also adds back the petstore tests
1 parent b978914 commit acf17c8

40 files changed

+957
-584
lines changed

bin/java-petstore-retrofit2.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,6 @@ fi
2626

2727
# if you've executed sbt assembly previously it will use that instead.
2828
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
29-
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l java -c bin/java-petstore-retrofit2.json -o samples/client/petstore/java/retrofit2"
29+
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l java -c bin/java-petstore-retrofit2.json -o samples/client/petstore/java/retrofit2 -DdateLibrary=joda"
3030

3131
java $JAVA_OPTS -jar $executable $ags

bin/java-petstore-retrofit2rx.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,6 @@ fi
2626

2727
# if you've executed sbt assembly previously it will use that instead.
2828
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
29-
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l java -c bin/java-petstore-retrofit2rx.json -o samples/client/petstore/java/retrofit2rx -DuseRxJava=true"
29+
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l java -c bin/java-petstore-retrofit2rx.json -o samples/client/petstore/java/retrofit2rx -DuseRxJava=true,dateLibrary=joda"
3030

3131
java $JAVA_OPTS -jar $executable $ags

modules/swagger-codegen/src/main/resources/Java/libraries/retrofit2/ApiClient.mustache

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ import java.util.Map;
99

1010
import org.apache.oltu.oauth2.client.request.OAuthClientRequest.AuthenticationRequestBuilder;
1111
import org.apache.oltu.oauth2.client.request.OAuthClientRequest.TokenRequestBuilder;
12+
import org.joda.time.DateTime;
13+
import org.joda.time.LocalDate;
14+
import org.joda.time.format.DateTimeFormatter;
15+
import org.joda.time.format.ISODateTimeFormat;
1216

1317
import retrofit2.Converter;
1418
import retrofit2.Retrofit;
@@ -19,6 +23,9 @@ import retrofit2.converter.scalars.ScalarsConverterFactory;
1923
import com.google.gson.Gson;
2024
import com.google.gson.GsonBuilder;
2125
import com.google.gson.JsonParseException;
26+
import com.google.gson.TypeAdapter;
27+
import com.google.gson.stream.JsonReader;
28+
import com.google.gson.stream.JsonWriter;
2229
import okhttp3.Interceptor;
2330
import okhttp3.OkHttpClient;
2431
import okhttp3.RequestBody;
@@ -108,6 +115,8 @@ public class ApiClient {
108115
public void createDefaultAdapter() {
109116
Gson gson = new GsonBuilder()
110117
.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")
118+
.registerTypeAdapter(DateTime.class, new DateTimeTypeAdapter())
119+
.registerTypeAdapter(LocalDate.class, new LocalDateTypeAdapter())
111120
.create();
112121
113122
okClient = new OkHttpClient();
@@ -346,3 +355,58 @@ class GsonCustomConverterFactory extends Converter.Factory
346355
}
347356
}
348357

358+
359+
/**
360+
* Gson TypeAdapter for Joda DateTime type
361+
*/
362+
class DateTimeTypeAdapter extends TypeAdapter<DateTime> {
363+
364+
private final DateTimeFormatter formatter = ISODateTimeFormat.dateTime();
365+
366+
@Override
367+
public void write(JsonWriter out, DateTime date) throws IOException {
368+
if (date == null) {
369+
out.nullValue();
370+
} else {
371+
out.value(formatter.print(date));
372+
}
373+
}
374+
375+
@Override
376+
public DateTime read(JsonReader in) throws IOException {
377+
switch (in.peek()) {
378+
case NULL:
379+
in.nextNull();
380+
return null;
381+
default:
382+
String date = in.nextString();
383+
return formatter.parseDateTime(date);
384+
}
385+
}
386+
}
387+
388+
class LocalDateTypeAdapter extends TypeAdapter<LocalDate> {
389+
390+
private final DateTimeFormatter formatter = ISODateTimeFormat.date();
391+
392+
@Override
393+
public void write(JsonWriter out, LocalDate date) throws IOException {
394+
if (date == null) {
395+
out.nullValue();
396+
} else {
397+
out.value(formatter.print(date));
398+
}
399+
}
400+
401+
@Override
402+
public LocalDate read(JsonReader in) throws IOException {
403+
switch (in.peek()) {
404+
case NULL:
405+
in.nextNull();
406+
return null;
407+
default:
408+
String date = in.nextString();
409+
return formatter.parseLocalDate(date);
410+
}
411+
}
412+
}

modules/swagger-codegen/src/main/resources/Java/libraries/retrofit2/build.gradle.mustache

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -97,25 +97,20 @@ ext {
9797
oltu_version = "1.0.1"
9898
retrofit_version = "2.0.2"
9999
swagger_annotations_version = "1.5.8"
100-
junit_version = "4.12"
101-
{{#useRxJava}}
102-
rx_java_version = "1.1.3"
103-
{{/useRxJava}}
104-
{{^useRxJava}}{{/useRxJava}}
100+
junit_version = "4.12"{{#useRxJava}}
101+
rx_java_version = "1.1.3"{{/useRxJava}}
102+
jodatime_version = "2.9.3"
105103
}
106104

107105
dependencies {
108106
compile "com.squareup.retrofit2:retrofit:$retrofit_version"
109107
compile "com.squareup.retrofit2:converter-scalars:$retrofit_version"
110-
compile "com.squareup.retrofit2:converter-gson:$retrofit_version"
111-
{{#useRxJava}}
108+
compile "com.squareup.retrofit2:converter-gson:$retrofit_version"{{#useRxJava}}
112109
compile "com.squareup.retrofit2:adapter-rxjava:$retrofit_version"
113-
compile "io.reactivex:rxjava:$rx_java_version"
114-
{{/useRxJava}}
115-
{{^useRxJava}}{{/useRxJava}}
116-
110+
compile "io.reactivex:rxjava:$rx_java_version"{{/useRxJava}}
117111
compile "io.swagger:swagger-annotations:$swagger_annotations_version"
118112
compile "org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:$oltu_version"
113+
compile "joda-time:joda-time:$jodatime_version"
119114

120115
testCompile "junit:junit:$junit_version"
121116
}

modules/swagger-codegen/src/main/resources/Java/libraries/retrofit2/build.sbt.mustache

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,12 @@ lazy val root = (project in file(".")).
1111
libraryDependencies ++= Seq(
1212
"com.squareup.retrofit2" % "retrofit" % "2.0.2" % "compile",
1313
"com.squareup.retrofit2" % "converter-scalars" % "2.0.2" % "compile",
14-
"com.squareup.retrofit2" % "converter-gson" % "2.0.2" % "compile",
15-
{{#useRxJava}}
14+
"com.squareup.retrofit2" % "converter-gson" % "2.0.2" % "compile",{{#useRxJava}}
1615
"com.squareup.retrofit2" % "adapter-rxjava" % "2.0.2" % "compile",
17-
"io.reactivex" % "rxjava" % "1.1.3" % "compile",
18-
{{/useRxJava}}
16+
"io.reactivex" % "rxjava" % "1.1.3" % "compile",{{/useRxJava}}
1917
"io.swagger" % "swagger-annotations" % "1.5.8" % "compile",
2018
"org.apache.oltu.oauth2" % "org.apache.oltu.oauth2.client" % "1.0.1" % "compile",
19+
"joda-time" % "joda-time" % "2.9.3" % "compile",
2120
"junit" % "junit" % "4.12" % "test",
2221
"com.novocode" % "junit-interface" % "0.10" % "test"
2322
)

modules/swagger-codegen/src/main/resources/Java/libraries/retrofit2/pom.mustache

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,11 @@
131131
<groupId>org.apache.oltu.oauth2</groupId>
132132
<artifactId>org.apache.oltu.oauth2.client</artifactId>
133133
<version>${oltu-version}</version>
134+
</dependency>
135+
<dependency>
136+
<groupId>joda-time</groupId>
137+
<artifactId>joda-time</artifactId>
138+
<version>${jodatime-version}</version>
134139
</dependency>{{#useRxJava}}
135140
<dependency>
136141
<groupId>io.reactivex</groupId>
@@ -153,9 +158,9 @@
153158
</dependencies>
154159
<properties>
155160
<swagger-core-version>1.5.8</swagger-core-version>
156-
<retrofit-version>2.0.2</retrofit-version>
157-
{{#useRxJava}}<rxjava-version>1.1.3</rxjava-version>{{/useRxJava}}
158-
<okhttp-version>3.2.0</okhttp-version>
161+
<retrofit-version>2.0.2</retrofit-version>{{#useRxJava}}
162+
<rxjava-version>1.1.3</rxjava-version>{{/useRxJava}}
163+
<jodatime-version>2.9.3</jodatime-version>
159164
<oltu-version>1.0.1</oltu-version>
160165
<maven-plugin-version>1.0.0</maven-plugin-version>
161166
<junit-version>4.12</junit-version>

samples/client/petstore/java/retrofit2/build.gradle

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,17 +98,16 @@ ext {
9898
retrofit_version = "2.0.2"
9999
swagger_annotations_version = "1.5.8"
100100
junit_version = "4.12"
101-
101+
jodatime_version = "2.9.3"
102102
}
103103

104104
dependencies {
105105
compile "com.squareup.retrofit2:retrofit:$retrofit_version"
106106
compile "com.squareup.retrofit2:converter-scalars:$retrofit_version"
107107
compile "com.squareup.retrofit2:converter-gson:$retrofit_version"
108-
109-
110108
compile "io.swagger:swagger-annotations:$swagger_annotations_version"
111109
compile "org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:$oltu_version"
110+
compile "joda-time:joda-time:$jodatime_version"
112111

113112
testCompile "junit:junit:$junit_version"
114113
}

samples/client/petstore/java/retrofit2/build.sbt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ lazy val root = (project in file(".")).
1414
"com.squareup.retrofit2" % "converter-gson" % "2.0.2" % "compile",
1515
"io.swagger" % "swagger-annotations" % "1.5.8" % "compile",
1616
"org.apache.oltu.oauth2" % "org.apache.oltu.oauth2.client" % "1.0.1" % "compile",
17+
"joda-time" % "joda-time" % "2.9.3" % "compile",
1718
"junit" % "junit" % "4.12" % "test",
1819
"com.novocode" % "junit-interface" % "0.10" % "test"
1920
)

samples/client/petstore/java/retrofit2/docs/FakeApi.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ Integer int32 = 56; // Integer | None
3232
Long int64 = 789L; // Long | None
3333
Float _float = 3.4F; // Float | None
3434
byte[] binary = B; // byte[] | None
35-
Date date = new Date(); // Date | None
36-
Date dateTime = new Date(); // Date | None
35+
LocalDate date = new LocalDate(); // LocalDate | None
36+
DateTime dateTime = new DateTime(); // DateTime | None
3737
String password = "password_example"; // String | None
3838
try {
3939
Void result = apiInstance.testEndpointParameters(number, _double, string, _byte, integer, int32, int64, _float, binary, date, dateTime, password);
@@ -57,8 +57,8 @@ Name | Type | Description | Notes
5757
**int64** | **Long**| None | [optional]
5858
**_float** | **Float**| None | [optional]
5959
**binary** | **byte[]**| None | [optional]
60-
**date** | **Date**| None | [optional]
61-
**dateTime** | **Date**| None | [optional]
60+
**date** | **LocalDate**| None | [optional]
61+
**dateTime** | **DateTime**| None | [optional]
6262
**password** | **String**| None | [optional]
6363

6464
### Return type

samples/client/petstore/java/retrofit2/docs/FormatTest.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ Name | Type | Description | Notes
1313
**string** | **String** | | [optional]
1414
**_byte** | **byte[]** | |
1515
**binary** | **byte[]** | | [optional]
16-
**date** | [**Date**](Date.md) | |
17-
**dateTime** | [**Date**](Date.md) | | [optional]
16+
**date** | [**LocalDate**](LocalDate.md) | |
17+
**dateTime** | [**DateTime**](DateTime.md) | | [optional]
1818
**uuid** | **String** | | [optional]
1919
**password** | **String** | |
2020

0 commit comments

Comments
 (0)