From 889389b69343ea9ae1a7f891b92213d64def228e Mon Sep 17 00:00:00 2001 From: Jakub Bednar Date: Wed, 25 Aug 2021 10:19:50 +0200 Subject: [PATCH 1/5] fix: avoid requirements to jdk.unsupported module --- .../java/com/influxdb/client/JSON.java | 62 ------------------- .../client/domain/ArrayExpression.java | 2 +- .../client/domain/BinaryExpression.java | 4 +- .../com/influxdb/client/domain/Block.java | 2 +- .../client/domain/CallExpression.java | 4 +- .../client/domain/ConditionalExpression.java | 6 +- .../com/influxdb/client/domain/DictItem.java | 4 +- .../client/domain/ExpressionStatement.java | 2 +- .../java/com/influxdb/client/domain/File.java | 2 +- .../client/domain/FunctionExpression.java | 2 +- .../client/domain/IndexExpression.java | 4 +- .../client/domain/LogicalExpression.java | 4 +- .../client/domain/MemberAssignment.java | 2 +- .../client/domain/MemberExpression.java | 4 +- .../client/domain/OptionStatement.java | 2 +- .../client/domain/ParenExpression.java | 2 +- .../client/domain/PipeExpression.java | 2 +- .../com/influxdb/client/domain/Property.java | 4 +- .../client/domain/ReturnStatement.java | 2 +- .../client/domain/UnaryExpression.java | 2 +- .../com/influxdb/client/domain/Variable.java | 2 +- .../client/domain/VariableAssignment.java | 2 +- .../java/com/influxdb/client/domain/View.java | 2 +- 23 files changed, 31 insertions(+), 93 deletions(-) diff --git a/client/src/generated/java/com/influxdb/client/JSON.java b/client/src/generated/java/com/influxdb/client/JSON.java index dddca383ad5..2635097c0eb 100644 --- a/client/src/generated/java/com/influxdb/client/JSON.java +++ b/client/src/generated/java/com/influxdb/client/JSON.java @@ -47,7 +47,6 @@ public class JSON { private Gson gson; private DateTypeAdapter dateTypeAdapter = new DateTypeAdapter(); - private SqlDateTypeAdapter sqlDateTypeAdapter = new SqlDateTypeAdapter(); private OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new OffsetDateTimeTypeAdapter(); private LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter(); @@ -174,7 +173,6 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri public JSON() { gson = createGson() .registerTypeAdapter(Date.class, dateTypeAdapter) - .registerTypeAdapter(java.sql.Date.class, sqlDateTypeAdapter) .registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter) .registerTypeAdapter(LocalDate.class, localDateTypeAdapter) .create(); @@ -304,60 +302,6 @@ public JSON setLocalDateFormat(DateTimeFormatter dateFormat) { return this; } - /** - * Gson TypeAdapter for java.sql.Date type - * If the dateFormat is null, a simple "yyyy-MM-dd" format will be used - * (more efficient than SimpleDateFormat). - */ - public static class SqlDateTypeAdapter extends TypeAdapter { - - private DateFormat dateFormat; - - public SqlDateTypeAdapter() { - } - - public SqlDateTypeAdapter(DateFormat dateFormat) { - this.dateFormat = dateFormat; - } - - public void setFormat(DateFormat dateFormat) { - this.dateFormat = dateFormat; - } - - @Override - public void write(JsonWriter out, java.sql.Date date) throws IOException { - if (date == null) { - out.nullValue(); - } else { - String value; - if (dateFormat != null) { - value = dateFormat.format(date); - } else { - value = date.toString(); - } - out.value(value); - } - } - - @Override - public java.sql.Date read(JsonReader in) throws IOException { - switch (in.peek()) { - case NULL: - in.nextNull(); - return null; - default: - String date = in.nextString(); - try { - if (dateFormat != null) { - return new java.sql.Date(dateFormat.parse(date).getTime()); - } - return new java.sql.Date(ISO8601Utils.parse(date, new ParsePosition(0)).getTime()); - } catch (ParseException e) { - throw new JsonParseException(e); - } - } - } - } /** * Gson TypeAdapter for java.util.Date type @@ -421,10 +365,4 @@ public JSON setDateFormat(DateFormat dateFormat) { dateTypeAdapter.setFormat(dateFormat); return this; } - - public JSON setSqlDateFormat(DateFormat dateFormat) { - sqlDateTypeAdapter.setFormat(dateFormat); - return this; - } - } diff --git a/client/src/generated/java/com/influxdb/client/domain/ArrayExpression.java b/client/src/generated/java/com/influxdb/client/domain/ArrayExpression.java index f8993be0bb4..9e060dd1249 100644 --- a/client/src/generated/java/com/influxdb/client/domain/ArrayExpression.java +++ b/client/src/generated/java/com/influxdb/client/domain/ArrayExpression.java @@ -138,7 +138,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class ArrayExpressionElementsAdapter implements JsonDeserializer, JsonSerializer { + public static class ArrayExpressionElementsAdapter implements JsonDeserializer, JsonSerializer { public ArrayExpressionElementsAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/BinaryExpression.java b/client/src/generated/java/com/influxdb/client/domain/BinaryExpression.java index c972e1825cb..97ec71a5bd8 100644 --- a/client/src/generated/java/com/influxdb/client/domain/BinaryExpression.java +++ b/client/src/generated/java/com/influxdb/client/domain/BinaryExpression.java @@ -179,7 +179,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class BinaryExpressionLeftAdapter implements JsonDeserializer, JsonSerializer { + public static class BinaryExpressionLeftAdapter implements JsonDeserializer, JsonSerializer { public BinaryExpressionLeftAdapter() { } @@ -277,7 +277,7 @@ private Object deserialize(final String[] types, final JsonElement json, final J return context.deserialize(json, Object.class); } } - public class BinaryExpressionRightAdapter implements JsonDeserializer, JsonSerializer { + public static class BinaryExpressionRightAdapter implements JsonDeserializer, JsonSerializer { public BinaryExpressionRightAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/Block.java b/client/src/generated/java/com/influxdb/client/domain/Block.java index dc56e1f9205..9523a5d7b94 100644 --- a/client/src/generated/java/com/influxdb/client/domain/Block.java +++ b/client/src/generated/java/com/influxdb/client/domain/Block.java @@ -138,7 +138,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class BlockBodyAdapter implements JsonDeserializer, JsonSerializer { + public static class BlockBodyAdapter implements JsonDeserializer, JsonSerializer { public BlockBodyAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/CallExpression.java b/client/src/generated/java/com/influxdb/client/domain/CallExpression.java index dd789bbbb3f..cfc4b0c5306 100644 --- a/client/src/generated/java/com/influxdb/client/domain/CallExpression.java +++ b/client/src/generated/java/com/influxdb/client/domain/CallExpression.java @@ -163,7 +163,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class CallExpressionArgumentsAdapter implements JsonDeserializer, JsonSerializer { + public static class CallExpressionArgumentsAdapter implements JsonDeserializer, JsonSerializer { public CallExpressionArgumentsAdapter() { } @@ -267,7 +267,7 @@ private Object deserialize(final String[] types, final JsonElement json, final J return context.deserialize(json, Object.class); } } - public class CallExpressionCalleeAdapter implements JsonDeserializer, JsonSerializer { + public static class CallExpressionCalleeAdapter implements JsonDeserializer, JsonSerializer { public CallExpressionCalleeAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/ConditionalExpression.java b/client/src/generated/java/com/influxdb/client/domain/ConditionalExpression.java index 7e5031be1ba..5ac8b0704f4 100644 --- a/client/src/generated/java/com/influxdb/client/domain/ConditionalExpression.java +++ b/client/src/generated/java/com/influxdb/client/domain/ConditionalExpression.java @@ -180,7 +180,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class ConditionalExpressionAlternateAdapter implements JsonDeserializer, JsonSerializer { + public static class ConditionalExpressionAlternateAdapter implements JsonDeserializer, JsonSerializer { public ConditionalExpressionAlternateAdapter() { } @@ -278,7 +278,7 @@ private Object deserialize(final String[] types, final JsonElement json, final J return context.deserialize(json, Object.class); } } - public class ConditionalExpressionTestAdapter implements JsonDeserializer, JsonSerializer { + public static class ConditionalExpressionTestAdapter implements JsonDeserializer, JsonSerializer { public ConditionalExpressionTestAdapter() { } @@ -376,7 +376,7 @@ private Object deserialize(final String[] types, final JsonElement json, final J return context.deserialize(json, Object.class); } } - public class ConditionalExpressionConsequentAdapter implements JsonDeserializer, JsonSerializer { + public static class ConditionalExpressionConsequentAdapter implements JsonDeserializer, JsonSerializer { public ConditionalExpressionConsequentAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/DictItem.java b/client/src/generated/java/com/influxdb/client/domain/DictItem.java index 7351124239f..5d2bf5fd6f0 100644 --- a/client/src/generated/java/com/influxdb/client/domain/DictItem.java +++ b/client/src/generated/java/com/influxdb/client/domain/DictItem.java @@ -153,7 +153,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class DictItemValAdapter implements JsonDeserializer, JsonSerializer { + public static class DictItemValAdapter implements JsonDeserializer, JsonSerializer { public DictItemValAdapter() { } @@ -251,7 +251,7 @@ private Object deserialize(final String[] types, final JsonElement json, final J return context.deserialize(json, Object.class); } } - public class DictItemKeyAdapter implements JsonDeserializer, JsonSerializer { + public static class DictItemKeyAdapter implements JsonDeserializer, JsonSerializer { public DictItemKeyAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/ExpressionStatement.java b/client/src/generated/java/com/influxdb/client/domain/ExpressionStatement.java index 0ec3f31f7d4..b5986552935 100644 --- a/client/src/generated/java/com/influxdb/client/domain/ExpressionStatement.java +++ b/client/src/generated/java/com/influxdb/client/domain/ExpressionStatement.java @@ -130,7 +130,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class ExpressionStatementExpressionAdapter implements JsonDeserializer, JsonSerializer { + public static class ExpressionStatementExpressionAdapter implements JsonDeserializer, JsonSerializer { public ExpressionStatementExpressionAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/File.java b/client/src/generated/java/com/influxdb/client/domain/File.java index 20760099dda..72e12e64dd9 100644 --- a/client/src/generated/java/com/influxdb/client/domain/File.java +++ b/client/src/generated/java/com/influxdb/client/domain/File.java @@ -218,7 +218,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class FileBodyAdapter implements JsonDeserializer, JsonSerializer { + public static class FileBodyAdapter implements JsonDeserializer, JsonSerializer { public FileBodyAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/FunctionExpression.java b/client/src/generated/java/com/influxdb/client/domain/FunctionExpression.java index 6592db27d03..fbc5a94da2b 100644 --- a/client/src/generated/java/com/influxdb/client/domain/FunctionExpression.java +++ b/client/src/generated/java/com/influxdb/client/domain/FunctionExpression.java @@ -163,7 +163,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class FunctionExpressionBodyAdapter implements JsonDeserializer, JsonSerializer { + public static class FunctionExpressionBodyAdapter implements JsonDeserializer, JsonSerializer { public FunctionExpressionBodyAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/IndexExpression.java b/client/src/generated/java/com/influxdb/client/domain/IndexExpression.java index f0f95acc98e..8f33c6409ed 100644 --- a/client/src/generated/java/com/influxdb/client/domain/IndexExpression.java +++ b/client/src/generated/java/com/influxdb/client/domain/IndexExpression.java @@ -155,7 +155,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class IndexExpressionArrayAdapter implements JsonDeserializer, JsonSerializer { + public static class IndexExpressionArrayAdapter implements JsonDeserializer, JsonSerializer { public IndexExpressionArrayAdapter() { } @@ -253,7 +253,7 @@ private Object deserialize(final String[] types, final JsonElement json, final J return context.deserialize(json, Object.class); } } - public class IndexExpressionIndexAdapter implements JsonDeserializer, JsonSerializer { + public static class IndexExpressionIndexAdapter implements JsonDeserializer, JsonSerializer { public IndexExpressionIndexAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/LogicalExpression.java b/client/src/generated/java/com/influxdb/client/domain/LogicalExpression.java index 54be9557fdb..3be7b0e96e2 100644 --- a/client/src/generated/java/com/influxdb/client/domain/LogicalExpression.java +++ b/client/src/generated/java/com/influxdb/client/domain/LogicalExpression.java @@ -179,7 +179,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class LogicalExpressionLeftAdapter implements JsonDeserializer, JsonSerializer { + public static class LogicalExpressionLeftAdapter implements JsonDeserializer, JsonSerializer { public LogicalExpressionLeftAdapter() { } @@ -277,7 +277,7 @@ private Object deserialize(final String[] types, final JsonElement json, final J return context.deserialize(json, Object.class); } } - public class LogicalExpressionRightAdapter implements JsonDeserializer, JsonSerializer { + public static class LogicalExpressionRightAdapter implements JsonDeserializer, JsonSerializer { public LogicalExpressionRightAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/MemberAssignment.java b/client/src/generated/java/com/influxdb/client/domain/MemberAssignment.java index 30cb53d7fe1..2f47a0b5ced 100644 --- a/client/src/generated/java/com/influxdb/client/domain/MemberAssignment.java +++ b/client/src/generated/java/com/influxdb/client/domain/MemberAssignment.java @@ -155,7 +155,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class MemberAssignmentInitAdapter implements JsonDeserializer, JsonSerializer { + public static class MemberAssignmentInitAdapter implements JsonDeserializer, JsonSerializer { public MemberAssignmentInitAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/MemberExpression.java b/client/src/generated/java/com/influxdb/client/domain/MemberExpression.java index a2362059693..dfc4d070b53 100644 --- a/client/src/generated/java/com/influxdb/client/domain/MemberExpression.java +++ b/client/src/generated/java/com/influxdb/client/domain/MemberExpression.java @@ -156,7 +156,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class MemberExpressionPropertyAdapter implements JsonDeserializer, JsonSerializer { + public static class MemberExpressionPropertyAdapter implements JsonDeserializer, JsonSerializer { public MemberExpressionPropertyAdapter() { } @@ -191,7 +191,7 @@ private Object deserialize(final String[] types, final JsonElement json, final J return context.deserialize(json, Object.class); } } - public class MemberExpressionObjectAdapter implements JsonDeserializer, JsonSerializer { + public static class MemberExpressionObjectAdapter implements JsonDeserializer, JsonSerializer { public MemberExpressionObjectAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/OptionStatement.java b/client/src/generated/java/com/influxdb/client/domain/OptionStatement.java index 681d8303011..f2cea8138fe 100644 --- a/client/src/generated/java/com/influxdb/client/domain/OptionStatement.java +++ b/client/src/generated/java/com/influxdb/client/domain/OptionStatement.java @@ -129,7 +129,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class OptionStatementAssignmentAdapter implements JsonDeserializer, JsonSerializer { + public static class OptionStatementAssignmentAdapter implements JsonDeserializer, JsonSerializer { public OptionStatementAssignmentAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/ParenExpression.java b/client/src/generated/java/com/influxdb/client/domain/ParenExpression.java index 2bf4550d01c..88684e49d4c 100644 --- a/client/src/generated/java/com/influxdb/client/domain/ParenExpression.java +++ b/client/src/generated/java/com/influxdb/client/domain/ParenExpression.java @@ -130,7 +130,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class ParenExpressionExpressionAdapter implements JsonDeserializer, JsonSerializer { + public static class ParenExpressionExpressionAdapter implements JsonDeserializer, JsonSerializer { public ParenExpressionExpressionAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/PipeExpression.java b/client/src/generated/java/com/influxdb/client/domain/PipeExpression.java index 8cc4e6cd82b..0f56799a76e 100644 --- a/client/src/generated/java/com/influxdb/client/domain/PipeExpression.java +++ b/client/src/generated/java/com/influxdb/client/domain/PipeExpression.java @@ -155,7 +155,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class PipeExpressionArgumentAdapter implements JsonDeserializer, JsonSerializer { + public static class PipeExpressionArgumentAdapter implements JsonDeserializer, JsonSerializer { public PipeExpressionArgumentAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/Property.java b/client/src/generated/java/com/influxdb/client/domain/Property.java index 4d8fd357eef..3f46a031a48 100644 --- a/client/src/generated/java/com/influxdb/client/domain/Property.java +++ b/client/src/generated/java/com/influxdb/client/domain/Property.java @@ -154,7 +154,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class PropertyKeyAdapter implements JsonDeserializer, JsonSerializer { + public static class PropertyKeyAdapter implements JsonDeserializer, JsonSerializer { public PropertyKeyAdapter() { } @@ -189,7 +189,7 @@ private Object deserialize(final String[] types, final JsonElement json, final J return context.deserialize(json, Object.class); } } - public class PropertyValueAdapter implements JsonDeserializer, JsonSerializer { + public static class PropertyValueAdapter implements JsonDeserializer, JsonSerializer { public PropertyValueAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/ReturnStatement.java b/client/src/generated/java/com/influxdb/client/domain/ReturnStatement.java index 05df2382baa..a72226f6d8c 100644 --- a/client/src/generated/java/com/influxdb/client/domain/ReturnStatement.java +++ b/client/src/generated/java/com/influxdb/client/domain/ReturnStatement.java @@ -130,7 +130,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class ReturnStatementArgumentAdapter implements JsonDeserializer, JsonSerializer { + public static class ReturnStatementArgumentAdapter implements JsonDeserializer, JsonSerializer { public ReturnStatementArgumentAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/UnaryExpression.java b/client/src/generated/java/com/influxdb/client/domain/UnaryExpression.java index 2e11b18832d..f4f3d1d4d49 100644 --- a/client/src/generated/java/com/influxdb/client/domain/UnaryExpression.java +++ b/client/src/generated/java/com/influxdb/client/domain/UnaryExpression.java @@ -154,7 +154,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class UnaryExpressionArgumentAdapter implements JsonDeserializer, JsonSerializer { + public static class UnaryExpressionArgumentAdapter implements JsonDeserializer, JsonSerializer { public UnaryExpressionArgumentAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/Variable.java b/client/src/generated/java/com/influxdb/client/domain/Variable.java index 1186379f35c..79c043651fd 100644 --- a/client/src/generated/java/com/influxdb/client/domain/Variable.java +++ b/client/src/generated/java/com/influxdb/client/domain/Variable.java @@ -329,7 +329,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class VariableArgumentsAdapter implements JsonDeserializer, JsonSerializer { + public static class VariableArgumentsAdapter implements JsonDeserializer, JsonSerializer { public VariableArgumentsAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/VariableAssignment.java b/client/src/generated/java/com/influxdb/client/domain/VariableAssignment.java index f7df6e8304d..a82e8dcf320 100644 --- a/client/src/generated/java/com/influxdb/client/domain/VariableAssignment.java +++ b/client/src/generated/java/com/influxdb/client/domain/VariableAssignment.java @@ -155,7 +155,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class VariableAssignmentInitAdapter implements JsonDeserializer, JsonSerializer { + public static class VariableAssignmentInitAdapter implements JsonDeserializer, JsonSerializer { public VariableAssignmentInitAdapter() { } diff --git a/client/src/generated/java/com/influxdb/client/domain/View.java b/client/src/generated/java/com/influxdb/client/domain/View.java index c40c364cc0a..5590c35ad96 100644 --- a/client/src/generated/java/com/influxdb/client/domain/View.java +++ b/client/src/generated/java/com/influxdb/client/domain/View.java @@ -167,7 +167,7 @@ private String toIndentedString(java.lang.Object o) { return o.toString().replace("\n", "\n "); } - public class ViewPropertiesAdapter implements JsonDeserializer, JsonSerializer { + public static class ViewPropertiesAdapter implements JsonDeserializer, JsonSerializer { public ViewPropertiesAdapter() { } From 73b1def03c90fe9652912791b1e47edfff10f63a Mon Sep 17 00:00:00 2001 From: Jakub Bednar Date: Wed, 25 Aug 2021 11:03:47 +0200 Subject: [PATCH 2/5] feat: update gson to 2.8.8 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 298b1454c24..68b3f5f76fe 100644 --- a/pom.xml +++ b/pom.xml @@ -109,7 +109,7 @@ 2.9.0 4.7.2 - 2.8.5 + 2.8.8 2.22.2 3.2.0 From 1135b43d2de57a94cfb9ebd1695094700fe13e9f Mon Sep 17 00:00:00 2001 From: Jakub Bednar Date: Thu, 26 Aug 2021 06:17:01 +0200 Subject: [PATCH 3/5] fix: avoid requirements to jdk.unsupported module --- .../java/com/influxdb/client/JSON.java | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/client/src/generated/java/com/influxdb/client/JSON.java b/client/src/generated/java/com/influxdb/client/JSON.java index 2635097c0eb..dddca383ad5 100644 --- a/client/src/generated/java/com/influxdb/client/JSON.java +++ b/client/src/generated/java/com/influxdb/client/JSON.java @@ -47,6 +47,7 @@ public class JSON { private Gson gson; private DateTypeAdapter dateTypeAdapter = new DateTypeAdapter(); + private SqlDateTypeAdapter sqlDateTypeAdapter = new SqlDateTypeAdapter(); private OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new OffsetDateTimeTypeAdapter(); private LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter(); @@ -173,6 +174,7 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri public JSON() { gson = createGson() .registerTypeAdapter(Date.class, dateTypeAdapter) + .registerTypeAdapter(java.sql.Date.class, sqlDateTypeAdapter) .registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter) .registerTypeAdapter(LocalDate.class, localDateTypeAdapter) .create(); @@ -302,6 +304,60 @@ public JSON setLocalDateFormat(DateTimeFormatter dateFormat) { return this; } + /** + * Gson TypeAdapter for java.sql.Date type + * If the dateFormat is null, a simple "yyyy-MM-dd" format will be used + * (more efficient than SimpleDateFormat). + */ + public static class SqlDateTypeAdapter extends TypeAdapter { + + private DateFormat dateFormat; + + public SqlDateTypeAdapter() { + } + + public SqlDateTypeAdapter(DateFormat dateFormat) { + this.dateFormat = dateFormat; + } + + public void setFormat(DateFormat dateFormat) { + this.dateFormat = dateFormat; + } + + @Override + public void write(JsonWriter out, java.sql.Date date) throws IOException { + if (date == null) { + out.nullValue(); + } else { + String value; + if (dateFormat != null) { + value = dateFormat.format(date); + } else { + value = date.toString(); + } + out.value(value); + } + } + + @Override + public java.sql.Date read(JsonReader in) throws IOException { + switch (in.peek()) { + case NULL: + in.nextNull(); + return null; + default: + String date = in.nextString(); + try { + if (dateFormat != null) { + return new java.sql.Date(dateFormat.parse(date).getTime()); + } + return new java.sql.Date(ISO8601Utils.parse(date, new ParsePosition(0)).getTime()); + } catch (ParseException e) { + throw new JsonParseException(e); + } + } + } + } /** * Gson TypeAdapter for java.util.Date type @@ -365,4 +421,10 @@ public JSON setDateFormat(DateFormat dateFormat) { dateTypeAdapter.setFormat(dateFormat); return this; } + + public JSON setSqlDateFormat(DateFormat dateFormat) { + sqlDateTypeAdapter.setFormat(dateFormat); + return this; + } + } From eb8ed3999edf8f5d41ea2e519ea46e1b878de1fb Mon Sep 17 00:00:00 2001 From: Jakub Bednar Date: Thu, 26 Aug 2021 06:22:07 +0200 Subject: [PATCH 4/5] docs: update CHANGELOG.md --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a96fdd97d5..6a6a5bf385a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,11 @@ ## 3.3.0 [unreleased] + +### Bug Fixes +1. [#258](https://github.com/influxdata/influxdb-client-java/pull/258): Avoid requirements to `jdk.unsupported` module + +### Dependencies +1. [#258](https://github.com/influxdata/influxdb-client-java/pull/258): Update dependencies: + - Gson to 2.8.8 ## 3.2.0 [2021-08-20] From f975a0c41e81365faa325435e79b94a2f2c3cb9a Mon Sep 17 00:00:00 2001 From: Jakub Bednar Date: Thu, 26 Aug 2021 06:26:11 +0200 Subject: [PATCH 5/5] chore: add test to instantiate adapter without parameters --- .../influxdb/client/GeneratedCodeTest.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 client/src/test/java/com/influxdb/client/GeneratedCodeTest.java diff --git a/client/src/test/java/com/influxdb/client/GeneratedCodeTest.java b/client/src/test/java/com/influxdb/client/GeneratedCodeTest.java new file mode 100644 index 00000000000..04fd513ea9f --- /dev/null +++ b/client/src/test/java/com/influxdb/client/GeneratedCodeTest.java @@ -0,0 +1,40 @@ +/* + * The MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package com.influxdb.client; + +import com.influxdb.client.domain.File; + +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.platform.runner.JUnitPlatform; +import org.junit.runner.RunWith; + +/** + * @author Jakub Bednar (26/08/2021 6:24) + */ +@RunWith(JUnitPlatform.class) +class GeneratedCodeTest { + @Test + void adapterCanBeInstantiateWithoutParameters() { + Assertions.assertThat(new File.FileBodyAdapter()).isNotNull(); + } +}