Skip to content

Commit c417a62

Browse files
committed
Adds possibility to not initialize the default Serializer. Prevent crashes on lower Android SDK versions.
1 parent 5126bbe commit c417a62

File tree

26 files changed

+168
-113
lines changed

26 files changed

+168
-113
lines changed

modules/openapi-generator/src/main/resources/kotlin-client/jvm-common/infrastructure/Serializer.kt.mustache

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,18 @@ import java.util.Date
3535
{{#nonPublicApi}}internal {{/nonPublicApi}}object Serializer {
3636
{{#moshi}}
3737
@JvmStatic
38-
var moshiBuilder: Moshi.Builder = Moshi.Builder()
39-
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
40-
.add(OffsetDateTimeAdapter())
41-
.add(LocalDateTimeAdapter())
42-
.add(LocalDateAdapter())
43-
.add(UUIDAdapter())
44-
.add(ByteArrayAdapter())
45-
{{^moshiCodeGen}}
46-
.add(KotlinJsonAdapterFactory())
47-
{{/moshiCodeGen}}
38+
val moshiBuilder: Moshi.Builder by lazy {
39+
Moshi.Builder()
40+
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
41+
.add(OffsetDateTimeAdapter())
42+
.add(LocalDateTimeAdapter())
43+
.add(LocalDateAdapter())
44+
.add(UUIDAdapter())
45+
.add(ByteArrayAdapter())
46+
{{^moshiCodeGen}}
47+
.add(KotlinJsonAdapterFactory())
48+
{{/moshiCodeGen}}
49+
}
4850

4951
@JvmStatic
5052
val moshi: Moshi by lazy {
@@ -53,12 +55,14 @@ import java.util.Date
5355
{{/moshi}}
5456
{{#gson}}
5557
@JvmStatic
56-
var gsonBuilder: GsonBuilder = GsonBuilder()
57-
.registerTypeAdapter(Date::class.java, DateAdapter())
58-
.registerTypeAdapter(OffsetDateTime::class.java, OffsetDateTimeAdapter())
59-
.registerTypeAdapter(LocalDateTime::class.java, LocalDateTimeAdapter())
60-
.registerTypeAdapter(LocalDate::class.java, LocalDateAdapter())
61-
.registerTypeAdapter(ByteArray::class.java, ByteArrayAdapter())
58+
val gsonBuilder: GsonBuilder by lazy {
59+
GsonBuilder()
60+
.registerTypeAdapter(Date::class.java, DateAdapter())
61+
.registerTypeAdapter(OffsetDateTime::class.java, OffsetDateTimeAdapter())
62+
.registerTypeAdapter(LocalDateTime::class.java, LocalDateTimeAdapter())
63+
.registerTypeAdapter(LocalDate::class.java, LocalDateAdapter())
64+
.registerTypeAdapter(ByteArray::class.java, ByteArrayAdapter())
65+
}
6266

6367
@JvmStatic
6468
val gson: Gson by lazy {
@@ -67,10 +71,12 @@ import java.util.Date
6771
{{/gson}}
6872
{{#jackson}}
6973
@JvmStatic
70-
var jacksonObjectMapper: ObjectMapper = jacksonObjectMapper()
71-
.registerModule(Jdk8Module())
72-
.registerModule(JavaTimeModule())
73-
.setSerializationInclusion(JsonInclude.Include.NON_ABSENT)
74-
.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
74+
var jacksonObjectMapper: ObjectMapper by lazy {
75+
jacksonObjectMapper()
76+
.registerModule(Jdk8Module())
77+
.registerModule(JavaTimeModule())
78+
.setSerializationInclusion(JsonInclude.Include.NON_ABSENT)
79+
.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
80+
}
7581
{{/jackson}}
7682
}

samples/client/petstore/kotlin/gson/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,10 @@ test {
2929

3030
dependencies {
3131
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
32+
compile "org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.0"
3233
compile "com.google.code.gson:gson:2.8.6"
3334
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
3435
compile "com.squareup.okhttp3:okhttp:4.2.2"
36+
compile "com.squareup.okhttp3:logging-interceptor:4.4.0"
3537
testCompile "io.kotlintest:kotlintest-runner-junit5:3.1.0"
3638
}

samples/client/petstore/kotlin/gson/src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@ import java.util.Date
1010

1111
object Serializer {
1212
@JvmStatic
13-
val gsonBuilder: GsonBuilder = GsonBuilder()
14-
.registerTypeAdapter(Date::class.java, DateAdapter())
15-
.registerTypeAdapter(OffsetDateTime::class.java, OffsetDateTimeAdapter())
16-
.registerTypeAdapter(LocalDateTime::class.java, LocalDateTimeAdapter())
17-
.registerTypeAdapter(LocalDate::class.java, LocalDateAdapter())
18-
.registerTypeAdapter(ByteArray::class.java, ByteArrayAdapter())
13+
val gsonBuilder: GsonBuilder by lazy {
14+
GsonBuilder()
15+
.registerTypeAdapter(Date::class.java, DateAdapter())
16+
.registerTypeAdapter(OffsetDateTime::class.java, OffsetDateTimeAdapter())
17+
.registerTypeAdapter(LocalDateTime::class.java, LocalDateTimeAdapter())
18+
.registerTypeAdapter(LocalDate::class.java, LocalDateAdapter())
19+
.registerTypeAdapter(ByteArray::class.java, ByteArrayAdapter())
20+
}
1921

2022
@JvmStatic
2123
val gson: Gson by lazy {

samples/client/petstore/kotlin/jackson/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,12 @@ test {
2929

3030
dependencies {
3131
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
32+
compile "org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.0"
3233
compile "com.fasterxml.jackson.module:jackson-module-kotlin:2.10.2"
3334
compile "com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.10.2"
3435
compile "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.10.2"
3536
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
3637
compile "com.squareup.okhttp3:okhttp:4.2.2"
38+
compile "com.squareup.okhttp3:logging-interceptor:4.4.0"
3739
testCompile "io.kotlintest:kotlintest-runner-junit5:3.1.0"
3840
}

samples/client/petstore/kotlin/jackson/src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ import java.util.Date
1010

1111
object Serializer {
1212
@JvmStatic
13-
val jacksonObjectMapper: ObjectMapper = jacksonObjectMapper()
14-
.registerModule(Jdk8Module())
15-
.registerModule(JavaTimeModule())
16-
.setSerializationInclusion(JsonInclude.Include.NON_ABSENT)
17-
.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
13+
var jacksonObjectMapper: ObjectMapper by lazy {
14+
jacksonObjectMapper()
15+
.registerModule(Jdk8Module())
16+
.registerModule(JavaTimeModule())
17+
.setSerializationInclusion(JsonInclude.Include.NON_ABSENT)
18+
.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
19+
}
1820
}

samples/client/petstore/kotlin/json-request-string/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,11 @@ test {
2929

3030
dependencies {
3131
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
32+
compile "org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.0"
3233
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
3334
compile "com.squareup.moshi:moshi-kotlin:1.9.2"
3435
compile "com.squareup.moshi:moshi-adapters:1.9.2"
3536
compile "com.squareup.okhttp3:okhttp:4.2.2"
37+
compile "com.squareup.okhttp3:logging-interceptor:4.4.0"
3638
testCompile "io.kotlintest:kotlintest-runner-junit5:3.1.0"
3739
}

samples/client/petstore/kotlin/json-request-string/src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@ import java.util.Date
77

88
object Serializer {
99
@JvmStatic
10-
val moshiBuilder: Moshi.Builder = Moshi.Builder()
11-
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
12-
.add(OffsetDateTimeAdapter())
13-
.add(LocalDateTimeAdapter())
14-
.add(LocalDateAdapter())
15-
.add(UUIDAdapter())
16-
.add(ByteArrayAdapter())
17-
.add(KotlinJsonAdapterFactory())
10+
val moshiBuilder: Moshi.Builder by lazy {
11+
Moshi.Builder()
12+
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
13+
.add(OffsetDateTimeAdapter())
14+
.add(LocalDateTimeAdapter())
15+
.add(LocalDateAdapter())
16+
.add(UUIDAdapter())
17+
.add(ByteArrayAdapter())
18+
.add(KotlinJsonAdapterFactory())
19+
}
1820

1921
@JvmStatic
2022
val moshi: Moshi by lazy {

samples/client/petstore/kotlin/moshi-codegen/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,11 @@ test {
3030

3131
dependencies {
3232
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
33+
compile "org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.0"
3334
compile "com.squareup.moshi:moshi-adapters:1.9.2"
3435
compile "com.squareup.moshi:moshi:1.9.2"
3536
kapt "com.squareup.moshi:moshi-kotlin-codegen:1.9.2"
3637
compile "com.squareup.okhttp3:okhttp:4.2.2"
38+
compile "com.squareup.okhttp3:logging-interceptor:4.4.0"
3739
testCompile "io.kotlintest:kotlintest-runner-junit5:3.1.0"
3840
}

samples/client/petstore/kotlin/moshi-codegen/src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ import java.util.Date
66

77
object Serializer {
88
@JvmStatic
9-
val moshiBuilder: Moshi.Builder = Moshi.Builder()
10-
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
11-
.add(OffsetDateTimeAdapter())
12-
.add(LocalDateTimeAdapter())
13-
.add(LocalDateAdapter())
14-
.add(UUIDAdapter())
15-
.add(ByteArrayAdapter())
9+
val moshiBuilder: Moshi.Builder by lazy {
10+
Moshi.Builder()
11+
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
12+
.add(OffsetDateTimeAdapter())
13+
.add(LocalDateTimeAdapter())
14+
.add(LocalDateAdapter())
15+
.add(UUIDAdapter())
16+
.add(ByteArrayAdapter())
17+
}
1618

1719
@JvmStatic
1820
val moshi: Moshi by lazy {

samples/client/petstore/kotlin/nonpublic/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,11 @@ test {
2929

3030
dependencies {
3131
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
32+
compile "org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.0"
3233
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
3334
compile "com.squareup.moshi:moshi-kotlin:1.9.2"
3435
compile "com.squareup.moshi:moshi-adapters:1.9.2"
3536
compile "com.squareup.okhttp3:okhttp:4.2.2"
37+
compile "com.squareup.okhttp3:logging-interceptor:4.4.0"
3638
testCompile "io.kotlintest:kotlintest-runner-junit5:3.1.0"
3739
}

samples/client/petstore/kotlin/nonpublic/src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@ import java.util.Date
77

88
internal object Serializer {
99
@JvmStatic
10-
val moshiBuilder: Moshi.Builder = Moshi.Builder()
11-
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
12-
.add(OffsetDateTimeAdapter())
13-
.add(LocalDateTimeAdapter())
14-
.add(LocalDateAdapter())
15-
.add(UUIDAdapter())
16-
.add(ByteArrayAdapter())
17-
.add(KotlinJsonAdapterFactory())
10+
val moshiBuilder: Moshi.Builder by lazy {
11+
Moshi.Builder()
12+
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
13+
.add(OffsetDateTimeAdapter())
14+
.add(LocalDateTimeAdapter())
15+
.add(LocalDateAdapter())
16+
.add(UUIDAdapter())
17+
.add(ByteArrayAdapter())
18+
.add(KotlinJsonAdapterFactory())
19+
}
1820

1921
@JvmStatic
2022
val moshi: Moshi by lazy {

samples/client/petstore/kotlin/nullable/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,11 @@ test {
2929

3030
dependencies {
3131
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
32+
compile "org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.0"
3233
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
3334
compile "com.squareup.moshi:moshi-kotlin:1.9.2"
3435
compile "com.squareup.moshi:moshi-adapters:1.9.2"
3536
compile "com.squareup.okhttp3:okhttp:4.2.2"
37+
compile "com.squareup.okhttp3:logging-interceptor:4.4.0"
3638
testCompile "io.kotlintest:kotlintest-runner-junit5:3.1.0"
3739
}

samples/client/petstore/kotlin/nullable/src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@ import java.util.Date
77

88
object Serializer {
99
@JvmStatic
10-
val moshiBuilder: Moshi.Builder = Moshi.Builder()
11-
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
12-
.add(OffsetDateTimeAdapter())
13-
.add(LocalDateTimeAdapter())
14-
.add(LocalDateAdapter())
15-
.add(UUIDAdapter())
16-
.add(ByteArrayAdapter())
17-
.add(KotlinJsonAdapterFactory())
10+
val moshiBuilder: Moshi.Builder by lazy {
11+
Moshi.Builder()
12+
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
13+
.add(OffsetDateTimeAdapter())
14+
.add(LocalDateTimeAdapter())
15+
.add(LocalDateAdapter())
16+
.add(UUIDAdapter())
17+
.add(ByteArrayAdapter())
18+
.add(KotlinJsonAdapterFactory())
19+
}
1820

1921
@JvmStatic
2022
val moshi: Moshi by lazy {

samples/client/petstore/kotlin/okhttp3/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ test {
2929

3030
dependencies {
3131
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
32+
compile "org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.0"
3233
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
3334
compile "com.squareup.moshi:moshi-kotlin:1.9.2"
3435
compile "com.squareup.moshi:moshi-adapters:1.9.2"

samples/client/petstore/kotlin/okhttp3/src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@ import java.util.Date
77

88
object Serializer {
99
@JvmStatic
10-
val moshiBuilder: Moshi.Builder = Moshi.Builder()
11-
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
12-
.add(OffsetDateTimeAdapter())
13-
.add(LocalDateTimeAdapter())
14-
.add(LocalDateAdapter())
15-
.add(UUIDAdapter())
16-
.add(ByteArrayAdapter())
17-
.add(KotlinJsonAdapterFactory())
10+
val moshiBuilder: Moshi.Builder by lazy {
11+
Moshi.Builder()
12+
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
13+
.add(OffsetDateTimeAdapter())
14+
.add(LocalDateTimeAdapter())
15+
.add(LocalDateAdapter())
16+
.add(UUIDAdapter())
17+
.add(ByteArrayAdapter())
18+
.add(KotlinJsonAdapterFactory())
19+
}
1820

1921
@JvmStatic
2022
val moshi: Moshi by lazy {

samples/client/petstore/kotlin/petstore/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,11 @@ test {
2929

3030
dependencies {
3131
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
32+
compile "org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.0"
3233
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
3334
compile "com.squareup.moshi:moshi-kotlin:1.9.2"
3435
compile "com.squareup.moshi:moshi-adapters:1.9.2"
3536
compile "com.squareup.okhttp3:okhttp:4.2.2"
37+
compile "com.squareup.okhttp3:logging-interceptor:4.4.0"
3638
testCompile "io.kotlintest:kotlintest-runner-junit5:3.1.0"
3739
}

samples/client/petstore/kotlin/petstore/src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@ import java.util.Date
77

88
object Serializer {
99
@JvmStatic
10-
val moshiBuilder: Moshi.Builder = Moshi.Builder()
11-
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
12-
.add(OffsetDateTimeAdapter())
13-
.add(LocalDateTimeAdapter())
14-
.add(LocalDateAdapter())
15-
.add(UUIDAdapter())
16-
.add(ByteArrayAdapter())
17-
.add(KotlinJsonAdapterFactory())
10+
val moshiBuilder: Moshi.Builder by lazy {
11+
Moshi.Builder()
12+
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
13+
.add(OffsetDateTimeAdapter())
14+
.add(LocalDateTimeAdapter())
15+
.add(LocalDateAdapter())
16+
.add(UUIDAdapter())
17+
.add(ByteArrayAdapter())
18+
.add(KotlinJsonAdapterFactory())
19+
}
1820

1921
@JvmStatic
2022
val moshi: Moshi by lazy {

samples/client/petstore/kotlin/retrofit2/src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@ import java.util.Date
77

88
object Serializer {
99
@JvmStatic
10-
var moshiBuilder: Moshi.Builder = Moshi.Builder()
11-
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
12-
.add(OffsetDateTimeAdapter())
13-
.add(LocalDateTimeAdapter())
14-
.add(LocalDateAdapter())
15-
.add(UUIDAdapter())
16-
.add(ByteArrayAdapter())
17-
.add(KotlinJsonAdapterFactory())
10+
val moshiBuilder: Moshi.Builder by lazy {
11+
Moshi.Builder()
12+
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
13+
.add(OffsetDateTimeAdapter())
14+
.add(LocalDateTimeAdapter())
15+
.add(LocalDateAdapter())
16+
.add(UUIDAdapter())
17+
.add(ByteArrayAdapter())
18+
.add(KotlinJsonAdapterFactory())
19+
}
1820

1921
@JvmStatic
2022
val moshi: Moshi by lazy {

samples/client/petstore/kotlin/string/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,11 @@ test {
2929

3030
dependencies {
3131
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
32+
compile "org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.0"
3233
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
3334
compile "com.squareup.moshi:moshi-kotlin:1.9.2"
3435
compile "com.squareup.moshi:moshi-adapters:1.9.2"
3536
compile "com.squareup.okhttp3:okhttp:4.2.2"
37+
compile "com.squareup.okhttp3:logging-interceptor:4.4.0"
3638
testCompile "io.kotlintest:kotlintest-runner-junit5:3.1.0"
3739
}

0 commit comments

Comments
 (0)