diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/JSON.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/JSON.mustache index 3d3339c5d6b..bcc075ac9fc 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/JSON.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/JSON.mustache @@ -84,10 +84,10 @@ public class JSON implements ContextResolver { * @param node The input data. * @param modelClass The class that contains the discriminator mappings. */ - public static Class getClassForElement(JsonNode node, Class modelClass) { + public static Class getClassForElement(JsonNode node, Class modelClass) { ClassDiscriminatorMapping cdm = modelDiscriminators.get(modelClass); if (cdm != null) { - return cdm.getClassForElement(node, new HashSet()); + return cdm.getClassForElement(node, new HashSet>()); } return null; } @@ -97,17 +97,17 @@ public class JSON implements ContextResolver { */ private static class ClassDiscriminatorMapping { // The model class name. - Class modelClass; + Class modelClass; // The name of the discriminator property. String discriminatorName; // The discriminator mappings for a model class. - Map discriminatorMappings; + Map> discriminatorMappings; // Constructs a new class discriminator. - ClassDiscriminatorMapping(Class cls, String propertyName, Map mappings) { + ClassDiscriminatorMapping(Class cls, String propertyName, Map> mappings) { modelClass = cls; discriminatorName = propertyName; - discriminatorMappings = new HashMap(); + discriminatorMappings = new HashMap>(); if (mappings != null) { discriminatorMappings.putAll(mappings); } @@ -143,7 +143,7 @@ public class JSON implements ContextResolver { * @param node The input data. * @param visitedClasses The set of classes that have already been visited. */ - Class getClassForElement(JsonNode node, Set visitedClasses) { + Class getClassForElement(JsonNode node, Set> visitedClasses) { if (visitedClasses.contains(modelClass)) { // Class has already been visited. return null; @@ -153,11 +153,11 @@ public class JSON implements ContextResolver { if (discrValue == null) { return null; } - Class cls = discriminatorMappings.get(discrValue); + Class cls = discriminatorMappings.get(discrValue); // It may not be sufficient to return this cls directly because that target class // may itself be a composed schema, possibly with its own discriminator. visitedClasses.add(modelClass); - for (Class childClass : discriminatorMappings.values()) { + for (Class childClass : discriminatorMappings.values()) { ClassDiscriminatorMapping childCdm = modelDiscriminators.get(childClass); if (childCdm == null) { continue; @@ -170,7 +170,7 @@ public class JSON implements ContextResolver { } if (childCdm != null) { // Recursively traverse the discriminator mappings. - Class childDiscr = childCdm.getClassForElement(node, visitedClasses); + Class childDiscr = childCdm.getClassForElement(node, visitedClasses); if (childDiscr != null) { return childDiscr; } @@ -189,7 +189,7 @@ public class JSON implements ContextResolver { * @param modelClass A OpenAPI model class. * @param inst The instance object. */ - public static boolean isInstanceOf(Class modelClass, Object inst, Set visitedClasses) { + public static boolean isInstanceOf(Class modelClass, Object inst, Set> visitedClasses) { if (modelClass.isInstance(inst)) { // This handles the 'allOf' use case with single parent inheritance. return true; @@ -216,12 +216,12 @@ public class JSON implements ContextResolver { /** * A map of discriminators for all model classes. */ - private static Map modelDiscriminators = new HashMap(); + private static Map, ClassDiscriminatorMapping> modelDiscriminators = new HashMap, ClassDiscriminatorMapping>(); /** * A map of oneOf/anyOf descendants for each model class. */ - private static Map> modelDescendants = new HashMap>(); + private static Map, Map> modelDescendants = new HashMap, Map>(); /** * Register a model class discriminator. @@ -230,7 +230,7 @@ public class JSON implements ContextResolver { * @param discriminatorPropertyName the name of the discriminator property * @param mappings a map with the discriminator mappings. */ - public static void registerDiscriminator(Class modelClass, String discriminatorPropertyName, Map mappings) { + public static void registerDiscriminator(Class modelClass, String discriminatorPropertyName, Map> mappings) { ClassDiscriminatorMapping m = new ClassDiscriminatorMapping(modelClass, discriminatorPropertyName, mappings); modelDiscriminators.put(modelClass, m); } @@ -241,7 +241,7 @@ public class JSON implements ContextResolver { * @param modelClass the model class * @param descendants a map of oneOf/anyOf descendants. */ - public static void registerDescendants(Class modelClass, Map descendants) { + public static void registerDescendants(Class modelClass, Map descendants) { modelDescendants.put(modelClass, descendants); } diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/anyof_model.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/anyof_model.mustache index 0ca3162c5ec..ef91fb3204b 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/anyof_model.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/anyof_model.mustache @@ -57,7 +57,7 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im Object deserialized = null; {{#discriminator}} - Class cls = JSON.getClassForElement(tree, {{classname}}.class); + Class cls = JSON.getClassForElement(tree, {{classname}}.class); if (cls != null) { // When the OAS schema includes a discriminator, use the discriminator value to // discriminate the anyOf schemas. @@ -115,7 +115,7 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im return null; {{/isNullable}} {{^isNullable}} - throw new JsonMappingException("{{classname}} cannot be null"); + throw new JsonMappingException(ctxt.getParser(), "{{classname}} cannot be null"); {{/isNullable}} } } @@ -153,7 +153,7 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im JSON.registerDescendants({{classname}}.class, Collections.unmodifiableMap(schemas)); {{#discriminator}} // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); {{#mappedModels}} mappings.put("{{mappingName}}", {{modelName}}.class); {{/mappedModels}} @@ -177,7 +177,7 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im {{/isNullable}} {{#anyOf}} - if (JSON.isInstanceOf({{{.}}}.class, instance, new HashSet())) { + if (JSON.isInstanceOf({{{.}}}.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/oneof_model.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/oneof_model.mustache index 4ff6bb6d079..2289c28360a 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/oneof_model.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/oneof_model.mustache @@ -128,7 +128,7 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im return null; {{/isNullable}} {{^isNullable}} - throw new JsonMappingException("{{classname}} cannot be null"); + throw new JsonMappingException(ctxt.getParser(), "{{classname}} cannot be null"); {{/isNullable}} } } @@ -166,7 +166,7 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im JSON.registerDescendants({{classname}}.class, Collections.unmodifiableMap(schemas)); {{#discriminator}} // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); {{#mappedModels}} mappings.put("{{mappingName}}", {{modelName}}.class); {{/mappedModels}} @@ -197,7 +197,7 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im {{/isNullable}} {{#oneOf}} - if (JSON.isInstanceOf({{{.}}}.class, instance, new HashSet())) { + if (JSON.isInstanceOf({{{.}}}.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/pojo.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/pojo.mustache index 19e82e3dfa6..af6f2491cbd 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/pojo.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/pojo.mustache @@ -377,7 +377,7 @@ public class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{{#vendorE {{#discriminator}} static { // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); {{#mappedModels}} mappings.put("{{mappingName}}", {{modelName}}.class); {{/mappedModels}} diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/JSON.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/JSON.java index be73bb23def..8f10d619a8f 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/JSON.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/JSON.java @@ -59,10 +59,10 @@ public class JSON implements ContextResolver { * @param node The input data. * @param modelClass The class that contains the discriminator mappings. */ - public static Class getClassForElement(JsonNode node, Class modelClass) { + public static Class getClassForElement(JsonNode node, Class modelClass) { ClassDiscriminatorMapping cdm = modelDiscriminators.get(modelClass); if (cdm != null) { - return cdm.getClassForElement(node, new HashSet()); + return cdm.getClassForElement(node, new HashSet>()); } return null; } @@ -72,17 +72,17 @@ public class JSON implements ContextResolver { */ private static class ClassDiscriminatorMapping { // The model class name. - Class modelClass; + Class modelClass; // The name of the discriminator property. String discriminatorName; // The discriminator mappings for a model class. - Map discriminatorMappings; + Map> discriminatorMappings; // Constructs a new class discriminator. - ClassDiscriminatorMapping(Class cls, String propertyName, Map mappings) { + ClassDiscriminatorMapping(Class cls, String propertyName, Map> mappings) { modelClass = cls; discriminatorName = propertyName; - discriminatorMappings = new HashMap(); + discriminatorMappings = new HashMap>(); if (mappings != null) { discriminatorMappings.putAll(mappings); } @@ -118,7 +118,7 @@ public class JSON implements ContextResolver { * @param node The input data. * @param visitedClasses The set of classes that have already been visited. */ - Class getClassForElement(JsonNode node, Set visitedClasses) { + Class getClassForElement(JsonNode node, Set> visitedClasses) { if (visitedClasses.contains(modelClass)) { // Class has already been visited. return null; @@ -128,11 +128,11 @@ public class JSON implements ContextResolver { if (discrValue == null) { return null; } - Class cls = discriminatorMappings.get(discrValue); + Class cls = discriminatorMappings.get(discrValue); // It may not be sufficient to return this cls directly because that target class // may itself be a composed schema, possibly with its own discriminator. visitedClasses.add(modelClass); - for (Class childClass : discriminatorMappings.values()) { + for (Class childClass : discriminatorMappings.values()) { ClassDiscriminatorMapping childCdm = modelDiscriminators.get(childClass); if (childCdm == null) { continue; @@ -145,7 +145,7 @@ public class JSON implements ContextResolver { } if (childCdm != null) { // Recursively traverse the discriminator mappings. - Class childDiscr = childCdm.getClassForElement(node, visitedClasses); + Class childDiscr = childCdm.getClassForElement(node, visitedClasses); if (childDiscr != null) { return childDiscr; } @@ -164,7 +164,7 @@ public class JSON implements ContextResolver { * @param modelClass A OpenAPI model class. * @param inst The instance object. */ - public static boolean isInstanceOf(Class modelClass, Object inst, Set visitedClasses) { + public static boolean isInstanceOf(Class modelClass, Object inst, Set> visitedClasses) { if (modelClass.isInstance(inst)) { // This handles the 'allOf' use case with single parent inheritance. return true; @@ -191,12 +191,12 @@ public class JSON implements ContextResolver { /** * A map of discriminators for all model classes. */ - private static Map modelDiscriminators = new HashMap(); + private static Map, ClassDiscriminatorMapping> modelDiscriminators = new HashMap, ClassDiscriminatorMapping>(); /** * A map of oneOf/anyOf descendants for each model class. */ - private static Map> modelDescendants = new HashMap>(); + private static Map, Map> modelDescendants = new HashMap, Map>(); /** * Register a model class discriminator. @@ -205,7 +205,7 @@ public class JSON implements ContextResolver { * @param discriminatorPropertyName the name of the discriminator property * @param mappings a map with the discriminator mappings. */ - public static void registerDiscriminator(Class modelClass, String discriminatorPropertyName, Map mappings) { + public static void registerDiscriminator(Class modelClass, String discriminatorPropertyName, Map> mappings) { ClassDiscriminatorMapping m = new ClassDiscriminatorMapping(modelClass, discriminatorPropertyName, mappings); modelDiscriminators.put(modelClass, m); } @@ -216,7 +216,7 @@ public class JSON implements ContextResolver { * @param modelClass the model class * @param descendants a map of oneOf/anyOf descendants. */ - public static void registerDescendants(Class modelClass, Map descendants) { + public static void registerDescendants(Class modelClass, Map descendants) { modelDescendants.put(modelClass, descendants); } diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Animal.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Animal.java index 922b3987935..80fe6a16daa 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Animal.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Animal.java @@ -144,7 +144,7 @@ public class Animal { static { // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); mappings.put("BigCat", BigCat.class); mappings.put("Cat", Cat.class); mappings.put("Dog", Dog.class); diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCat.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCat.java index 3a6bebf323e..1a9e9a2a782 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCat.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCat.java @@ -152,7 +152,7 @@ public class BigCat extends Cat { static { // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); mappings.put("BigCat", BigCat.class); JSON.registerDiscriminator(BigCat.class, "className", mappings); } diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java index acfeb71c955..59a01eeb7b9 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java @@ -115,7 +115,7 @@ public class Cat extends Animal { static { // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); mappings.put("BigCat", BigCat.class); mappings.put("Cat", Cat.class); JSON.registerDiscriminator(Cat.class, "className", mappings); diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java index 6166619f5f9..4b78ba6694b 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java @@ -113,7 +113,7 @@ public class Dog extends Animal { static { // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); mappings.put("Dog", Dog.class); JSON.registerDiscriminator(Dog.class, "className", mappings); } diff --git a/samples/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONTest.java b/samples/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONTest.java index 7fb307a3df8..dda1ef9c1ef 100644 --- a/samples/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONTest.java +++ b/samples/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONTest.java @@ -3,7 +3,9 @@ package org.openapitools.client; import org.openapitools.client.model.Order; import java.lang.Exception; - +import java.util.Date; +import java.util.TimeZone; +import java.text.SimpleDateFormat; import java.time.OffsetDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; @@ -32,6 +34,33 @@ public class JSONTest { assertEquals(dateStr, dateFormat.format(o.getShipDate())); } + @Test + public void testRFC3339DateFormatDate() throws Exception { + { + String dateStr = "2011-01-18 00:00:00.0Z"; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S'Z'"); + sdf.setTimeZone(TimeZone.getTimeZone("GMT")); + Date date = sdf.parse(dateStr); + + RFC3339DateFormat df = new RFC3339DateFormat(); + StringBuffer sb = new StringBuffer(); + String s = df.format(date); + System.out.println("DATE: " + s); + assertEquals("2011-01-18T00:00:00.000Z", s); + } + { + String dateStr = "2011-01-18 00:00:00.0"; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S"); + sdf.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles")); + Date date = sdf.parse(dateStr); + + RFC3339DateFormat df = new RFC3339DateFormat(); + StringBuffer sb = new StringBuffer(); + String s = df.format(date); + assertEquals("2011-01-18T08:00:00.000Z", s); + } + } + @Test public void testCustomDate() throws Exception { final DateTimeFormatter dateFormat = DateTimeFormatter.ISO_OFFSET_DATE_TIME.withZone(ZoneId.of("Etc/GMT+2")); diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/JSON.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/JSON.java index be73bb23def..8f10d619a8f 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/JSON.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/JSON.java @@ -59,10 +59,10 @@ public class JSON implements ContextResolver { * @param node The input data. * @param modelClass The class that contains the discriminator mappings. */ - public static Class getClassForElement(JsonNode node, Class modelClass) { + public static Class getClassForElement(JsonNode node, Class modelClass) { ClassDiscriminatorMapping cdm = modelDiscriminators.get(modelClass); if (cdm != null) { - return cdm.getClassForElement(node, new HashSet()); + return cdm.getClassForElement(node, new HashSet>()); } return null; } @@ -72,17 +72,17 @@ public class JSON implements ContextResolver { */ private static class ClassDiscriminatorMapping { // The model class name. - Class modelClass; + Class modelClass; // The name of the discriminator property. String discriminatorName; // The discriminator mappings for a model class. - Map discriminatorMappings; + Map> discriminatorMappings; // Constructs a new class discriminator. - ClassDiscriminatorMapping(Class cls, String propertyName, Map mappings) { + ClassDiscriminatorMapping(Class cls, String propertyName, Map> mappings) { modelClass = cls; discriminatorName = propertyName; - discriminatorMappings = new HashMap(); + discriminatorMappings = new HashMap>(); if (mappings != null) { discriminatorMappings.putAll(mappings); } @@ -118,7 +118,7 @@ public class JSON implements ContextResolver { * @param node The input data. * @param visitedClasses The set of classes that have already been visited. */ - Class getClassForElement(JsonNode node, Set visitedClasses) { + Class getClassForElement(JsonNode node, Set> visitedClasses) { if (visitedClasses.contains(modelClass)) { // Class has already been visited. return null; @@ -128,11 +128,11 @@ public class JSON implements ContextResolver { if (discrValue == null) { return null; } - Class cls = discriminatorMappings.get(discrValue); + Class cls = discriminatorMappings.get(discrValue); // It may not be sufficient to return this cls directly because that target class // may itself be a composed schema, possibly with its own discriminator. visitedClasses.add(modelClass); - for (Class childClass : discriminatorMappings.values()) { + for (Class childClass : discriminatorMappings.values()) { ClassDiscriminatorMapping childCdm = modelDiscriminators.get(childClass); if (childCdm == null) { continue; @@ -145,7 +145,7 @@ public class JSON implements ContextResolver { } if (childCdm != null) { // Recursively traverse the discriminator mappings. - Class childDiscr = childCdm.getClassForElement(node, visitedClasses); + Class childDiscr = childCdm.getClassForElement(node, visitedClasses); if (childDiscr != null) { return childDiscr; } @@ -164,7 +164,7 @@ public class JSON implements ContextResolver { * @param modelClass A OpenAPI model class. * @param inst The instance object. */ - public static boolean isInstanceOf(Class modelClass, Object inst, Set visitedClasses) { + public static boolean isInstanceOf(Class modelClass, Object inst, Set> visitedClasses) { if (modelClass.isInstance(inst)) { // This handles the 'allOf' use case with single parent inheritance. return true; @@ -191,12 +191,12 @@ public class JSON implements ContextResolver { /** * A map of discriminators for all model classes. */ - private static Map modelDiscriminators = new HashMap(); + private static Map, ClassDiscriminatorMapping> modelDiscriminators = new HashMap, ClassDiscriminatorMapping>(); /** * A map of oneOf/anyOf descendants for each model class. */ - private static Map> modelDescendants = new HashMap>(); + private static Map, Map> modelDescendants = new HashMap, Map>(); /** * Register a model class discriminator. @@ -205,7 +205,7 @@ public class JSON implements ContextResolver { * @param discriminatorPropertyName the name of the discriminator property * @param mappings a map with the discriminator mappings. */ - public static void registerDiscriminator(Class modelClass, String discriminatorPropertyName, Map mappings) { + public static void registerDiscriminator(Class modelClass, String discriminatorPropertyName, Map> mappings) { ClassDiscriminatorMapping m = new ClassDiscriminatorMapping(modelClass, discriminatorPropertyName, mappings); modelDiscriminators.put(modelClass, m); } @@ -216,7 +216,7 @@ public class JSON implements ContextResolver { * @param modelClass the model class * @param descendants a map of oneOf/anyOf descendants. */ - public static void registerDescendants(Class modelClass, Map descendants) { + public static void registerDescendants(Class modelClass, Map descendants) { modelDescendants.put(modelClass, descendants); } diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Animal.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Animal.java index db0f8292bc3..bf2bc9d44c6 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Animal.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Animal.java @@ -142,7 +142,7 @@ public class Animal { static { // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); mappings.put("Cat", Cat.class); mappings.put("Dog", Dog.class); mappings.put("Animal", Animal.class); diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java index e36acce48e1..5d8e46c2b9a 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java @@ -113,7 +113,7 @@ public class Cat extends Animal { static { // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); mappings.put("Cat", Cat.class); JSON.registerDiscriminator(Cat.class, "className", mappings); } diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ChildCat.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ChildCat.java index 78b9503b885..5d2a29fb105 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ChildCat.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ChildCat.java @@ -113,7 +113,7 @@ public class ChildCat extends ParentPet { static { // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); mappings.put("ChildCat", ChildCat.class); JSON.registerDiscriminator(ChildCat.class, "pet_type", mappings); } diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java index 6166619f5f9..4b78ba6694b 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java @@ -113,7 +113,7 @@ public class Dog extends Animal { static { // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); mappings.put("Dog", Dog.class); JSON.registerDiscriminator(Dog.class, "className", mappings); } diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Fruit.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Fruit.java index 8a29dc7f946..b0923a6387c 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Fruit.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Fruit.java @@ -129,7 +129,7 @@ public class Fruit extends AbstractOpenApiSchema { */ @Override public Fruit getNullValue(DeserializationContext ctxt) throws JsonMappingException { - throw new JsonMappingException("Fruit cannot be null"); + throw new JsonMappingException(ctxt.getParser(), "Fruit cannot be null"); } } @@ -172,12 +172,12 @@ public class Fruit extends AbstractOpenApiSchema { */ @Override public void setActualInstance(Object instance) { - if (JSON.isInstanceOf(Apple.class, instance, new HashSet())) { + if (JSON.isInstanceOf(Apple.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } - if (JSON.isInstanceOf(Banana.class, instance, new HashSet())) { + if (JSON.isInstanceOf(Banana.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FruitReq.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FruitReq.java index cb55ce9a881..c02f4fc08ce 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FruitReq.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FruitReq.java @@ -177,12 +177,12 @@ public class FruitReq extends AbstractOpenApiSchema { return; } - if (JSON.isInstanceOf(AppleReq.class, instance, new HashSet())) { + if (JSON.isInstanceOf(AppleReq.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } - if (JSON.isInstanceOf(BananaReq.class, instance, new HashSet())) { + if (JSON.isInstanceOf(BananaReq.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/GmFruit.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/GmFruit.java index 97c641fbc32..8a864854ea4 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/GmFruit.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/GmFruit.java @@ -119,7 +119,7 @@ public class GmFruit extends AbstractOpenApiSchema { */ @Override public GmFruit getNullValue(DeserializationContext ctxt) throws JsonMappingException { - throw new JsonMappingException("GmFruit cannot be null"); + throw new JsonMappingException(ctxt.getParser(), "GmFruit cannot be null"); } } @@ -155,12 +155,12 @@ public class GmFruit extends AbstractOpenApiSchema { @Override public void setActualInstance(Object instance) { - if (JSON.isInstanceOf(Apple.class, instance, new HashSet())) { + if (JSON.isInstanceOf(Apple.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } - if (JSON.isInstanceOf(Banana.class, instance, new HashSet())) { + if (JSON.isInstanceOf(Banana.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/GrandparentAnimal.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/GrandparentAnimal.java index 103132148d5..32b63a840bd 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/GrandparentAnimal.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/GrandparentAnimal.java @@ -112,7 +112,7 @@ public class GrandparentAnimal { static { // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); mappings.put("ChildCat", ChildCat.class); mappings.put("ParentPet", ParentPet.class); mappings.put("GrandparentAnimal", GrandparentAnimal.class); diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Mammal.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Mammal.java index 76b76934df9..225649b1b06 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Mammal.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Mammal.java @@ -164,7 +164,7 @@ public class Mammal extends AbstractOpenApiSchema { */ @Override public Mammal getNullValue(DeserializationContext ctxt) throws JsonMappingException { - throw new JsonMappingException("Mammal cannot be null"); + throw new JsonMappingException(ctxt.getParser(), "Mammal cannot be null"); } } @@ -199,7 +199,7 @@ public class Mammal extends AbstractOpenApiSchema { }); JSON.registerDescendants(Mammal.class, Collections.unmodifiableMap(schemas)); // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); mappings.put("Pig", Pig.class); mappings.put("whale", Whale.class); mappings.put("zebra", Zebra.class); @@ -221,17 +221,17 @@ public class Mammal extends AbstractOpenApiSchema { */ @Override public void setActualInstance(Object instance) { - if (JSON.isInstanceOf(Pig.class, instance, new HashSet())) { + if (JSON.isInstanceOf(Pig.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } - if (JSON.isInstanceOf(Whale.class, instance, new HashSet())) { + if (JSON.isInstanceOf(Whale.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } - if (JSON.isInstanceOf(Zebra.class, instance, new HashSet())) { + if (JSON.isInstanceOf(Zebra.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NullableShape.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NullableShape.java index 075a16bcd5e..75fc602d350 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NullableShape.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NullableShape.java @@ -174,7 +174,7 @@ public class NullableShape extends AbstractOpenApiSchema { }); JSON.registerDescendants(NullableShape.class, Collections.unmodifiableMap(schemas)); // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); mappings.put("Quadrilateral", Quadrilateral.class); mappings.put("Triangle", Triangle.class); mappings.put("NullableShape", NullableShape.class); @@ -200,12 +200,12 @@ public class NullableShape extends AbstractOpenApiSchema { return; } - if (JSON.isInstanceOf(Quadrilateral.class, instance, new HashSet())) { + if (JSON.isInstanceOf(Quadrilateral.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } - if (JSON.isInstanceOf(Triangle.class, instance, new HashSet())) { + if (JSON.isInstanceOf(Triangle.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ParentPet.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ParentPet.java index 31c07e78a44..0ccaa50f6a4 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ParentPet.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ParentPet.java @@ -83,7 +83,7 @@ public class ParentPet extends GrandparentAnimal { static { // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); mappings.put("ChildCat", ChildCat.class); mappings.put("ParentPet", ParentPet.class); JSON.registerDiscriminator(ParentPet.class, "pet_type", mappings); diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Pig.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Pig.java index 8b60edc0862..fccc724f5b0 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Pig.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Pig.java @@ -146,7 +146,7 @@ public class Pig extends AbstractOpenApiSchema { */ @Override public Pig getNullValue(DeserializationContext ctxt) throws JsonMappingException { - throw new JsonMappingException("Pig cannot be null"); + throw new JsonMappingException(ctxt.getParser(), "Pig cannot be null"); } } @@ -174,7 +174,7 @@ public class Pig extends AbstractOpenApiSchema { }); JSON.registerDescendants(Pig.class, Collections.unmodifiableMap(schemas)); // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); mappings.put("BasquePig", BasquePig.class); mappings.put("DanishPig", DanishPig.class); mappings.put("Pig", Pig.class); @@ -195,12 +195,12 @@ public class Pig extends AbstractOpenApiSchema { */ @Override public void setActualInstance(Object instance) { - if (JSON.isInstanceOf(BasquePig.class, instance, new HashSet())) { + if (JSON.isInstanceOf(BasquePig.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } - if (JSON.isInstanceOf(DanishPig.class, instance, new HashSet())) { + if (JSON.isInstanceOf(DanishPig.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Quadrilateral.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Quadrilateral.java index 61ad4f196df..a18e18a90f6 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Quadrilateral.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Quadrilateral.java @@ -146,7 +146,7 @@ public class Quadrilateral extends AbstractOpenApiSchema { */ @Override public Quadrilateral getNullValue(DeserializationContext ctxt) throws JsonMappingException { - throw new JsonMappingException("Quadrilateral cannot be null"); + throw new JsonMappingException(ctxt.getParser(), "Quadrilateral cannot be null"); } } @@ -174,7 +174,7 @@ public class Quadrilateral extends AbstractOpenApiSchema { }); JSON.registerDescendants(Quadrilateral.class, Collections.unmodifiableMap(schemas)); // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); mappings.put("ComplexQuadrilateral", ComplexQuadrilateral.class); mappings.put("SimpleQuadrilateral", SimpleQuadrilateral.class); mappings.put("Quadrilateral", Quadrilateral.class); @@ -195,12 +195,12 @@ public class Quadrilateral extends AbstractOpenApiSchema { */ @Override public void setActualInstance(Object instance) { - if (JSON.isInstanceOf(ComplexQuadrilateral.class, instance, new HashSet())) { + if (JSON.isInstanceOf(ComplexQuadrilateral.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } - if (JSON.isInstanceOf(SimpleQuadrilateral.class, instance, new HashSet())) { + if (JSON.isInstanceOf(SimpleQuadrilateral.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Shape.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Shape.java index a6a4ee10957..d98d0f8b43f 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Shape.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Shape.java @@ -146,7 +146,7 @@ public class Shape extends AbstractOpenApiSchema { */ @Override public Shape getNullValue(DeserializationContext ctxt) throws JsonMappingException { - throw new JsonMappingException("Shape cannot be null"); + throw new JsonMappingException(ctxt.getParser(), "Shape cannot be null"); } } @@ -174,7 +174,7 @@ public class Shape extends AbstractOpenApiSchema { }); JSON.registerDescendants(Shape.class, Collections.unmodifiableMap(schemas)); // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); mappings.put("Quadrilateral", Quadrilateral.class); mappings.put("Triangle", Triangle.class); mappings.put("Shape", Shape.class); @@ -195,12 +195,12 @@ public class Shape extends AbstractOpenApiSchema { */ @Override public void setActualInstance(Object instance) { - if (JSON.isInstanceOf(Quadrilateral.class, instance, new HashSet())) { + if (JSON.isInstanceOf(Quadrilateral.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } - if (JSON.isInstanceOf(Triangle.class, instance, new HashSet())) { + if (JSON.isInstanceOf(Triangle.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ShapeOrNull.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ShapeOrNull.java index 90eaed8b10e..baa4632c05c 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ShapeOrNull.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ShapeOrNull.java @@ -174,7 +174,7 @@ public class ShapeOrNull extends AbstractOpenApiSchema { }); JSON.registerDescendants(ShapeOrNull.class, Collections.unmodifiableMap(schemas)); // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); mappings.put("Quadrilateral", Quadrilateral.class); mappings.put("Triangle", Triangle.class); mappings.put("ShapeOrNull", ShapeOrNull.class); @@ -200,12 +200,12 @@ public class ShapeOrNull extends AbstractOpenApiSchema { return; } - if (JSON.isInstanceOf(Quadrilateral.class, instance, new HashSet())) { + if (JSON.isInstanceOf(Quadrilateral.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } - if (JSON.isInstanceOf(Triangle.class, instance, new HashSet())) { + if (JSON.isInstanceOf(Triangle.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Triangle.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Triangle.java index de9e6af386c..d155a2c9601 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Triangle.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Triangle.java @@ -164,7 +164,7 @@ public class Triangle extends AbstractOpenApiSchema { */ @Override public Triangle getNullValue(DeserializationContext ctxt) throws JsonMappingException { - throw new JsonMappingException("Triangle cannot be null"); + throw new JsonMappingException(ctxt.getParser(), "Triangle cannot be null"); } } @@ -199,7 +199,7 @@ public class Triangle extends AbstractOpenApiSchema { }); JSON.registerDescendants(Triangle.class, Collections.unmodifiableMap(schemas)); // Initialize and register the discriminator mappings. - Map mappings = new HashMap(); + Map> mappings = new HashMap>(); mappings.put("EquilateralTriangle", EquilateralTriangle.class); mappings.put("IsoscelesTriangle", IsoscelesTriangle.class); mappings.put("ScaleneTriangle", ScaleneTriangle.class); @@ -221,17 +221,17 @@ public class Triangle extends AbstractOpenApiSchema { */ @Override public void setActualInstance(Object instance) { - if (JSON.isInstanceOf(EquilateralTriangle.class, instance, new HashSet())) { + if (JSON.isInstanceOf(EquilateralTriangle.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } - if (JSON.isInstanceOf(IsoscelesTriangle.class, instance, new HashSet())) { + if (JSON.isInstanceOf(IsoscelesTriangle.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } - if (JSON.isInstanceOf(ScaleneTriangle.class, instance, new HashSet())) { + if (JSON.isInstanceOf(ScaleneTriangle.class, instance, new HashSet>())) { super.setActualInstance(instance); return; } diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONComposedSchemaTest.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONComposedSchemaTest.java index e2c11ad05de..a27cdbb7e6b 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONComposedSchemaTest.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONComposedSchemaTest.java @@ -148,7 +148,7 @@ public class JSONComposedSchemaTest { Exception exception = assertThrows(JsonMappingException.class, () -> { json.getContext(null).readValue(str, Shape.class); }); - assertEquals("Shape cannot be null", exception.getMessage()); + assertTrue(exception.getMessage().contains("Shape cannot be null")); } /** @@ -317,7 +317,7 @@ public class JSONComposedSchemaTest { Exception exception = assertThrows(JsonMappingException.class, () -> { GmFruit o = json.getContext(null).readValue(str, GmFruit.class); }); - assertEquals("GmFruit cannot be null", exception.getMessage()); + assertTrue(exception.getMessage().contains("GmFruit cannot be null")); } } } diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONTest.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONTest.java index 7fb307a3df8..dda1ef9c1ef 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONTest.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONTest.java @@ -3,7 +3,9 @@ package org.openapitools.client; import org.openapitools.client.model.Order; import java.lang.Exception; - +import java.util.Date; +import java.util.TimeZone; +import java.text.SimpleDateFormat; import java.time.OffsetDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; @@ -32,6 +34,33 @@ public class JSONTest { assertEquals(dateStr, dateFormat.format(o.getShipDate())); } + @Test + public void testRFC3339DateFormatDate() throws Exception { + { + String dateStr = "2011-01-18 00:00:00.0Z"; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S'Z'"); + sdf.setTimeZone(TimeZone.getTimeZone("GMT")); + Date date = sdf.parse(dateStr); + + RFC3339DateFormat df = new RFC3339DateFormat(); + StringBuffer sb = new StringBuffer(); + String s = df.format(date); + System.out.println("DATE: " + s); + assertEquals("2011-01-18T00:00:00.000Z", s); + } + { + String dateStr = "2011-01-18 00:00:00.0"; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S"); + sdf.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles")); + Date date = sdf.parse(dateStr); + + RFC3339DateFormat df = new RFC3339DateFormat(); + StringBuffer sb = new StringBuffer(); + String s = df.format(date); + assertEquals("2011-01-18T08:00:00.000Z", s); + } + } + @Test public void testCustomDate() throws Exception { final DateTimeFormatter dateFormat = DateTimeFormatter.ISO_OFFSET_DATE_TIME.withZone(ZoneId.of("Etc/GMT+2"));