diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java
index 8bb9680e7..49c03dc57 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java
@@ -147,7 +147,6 @@ public final class DefaultTypeManager implements TypeManager {
initialiseStandard(config);
initialiseJavaTimeTypes(config);
- initialiseJodaTypes(config);
initialiseJacksonTypes(config);
loadTypesFromProviders(config, objectMapper);
loadGeoTypeBinder(config);
@@ -261,7 +260,7 @@ public final class DefaultTypeManager implements TypeManager {
if (found == null) {
if (type.getName().equals("org.joda.time.LocalTime")) {
throw new IllegalStateException(
- "ScalarType of Joda LocalTime not defined. You need to set DatabaseConfig.jodaLocalTimeMode to"
+ "ScalarType of Joda LocalTime not defined. 1) Check ebean-joda-time dependency has been added 2) Check DatabaseConfig.jodaLocalTimeMode is set to"
+ " either 'normal' or 'utc'. UTC is the old mode using UTC timezone but local time zone is now preferred as 'normal' mode.");
}
found = checkInheritedTypes(type);
@@ -798,36 +797,6 @@ public final class DefaultTypeManager implements TypeManager {
logicalMap.putIfAbsent(clazz.getSimpleName(), scalarType);
}
- /**
- * Detect if Joda classes are in the classpath and if so register the Joda data types.
- */
- @SuppressWarnings("deprecation")
- private void initialiseJodaTypes(DatabaseConfig config) {
- // detect if Joda classes are in the classpath
- if (config.getClassLoadConfig().isJodaTimePresent()) {
- // Joda classes are in the classpath so register the types
- log.log(DEBUG, "Registering Joda data types");
- addType(LocalDateTime.class, new ScalarTypeJodaLocalDateTime(jsonDateTime));
- addType(DateTime.class, new ScalarTypeJodaDateTime(jsonDateTime));
- if (config.getDatabasePlatform().supportsNativeJavaTime()) {
- addType(LocalDate.class, new ScalarTypeJodaLocalDateNative(jsonDate));
- } else {
- addType(LocalDate.class, new ScalarTypeJodaLocalDate(jsonDate));
- }
- addType(org.joda.time.DateMidnight.class, new ScalarTypeJodaDateMidnight(jsonDate));
- addType(org.joda.time.Period.class, new ScalarTypeJodaPeriod());
-
- String jodaLocalTimeMode = config.getJodaLocalTimeMode();
- if ("normal".equalsIgnoreCase(jodaLocalTimeMode)) {
- // use the expected/normal local time zone
- addType(LocalTime.class, new ScalarTypeJodaLocalTime());
- } else if ("utc".equalsIgnoreCase(jodaLocalTimeMode)) {
- // use the old UTC based
- addType(LocalTime.class, new ScalarTypeJodaLocalTimeUTC());
- }
- }
- }
-
/**
* Register all the standard types supported. This is the standard JDBC types
* plus some other common types such as java.util.Date and java.util.Calendar.
diff --git a/ebean-core/src/test/java/org/tests/model/basic/TJodaEntity.java b/ebean-core/src/test/java/org/tests/model/basic/TJodaEntity.java
deleted file mode 100644
index 311a20424..000000000
--- a/ebean-core/src/test/java/org/tests/model/basic/TJodaEntity.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.tests.model.basic;
-
-import org.joda.time.LocalTime;
-
-import javax.persistence.Entity;
-import javax.persistence.Id;
-
-@Entity
-public class TJodaEntity {
-
- @Id
- Integer id;
-
- LocalTime localTime;
-
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public LocalTime getLocalTime() {
- return localTime;
- }
-
- public void setLocalTime(LocalTime localTime) {
- this.localTime = localTime;
- }
-
-}
diff --git a/ebean-joda-time/pom.xml b/ebean-joda-time/pom.xml
new file mode 100644
index 000000000..4c082cdae
--- /dev/null
+++ b/ebean-joda-time/pom.xml
@@ -0,0 +1,44 @@
+
+
+
+ ebean-parent
+ io.ebean
+ 13.8.2-SNAPSHOT
+
+ 4.0.0
+
+ ebean-joda-time
+
+
+
+
+ io.ebean
+ ebean-core-type
+ 13.8.2-SNAPSHOT
+ provided
+
+
+
+ joda-time
+ joda-time
+ 2.11.0
+
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+ ${jackson.version}
+ true
+
+
+
+ io.avaje
+ junit
+ 1.1
+ test
+
+
+
+
diff --git a/ebean-joda-time/src/main/java/io/ebean/joda/time/JodaExtraTypeFactory.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/JodaExtraTypeFactory.java
new file mode 100644
index 000000000..c4883368e
--- /dev/null
+++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/JodaExtraTypeFactory.java
@@ -0,0 +1,40 @@
+package io.ebean.joda.time;
+
+import io.ebean.config.DatabaseConfig;
+import io.ebean.core.type.ExtraTypeFactory;
+import io.ebean.core.type.ScalarType;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Register the Joda-Time ScalarType support.
+ */
+public class JodaExtraTypeFactory implements ExtraTypeFactory {
+
+ @Override
+ public List extends ScalarType>> createTypes(DatabaseConfig config, Object objectMapper) {
+ var jsonDateTime = config.getJsonDateTime();
+ var jsonDate = config.getJsonDate();
+
+ List> types = new ArrayList<>();
+ types.add(new ScalarTypeJodaLocalDateTime(jsonDateTime));
+ types.add(new ScalarTypeJodaDateTime(jsonDateTime));
+ if (config.getDatabasePlatform().supportsNativeJavaTime()) {
+ types.add(new ScalarTypeJodaLocalDateNative(jsonDate));
+ } else {
+ types.add(new ScalarTypeJodaLocalDate(jsonDate));
+ }
+ types.add(new ScalarTypeJodaDateMidnight(jsonDate));
+ types.add(new ScalarTypeJodaPeriod());
+ String jodaLocalTimeMode = config.getJodaLocalTimeMode();
+ if ("normal".equalsIgnoreCase(jodaLocalTimeMode)) {
+ // use the expected/normal local time zone
+ types.add(new ScalarTypeJodaLocalTime());
+ } else if ("utc".equalsIgnoreCase(jodaLocalTimeMode)) {
+ // use the old UTC based
+ types.add(new ScalarTypeJodaLocalTimeUTC());
+ }
+ return types;
+ }
+}
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateMidnight.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaDateMidnight.java
similarity index 97%
rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateMidnight.java
rename to ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaDateMidnight.java
index 78a625327..e2520906d 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateMidnight.java
+++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaDateMidnight.java
@@ -1,4 +1,4 @@
-package io.ebeaninternal.server.type;
+package io.ebean.joda.time;
import io.ebean.config.JsonConfig;
import io.ebean.core.type.ScalarTypeBaseDate;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateTime.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaDateTime.java
similarity index 97%
rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateTime.java
rename to ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaDateTime.java
index c9d61bd1e..594795f2b 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateTime.java
+++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaDateTime.java
@@ -1,4 +1,4 @@
-package io.ebeaninternal.server.type;
+package io.ebean.joda.time;
import io.ebean.config.JsonConfig;
import io.ebean.core.type.ScalarTypeBaseDateTime;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDate.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDate.java
similarity index 97%
rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDate.java
rename to ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDate.java
index 163775fb0..fa10d20e9 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDate.java
+++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDate.java
@@ -1,4 +1,4 @@
-package io.ebeaninternal.server.type;
+package io.ebean.joda.time;
import java.sql.Date;
import java.sql.Types;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateNative.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDateNative.java
similarity index 96%
rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateNative.java
rename to ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDateNative.java
index 328cccabb..b25a9609f 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateNative.java
+++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDateNative.java
@@ -1,4 +1,4 @@
-package io.ebeaninternal.server.type;
+package io.ebean.joda.time;
import java.sql.SQLException;
import java.sql.Types;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTime.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTime.java
similarity index 97%
rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTime.java
rename to ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTime.java
index 348ce28d6..3b0ec373b 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTime.java
+++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTime.java
@@ -1,4 +1,4 @@
-package io.ebeaninternal.server.type;
+package io.ebean.joda.time;
import io.ebean.config.JsonConfig;
import io.ebean.core.type.ScalarTypeBaseDateTime;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalTime.java
similarity index 98%
rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java
rename to ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalTime.java
index 072046b0f..9e62b683a 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java
+++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalTime.java
@@ -1,4 +1,4 @@
-package io.ebeaninternal.server.type;
+package io.ebean.joda.time;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeUTC.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalTimeUTC.java
similarity index 97%
rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeUTC.java
rename to ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalTimeUTC.java
index 81edfe24a..163c1f7ec 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeUTC.java
+++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalTimeUTC.java
@@ -1,4 +1,4 @@
-package io.ebeaninternal.server.type;
+package io.ebean.joda.time;
import io.ebean.core.type.DataBinder;
import io.ebean.core.type.DataReader;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaPeriod.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaPeriod.java
similarity index 94%
rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaPeriod.java
rename to ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaPeriod.java
index abe0c9da3..27914fc1c 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaPeriod.java
+++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaPeriod.java
@@ -1,4 +1,4 @@
-package io.ebeaninternal.server.type;
+package io.ebean.joda.time;
import io.ebean.core.type.ScalarTypeBaseVarchar;
import org.joda.time.Period;
diff --git a/ebean-joda-time/src/main/java/module-info.java b/ebean-joda-time/src/main/java/module-info.java
new file mode 100644
index 000000000..941aeb4bd
--- /dev/null
+++ b/ebean-joda-time/src/main/java/module-info.java
@@ -0,0 +1,9 @@
+
+module io.ebean.joda.time {
+
+ requires io.ebean.core.type;
+ requires org.joda.time;
+ requires com.fasterxml.jackson.core;
+
+ provides io.ebean.core.type.ExtraTypeFactory with io.ebean.joda.time.JodaExtraTypeFactory;
+}
diff --git a/ebean-joda-time/src/main/resources/META-INF/services/io.ebean.core.type.ExtraTypeFactory b/ebean-joda-time/src/main/resources/META-INF/services/io.ebean.core.type.ExtraTypeFactory
new file mode 100644
index 000000000..3f23de83c
--- /dev/null
+++ b/ebean-joda-time/src/main/resources/META-INF/services/io.ebean.core.type.ExtraTypeFactory
@@ -0,0 +1 @@
+io.ebean.joda.time.JodaExtraTypeFactory
diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTest.java b/ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTest.java
similarity index 81%
rename from ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTest.java
rename to ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTest.java
index 0d3719f8a..94ad4f855 100644
--- a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTest.java
+++ b/ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTest.java
@@ -1,4 +1,4 @@
-package io.ebeaninternal.server.type;
+package io.ebean.joda.time;
import io.ebean.config.JsonConfig;
import org.joda.time.LocalDate;
@@ -78,15 +78,5 @@ public class ScalarTypeJodaLocalDateTest {
assertThat(beanType).isEqualTo(localDate);
}
- @Test
- public void json() throws IOException {
- LocalDate val = new LocalDate(2019, 5, 9);
-
- JsonTester jsonMillis = new JsonTester<>(type);
- assertThat(jsonMillis.test(val)).isEqualTo("{\"key\":1557360000000}");
-
- JsonTester jsonIso = new JsonTester<>(new ScalarTypeJodaLocalDate(JsonConfig.Date.ISO8601) );
- assertThat(jsonIso.test(val)).isEqualTo("{\"key\":\"2019-05-09\"}");
- }
}
diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTimeTest.java b/ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTimeTest.java
similarity index 96%
rename from ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTimeTest.java
rename to ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTimeTest.java
index 933176623..ed1232aa9 100644
--- a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTimeTest.java
+++ b/ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTimeTest.java
@@ -1,4 +1,4 @@
-package io.ebeaninternal.server.type;
+package io.ebean.joda.time;
import io.ebean.config.JsonConfig;
import org.joda.time.DateTimeZone;
diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeTest.java b/ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalTimeTest.java
similarity index 71%
rename from ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeTest.java
rename to ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalTimeTest.java
index 9eaf9b452..9e8b9f161 100644
--- a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeTest.java
+++ b/ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalTimeTest.java
@@ -1,12 +1,9 @@
-package io.ebeaninternal.server.type;
+package io.ebean.joda.time;
-import io.ebean.DB;
import org.joda.time.DateTimeZone;
import org.joda.time.LocalDateTime;
import org.joda.time.LocalTime;
-import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
-import org.tests.model.basic.TJodaEntity;
import java.sql.Timestamp;
@@ -47,18 +44,5 @@ public class ScalarTypeJodaLocalTimeTest {
}
- @Test
- public void toJson() {
- LocalTime now = new LocalTime();
-
- TJodaEntity bean = new TJodaEntity();
- bean.setId(42);
- bean.setLocalTime(now);
-
- String json = DB.json().toJson(bean);
- TJodaEntity bean1 = DB.json().toBean(TJodaEntity.class, json);
-
- Assertions.assertEquals(bean1.getLocalTime(), now);
- }
}
diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaPeriodTest.java b/ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaPeriodTest.java
similarity index 96%
rename from ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaPeriodTest.java
rename to ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaPeriodTest.java
index 32edd86b2..12f1f3496 100644
--- a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaPeriodTest.java
+++ b/ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaPeriodTest.java
@@ -1,4 +1,4 @@
-package io.ebeaninternal.server.type;
+package io.ebean.joda.time;
import org.joda.time.Period;
import org.junit.jupiter.api.Test;
diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml
index 55c78b52b..e38598080 100644
--- a/ebean-test/pom.xml
+++ b/ebean-test/pom.xml
@@ -102,6 +102,13 @@
+
+ io.ebean
+ ebean-joda-time
+ 13.8.2-SNAPSHOT
+ test
+
+
io.ebean
ebean-platform-all
@@ -148,7 +155,7 @@
joda-time
joda-time
- 2.9.7
+ 2.11.0
test
diff --git a/ebean-test/src/test/java/org/tests/basic/TestJodaType.java b/ebean-test/src/test/java/org/tests/basic/TestJodaType.java
index c5ed8b008..945572787 100644
--- a/ebean-test/src/test/java/org/tests/basic/TestJodaType.java
+++ b/ebean-test/src/test/java/org/tests/basic/TestJodaType.java
@@ -6,18 +6,19 @@ import io.ebean.core.type.ScalarType;
import io.ebeaninternal.api.SpiEbeanServer;
import io.ebeaninternal.server.deploy.BeanDescriptor;
import io.ebeaninternal.server.deploy.BeanProperty;
+import org.joda.time.LocalDate;
import org.joda.time.LocalTime;
import org.junit.jupiter.api.Test;
import org.tests.model.basic.TJodaEntity;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
-public class TestJodaType extends BaseTestCase {
+class TestJodaType extends BaseTestCase {
@Test
- public void test() {
-
+ void test() {
SpiEbeanServer server = (SpiEbeanServer) DB.getDefault();
BeanDescriptor beanDescriptor = server.descriptor(TJodaEntity.class);
BeanProperty beanProperty = beanDescriptor.beanProperty("localTime");
@@ -27,8 +28,7 @@ public class TestJodaType extends BaseTestCase {
}
@Test
- public void test_insert_find() {
-
+ void test_insert_find() {
LocalTime now = new LocalTime().withMillisOfSecond(0);
TJodaEntity bean = new TJodaEntity();
@@ -40,4 +40,19 @@ public class TestJodaType extends BaseTestCase {
assertThat(foundBean.getLocalTime()).isEqualTo(bean.getLocalTime());
}
+ @Test
+ void toJson() {
+ LocalTime now = new LocalTime();
+
+ TJodaEntity bean = new TJodaEntity();
+ bean.setId(42);
+ bean.setLocalTime(now);
+ bean.setLocalDate(LocalDate.parse("2022-04-07"));
+
+ String json = DB.json().toJson(bean);
+ TJodaEntity bean1 = DB.json().toBean(TJodaEntity.class, json);
+
+ assertEquals(bean1.getLocalTime(), now);
+ assertEquals(bean1.getLocalDate(), LocalDate.parse("2022-04-07"));
+ }
}
diff --git a/ebean-test/src/test/java/org/tests/model/basic/TJodaEntity.java b/ebean-test/src/test/java/org/tests/model/basic/TJodaEntity.java
index 311a20424..c20e06772 100644
--- a/ebean-test/src/test/java/org/tests/model/basic/TJodaEntity.java
+++ b/ebean-test/src/test/java/org/tests/model/basic/TJodaEntity.java
@@ -1,5 +1,6 @@
package org.tests.model.basic;
+import org.joda.time.LocalDate;
import org.joda.time.LocalTime;
import javax.persistence.Entity;
@@ -12,6 +13,7 @@ public class TJodaEntity {
Integer id;
LocalTime localTime;
+ LocalDate localDate;
public Integer getId() {
return id;
@@ -29,4 +31,12 @@ public class TJodaEntity {
this.localTime = localTime;
}
+ public LocalDate getLocalDate() {
+ return localDate;
+ }
+
+ public TJodaEntity setLocalDate(LocalDate localDate) {
+ this.localDate = localDate;
+ return this;
+ }
}
diff --git a/pom.xml b/pom.xml
index 1bc7781db..c764791df 100644
--- a/pom.xml
+++ b/pom.xml
@@ -89,6 +89,7 @@
ebean-redis
platforms
composites
+ ebean-joda-time
ebean-csv-reader