forked from loafle/openapi-generator-original
[Java] Add back byte array enhancement (#7546)
* add back byte array enhanceement * add okio dependency to java rest assured api client
This commit is contained in:
parent
9c79297d6a
commit
fec0363f7d
@ -26,6 +26,7 @@ import org.threeten.bp.format.DateTimeFormatter;
|
||||
{{/threetenbp}}
|
||||
|
||||
import {{modelPackage}}.*;
|
||||
import okio.ByteString;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.StringReader;
|
||||
@ -55,6 +56,7 @@ public class JSON {
|
||||
private OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new OffsetDateTimeTypeAdapter();
|
||||
private LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter();
|
||||
{{/jsr310}}
|
||||
private ByteArrayAdapter byteArrayAdapter = new ByteArrayAdapter();
|
||||
|
||||
public static GsonBuilder createGson() {
|
||||
GsonFireBuilder fireBuilder = new GsonFireBuilder()
|
||||
@ -105,6 +107,7 @@ public class JSON {
|
||||
.registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter)
|
||||
.registerTypeAdapter(LocalDate.class, localDateTypeAdapter)
|
||||
{{/jsr310}}
|
||||
.registerTypeAdapter(byte[].class, byteArrayAdapter)
|
||||
.create();
|
||||
}
|
||||
|
||||
@ -171,6 +174,34 @@ public class JSON {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gson TypeAdapter for Byte Array type
|
||||
*/
|
||||
public class ByteArrayAdapter extends TypeAdapter<byte[]> {
|
||||
|
||||
@Override
|
||||
public void write(JsonWriter out, byte[] value) throws IOException {
|
||||
if (value == null) {
|
||||
out.nullValue();
|
||||
} else {
|
||||
out.value(ByteString.of(value).base64());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] read(JsonReader in) throws IOException {
|
||||
switch (in.peek()) {
|
||||
case NULL:
|
||||
in.nextNull();
|
||||
return null;
|
||||
default:
|
||||
String bytesAsBase64 = in.nextString();
|
||||
ByteString byteString = ByteString.decodeBase64(bytesAsBase64);
|
||||
return byteString.toByteArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{{#joda}}
|
||||
/**
|
||||
* Gson TypeAdapter for Joda DateTime type
|
||||
|
@ -105,6 +105,7 @@ ext {
|
||||
{{#threetenbp}}
|
||||
threetenbp_version = "1.3.5"
|
||||
{{/threetenbp}}
|
||||
okio_version = "1.13.0"
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@ -118,5 +119,6 @@ dependencies {
|
||||
{{#threetenbp}}
|
||||
compile "org.threeten:threetenbp:$threetenbp_version"
|
||||
{{/threetenbp}}
|
||||
compile "com.squareup.okio:okio:$okio_version"
|
||||
testCompile "junit:junit:$junit_version"
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ lazy val root = (project in file(".")).
|
||||
resolvers += Resolver.mavenLocal,
|
||||
libraryDependencies ++= Seq(
|
||||
"io.swagger" % "swagger-annotations" % "1.5.15",
|
||||
"io.rest-assured" % "scala-support" % "3.0.6"
|
||||
"io.rest-assured" % "scala-support" % "3.0.6",
|
||||
"com.google.code.gson" % "gson" % "2.6.1",
|
||||
"io.gsonfire" % "gson-fire" % "1.8.2" % "compile",
|
||||
{{#joda}}
|
||||
@ -19,6 +19,7 @@ lazy val root = (project in file(".")).
|
||||
{{#threetenbp}}
|
||||
"org.threeten" % "threetenbp" % "1.3.5" % "compile",
|
||||
{{/threetenbp}}
|
||||
"com.squareup.okio" % "okio" % "1.13.0" % "compile",
|
||||
"junit" % "junit" % "4.12" % "test",
|
||||
"com.novocode" % "junit-interface" % "0.10" % "test"
|
||||
)
|
||||
|
@ -212,24 +212,29 @@
|
||||
<version>${gson-version}</version>
|
||||
</dependency>
|
||||
{{#joda}}
|
||||
<dependency>
|
||||
<groupId>joda-time</groupId>
|
||||
<artifactId>joda-time</artifactId>
|
||||
<version>${jodatime-version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>joda-time</groupId>
|
||||
<artifactId>joda-time</artifactId>
|
||||
<version>${jodatime-version}</version>
|
||||
</dependency>
|
||||
{{/joda}}
|
||||
{{#threetenbp}}
|
||||
<dependency>
|
||||
<groupId>org.threeten</groupId>
|
||||
<artifactId>threetenbp</artifactId>
|
||||
<version>${threetenbp-version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.threeten</groupId>
|
||||
<artifactId>threetenbp</artifactId>
|
||||
<version>${threetenbp-version}</version>
|
||||
</dependency>
|
||||
{{/threetenbp}}
|
||||
<dependency>
|
||||
<groupId>io.gsonfire</groupId>
|
||||
<artifactId>gson-fire</artifactId>
|
||||
<version>${gson-fire-version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.squareup.okio</groupId>
|
||||
<artifactId>okio</artifactId>
|
||||
<version>${okio-version}</version>
|
||||
</dependency>
|
||||
<!-- test dependencies -->
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
@ -251,6 +256,7 @@
|
||||
{{#threetenbp}}
|
||||
<threetenbp-version>1.3.5</threetenbp-version>
|
||||
{{/threetenbp}}
|
||||
<okio-version>1.13.0</okio-version>
|
||||
<junit-version>4.12</junit-version>
|
||||
</properties>
|
||||
</project>
|
||||
|
@ -100,6 +100,7 @@ ext {
|
||||
gson_version = "2.6.1"
|
||||
gson_fire_version = "1.8.2"
|
||||
threetenbp_version = "1.3.5"
|
||||
okio_version = "1.13.0"
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@ -107,5 +108,6 @@ dependencies {
|
||||
compile "io.rest-assured:scala-support:$rest_assured_version"
|
||||
compile "io.gsonfire:gson-fire:$gson_fire_version"
|
||||
compile "org.threeten:threetenbp:$threetenbp_version"
|
||||
compile "com.squareup.okio:okio:$okio_version"
|
||||
testCompile "junit:junit:$junit_version"
|
||||
}
|
||||
|
@ -10,10 +10,11 @@ lazy val root = (project in file(".")).
|
||||
resolvers += Resolver.mavenLocal,
|
||||
libraryDependencies ++= Seq(
|
||||
"io.swagger" % "swagger-annotations" % "1.5.15",
|
||||
"io.rest-assured" % "scala-support" % "3.0.6"
|
||||
"io.rest-assured" % "scala-support" % "3.0.6",
|
||||
"com.google.code.gson" % "gson" % "2.6.1",
|
||||
"io.gsonfire" % "gson-fire" % "1.8.2" % "compile",
|
||||
"org.threeten" % "threetenbp" % "1.3.5" % "compile",
|
||||
"com.squareup.okio" % "okio" % "1.13.0" % "compile",
|
||||
"junit" % "junit" % "4.12" % "test",
|
||||
"com.novocode" % "junit-interface" % "0.10" % "test"
|
||||
)
|
||||
|
@ -211,16 +211,21 @@
|
||||
<artifactId>gson</artifactId>
|
||||
<version>${gson-version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.threeten</groupId>
|
||||
<artifactId>threetenbp</artifactId>
|
||||
<version>${threetenbp-version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.threeten</groupId>
|
||||
<artifactId>threetenbp</artifactId>
|
||||
<version>${threetenbp-version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.gsonfire</groupId>
|
||||
<artifactId>gson-fire</artifactId>
|
||||
<version>${gson-fire-version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.squareup.okio</groupId>
|
||||
<artifactId>okio</artifactId>
|
||||
<version>${okio-version}</version>
|
||||
</dependency>
|
||||
<!-- test dependencies -->
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
@ -237,6 +242,7 @@
|
||||
<gson-fire-version>1.8.2</gson-fire-version>
|
||||
<maven-plugin-version>1.0.0</maven-plugin-version>
|
||||
<threetenbp-version>1.3.5</threetenbp-version>
|
||||
<okio-version>1.13.0</okio-version>
|
||||
<junit-version>4.12</junit-version>
|
||||
</properties>
|
||||
</project>
|
||||
|
@ -28,6 +28,7 @@ import org.threeten.bp.OffsetDateTime;
|
||||
import org.threeten.bp.format.DateTimeFormatter;
|
||||
|
||||
import io.swagger.client.model.*;
|
||||
import okio.ByteString;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.StringReader;
|
||||
@ -46,6 +47,7 @@ public class JSON {
|
||||
private SqlDateTypeAdapter sqlDateTypeAdapter = new SqlDateTypeAdapter();
|
||||
private OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new OffsetDateTimeTypeAdapter();
|
||||
private LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter();
|
||||
private ByteArrayAdapter byteArrayAdapter = new ByteArrayAdapter();
|
||||
|
||||
public static GsonBuilder createGson() {
|
||||
GsonFireBuilder fireBuilder = new GsonFireBuilder()
|
||||
@ -87,6 +89,7 @@ public class JSON {
|
||||
.registerTypeAdapter(java.sql.Date.class, sqlDateTypeAdapter)
|
||||
.registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter)
|
||||
.registerTypeAdapter(LocalDate.class, localDateTypeAdapter)
|
||||
.registerTypeAdapter(byte[].class, byteArrayAdapter)
|
||||
.create();
|
||||
}
|
||||
|
||||
@ -153,6 +156,34 @@ public class JSON {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gson TypeAdapter for Byte Array type
|
||||
*/
|
||||
public class ByteArrayAdapter extends TypeAdapter<byte[]> {
|
||||
|
||||
@Override
|
||||
public void write(JsonWriter out, byte[] value) throws IOException {
|
||||
if (value == null) {
|
||||
out.nullValue();
|
||||
} else {
|
||||
out.value(ByteString.of(value).base64());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] read(JsonReader in) throws IOException {
|
||||
switch (in.peek()) {
|
||||
case NULL:
|
||||
in.nextNull();
|
||||
return null;
|
||||
default:
|
||||
String bytesAsBase64 = in.nextString();
|
||||
ByteString byteString = ByteString.decodeBase64(bytesAsBase64);
|
||||
return byteString.toByteArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gson TypeAdapter for JSR310 OffsetDateTime type
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user