From 9055dfc42e99f979fa4a30c6d94e8ade3298995e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jani=20V=C3=A4in=C3=B6l=C3=A4?= Date: Mon, 24 Apr 2017 18:53:34 +0200 Subject: [PATCH] Jaxrs jersey2 support (#5058) * [JAVA/] jaxrs/jersey2 (Issue: 4662) Made java8-date codegeneration to work with jersey2 * Ran shellscripts for jaxrs-jersey-petstore-server and java8-petstore-jersey2 to update petstore samples --- .../jersey1}/LocalDateProvider.mustache | 0 .../jersey1}/OffsetDateTimeProvider.mustache | 0 .../jersey2/LocalDateProvider.mustache | 28 +++++++++++++++++++ .../jersey2/OffsetDateTimeProvider.mustache | 28 +++++++++++++++++++ .../client/petstore/java/jersey2/hello.txt | 1 + 5 files changed, 57 insertions(+) rename modules/swagger-codegen/src/main/resources/JavaJaxRS/{ => libraries/jersey1}/LocalDateProvider.mustache (100%) rename modules/swagger-codegen/src/main/resources/JavaJaxRS/{ => libraries/jersey1}/OffsetDateTimeProvider.mustache (100%) create mode 100644 modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey2/LocalDateProvider.mustache create mode 100644 modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey2/OffsetDateTimeProvider.mustache create mode 100644 samples/client/petstore/java/jersey2/hello.txt diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/LocalDateProvider.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey1/LocalDateProvider.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/JavaJaxRS/LocalDateProvider.mustache rename to modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey1/LocalDateProvider.mustache diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/OffsetDateTimeProvider.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey1/OffsetDateTimeProvider.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/JavaJaxRS/OffsetDateTimeProvider.mustache rename to modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey1/OffsetDateTimeProvider.mustache diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey2/LocalDateProvider.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey2/LocalDateProvider.mustache new file mode 100644 index 00000000000..90a5fb62084 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey2/LocalDateProvider.mustache @@ -0,0 +1,28 @@ +package {{apiPackage}}; + +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; +import java.time.LocalDate; + +@Provider +public class LocalDateProvider implements ParamConverterProvider { + + public ParamConverter getConverter(Class clazz, Type type, Annotation[] annotations) { + if (clazz.getName().equals(LocalDate.class.getName())) { + return new ParamConverter() { + @SuppressWarnings("unchecked") + public T fromString(String value) { + return value!=null ? (T) LocalDate.parse(value) : null; + } + + public String toString(T bean) { + return bean!=null ? bean.toString() : ""; + } + }; + } + return null; + } +} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey2/OffsetDateTimeProvider.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey2/OffsetDateTimeProvider.mustache new file mode 100644 index 00000000000..fccb0deb16c --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey2/OffsetDateTimeProvider.mustache @@ -0,0 +1,28 @@ +package {{apiPackage}}; + +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; +import java.time.OffsetDateTime; + +@Provider +public class OffsetDateTimeProvider implements ParamConverterProvider { + + public ParamConverter getConverter(Class clazz, Type type, Annotation[] annotations) { + if (clazz.getName().equals(OffsetDateTime.class.getName())) { + return new ParamConverter() { + @SuppressWarnings("unchecked") + public T fromString(String value) { + return value != null ? (T) OffsetDateTime.parse(value) : null; + } + + public String toString(T bean) { + return bean != null ? bean.toString() : ""; + } + }; + } + return null; + } +} \ No newline at end of file diff --git a/samples/client/petstore/java/jersey2/hello.txt b/samples/client/petstore/java/jersey2/hello.txt new file mode 100644 index 00000000000..6769dd60bdf --- /dev/null +++ b/samples/client/petstore/java/jersey2/hello.txt @@ -0,0 +1 @@ +Hello world! \ No newline at end of file