This is an automated email from the ASF dual-hosted git repository.
jlmonteiro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/johnzon.git
The following commit(s) were added to refs/heads/master by this push:
new 64e7727 JOHNZON-351 support collection raw classes cast to Type in
JSON-B Improve tests and case coverage
64e7727 is described below
commit 64e7727fee45344659028f6e8a814486086f03b7
Author: Jean-Louis Monteiro <[email protected]>
AuthorDate: Tue Sep 21 11:20:10 2021 +0200
JOHNZON-351 support collection raw classes cast to Type in JSON-B
Improve tests and case coverage
Signed-off-by: Jean-Louis Monteiro <[email protected]>
---
.../java/org/apache/johnzon/jsonb/JohnzonJsonb.java | 4 ++--
.../java/org/apache/johnzon/jsonb/JsonbReadTest.java | 20 ++++++++++++++++++++
2 files changed, 22 insertions(+), 2 deletions(-)
diff --git
a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JohnzonJsonb.java
b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JohnzonJsonb.java
index bd9e9bc..69c4816 100644
--- a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JohnzonJsonb.java
+++ b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JohnzonJsonb.java
@@ -197,7 +197,7 @@ public class JohnzonJsonb implements Jsonb, AutoCloseable,
JsonbExtension {
} else if (JsonArray.class == runtimeType) {
return (T) delegate.readJsonArray(reader);
} else if (isCollection(runtimeType)) {
- return (T) delegate.readCollection(reader,
ParameterizedType.class.cast(runtimeType));
+ return (T) delegate.readCollection(reader,
toCollectionType(runtimeType));
}
final Type mappingType = unwrapPrimitiveOptional(runtimeType);
final Object object = delegate.readObject(reader, mappingType);
@@ -240,7 +240,7 @@ public class JohnzonJsonb implements Jsonb, AutoCloseable,
JsonbExtension {
} else if (JsonArray.class == runtimeType) {
return (T) delegate.readJsonArray(stream);
} else if (isCollection(runtimeType)) {
- return (T) delegate.readCollection(stream,
ParameterizedType.class.cast(runtimeType));
+ return (T) delegate.readCollection(stream,
toCollectionType(runtimeType));
}
final Type mappingType = unwrapPrimitiveOptional(runtimeType);
diff --git
a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbReadTest.java
b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbReadTest.java
index 3ac7a48..8656416 100644
--- a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbReadTest.java
+++ b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbReadTest.java
@@ -30,6 +30,7 @@ import javax.json.bind.config.BinaryDataStrategy;
import javax.json.bind.spi.JsonbProvider;
import java.io.ByteArrayInputStream;
+import java.io.InputStream;
import java.io.StringReader;
import java.lang.reflect.Type;
import java.nio.charset.StandardCharsets;
@@ -53,6 +54,25 @@ public class JsonbReadTest {
}
@Test
+ public void simpleArrayMappingReader() throws Exception {
+ final List<String> expectedResult = asList("Test String");
+ try (final Jsonb jsonb = JsonbBuilder.create()) {
+ final Object unmarshalledObject = jsonb.fromJson(new
StringReader("[ \"Test String\" ]"), (Type) List.class);
+ assertEquals(expectedResult, unmarshalledObject);
+ }
+ }
+
+ @Test
+ public void simpleArrayMappingInputStream() throws Exception {
+ final List<String> expectedResult = asList("Test String");
+ try (final Jsonb jsonb = JsonbBuilder.create()) {
+ final Object unmarshalledObject = jsonb.fromJson(new
ByteArrayInputStream("[ \"Test String\" ]".getBytes(
+ StandardCharsets.UTF_8)), (Type) List.class);
+ assertEquals(expectedResult, unmarshalledObject);
+ }
+ }
+
+ @Test
public void boolFromString() {
assertTrue(JsonbProvider.provider().create().build().fromJson("true",
Boolean.class));
}