From 5fd948f23426c9336319070e37e3a2d6400ef85d Mon Sep 17 00:00:00 2001 From: cbornet Date: Tue, 31 May 2016 23:15:29 +0200 Subject: [PATCH] use OffsetDateTime instead of LocalDateTime Fix #2138 --- .../codegen/languages/JavaClientCodegen.java | 4 +-- .../languages/JavaJerseyServerCodegen.java | 2 +- .../languages/JavaResteasyServerCodegen.java | 8 ++--- ...stache => OffsetDateTimeProvider.mustache} | 16 ++++----- ...stache => OffsetDateTimeProvider.mustache} | 16 ++++----- .../resteasy/LocalDateTimeProvider.mustache | 34 ------------------- .../resteasy/OffsetDateTimeProvider.mustache | 34 +++++++++++++++++++ .../codegen/jaxrs/JaxrsJava8ModelTest.java | 2 +- 8 files changed, 58 insertions(+), 58 deletions(-) rename modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey1/{LocalDateTimeProvider.mustache => OffsetDateTimeProvider.mustache} (67%) rename modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey2/{LocalDateTimeProvider.mustache => OffsetDateTimeProvider.mustache} (67%) delete mode 100644 modules/swagger-codegen/src/main/resources/JavaJaxRS/resteasy/LocalDateTimeProvider.mustache create mode 100644 modules/swagger-codegen/src/main/resources/JavaJaxRS/resteasy/OffsetDateTimeProvider.mustache diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java index 73930a83878..c11159e7f1d 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java @@ -375,9 +375,9 @@ public class JavaClientCodegen extends DefaultCodegen implements CodegenConfig { additionalProperties.put("java8", "true"); additionalProperties.put("javaVersion", "1.8"); typeMapping.put("date", "LocalDate"); - typeMapping.put("DateTime", "LocalDateTime"); + typeMapping.put("DateTime", "OffsetDateTime"); importMapping.put("LocalDate", "java.time.LocalDate"); - importMapping.put("LocalDateTime", "java.time.LocalDateTime"); + importMapping.put("OffsetDateTime", "java.time.OffsetDateTime"); } supportingFiles.add(new SupportingFile("git_push.sh.mustache", "", "git_push.sh")); diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaJerseyServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaJerseyServerCodegen.java index 72f969403bf..c687a281de6 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaJerseyServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaJerseyServerCodegen.java @@ -98,7 +98,7 @@ public class JavaJerseyServerCodegen extends AbstractJavaJAXRSServerCodegen { supportingFiles.add(new SupportingFile("JodaDateTimeProvider.mustache", (sourceFolder + '/' + apiPackage).replace(".", "/"), "JodaDateTimeProvider.java")); supportingFiles.add(new SupportingFile("JodaLocalDateProvider.mustache", (sourceFolder + '/' + apiPackage).replace(".", "/"), "JodaLocalDateProvider.java")); } else if ( "java8".equals(dateLibrary) ) { - supportingFiles.add(new SupportingFile("LocalDateTimeProvider.mustache", (sourceFolder + '/' + apiPackage).replace(".", "/"), "LocalDateTimeProvider.java")); + supportingFiles.add(new SupportingFile("OffsetDateTimeProvider.mustache", (sourceFolder + '/' + apiPackage).replace(".", "/"), "OffsetDateTimeProvider.java")); supportingFiles.add(new SupportingFile("LocalDateProvider.mustache", (sourceFolder + '/' + apiPackage).replace(".", "/"), "LocalDateProvider.java")); } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaResteasyServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaResteasyServerCodegen.java index 5717c902740..39c349b1516 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaResteasyServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaResteasyServerCodegen.java @@ -139,12 +139,12 @@ public class JavaResteasyServerCodegen extends JavaClientCodegen implements Code additionalProperties.put("java8", "true"); additionalProperties.put("javaVersion", "1.8"); typeMapping.put("date", "LocalDate"); - typeMapping.put("DateTime", "LocalDateTime"); + typeMapping.put("DateTime", "OffsetDateTime"); importMapping.put("LocalDate", "java.time.LocalDate"); - importMapping.put("LocalDateTime", "java.time.LocalDateTime"); + importMapping.put("OffsetDateTime", "java.time.OffsetDateTime"); - supportingFiles.add(new SupportingFile("LocalDateTimeProvider.mustache", - (sourceFolder + '/' + apiPackage).replace(".", "/"), "LocalDateTimeProvider.java")); + supportingFiles.add(new SupportingFile("OffsetDateTimeProvider.mustache", + (sourceFolder + '/' + apiPackage).replace(".", "/"), "OffsetDateTimeProvider.java")); supportingFiles.add(new SupportingFile("LocalDateProvider.mustache", (sourceFolder + '/' + apiPackage).replace(".", "/"), "LocalDateProvider.java")); } diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey1/LocalDateTimeProvider.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey1/OffsetDateTimeProvider.mustache similarity index 67% rename from modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey1/LocalDateTimeProvider.mustache rename to modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey1/OffsetDateTimeProvider.mustache index 93bb6f19d50..876aeb327be 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey1/LocalDateTimeProvider.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey1/OffsetDateTimeProvider.mustache @@ -11,23 +11,23 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; import javax.ws.rs.core.UriInfo; import javax.ws.rs.ext.Provider; -import java.time.LocalDateTime; +import java.time.OffsetDateTime; import java.util.List; @Provider -public class LocalDateTimeProvider extends PerRequestTypeInjectableProvider { +public class OffsetDateTimeProvider extends PerRequestTypeInjectableProvider { private final UriInfo uriInfo; - public LocalDateTimeProvider(@Context UriInfo uriInfo) { - super(LocalDateTime.class); + public OffsetDateTimeProvider(@Context UriInfo uriInfo) { + super(OffsetDateTime.class); this.uriInfo = uriInfo; } @Override - public Injectable getInjectable(final ComponentContext cc, final QueryParam a) { - return new Injectable() { + public Injectable getInjectable(final ComponentContext cc, final QueryParam a) { + return new Injectable() { @Override - public LocalDateTime getValue() { + public OffsetDateTime getValue() { final List values = uriInfo.getQueryParameters().get(a.value()); if (values == null || values.isEmpty()) @@ -37,7 +37,7 @@ public class LocalDateTimeProvider extends PerRequestTypeInjectableProvider { +public class OffsetDateTimeProvider extends PerRequestTypeInjectableProvider { private final UriInfo uriInfo; - public LocalDateTimeProvider(@Context UriInfo uriInfo) { - super(LocalDateTime.class); + public OffsetDateTimeProvider(@Context UriInfo uriInfo) { + super(OffsetDateTime.class); this.uriInfo = uriInfo; } @Override - public Injectable getInjectable(final ComponentContext cc, final QueryParam a) { - return new Injectable() { + public Injectable getInjectable(final ComponentContext cc, final QueryParam a) { + return new Injectable() { @Override - public LocalDateTime getValue() { + public OffsetDateTime getValue() { final List values = uriInfo.getQueryParameters().get(a.value()); if (values == null || values.isEmpty()) @@ -37,7 +37,7 @@ public class LocalDateTimeProvider extends PerRequestTypeInjectableProvider { - - @Override - public LocalDateTime fromString(String string) { - LocalDateTime localDateTime = LocalDateTime.parse(string); - return localDateTime; - } - - @Override - public String toString(LocalDateTime t) { - return t.toString(); - } - } - - @Override - public ParamConverter getConverter(Class type, Type type1, Annotation[] antns) { - if (LocalDateTime.class.equals(type)) { - return (ParamConverter) new LocalDateTimeConverter(); - } - return null; - } -} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/resteasy/OffsetDateTimeProvider.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/resteasy/OffsetDateTimeProvider.mustache new file mode 100644 index 00000000000..f24dabbe283 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/resteasy/OffsetDateTimeProvider.mustache @@ -0,0 +1,34 @@ +package {{apiPackage}}; + +import java.time.OffsetDateTime; +import javax.ws.rs.ext.ParamConverter; +import javax.ws.rs.ext.ParamConverterProvider; +import javax.ws.rs.ext.Provider; +import java.lang.annotation.Annotation; +import java.lang.reflect.Type; + +@Provider +public class OffsetDateTimeProvider implements ParamConverterProvider { + + public static class OffsetDateTimeConverter implements ParamConverter { + + @Override + public OffsetDateTime fromString(String string) { + OffsetDateTime OffsetDateTime = OffsetDateTime.parse(string); + return OffsetDateTime; + } + + @Override + public String toString(OffsetDateTime t) { + return t.toString(); + } + } + + @Override + public ParamConverter getConverter(Class type, Type type1, Annotation[] antns) { + if (OffsetDateTime.class.equals(type)) { + return (ParamConverter) new OffsetDateTimeConverter(); + } + return null; + } +} \ No newline at end of file diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsJava8ModelTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsJava8ModelTest.java index 34c91e28335..ad26ecc9ae5 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsJava8ModelTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsJava8ModelTest.java @@ -34,6 +34,6 @@ public class JaxrsJava8ModelTest { Json.prettyPrint(cm); assertEquals(cm.vars.get(0).datatype, "Long"); assertEquals(cm.vars.get(1).datatype, "LocalDate"); - assertEquals(cm.vars.get(2).datatype, "LocalDateTime"); + assertEquals(cm.vars.get(2).datatype, "OffsetDateTime"); } }