From f319ee66ad72792067729fdbfad1b44e71ba1288 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 26 Aug 2022 13:02:42 +1200 Subject: [PATCH] Refactor move ScalarTypeBaseDateTime to ebean-core-type module --- ebean-core-type/pom.xml | 7 +++++++ .../java/io/ebean/core}/type/DecimalUtils.java | 14 +++++++------- .../ebean/core}/type/IsoJsonDateTimeParser.java | 8 ++++---- .../core}/type/ScalarTypeBaseDateTime.java | 14 ++++---------- .../io/ebean/core}/type/DecimalUtilsTest.java | 3 +-- .../core}/type/IsoJsonDateTimeParserTest.java | 17 ++++++++--------- .../server/type/ScalarTypeCalendar.java | 3 ++- .../server/type/ScalarTypeDuration.java | 5 +---- .../server/type/ScalarTypeInstant.java | 1 + .../server/type/ScalarTypeJodaDateTime.java | 1 + .../type/ScalarTypeJodaLocalDateTime.java | 1 + .../server/type/ScalarTypeLocalDateTime.java | 1 + .../server/type/ScalarTypeOffsetDateTime.java | 3 ++- .../server/type/ScalarTypeTimestamp.java | 3 ++- .../server/type/ScalarTypeUtilDate.java | 5 +++-- .../server/type/ScalarTypeZonedDateTime.java | 1 + .../server/type/ScalarTypeCalendarTest.java | 3 ++- .../type/ScalarTypeDurationWithNanosTest.java | 1 + .../type/ScalarTypeOffsetDateTimeTest.java | 3 ++- .../server/type/ScalarTypeTimestampTest.java | 3 ++- .../server/type/ScalarTypeUtilDateTest.java | 5 ++++- .../type/ScalarTypeZonedDateTimeTest.java | 3 ++- 22 files changed, 59 insertions(+), 46 deletions(-) rename {ebean-core/src/main/java/io/ebeaninternal/server => ebean-core-type/src/main/java/io/ebean/core}/type/DecimalUtils.java (85%) rename {ebean-core/src/main/java/io/ebeaninternal/server => ebean-core-type/src/main/java/io/ebean/core}/type/IsoJsonDateTimeParser.java (67%) rename {ebean-core/src/main/java/io/ebeaninternal/server => ebean-core-type/src/main/java/io/ebean/core}/type/ScalarTypeBaseDateTime.java (89%) rename {ebean-core/src/test/java/io/ebeaninternal/server => ebean-core-type/src/test/java/io/ebean/core}/type/DecimalUtilsTest.java (95%) rename {ebean-core/src/test/java/io/ebeaninternal/server => ebean-core-type/src/test/java/io/ebean/core}/type/IsoJsonDateTimeParserTest.java (72%) diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index f1446c821..495945250 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -26,6 +26,13 @@ true + + io.avaje + junit + 1.1 + test + + diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/DecimalUtils.java b/ebean-core-type/src/main/java/io/ebean/core/type/DecimalUtils.java similarity index 85% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/DecimalUtils.java rename to ebean-core-type/src/main/java/io/ebean/core/type/DecimalUtils.java index 1e75c32a9..9259e05e2 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/DecimalUtils.java +++ b/ebean-core-type/src/main/java/io/ebean/core/type/DecimalUtils.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.core.type; /* * Copyright 2013 FasterXML.com @@ -27,7 +27,7 @@ import java.time.Instant; * @author Nick Williams * @since 2.2.0 */ -final class DecimalUtils { +public final class DecimalUtils { private static final char[] ZEROES = new char[]{'0', '0', '0', '0', '0', '0', '0', '0', '0'}; @@ -37,17 +37,17 @@ final class DecimalUtils { throw new RuntimeException("DecimalUtils cannot be instantiated."); } - static Duration toDuration(BigDecimal value) { + public static Duration toDuration(BigDecimal value) { long seconds = value.longValue(); int nanoseconds = extractNanosecondDecimal(value, seconds); return Duration.ofSeconds(seconds, nanoseconds); } - static BigDecimal toDecimal(Duration instant) { + public static BigDecimal toDecimal(Duration instant) { return new BigDecimal(toDecimal(instant.getSeconds(), instant.getNano())); } - static Timestamp toTimestamp(BigDecimal value) { + public static Timestamp toTimestamp(BigDecimal value) { long seconds = value.longValue(); int nanoseconds = extractNanosecondDecimal(value, seconds); Timestamp ts = new Timestamp(seconds * 1000); @@ -55,13 +55,13 @@ final class DecimalUtils { return ts; } - static BigDecimal toDecimal(Timestamp instant) { + public static BigDecimal toDecimal(Timestamp instant) { long millis = instant.getTime(); long secs = millis / 1000; return new BigDecimal(toDecimal(secs, instant.getNanos())); } - static String toDecimal(long seconds, int nanoseconds) { + public static String toDecimal(long seconds, int nanoseconds) { StringBuilder string = new StringBuilder(Integer.toString(nanoseconds)); if (string.length() < 9) string.insert(0, ZEROES, 0, 9 - string.length()); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/IsoJsonDateTimeParser.java b/ebean-core-type/src/main/java/io/ebean/core/type/IsoJsonDateTimeParser.java similarity index 67% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/IsoJsonDateTimeParser.java rename to ebean-core-type/src/main/java/io/ebean/core/type/IsoJsonDateTimeParser.java index fd4373062..d269d0b32 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/IsoJsonDateTimeParser.java +++ b/ebean-core-type/src/main/java/io/ebean/core/type/IsoJsonDateTimeParser.java @@ -1,21 +1,21 @@ -package io.ebeaninternal.server.type; +package io.ebean.core.type; import java.time.Instant; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; -final class IsoJsonDateTimeParser { +public final class IsoJsonDateTimeParser { private static final DateTimeFormatter ISO_MILLIS = new DateTimeFormatterBuilder() .parseCaseInsensitive() .appendInstant(3) .toFormatter(); - static Instant parseIso(String jsonDateTime) { + public static Instant parseIso(String jsonDateTime) { return Instant.parse(jsonDateTime); } - static String formatIso(Instant value) { + public static String formatIso(Instant value) { return ISO_MILLIS.format(value); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDateTime.java b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarTypeBaseDateTime.java similarity index 89% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDateTime.java rename to ebean-core-type/src/main/java/io/ebean/core/type/ScalarTypeBaseDateTime.java index c77dca488..a627c7e81 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDateTime.java +++ b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarTypeBaseDateTime.java @@ -1,12 +1,8 @@ -package io.ebeaninternal.server.type; +package io.ebean.core.type; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import io.ebean.config.JsonConfig; -import io.ebean.core.type.DataBinder; -import io.ebean.core.type.DataReader; -import io.ebean.core.type.DocPropertyType; -import io.ebean.core.type.ScalarTypeBase; import java.io.DataInput; import java.io.DataOutput; @@ -17,16 +13,14 @@ import java.sql.Timestamp; import java.sql.Types; import java.time.Instant; -import static io.ebeaninternal.server.type.IsoJsonDateTimeParser.parseIso; - /** * Base type for DateTime types. */ -abstract class ScalarTypeBaseDateTime extends ScalarTypeBase { +public abstract class ScalarTypeBaseDateTime extends ScalarTypeBase { protected final JsonConfig.DateTime mode; - ScalarTypeBaseDateTime(JsonConfig.DateTime mode, Class type, boolean jdbcNative, int jdbcType) { + public ScalarTypeBaseDateTime(JsonConfig.DateTime mode, Class type, boolean jdbcNative, int jdbcType) { super(type, jdbcNative, jdbcType); this.mode = mode; } @@ -75,7 +69,7 @@ abstract class ScalarTypeBaseDateTime extends ScalarTypeBase { * Convert the value to ISO8601 format. */ protected T fromJsonISO8601(String value) { - return convertFromInstant(parseIso(value)); + return convertFromInstant(IsoJsonDateTimeParser.parseIso(value)); } @Override diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/DecimalUtilsTest.java b/ebean-core-type/src/test/java/io/ebean/core/type/DecimalUtilsTest.java similarity index 95% rename from ebean-core/src/test/java/io/ebeaninternal/server/type/DecimalUtilsTest.java rename to ebean-core-type/src/test/java/io/ebean/core/type/DecimalUtilsTest.java index 7f6d9f98a..44bc322f2 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/type/DecimalUtilsTest.java +++ b/ebean-core-type/src/test/java/io/ebean/core/type/DecimalUtilsTest.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.core.type; import org.junit.jupiter.api.Test; @@ -32,6 +32,5 @@ class DecimalUtilsTest { assertEquals(duration, duration1); assertEquals("PT5M23.0015S", duration1.toString()); - } } diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/IsoJsonDateTimeParserTest.java b/ebean-core-type/src/test/java/io/ebean/core/type/IsoJsonDateTimeParserTest.java similarity index 72% rename from ebean-core/src/test/java/io/ebeaninternal/server/type/IsoJsonDateTimeParserTest.java rename to ebean-core-type/src/test/java/io/ebean/core/type/IsoJsonDateTimeParserTest.java index 75e600ee6..b854881b8 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/type/IsoJsonDateTimeParserTest.java +++ b/ebean-core-type/src/test/java/io/ebean/core/type/IsoJsonDateTimeParserTest.java @@ -1,5 +1,4 @@ -package io.ebeaninternal.server.type; - +package io.ebean.core.type; import org.junit.jupiter.api.Test; @@ -7,37 +6,37 @@ import java.time.Instant; import static org.assertj.core.api.Assertions.assertThat; -public class IsoJsonDateTimeParserTest { +class IsoJsonDateTimeParserTest { private IsoJsonDateTimeParser parser = new IsoJsonDateTimeParser(); @Test - public void parseFormat_when_hasMillis() { + void parseFormat_when_hasMillis() { parseAndFormat("2016-02-28T20:39:00.123Z", "2016-02-28T20:39:00.123Z"); } @Test - public void parseFormat_when_noMillis() { + void parseFormat_when_noMillis() { parseAndFormat("2016-02-28T20:39:00Z", "2016-02-28T20:39:00.000Z"); } @Test - public void parseFormat_when_millis_1dp() { + void parseFormat_when_millis_1dp() { parseAndFormat("2016-02-28T20:39:00.0Z", "2016-02-28T20:39:00.000Z"); } @Test - public void parseFormat_when_millis_2dp() { + void parseFormat_when_millis_2dp() { parseAndFormat("2016-02-28T20:39:00.00Z", "2016-02-28T20:39:00.000Z"); } @Test - public void parseFormat_when_millis_3dp() { + void parseFormat_when_millis_3dp() { parseAndFormat("2016-02-28T20:39:00.000Z", "2016-02-28T20:39:00.000Z"); } @Test - public void parseFormat_when_millis_3dp_2() { + void parseFormat_when_millis_3dp_2() { parseAndFormat("2016-02-28T20:39:32.999000Z", "2016-02-28T20:39:32.999Z"); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCalendar.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCalendar.java index 9028523b4..6584d8360 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCalendar.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCalendar.java @@ -2,6 +2,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; import io.ebean.core.type.DataBinder; +import io.ebean.core.type.ScalarTypeBaseDateTime; import io.ebeaninternal.server.core.BasicTypeConverter; import java.sql.Date; @@ -11,7 +12,7 @@ import java.sql.Types; import java.time.Instant; import java.util.Calendar; -import static io.ebeaninternal.server.type.IsoJsonDateTimeParser.formatIso; +import static io.ebean.core.type.IsoJsonDateTimeParser.formatIso; /** * ScalarType for java.util.Calendar. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDuration.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDuration.java index db0b6e678..34899fe68 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDuration.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDuration.java @@ -2,10 +2,7 @@ package io.ebeaninternal.server.type; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; -import io.ebean.core.type.DataBinder; -import io.ebean.core.type.DataReader; -import io.ebean.core.type.DocPropertyType; -import io.ebean.core.type.ScalarTypeBase; +import io.ebean.core.type.*; import io.ebeaninternal.server.core.BasicTypeConverter; import java.io.DataInput; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInstant.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInstant.java index d3fbee011..76654be74 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInstant.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInstant.java @@ -1,6 +1,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; +import io.ebean.core.type.ScalarTypeBaseDateTime; import java.sql.Timestamp; import java.sql.Types; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateTime.java index 0291f31dd..0eea396f9 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateTime.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateTime.java @@ -1,6 +1,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; +import io.ebean.core.type.ScalarTypeBaseDateTime; import io.ebeaninternal.server.core.BasicTypeConverter; import org.joda.time.DateTime; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTime.java index 913d290be..07d289c4d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTime.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTime.java @@ -1,6 +1,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; +import io.ebean.core.type.ScalarTypeBaseDateTime; import io.ebeaninternal.server.core.BasicTypeConverter; import org.joda.time.LocalDateTime; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalDateTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalDateTime.java index 5e697029d..3de0184e1 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalDateTime.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalDateTime.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import io.ebean.config.JsonConfig; import io.ebean.config.dbplatform.ExtraDbTypes; +import io.ebean.core.type.ScalarTypeBaseDateTime; import java.io.IOException; import java.sql.Timestamp; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeOffsetDateTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeOffsetDateTime.java index f7e151238..b105f646a 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeOffsetDateTime.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeOffsetDateTime.java @@ -1,6 +1,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; +import io.ebean.core.type.ScalarTypeBaseDateTime; import java.sql.Timestamp; import java.sql.Types; @@ -8,7 +9,7 @@ import java.time.Instant; import java.time.OffsetDateTime; import java.time.ZoneId; -import static io.ebeaninternal.server.type.IsoJsonDateTimeParser.formatIso; +import static io.ebean.core.type.IsoJsonDateTimeParser.formatIso; /** * ScalarType for java.sql.Timestamp. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTimestamp.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTimestamp.java index a99b8cc56..60529df63 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTimestamp.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTimestamp.java @@ -3,6 +3,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; +import io.ebean.core.type.ScalarTypeBaseDateTime; import io.ebeaninternal.server.core.BasicTypeConverter; import java.sql.SQLException; @@ -10,7 +11,7 @@ import java.sql.Timestamp; import java.sql.Types; import java.time.Instant; -import static io.ebeaninternal.server.type.IsoJsonDateTimeParser.formatIso; +import static io.ebean.core.type.IsoJsonDateTimeParser.formatIso; /** * ScalarType for java.sql.Timestamp. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUtilDate.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUtilDate.java index 0f4c952c1..f171afdef 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUtilDate.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUtilDate.java @@ -4,6 +4,7 @@ import io.ebean.config.JsonConfig; import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.ScalarTypeBaseDate; +import io.ebean.core.type.ScalarTypeBaseDateTime; import io.ebeaninternal.server.core.BasicTypeConverter; import java.sql.SQLException; @@ -12,14 +13,14 @@ import java.sql.Types; import java.time.Instant; import java.util.Date; -import static io.ebeaninternal.server.type.IsoJsonDateTimeParser.formatIso; +import static io.ebean.core.type.IsoJsonDateTimeParser.formatIso; /** * ScalarType for java.util.Date. */ final class ScalarTypeUtilDate { - static final class TimestampType extends ScalarTypeBaseDateTime { + static final class TimestampType extends ScalarTypeBaseDateTime { TimestampType(JsonConfig.DateTime mode) { super(mode, java.util.Date.class, false, Types.TIMESTAMP); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeZonedDateTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeZonedDateTime.java index 533489e6f..0bed9d923 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeZonedDateTime.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeZonedDateTime.java @@ -1,6 +1,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; +import io.ebean.core.type.ScalarTypeBaseDateTime; import java.sql.Timestamp; import java.sql.Types; diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeCalendarTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeCalendarTest.java index 4edc4c059..0e6d4a588 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeCalendarTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeCalendarTest.java @@ -1,6 +1,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; +import io.ebean.core.type.IsoJsonDateTimeParser; import org.junit.jupiter.api.Test; import java.sql.Types; @@ -17,7 +18,7 @@ public class ScalarTypeCalendarTest { Calendar instance = Calendar.getInstance(); String asUtc = type.toJsonISO8601(instance); - Calendar calendar = type.fromJsonISO8601(asUtc); + Calendar calendar = type.convertFromInstant(IsoJsonDateTimeParser.parseIso(asUtc)); //type.fromJsonISO8601(asUtc); assertThat(instance).isEqualTo(calendar); } diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeDurationWithNanosTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeDurationWithNanosTest.java index 2bbb4b6b8..bbe446746 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeDurationWithNanosTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeDurationWithNanosTest.java @@ -1,5 +1,6 @@ package io.ebeaninternal.server.type; +import io.ebean.core.type.DecimalUtils; import org.junit.jupiter.api.Test; import java.io.ByteArrayInputStream; diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeOffsetDateTimeTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeOffsetDateTimeTest.java index 835546e1a..53c02bde7 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeOffsetDateTimeTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeOffsetDateTimeTest.java @@ -1,6 +1,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; +import io.ebean.core.type.IsoJsonDateTimeParser; import org.junit.jupiter.api.Test; import java.sql.Timestamp; @@ -122,7 +123,7 @@ public class ScalarTypeOffsetDateTimeTest { OffsetDateTime now = OffsetDateTime.now(); String asJson = typeIso.toJsonISO8601(now); - OffsetDateTime value = typeIso.fromJsonISO8601(asJson); + OffsetDateTime value = typeIso.convertFromInstant(IsoJsonDateTimeParser.parseIso(asJson)); //typeIso.fromJsonISO8601(asJson); assertThat(now).isEqualToIgnoringNanos(value); } } diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeTimestampTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeTimestampTest.java index 9c9412025..176813c48 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeTimestampTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeTimestampTest.java @@ -1,6 +1,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; +import io.ebean.core.type.IsoJsonDateTimeParser; import org.junit.jupiter.api.Test; import java.sql.Timestamp; @@ -17,7 +18,7 @@ public class ScalarTypeTimestampTest { Timestamp now = new Timestamp(System.currentTimeMillis()); String asJson = typeIso.toJsonISO8601(now); - Timestamp value = typeIso.fromJsonISO8601(asJson); + Timestamp value = typeIso.convertFromInstant(IsoJsonDateTimeParser.parseIso(asJson)); //typeIso.fromJsonISO8601(asJson); assertThat(now).isEqualTo(value); } } diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeUtilDateTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeUtilDateTest.java index b8e1149e9..18fe8aac4 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeUtilDateTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeUtilDateTest.java @@ -1,9 +1,11 @@ package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; +import io.ebean.core.type.IsoJsonDateTimeParser; import org.junit.jupiter.api.Test; import java.io.IOException; +import java.time.Instant; import java.util.Date; import static org.assertj.core.api.Assertions.assertThat; @@ -33,7 +35,8 @@ public class ScalarTypeUtilDateTest { Date now = new Date(); String asJson = typeIso.toJsonISO8601(now); - Date value = typeIso.fromJsonISO8601(asJson); + Instant instant = IsoJsonDateTimeParser.parseIso(asJson); + Date value = new java.util.Date(instant.toEpochMilli()); // typeIso.fromJsonISO8601(asJson); assertThat(now).isEqualTo(value); } } diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeZonedDateTimeTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeZonedDateTimeTest.java index f7942b397..96bc8d7db 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeZonedDateTimeTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeZonedDateTimeTest.java @@ -1,6 +1,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; +import io.ebean.core.type.IsoJsonDateTimeParser; import org.junit.jupiter.api.Test; import java.sql.Timestamp; @@ -124,7 +125,7 @@ public class ScalarTypeZonedDateTimeTest { ZonedDateTime now = ZonedDateTime.now(); String asJson = typeIso.toJsonISO8601(now); - ZonedDateTime value = typeIso.fromJsonISO8601(asJson); + ZonedDateTime value = type.convertFromInstant(IsoJsonDateTimeParser.parseIso(asJson)); //typeIso.fromJsonISO8601(asJson); assertThat(now).isEqualTo(value); } }