diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml
new file mode 100644
index 000000000..01ebf53f3
--- /dev/null
+++ b/ebean-core-type/pom.xml
@@ -0,0 +1,36 @@
+
+
+ 4.0.0
+
+ ebean-parent
+ io.ebean
+ 12.6.1-SNAPSHOT
+
+
+ ebean-core-type
+
+
+ 2.11.3
+ 2.11.3
+
+
+
+
+
+ io.ebean
+ ebean-api
+ 12.6.1-SNAPSHOT
+
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+ ${jackson-core.version}
+ true
+
+
+
+
+
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/DataBinder.java b/ebean-core-type/src/main/java/io/ebean/core/type/DataBinder.java
similarity index 98%
rename from ebean-core/src/main/java/io/ebeaninternal/server/type/DataBinder.java
rename to ebean-core-type/src/main/java/io/ebean/core/type/DataBinder.java
index cf66ac01b..be6a3b559 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/DataBinder.java
+++ b/ebean-core-type/src/main/java/io/ebean/core/type/DataBinder.java
@@ -1,4 +1,4 @@
-package io.ebeaninternal.server.type;
+package io.ebean.core.type;
import java.io.InputStream;
import java.math.BigDecimal;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/DataReader.java b/ebean-core-type/src/main/java/io/ebean/core/type/DataReader.java
similarity index 96%
rename from ebean-core/src/main/java/io/ebeaninternal/server/type/DataReader.java
rename to ebean-core-type/src/main/java/io/ebean/core/type/DataReader.java
index 0b56b7b39..45fba0e0e 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/DataReader.java
+++ b/ebean-core-type/src/main/java/io/ebean/core/type/DataReader.java
@@ -1,4 +1,4 @@
-package io.ebeaninternal.server.type;
+package io.ebean.core.type;
import java.io.InputStream;
import java.math.BigDecimal;
diff --git a/ebean-core/src/main/java/io/ebeanservice/docstore/api/mapping/DocPropertyType.java b/ebean-core-type/src/main/java/io/ebean/core/type/DocPropertyType.java
similarity index 94%
rename from ebean-core/src/main/java/io/ebeanservice/docstore/api/mapping/DocPropertyType.java
rename to ebean-core-type/src/main/java/io/ebean/core/type/DocPropertyType.java
index 52595defb..19f2ec70b 100644
--- a/ebean-core/src/main/java/io/ebeanservice/docstore/api/mapping/DocPropertyType.java
+++ b/ebean-core-type/src/main/java/io/ebean/core/type/DocPropertyType.java
@@ -1,4 +1,4 @@
-package io.ebeanservice.docstore.api.mapping;
+package io.ebean.core.type;
/**
* Types as defined for document store property types.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/api/ExtraTypeFactory.java b/ebean-core-type/src/main/java/io/ebean/core/type/ExtraTypeFactory.java
similarity index 79%
rename from ebean-core/src/main/java/io/ebeaninternal/api/ExtraTypeFactory.java
rename to ebean-core-type/src/main/java/io/ebean/core/type/ExtraTypeFactory.java
index 99e5caf39..4901ca456 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/api/ExtraTypeFactory.java
+++ b/ebean-core-type/src/main/java/io/ebean/core/type/ExtraTypeFactory.java
@@ -1,7 +1,6 @@
-package io.ebeaninternal.api;
+package io.ebean.core.type;
import io.ebean.config.DatabaseConfig;
-import io.ebeaninternal.server.type.ScalarType;
import java.util.List;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarDataReader.java b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarDataReader.java
similarity index 86%
rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarDataReader.java
rename to ebean-core-type/src/main/java/io/ebean/core/type/ScalarDataReader.java
index cb1bc9ede..609c05de9 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarDataReader.java
+++ b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarDataReader.java
@@ -1,4 +1,4 @@
-package io.ebeaninternal.server.type;
+package io.ebean.core.type;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarType.java b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarType.java
similarity index 98%
rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarType.java
rename to ebean-core-type/src/main/java/io/ebean/core/type/ScalarType.java
index ffcfefba9..a971a0115 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarType.java
+++ b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarType.java
@@ -1,10 +1,9 @@
-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.text.StringFormatter;
import io.ebean.text.StringParser;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml
index bd78574d3..474f14f9c 100644
--- a/ebean-core/pom.xml
+++ b/ebean-core/pom.xml
@@ -77,7 +77,7 @@
io.ebean
ebean-ddl-generator
- 12.6.0
+ 12.6.1.PreRelease.0
test
@@ -95,6 +95,12 @@
12.6.1-SNAPSHOT
+
+ io.ebean
+ ebean-core-type
+ 12.6.1-SNAPSHOT
+
+
io.ebean
ebean-externalmapping-api
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DtoQueryRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DtoQueryRequest.java
index 44a095e81..24746bf2a 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DtoQueryRequest.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DtoQueryRequest.java
@@ -1,5 +1,6 @@
package io.ebeaninternal.server.core;
+import io.ebean.core.type.DataReader;
import io.ebeaninternal.api.SpiDtoQuery;
import io.ebeaninternal.api.SpiEbeanServer;
import io.ebeaninternal.api.SpiQuery;
@@ -8,7 +9,6 @@ import io.ebeaninternal.server.dto.DtoMappingRequest;
import io.ebeaninternal.server.dto.DtoQueryPlan;
import io.ebeaninternal.server.persist.Binder;
import io.ebeaninternal.server.query.DtoQueryEngine;
-import io.ebeaninternal.server.type.DataReader;
import io.ebeaninternal.server.type.RsetDataReader;
import java.sql.ResultSet;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java
index 7e1420fc0..6e9326afe 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java
@@ -5,6 +5,7 @@ import io.ebean.annotation.DocStore;
import io.ebean.config.DatabaseConfig;
import io.ebean.config.IdGenerator;
import io.ebean.config.ScalarTypeConverter;
+import io.ebean.core.type.ScalarType;
import io.ebean.event.BeanFindController;
import io.ebean.event.BeanPersistController;
import io.ebean.event.BeanPersistListener;
@@ -18,7 +19,6 @@ import io.ebean.event.changelog.ChangeLogRegister;
import io.ebean.event.readaudit.ReadAuditLogger;
import io.ebean.event.readaudit.ReadAuditPrepare;
import io.ebean.util.AnnotationUtil;
-import io.ebeaninternal.server.type.ScalarType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelp.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelp.java
index 6aa3082e5..6f7f0bb75 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelp.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelp.java
@@ -2,8 +2,8 @@ package io.ebeaninternal.server.deploy;
import io.ebean.bean.EntityBean;
import io.ebean.bean.PersistenceContext;
+import io.ebean.core.type.DataReader;
import io.ebeaninternal.server.query.SqlJoinType;
-import io.ebeaninternal.server.type.DataReader;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpEmbedded.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpEmbedded.java
index a767b2e14..afc910528 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpEmbedded.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpEmbedded.java
@@ -1,7 +1,7 @@
package io.ebeaninternal.server.deploy;
import io.ebean.bean.EntityBean;
-import io.ebeaninternal.server.type.DataReader;
+import io.ebean.core.type.DataReader;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java
index 218e57a3c..e5b8c10f2 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java
@@ -16,6 +16,8 @@ import io.ebean.config.DatabaseConfig;
import io.ebean.config.EncryptKey;
import io.ebean.config.dbplatform.IdType;
import io.ebean.config.dbplatform.PlatformIdGenerator;
+import io.ebean.core.type.DocPropertyType;
+import io.ebean.core.type.ScalarType;
import io.ebean.event.BeanFindController;
import io.ebean.event.BeanPersistController;
import io.ebean.event.BeanPersistListener;
@@ -82,7 +84,6 @@ import io.ebeaninternal.server.querydefn.OrmQueryDetail;
import io.ebeaninternal.server.querydefn.OrmQueryProperties;
import io.ebeaninternal.server.rawsql.SpiRawSql;
import io.ebeaninternal.server.type.DataBind;
-import io.ebeaninternal.server.type.ScalarType;
import io.ebeaninternal.util.SortByClause;
import io.ebeaninternal.util.SortByClauseParser;
import io.ebeanservice.docstore.api.DocStoreBeanAdapter;
@@ -90,7 +91,6 @@ import io.ebeanservice.docstore.api.DocStoreUpdateContext;
import io.ebeanservice.docstore.api.DocStoreUpdates;
import io.ebeanservice.docstore.api.mapping.DocMappingBuilder;
import io.ebeanservice.docstore.api.mapping.DocPropertyMapping;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import io.ebeanservice.docstore.api.mapping.DocumentMapping;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElement.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElement.java
index 2f5cb47a8..6553a28d2 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElement.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElement.java
@@ -1,8 +1,8 @@
package io.ebeaninternal.server.deploy;
import io.ebean.bean.EntityBean;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.deploy.meta.DeployBeanDescriptor;
-import io.ebeaninternal.server.type.ScalarType;
import java.util.Arrays;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElementEmbeddedMap.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElementEmbeddedMap.java
index c57ed26b1..670c0c67d 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElementEmbeddedMap.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElementEmbeddedMap.java
@@ -1,12 +1,11 @@
package io.ebeaninternal.server.deploy;
import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
import io.ebean.bean.EntityBean;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.api.json.SpiJsonReader;
import io.ebeaninternal.api.json.SpiJsonWriter;
import io.ebeaninternal.server.deploy.meta.DeployBeanDescriptor;
-import io.ebeaninternal.server.type.ScalarType;
import java.io.IOException;
import java.util.Map;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElementScalar.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElementScalar.java
index 454f5f58c..262f7d8be 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElementScalar.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElementScalar.java
@@ -5,10 +5,10 @@ import com.fasterxml.jackson.core.JsonToken;
import io.ebean.PersistenceIOException;
import io.ebean.SqlUpdate;
import io.ebean.bean.EntityBean;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.api.json.SpiJsonReader;
import io.ebeaninternal.api.json.SpiJsonWriter;
import io.ebeaninternal.server.deploy.meta.DeployBeanDescriptor;
-import io.ebeaninternal.server.type.ScalarType;
import java.io.IOException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElementScalarMap.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElementScalarMap.java
index 1aa30263c..a9aabce8b 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElementScalarMap.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElementScalarMap.java
@@ -2,10 +2,10 @@ package io.ebeaninternal.server.deploy;
import com.fasterxml.jackson.core.JsonParser;
import io.ebean.bean.EntityBean;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.api.json.SpiJsonReader;
import io.ebeaninternal.api.json.SpiJsonWriter;
import io.ebeaninternal.server.deploy.meta.DeployBeanDescriptor;
-import io.ebeaninternal.server.type.ScalarType;
import java.io.IOException;
import java.util.Arrays;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java
index 33722793a..15d2bcdc4 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java
@@ -16,6 +16,7 @@ import io.ebean.config.dbplatform.DbHistorySupport;
import io.ebean.config.dbplatform.DbIdentity;
import io.ebean.config.dbplatform.IdType;
import io.ebean.config.dbplatform.PlatformIdGenerator;
+import io.ebean.core.type.ScalarType;
import io.ebean.event.changelog.ChangeLogFilter;
import io.ebean.event.changelog.ChangeLogListener;
import io.ebean.event.changelog.ChangeLogPrepare;
@@ -56,7 +57,6 @@ import io.ebeaninternal.server.persist.platform.MultiValueBind;
import io.ebeaninternal.server.properties.BeanPropertiesReader;
import io.ebeaninternal.server.properties.BeanPropertyAccess;
import io.ebeaninternal.server.properties.EnhanceBeanPropertyAccess;
-import io.ebeaninternal.server.type.ScalarType;
import io.ebeaninternal.server.type.ScalarTypeInteger;
import io.ebeaninternal.server.type.TypeManager;
import io.ebeaninternal.xmapping.api.XmapEbean;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorMap.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorMap.java
index 1ff397f0a..7c7dd6e0c 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorMap.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorMap.java
@@ -3,10 +3,10 @@ package io.ebeaninternal.server.deploy;
import io.ebean.config.DatabaseConfig;
import io.ebean.config.EncryptKey;
import io.ebean.config.NamingConvention;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.cache.SpiCacheManager;
import io.ebeaninternal.server.deploy.id.IdBinder;
import io.ebeaninternal.server.deploy.meta.DeployBeanDescriptor;
-import io.ebeaninternal.server.type.ScalarType;
import io.ebeanservice.docstore.api.DocStoreBeanAdapter;
/**
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java
index 31b3bc810..832cea70c 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java
@@ -8,6 +8,9 @@ import io.ebean.bean.PersistenceContext;
import io.ebean.config.EncryptKey;
import io.ebean.config.dbplatform.DbEncryptFunction;
import io.ebean.config.dbplatform.DbPlatformType;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.DocPropertyType;
+import io.ebean.core.type.ScalarType;
import io.ebean.plugin.Property;
import io.ebean.text.StringParser;
import io.ebean.util.SplitName;
@@ -28,9 +31,7 @@ import io.ebeaninternal.server.query.STreeProperty;
import io.ebeaninternal.server.query.SqlBeanLoad;
import io.ebeaninternal.server.query.SqlJoinType;
import io.ebeaninternal.server.type.DataBind;
-import io.ebeaninternal.server.type.DataReader;
import io.ebeaninternal.server.type.LocalEncryptedType;
-import io.ebeaninternal.server.type.ScalarType;
import io.ebeaninternal.server.type.ScalarTypeBoolean;
import io.ebeaninternal.server.type.ScalarTypeEnum;
import io.ebeaninternal.server.type.ScalarTypeLogicalType;
@@ -38,7 +39,6 @@ import io.ebeaninternal.util.ValueUtil;
import io.ebeanservice.docstore.api.mapping.DocMappingBuilder;
import io.ebeanservice.docstore.api.mapping.DocPropertyMapping;
import io.ebeanservice.docstore.api.mapping.DocPropertyOptions;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import io.ebeanservice.docstore.api.support.DocStructure;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssoc.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssoc.java
index 7483dc462..f5f3a8a4a 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssoc.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssoc.java
@@ -2,6 +2,7 @@ package io.ebeaninternal.server.deploy;
import io.ebean.Query;
import io.ebean.bean.EntityBean;
+import io.ebean.core.type.DocPropertyType;
import io.ebean.text.PathProperties;
import io.ebean.util.SplitName;
import io.ebeaninternal.api.SpiEbeanServer;
@@ -22,7 +23,6 @@ import io.ebeaninternal.server.query.SqlJoinType;
import io.ebeaninternal.server.querydefn.DefaultOrmQuery;
import io.ebeanservice.docstore.api.mapping.DocMappingBuilder;
import io.ebeanservice.docstore.api.mapping.DocPropertyMapping;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import io.ebeanservice.docstore.api.support.DocStructure;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocOne.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocOne.java
index 59404d6b1..ca81267eb 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocOne.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocOne.java
@@ -7,6 +7,9 @@ import io.ebean.ValuePair;
import io.ebean.bean.EntityBean;
import io.ebean.bean.EntityBeanIntercept;
import io.ebean.bean.PersistenceContext;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.ScalarDataReader;
+import io.ebean.core.type.ScalarType;
import io.ebean.util.SplitName;
import io.ebeaninternal.api.SpiEbeanServer;
import io.ebeaninternal.api.SpiQuery;
@@ -23,9 +26,6 @@ import io.ebeaninternal.server.el.ElPropertyValue;
import io.ebeaninternal.server.query.STreePropertyAssocOne;
import io.ebeaninternal.server.query.SqlBeanLoad;
import io.ebeaninternal.server.query.SqlJoinType;
-import io.ebeaninternal.server.type.DataReader;
-import io.ebeaninternal.server.type.ScalarDataReader;
-import io.ebeaninternal.server.type.ScalarType;
import javax.persistence.PersistenceException;
import java.io.IOException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DbReadContext.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DbReadContext.java
index f5cf9fa06..0ed8284d8 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DbReadContext.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DbReadContext.java
@@ -4,9 +4,9 @@ import io.ebean.bean.BeanCollection;
import io.ebean.bean.EntityBean;
import io.ebean.bean.EntityBeanIntercept;
import io.ebean.bean.PersistenceContext;
+import io.ebean.core.type.DataReader;
import io.ebeaninternal.api.SpiQuery;
import io.ebeaninternal.server.query.STreePropertyAssocMany;
-import io.ebeaninternal.server.type.DataReader;
import java.util.Map;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DynamicPropertyAggregationFormula.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DynamicPropertyAggregationFormula.java
index 7651aae52..3bfa064b5 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DynamicPropertyAggregationFormula.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DynamicPropertyAggregationFormula.java
@@ -1,8 +1,8 @@
package io.ebeaninternal.server.deploy;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.query.SqlBeanLoad;
-import io.ebeaninternal.server.type.DataReader;
-import io.ebeaninternal.server.type.ScalarType;
import javax.persistence.PersistenceException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DynamicPropertyBase.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DynamicPropertyBase.java
index 5029514d5..2bf722154 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DynamicPropertyBase.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DynamicPropertyBase.java
@@ -1,8 +1,8 @@
package io.ebeaninternal.server.deploy;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.query.STreeProperty;
import io.ebeaninternal.server.query.SqlJoinType;
-import io.ebeaninternal.server.type.ScalarType;
import java.util.List;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/FormulaPropertyPath.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/FormulaPropertyPath.java
index 183e17ffd..43c4dc872 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/FormulaPropertyPath.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/FormulaPropertyPath.java
@@ -1,8 +1,8 @@
package io.ebeaninternal.server.deploy;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.el.ElPropertyDeploy;
import io.ebeaninternal.server.query.STreeProperty;
-import io.ebeaninternal.server.type.ScalarType;
import java.sql.Types;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/IdBinderSimple.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/IdBinderSimple.java
index 6d4c9ca48..cb9e6f9aa 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/IdBinderSimple.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/IdBinderSimple.java
@@ -1,6 +1,7 @@
package io.ebeaninternal.server.deploy.id;
import io.ebean.bean.EntityBean;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.api.SpiExpressionRequest;
import io.ebeaninternal.server.core.DefaultSqlUpdate;
import io.ebeaninternal.server.core.InternString;
@@ -10,7 +11,6 @@ import io.ebeaninternal.server.deploy.DbSqlContext;
import io.ebeaninternal.server.persist.MultiValueWrapper;
import io.ebeaninternal.server.persist.platform.MultiValueBind;
import io.ebeaninternal.server.type.DataBind;
-import io.ebeaninternal.server.type.ScalarType;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanProperty.java
index 4b6fb4861..df3a46094 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanProperty.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanProperty.java
@@ -17,6 +17,7 @@ import io.ebean.config.ScalarTypeConverter;
import io.ebean.config.dbplatform.DbDefaultValue;
import io.ebean.config.dbplatform.DbEncrypt;
import io.ebean.config.dbplatform.DbEncryptFunction;
+import io.ebean.core.type.ScalarType;
import io.ebean.util.AnnotationUtil;
import io.ebeaninternal.server.core.InternString;
import io.ebeaninternal.server.deploy.BeanProperty;
@@ -26,7 +27,6 @@ import io.ebeaninternal.server.deploy.generatedproperty.GeneratedProperty;
import io.ebeaninternal.server.el.ElPropertyValue;
import io.ebeaninternal.server.properties.BeanPropertyGetter;
import io.ebeaninternal.server.properties.BeanPropertySetter;
-import io.ebeaninternal.server.type.ScalarType;
import io.ebeaninternal.server.type.ScalarTypeWrapper;
import io.ebeanservice.docstore.api.mapping.DocPropertyOptions;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java
index 730e9c0fa..e0dae8abc 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java
@@ -8,6 +8,7 @@ import io.ebean.bean.BeanCollection.ModifyListenMode;
import io.ebean.config.BeanNotRegisteredException;
import io.ebean.config.NamingConvention;
import io.ebean.config.TableName;
+import io.ebean.core.type.ScalarType;
import io.ebean.util.CamelCaseHelper;
import io.ebeaninternal.server.deploy.BeanDescriptorManager;
import io.ebeaninternal.server.deploy.BeanProperty;
@@ -21,7 +22,6 @@ import io.ebeaninternal.server.deploy.meta.DeployOrderColumn;
import io.ebeaninternal.server.deploy.meta.DeployTableJoin;
import io.ebeaninternal.server.deploy.meta.DeployTableJoinColumn;
import io.ebeaninternal.server.query.SqlJoinType;
-import io.ebeaninternal.server.type.ScalarType;
import javax.persistence.CascadeType;
import javax.persistence.CollectionTable;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java
index 195ff6610..0a1bc1ff4 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java
@@ -39,6 +39,7 @@ import io.ebean.config.dbplatform.DbEncrypt;
import io.ebean.config.dbplatform.DbEncryptFunction;
import io.ebean.config.dbplatform.IdType;
import io.ebean.config.dbplatform.PlatformIdGenerator;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.deploy.DbMigrationInfo;
import io.ebeaninternal.server.deploy.IndexDefinition;
import io.ebeaninternal.server.deploy.generatedproperty.GeneratedPropertyFactory;
@@ -46,7 +47,6 @@ import io.ebeaninternal.server.deploy.meta.DeployBeanProperty;
import io.ebeaninternal.server.deploy.meta.DeployBeanPropertyAssoc;
import io.ebeaninternal.server.deploy.meta.DeployBeanPropertyAssocOne;
import io.ebeaninternal.server.type.DataEncryptSupport;
-import io.ebeaninternal.server.type.ScalarType;
import io.ebeaninternal.server.type.ScalarTypeBytesBase;
import io.ebeaninternal.server.type.ScalarTypeBytesEncrypted;
import io.ebeaninternal.server.type.ScalarTypeEncryptedWrapper;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployCreateProperties.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployCreateProperties.java
index e8223abd4..691fa7cf5 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployCreateProperties.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployCreateProperties.java
@@ -2,10 +2,11 @@ package io.ebeaninternal.server.deploy.parse;
import io.ebean.Model;
import io.ebean.annotation.DbArray;
-import io.ebean.annotation.DbMap;
import io.ebean.annotation.DbJson;
import io.ebean.annotation.DbJsonB;
+import io.ebean.annotation.DbMap;
import io.ebean.annotation.UnmappedJson;
+import io.ebean.core.type.ScalarType;
import io.ebean.util.AnnotationUtil;
import io.ebeaninternal.server.deploy.DetermineManyType;
import io.ebeaninternal.server.deploy.ManyType;
@@ -14,7 +15,6 @@ import io.ebeaninternal.server.deploy.meta.DeployBeanProperty;
import io.ebeaninternal.server.deploy.meta.DeployBeanPropertyAssocMany;
import io.ebeaninternal.server.deploy.meta.DeployBeanPropertyAssocOne;
import io.ebeaninternal.server.deploy.meta.DeployBeanPropertySimpleCollection;
-import io.ebeaninternal.server.type.ScalarType;
import io.ebeaninternal.server.type.TypeManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployUtil.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployUtil.java
index ad0cdb896..3a0f8d826 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployUtil.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployUtil.java
@@ -14,9 +14,9 @@ import io.ebean.config.NamingConvention;
import io.ebean.config.TableName;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.config.dbplatform.DbPlatformType;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.deploy.meta.DeployBeanProperty;
import io.ebeaninternal.server.type.DataEncryptSupport;
-import io.ebeaninternal.server.type.ScalarType;
import io.ebeaninternal.server.type.ScalarTypeArray;
import io.ebeaninternal.server.type.ScalarTypeWrapper;
import io.ebeaninternal.server.type.SimpleAesEncryptor;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaConstructor.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaConstructor.java
index 79a5ee307..35a736346 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaConstructor.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaConstructor.java
@@ -1,7 +1,7 @@
package io.ebeaninternal.server.dto;
-import io.ebeaninternal.server.type.DataReader;
-import io.ebeaninternal.server.type.ScalarType;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.type.TypeManager;
import java.lang.invoke.MethodHandle;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaProperty.java
index d177f22d3..c4beae172 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaProperty.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaProperty.java
@@ -1,7 +1,7 @@
package io.ebeaninternal.server.dto;
-import io.ebeaninternal.server.type.DataReader;
-import io.ebeaninternal.server.type.ScalarType;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.type.TypeManager;
import java.lang.invoke.MethodHandle;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlan.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlan.java
index cec8a8b00..6fe0d0602 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlan.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlan.java
@@ -1,7 +1,7 @@
package io.ebeaninternal.server.dto;
+import io.ebean.core.type.DataReader;
import io.ebean.meta.MetricVisitor;
-import io.ebeaninternal.server.type.DataReader;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConPlus.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConPlus.java
index a2d188ab0..1bc530b78 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConPlus.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConPlus.java
@@ -1,6 +1,6 @@
package io.ebeaninternal.server.dto;
-import io.ebeaninternal.server.type.DataReader;
+import io.ebean.core.type.DataReader;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConSetter.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConSetter.java
index 16d6075f0..70629e8da 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConSetter.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConSetter.java
@@ -1,6 +1,6 @@
package io.ebeaninternal.server.dto;
-import io.ebeaninternal.server.type.DataReader;
+import io.ebean.core.type.DataReader;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConstructor.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConstructor.java
index 1626a18a4..912b41cd2 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConstructor.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoQueryPlanConstructor.java
@@ -1,6 +1,6 @@
package io.ebeaninternal.server.dto;
-import io.ebeaninternal.server.type.DataReader;
+import io.ebean.core.type.DataReader;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoReadSet.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoReadSet.java
index 37c701a07..fe09b2253 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoReadSet.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoReadSet.java
@@ -1,6 +1,6 @@
package io.ebeaninternal.server.dto;
-import io.ebeaninternal.server.type.DataReader;
+import io.ebean.core.type.DataReader;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoReadSetColumnSkip.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoReadSetColumnSkip.java
index 013aa4045..9fda8b81f 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoReadSetColumnSkip.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoReadSetColumnSkip.java
@@ -1,6 +1,6 @@
package io.ebeaninternal.server.dto;
-import io.ebeaninternal.server.type.DataReader;
+import io.ebean.core.type.DataReader;
/**
* Placeholder to skip reading a column that isn't mapped to a bean property.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/el/ElPropertyChain.java b/ebean-core/src/main/java/io/ebeaninternal/server/el/ElPropertyChain.java
index 4ba9f4a5a..2effb1703 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/el/ElPropertyChain.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/el/ElPropertyChain.java
@@ -1,12 +1,12 @@
package io.ebeaninternal.server.el;
import io.ebean.bean.EntityBean;
+import io.ebean.core.type.ScalarType;
import io.ebean.plugin.Property;
import io.ebean.text.StringParser;
import io.ebean.util.SplitName;
import io.ebeaninternal.api.SpiExpressionRequest;
import io.ebeaninternal.server.deploy.BeanProperty;
-import io.ebeaninternal.server.type.ScalarType;
import java.util.Arrays;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java
index 9865eee9d..1d94d7a81 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java
@@ -1,17 +1,17 @@
package io.ebeaninternal.server.persist;
import io.ebean.config.dbplatform.DbPlatformType;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.api.BindParams;
import io.ebeaninternal.api.SpiLogManager;
import io.ebeaninternal.server.core.timezone.DataTimeZone;
import io.ebeaninternal.server.expression.platform.DbExpressionHandler;
import io.ebeaninternal.server.persist.platform.MultiValueBind;
import io.ebeaninternal.server.type.DataBind;
-import io.ebeaninternal.server.type.DataReader;
import io.ebeaninternal.server.type.GeoTypeBinder;
import io.ebeaninternal.server.type.PostgresHelper;
import io.ebeaninternal.server.type.RsetDataReader;
-import io.ebeaninternal.server.type.ScalarType;
import io.ebeaninternal.server.type.TypeManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/AbstractMultiValueBind.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/AbstractMultiValueBind.java
index 3b5495dd6..c4c4a24d7 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/AbstractMultiValueBind.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/AbstractMultiValueBind.java
@@ -1,8 +1,8 @@
package io.ebeaninternal.server.persist.platform;
import io.ebean.config.dbplatform.ExtraDbTypes;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.type.DataBind;
-import io.ebeaninternal.server.type.ScalarType;
import java.sql.SQLException;
import java.util.Collection;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/MultiValueBind.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/MultiValueBind.java
index fe997312e..3559a3a69 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/MultiValueBind.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/MultiValueBind.java
@@ -1,7 +1,7 @@
package io.ebeaninternal.server.persist.platform;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.type.DataBind;
-import io.ebeaninternal.server.type.ScalarType;
import java.sql.SQLException;
import java.util.Collection;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/PostgresMultiValueBind.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/PostgresMultiValueBind.java
index 36d3d639e..f90d5cfb8 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/PostgresMultiValueBind.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/platform/PostgresMultiValueBind.java
@@ -1,7 +1,7 @@
package io.ebeaninternal.server.persist.platform;
import io.ebean.config.dbplatform.ExtraDbTypes;
-import io.ebeaninternal.server.type.ScalarType;
+import io.ebean.core.type.ScalarType;
/**
* Multi value binder that uses Postgres Array.
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java
index 3aeac57f5..d1d1e1640 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java
@@ -9,6 +9,7 @@ import io.ebean.bean.NodeUsageCollector;
import io.ebean.bean.NodeUsageListener;
import io.ebean.bean.ObjectGraphNode;
import io.ebean.bean.PersistenceContext;
+import io.ebean.core.type.DataReader;
import io.ebean.event.readaudit.ReadEvent;
import io.ebean.util.JdbcClose;
import io.ebeaninternal.api.SpiProfileTransactionEvent;
@@ -24,7 +25,6 @@ import io.ebeaninternal.server.deploy.BeanPropertyAssocMany;
import io.ebeaninternal.server.deploy.BeanPropertyAssocOne;
import io.ebeaninternal.server.deploy.DbReadContext;
import io.ebeaninternal.server.type.DataBind;
-import io.ebeaninternal.server.type.DataReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java
index 005cecd97..45fabfde7 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java
@@ -1,6 +1,7 @@
package io.ebeaninternal.server.query;
import io.ebean.CountedValue;
+import io.ebean.core.type.ScalarDataReader;
import io.ebean.util.JdbcClose;
import io.ebeaninternal.api.SpiProfileTransactionEvent;
import io.ebeaninternal.api.SpiQuery;
@@ -8,7 +9,6 @@ import io.ebeaninternal.api.SpiTransaction;
import io.ebeaninternal.server.core.OrmQueryRequest;
import io.ebeaninternal.server.deploy.BeanDescriptor;
import io.ebeaninternal.server.type.RsetDataReader;
-import io.ebeaninternal.server.type.ScalarDataReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java
index 2e41750e4..af4ad9c48 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java
@@ -2,6 +2,8 @@ package io.ebeaninternal.server.query;
import io.ebean.ProfileLocation;
import io.ebean.config.dbplatform.SqlLimitResponse;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.ScalarDataReader;
import io.ebean.metric.MetricFactory;
import io.ebean.metric.TimedMetric;
import io.ebeaninternal.api.CQueryPlanKey;
@@ -14,9 +16,7 @@ import io.ebeaninternal.server.core.timezone.DataTimeZone;
import io.ebeaninternal.server.query.CQueryPlanStats.Snapshot;
import io.ebeaninternal.server.type.DataBind;
import io.ebeaninternal.server.type.DataBindCapture;
-import io.ebeaninternal.server.type.DataReader;
import io.ebeaninternal.server.type.RsetDataReader;
-import io.ebeaninternal.server.type.ScalarDataReader;
import io.ebeaninternal.server.util.Md5;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanRawSql.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanRawSql.java
index 757014a5b..bab955d84 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanRawSql.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanRawSql.java
@@ -1,9 +1,9 @@
package io.ebeaninternal.server.query;
-import io.ebeaninternal.server.rawsql.SpiRawSql.ColumnMapping;
import io.ebean.config.dbplatform.SqlLimitResponse;
+import io.ebean.core.type.DataReader;
import io.ebeaninternal.server.core.OrmQueryRequest;
-import io.ebeaninternal.server.type.DataReader;
+import io.ebeaninternal.server.rawsql.SpiRawSql.ColumnMapping;
import io.ebeaninternal.server.type.RsetDataReaderIndexed;
import java.sql.ResultSet;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultRelationalQueryEngine.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultRelationalQueryEngine.java
index e2a2ad29e..f49df1d20 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultRelationalQueryEngine.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultRelationalQueryEngine.java
@@ -3,6 +3,7 @@ package io.ebeaninternal.server.query;
import io.ebean.RowConsumer;
import io.ebean.RowMapper;
import io.ebean.SqlRow;
+import io.ebean.core.type.ScalarType;
import io.ebean.meta.MetricVisitor;
import io.ebean.metric.MetricFactory;
import io.ebean.metric.TimedMetricMap;
@@ -10,7 +11,6 @@ import io.ebeaninternal.api.SpiQuery;
import io.ebeaninternal.server.core.RelationalQueryEngine;
import io.ebeaninternal.server.core.RelationalQueryRequest;
import io.ebeaninternal.server.persist.Binder;
-import io.ebeaninternal.server.type.ScalarType;
import javax.persistence.PersistenceException;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/STreeProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/STreeProperty.java
index 95911b026..911f92ef7 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/STreeProperty.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/STreeProperty.java
@@ -1,9 +1,9 @@
package io.ebeaninternal.server.query;
+import io.ebean.core.type.ScalarDataReader;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.deploy.DbReadContext;
import io.ebeaninternal.server.deploy.DbSqlContext;
-import io.ebeaninternal.server.type.ScalarDataReader;
-import io.ebeaninternal.server.type.ScalarType;
import java.util.List;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/STreePropertyAssocOne.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/STreePropertyAssocOne.java
index d53879fce..6e441a617 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/STreePropertyAssocOne.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/STreePropertyAssocOne.java
@@ -1,7 +1,7 @@
package io.ebeaninternal.server.query;
import io.ebean.bean.EntityBean;
-import io.ebeaninternal.server.type.ScalarDataReader;
+import io.ebean.core.type.ScalarDataReader;
public interface STreePropertyAssocOne extends STreePropertyAssoc {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNode.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNode.java
index 70fa0cdd2..b341802d1 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNode.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNode.java
@@ -2,10 +2,10 @@ package io.ebeaninternal.server.query;
import io.ebean.Version;
import io.ebean.bean.EntityBean;
+import io.ebean.core.type.ScalarDataReader;
import io.ebeaninternal.api.SpiQuery;
import io.ebeaninternal.server.deploy.DbReadContext;
import io.ebeaninternal.server.deploy.DbSqlContext;
-import io.ebeaninternal.server.type.ScalarDataReader;
import java.sql.SQLException;
import java.util.List;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java
index 48bc65130..010793506 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java
@@ -5,6 +5,7 @@ import io.ebean.bean.BeanCollection;
import io.ebean.bean.EntityBean;
import io.ebean.bean.EntityBeanIntercept;
import io.ebean.bean.PersistenceContext;
+import io.ebean.core.type.ScalarDataReader;
import io.ebean.util.SplitName;
import io.ebeaninternal.api.SpiQuery;
import io.ebeaninternal.api.SpiQuery.Mode;
@@ -13,7 +14,6 @@ import io.ebeaninternal.server.deploy.DbSqlContext;
import io.ebeaninternal.server.deploy.InheritInfo;
import io.ebeaninternal.server.deploy.TableJoin;
import io.ebeaninternal.server.deploy.id.IdBinder;
-import io.ebeaninternal.server.type.ScalarDataReader;
import java.sql.SQLException;
import java.sql.Timestamp;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeExtraJoin.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeExtraJoin.java
index f1df4476d..08e5601fc 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeExtraJoin.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeExtraJoin.java
@@ -2,12 +2,12 @@ package io.ebeaninternal.server.query;
import io.ebean.Version;
import io.ebean.bean.EntityBean;
+import io.ebean.core.type.ScalarType;
import io.ebean.util.SplitName;
import io.ebeaninternal.api.SpiQuery;
import io.ebeaninternal.server.deploy.DbReadContext;
import io.ebeaninternal.server.deploy.DbSqlContext;
import io.ebeaninternal.server.deploy.TableJoin;
-import io.ebeaninternal.server.type.ScalarType;
import java.util.ArrayList;
import java.util.List;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeFormulaWhereJoin.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeFormulaWhereJoin.java
index 5eca4ed7a..f5e47eac5 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeFormulaWhereJoin.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeFormulaWhereJoin.java
@@ -2,10 +2,10 @@ package io.ebeaninternal.server.query;
import io.ebean.Version;
import io.ebean.bean.EntityBean;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.api.SpiQuery;
import io.ebeaninternal.server.deploy.DbReadContext;
import io.ebeaninternal.server.deploy.DbSqlContext;
-import io.ebeaninternal.server.type.ScalarType;
import java.util.List;
import java.util.Set;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeManyWhereJoin.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeManyWhereJoin.java
index 5c87c8082..f3d1999ca 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeManyWhereJoin.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeManyWhereJoin.java
@@ -2,12 +2,12 @@ package io.ebeaninternal.server.query;
import io.ebean.Version;
import io.ebean.bean.EntityBean;
+import io.ebean.core.type.ScalarType;
import io.ebean.util.SplitName;
import io.ebeaninternal.api.SpiQuery;
import io.ebeaninternal.server.deploy.DbReadContext;
import io.ebeaninternal.server.deploy.DbSqlContext;
import io.ebeaninternal.server.deploy.TableJoin;
-import io.ebeaninternal.server.type.ScalarType;
import java.util.List;
import java.util.Set;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/text/json/DJsonScalar.java b/ebean-core/src/main/java/io/ebeaninternal/server/text/json/DJsonScalar.java
index 1b1456a79..fed4c5945 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/text/json/DJsonScalar.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/text/json/DJsonScalar.java
@@ -1,8 +1,8 @@
package io.ebeaninternal.server.text.json;
-import io.ebeaninternal.server.type.ScalarType;
-import io.ebeaninternal.server.type.TypeManager;
import com.fasterxml.jackson.core.JsonGenerator;
+import io.ebean.core.type.ScalarType;
+import io.ebeaninternal.server.type.TypeManager;
import java.io.IOException;
import java.util.List;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ArrayElementConverter.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ArrayElementConverter.java
index 0d704b81e..9db2bfad4 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ArrayElementConverter.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ArrayElementConverter.java
@@ -1,5 +1,7 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.ScalarType;
+
import java.util.UUID;
/**
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ArrayElementConverterEnum.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ArrayElementConverterEnum.java
index fe5e9a490..e7bfe5606 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ArrayElementConverterEnum.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ArrayElementConverterEnum.java
@@ -1,5 +1,7 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.ScalarType;
+
public class ArrayElementConverterEnum implements ArrayElementConverter {
final ScalarType> scalarType;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/DataBind.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/DataBind.java
index 2138252ee..2959c872c 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/DataBind.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/DataBind.java
@@ -1,5 +1,6 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataBinder;
import io.ebeaninternal.server.core.timezone.DataTimeZone;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeFactory.java
index af32d0b33..22f50b937 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeFactory.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeFactory.java
@@ -2,11 +2,13 @@ package io.ebeaninternal.server.type;
import io.ebean.config.DatabaseConfig;
import io.ebean.config.JsonConfig;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.core.BasicTypeConverter;
import java.math.BigInteger;
import java.sql.Types;
import java.util.Calendar;
+import java.util.Date;
/**
* Helper to create some default ScalarType objects for Booleans,
@@ -64,7 +66,7 @@ public class DefaultTypeFactory {
/**
* Create the default ScalarType for java.util.Date.
*/
- public ScalarType createUtilDate(JsonConfig.DateTime mode, JsonConfig.Date jsonDate) {
+ public ScalarType createUtilDate(JsonConfig.DateTime mode, JsonConfig.Date jsonDate) {
// by default map anonymous java.util.Date to java.sql.Timestamp.
return createUtilDate(mode, jsonDate, java.sql.Types.TIMESTAMP);
}
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 50a9b63c1..c41d1121d 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
@@ -14,15 +14,16 @@ import io.ebean.config.PlatformConfig;
import io.ebean.config.ScalarTypeConverter;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.config.dbplatform.DbPlatformType;
+import io.ebean.core.type.DocPropertyType;
+import io.ebean.core.type.ExtraTypeFactory;
+import io.ebean.core.type.ScalarType;
import io.ebean.types.Cidr;
import io.ebean.types.Inet;
import io.ebean.util.AnnotationUtil;
-import io.ebeaninternal.api.ExtraTypeFactory;
import io.ebeaninternal.api.DbOffline;
import io.ebeaninternal.api.GeoTypeProvider;
import io.ebeaninternal.server.core.bootup.BootupClasses;
import io.ebeaninternal.server.deploy.meta.DeployBeanProperty;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
import org.joda.time.LocalDateTime;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/EnumToDbIntegerMap.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/EnumToDbIntegerMap.java
index 9693b4bfa..7d62a8391 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/EnumToDbIntegerMap.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/EnumToDbIntegerMap.java
@@ -1,5 +1,8 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+
import javax.persistence.PersistenceException;
import java.sql.SQLException;
import java.sql.Types;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/EnumToDbStringMap.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/EnumToDbStringMap.java
index e36c50179..05b0f8991 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/EnumToDbStringMap.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/EnumToDbStringMap.java
@@ -1,5 +1,8 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+
import java.sql.SQLException;
import java.sql.Types;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/EnumToDbValueMap.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/EnumToDbValueMap.java
index f9a3ec231..08240cabc 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/EnumToDbValueMap.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/EnumToDbValueMap.java
@@ -1,5 +1,8 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Iterator;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/GeoTypeBinder.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/GeoTypeBinder.java
index 4ee8adacb..002f0688c 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/GeoTypeBinder.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/GeoTypeBinder.java
@@ -1,5 +1,7 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataBinder;
+
import java.sql.SQLException;
/**
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/PlatformArrayTypeFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/PlatformArrayTypeFactory.java
index 23d839fc7..85cf9aa31 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/PlatformArrayTypeFactory.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/PlatformArrayTypeFactory.java
@@ -1,5 +1,7 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.ScalarType;
+
import java.lang.reflect.Type;
/**
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/RsetDataReader.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/RsetDataReader.java
index 314b8c246..3448251d5 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/RsetDataReader.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/RsetDataReader.java
@@ -1,5 +1,6 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataReader;
import io.ebeaninternal.server.core.timezone.DataTimeZone;
import java.io.ByteArrayOutputStream;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayBase.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayBase.java
index 9706fc587..b0d742956 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayBase.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayBase.java
@@ -1,6 +1,8 @@
package io.ebeaninternal.server.type;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.DocPropertyType;
+import io.ebean.core.type.ScalarType;
import java.sql.Array;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayList.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayList.java
index 66e65f639..3f540b3e3 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayList.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayList.java
@@ -3,10 +3,12 @@ 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.DocPropertyType;
+import io.ebean.core.type.ScalarType;
import io.ebean.text.TextException;
import io.ebean.text.json.EJson;
import io.ebeaninternal.json.ModifyAwareList;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import javax.persistence.PersistenceException;
import java.io.IOException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayListH2.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayListH2.java
index d7c18287f..ebad83024 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayListH2.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayListH2.java
@@ -1,6 +1,8 @@
package io.ebeaninternal.server.type;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DocPropertyType;
+import io.ebean.core.type.ScalarType;
import java.lang.reflect.Type;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArraySet.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArraySet.java
index e788aa005..d07f2f795 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArraySet.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArraySet.java
@@ -3,10 +3,12 @@ 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.DocPropertyType;
+import io.ebean.core.type.ScalarType;
import io.ebean.text.TextException;
import io.ebean.text.json.EJson;
import io.ebeaninternal.json.ModifyAwareSet;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import javax.persistence.PersistenceException;
import java.io.IOException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArraySetH2.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArraySetH2.java
index 7e597452f..e67b5e434 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArraySetH2.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArraySetH2.java
@@ -1,6 +1,8 @@
package io.ebeaninternal.server.type;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DocPropertyType;
+import io.ebean.core.type.ScalarType;
import java.lang.reflect.Type;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBase.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBase.java
index 5aa6b7366..a6a0675a0 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBase.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBase.java
@@ -1,5 +1,8 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.ScalarType;
+
/**
* Base ScalarType object.
*/
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDate.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDate.java
index d8c5407ff..f752da1d4 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDate.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDate.java
@@ -4,7 +4,9 @@ import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import io.ebean.config.JsonConfig;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.DocPropertyType;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDateTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDateTime.java
index a520976ca..c296b2e1f 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDateTime.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDateTime.java
@@ -3,7 +3,9 @@ package io.ebeaninternal.server.type;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import io.ebean.config.JsonConfig;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.DocPropertyType;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseVarchar.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseVarchar.java
index d7baf824c..78e26c4c0 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseVarchar.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseVarchar.java
@@ -1,9 +1,11 @@
package io.ebeaninternal.server.type;
-import io.ebean.text.TextException;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
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.text.TextException;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBigDecimal.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBigDecimal.java
index fb24fad68..58dc1e720 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBigDecimal.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBigDecimal.java
@@ -1,9 +1,11 @@
package io.ebeaninternal.server.type;
-import io.ebeaninternal.server.core.BasicTypeConverter;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
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.ebeaninternal.server.core.BasicTypeConverter;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBool.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBool.java
index 35a5a9346..c531042cd 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBool.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBool.java
@@ -1,5 +1,7 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.ScalarType;
+
/**
* Boolean ScalarType's must implement to support DDL default values etc.
*/
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBoolean.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBoolean.java
index 2af6e97dc..93a688e94 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBoolean.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBoolean.java
@@ -1,11 +1,13 @@
package io.ebeaninternal.server.type;
-import io.ebean.text.TextException;
-import io.ebeaninternal.server.core.BasicTypeConverter;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.DocPropertyType;
+import io.ebean.text.TextException;
+import io.ebeaninternal.server.core.BasicTypeConverter;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeByte.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeByte.java
index 8d2ec3658..5d0660930 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeByte.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeByte.java
@@ -1,10 +1,12 @@
package io.ebeaninternal.server.type;
-import io.ebean.text.TextException;
-import io.ebeaninternal.server.core.BasicTypeConverter;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
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.text.TextException;
+import io.ebeaninternal.server.core.BasicTypeConverter;
import java.io.ByteArrayOutputStream;
import java.io.DataInput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesBase.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesBase.java
index 4d476be3f..202ade97e 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesBase.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesBase.java
@@ -1,9 +1,10 @@
package io.ebeaninternal.server.type;
-import io.ebean.text.TextException;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DocPropertyType;
+import io.ebean.text.TextException;
import java.io.ByteArrayOutputStream;
import java.io.DataInput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesBinary.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesBinary.java
index ea794fff2..8567c808f 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesBinary.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesBinary.java
@@ -1,5 +1,7 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataReader;
+
import java.sql.SQLException;
import java.sql.Types;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesBlob.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesBlob.java
index ff68a626c..5ad02618f 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesBlob.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesBlob.java
@@ -1,5 +1,7 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataReader;
+
import java.sql.SQLException;
import java.sql.Types;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesEncrypted.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesEncrypted.java
index a00d354b0..9b81acfde 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesEncrypted.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesEncrypted.java
@@ -1,8 +1,11 @@
package io.ebeaninternal.server.type;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
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.ScalarType;
import java.io.ByteArrayOutputStream;
import java.io.DataInput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesLongVarbinary.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesLongVarbinary.java
index 6d8e72587..8d1b87cf9 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesLongVarbinary.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesLongVarbinary.java
@@ -1,5 +1,7 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataReader;
+
import java.sql.SQLException;
import java.sql.Types;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesVarbinary.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesVarbinary.java
index 873c5ce59..3e9b68790 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesVarbinary.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesVarbinary.java
@@ -1,5 +1,7 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataReader;
+
import java.sql.SQLException;
import java.sql.Types;
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 68c287b49..c0c67e7f8 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
@@ -1,6 +1,7 @@
package io.ebeaninternal.server.type;
import io.ebean.config.JsonConfig;
+import io.ebean.core.type.DataBinder;
import io.ebeaninternal.server.core.BasicTypeConverter;
import java.sql.Date;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeChar.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeChar.java
index 9106cffd9..509506298 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeChar.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeChar.java
@@ -1,5 +1,7 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
import io.ebeaninternal.server.core.BasicTypeConverter;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCharArray.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCharArray.java
index 1816ac56e..dedb38838 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCharArray.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCharArray.java
@@ -1,8 +1,10 @@
package io.ebeaninternal.server.type;
-import io.ebeaninternal.server.core.BasicTypeConverter;
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.ebeaninternal.server.core.BasicTypeConverter;
import java.io.IOException;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCidr.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCidr.java
index 11ce23681..1d303a157 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCidr.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCidr.java
@@ -1,6 +1,7 @@
package io.ebeaninternal.server.type;
import io.ebean.config.dbplatform.ExtraDbTypes;
+import io.ebean.core.type.DataBinder;
import io.ebean.types.Cidr;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeClob.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeClob.java
index b6bbb6c8f..f2df74f00 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeClob.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeClob.java
@@ -1,5 +1,7 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataReader;
+
import java.sql.SQLException;
import java.sql.Types;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDate.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDate.java
index 4cb09f95c..b9d49586f 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDate.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDate.java
@@ -1,6 +1,8 @@
package io.ebeaninternal.server.type;
import io.ebean.config.JsonConfig;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
import io.ebeaninternal.server.core.BasicTypeConverter;
import java.sql.Date;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDayOfWeek.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDayOfWeek.java
index f0acb7c51..39c8ada61 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDayOfWeek.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDayOfWeek.java
@@ -1,5 +1,8 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+
import javax.persistence.EnumType;
import java.sql.SQLException;
import java.sql.Types;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDouble.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDouble.java
index f7b55377e..14f825413 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDouble.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDouble.java
@@ -1,9 +1,11 @@
package io.ebeaninternal.server.type;
-import io.ebeaninternal.server.core.BasicTypeConverter;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
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.ebeaninternal.server.core.BasicTypeConverter;
import java.io.DataInput;
import java.io.DataOutput;
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 2e0687898..4632160d9 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
@@ -1,10 +1,12 @@
package io.ebeaninternal.server.type;
-import io.ebean.text.TextException;
-import io.ebeaninternal.server.core.BasicTypeConverter;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
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.text.TextException;
+import io.ebeaninternal.server.core.BasicTypeConverter;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDurationWithNanos.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDurationWithNanos.java
index 1e6642453..faeca10a5 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDurationWithNanos.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDurationWithNanos.java
@@ -1,5 +1,7 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
import io.ebeaninternal.server.core.BasicTypeConverter;
import java.math.BigDecimal;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEncryptedWrapper.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEncryptedWrapper.java
index 370fbfaf8..ba9a44b20 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEncryptedWrapper.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEncryptedWrapper.java
@@ -1,8 +1,11 @@
package io.ebeaninternal.server.type;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
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.ScalarType;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEnum.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEnum.java
index 1dc3de475..3d8227efd 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEnum.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEnum.java
@@ -1,5 +1,7 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.ScalarType;
+
import javax.persistence.EnumType;
import java.util.Set;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEnumStandard.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEnumStandard.java
index 1bfd12298..4c8a5e645 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEnumStandard.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEnumStandard.java
@@ -2,8 +2,10 @@ 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.text.TextException;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import javax.persistence.EnumType;
import java.io.DataInput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEnumWithMapping.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEnumWithMapping.java
index c773e96b7..d8ab07e72 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEnumWithMapping.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEnumWithMapping.java
@@ -1,5 +1,9 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.ScalarType;
+
import javax.persistence.EnumType;
import java.sql.SQLException;
import java.util.Iterator;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFile.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFile.java
index c2efc78df..4dfa68a24 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFile.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFile.java
@@ -1,9 +1,11 @@
package io.ebeaninternal.server.type;
-import io.ebean.text.TextException;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
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.text.TextException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFloat.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFloat.java
index 2359d5ead..e9f8e1306 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFloat.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFloat.java
@@ -1,9 +1,11 @@
package io.ebeaninternal.server.type;
-import io.ebeaninternal.server.core.BasicTypeConverter;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
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.ebeaninternal.server.core.BasicTypeConverter;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInet.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInet.java
index debd88092..9252afe6e 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInet.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInet.java
@@ -1,6 +1,7 @@
package io.ebeaninternal.server.type;
import io.ebean.config.dbplatform.ExtraDbTypes;
+import io.ebean.core.type.DataBinder;
import io.ebean.types.Inet;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInetAddressPostgres.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInetAddressPostgres.java
index 87993d46f..086f4fd45 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInetAddressPostgres.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInetAddressPostgres.java
@@ -1,6 +1,7 @@
package io.ebeaninternal.server.type;
import io.ebean.config.dbplatform.ExtraDbTypes;
+import io.ebean.core.type.DataBinder;
import io.ebean.text.TextException;
import java.net.InetAddress;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInteger.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInteger.java
index 6a0d89818..0d343d05b 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInteger.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInteger.java
@@ -2,9 +2,11 @@ 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.text.TextException;
import io.ebeaninternal.server.core.BasicTypeConverter;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java
index 2b6ded612..bb8f5070b 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java
@@ -1,10 +1,12 @@
package io.ebeaninternal.server.type;
-import io.ebeaninternal.server.core.BasicTypeConverter;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.DocPropertyType;
+import io.ebeaninternal.server.core.BasicTypeConverter;
import org.joda.time.DateTimeZone;
import org.joda.time.LocalTime;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeUTC.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeUTC.java
index 4fd09cca8..1cf2656a0 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeUTC.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeUTC.java
@@ -1,5 +1,7 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
import io.ebeaninternal.server.core.BasicTypeConverter;
import org.joda.time.DateTimeZone;
import org.joda.time.LocalTime;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonCollection.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonCollection.java
index 7d85d8a33..fbbd92855 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonCollection.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonCollection.java
@@ -1,7 +1,8 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DocPropertyType;
import io.ebeaninternal.json.ModifyAwareOwner;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonList.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonList.java
index 51c58ddc9..a196085a6 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonList.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonList.java
@@ -1,11 +1,14 @@
package io.ebeaninternal.server.type;
-import io.ebean.config.dbplatform.DbPlatformType;
-import io.ebean.text.TextException;
-import io.ebean.text.json.EJson;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
+import io.ebean.config.dbplatform.DbPlatformType;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.DocPropertyType;
+import io.ebean.core.type.ScalarType;
+import io.ebean.text.TextException;
+import io.ebean.text.json.EJson;
import javax.persistence.PersistenceException;
import java.io.IOException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonMap.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonMap.java
index 649ba0a38..4d2b64b59 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonMap.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonMap.java
@@ -1,12 +1,14 @@
package io.ebeaninternal.server.type;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonParser;
import io.ebean.config.dbplatform.DbPlatformType;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.DocPropertyType;
import io.ebean.text.TextException;
import io.ebean.text.json.EJson;
import io.ebeaninternal.json.ModifyAwareOwner;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonMapPostgres.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonMapPostgres.java
index 386dc686c..87eecc5f9 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonMapPostgres.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonMapPostgres.java
@@ -1,6 +1,7 @@
package io.ebeaninternal.server.type;
import io.ebean.config.dbplatform.DbPlatformType;
+import io.ebean.core.type.DataBinder;
import java.sql.SQLException;
import java.util.Map;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonNode.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonNode.java
index c6ac49f37..5ff3ef99a 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonNode.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonNode.java
@@ -1,11 +1,13 @@
package io.ebeaninternal.server.type;
-import io.ebean.text.TextException;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.DocPropertyType;
+import io.ebean.text.TextException;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonNodePostgres.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonNodePostgres.java
index 410beed1d..f24178aab 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonNodePostgres.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonNodePostgres.java
@@ -1,8 +1,9 @@
package io.ebeaninternal.server.type;
-import io.ebean.config.dbplatform.DbPlatformType;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
+import io.ebean.config.dbplatform.DbPlatformType;
+import io.ebean.core.type.DataBinder;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonObjectMapper.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonObjectMapper.java
index c5d72c7ad..dfde0c334 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonObjectMapper.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonObjectMapper.java
@@ -12,12 +12,15 @@ import com.fasterxml.jackson.databind.ObjectWriter;
import com.fasterxml.jackson.databind.SerializationConfig;
import com.fasterxml.jackson.databind.introspect.AnnotatedField;
import io.ebean.config.dbplatform.DbPlatformType;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.DocPropertyType;
+import io.ebean.core.type.ScalarType;
import io.ebean.text.TextException;
import io.ebeaninternal.json.ModifyAwareList;
import io.ebeaninternal.json.ModifyAwareMap;
import io.ebeaninternal.json.ModifyAwareOwner;
import io.ebeaninternal.json.ModifyAwareSet;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import javax.persistence.PersistenceException;
import java.io.DataInput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonSet.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonSet.java
index 3f3c08556..d95adb572 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonSet.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonSet.java
@@ -3,9 +3,12 @@ package io.ebeaninternal.server.type;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import io.ebean.config.dbplatform.DbPlatformType;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.DocPropertyType;
+import io.ebean.core.type.ScalarType;
import io.ebean.text.TextException;
import io.ebean.text.json.EJson;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import javax.persistence.PersistenceException;
import java.io.IOException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTime.java
index 945a5bde1..42997622e 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTime.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTime.java
@@ -1,10 +1,12 @@
package io.ebeaninternal.server.type;
-import io.ebean.text.TextException;
-import io.ebeaninternal.server.core.BasicTypeConverter;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
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.text.TextException;
+import io.ebeaninternal.server.core.BasicTypeConverter;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTimeWithNanos.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTimeWithNanos.java
index b74e3d27e..0633fe19c 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTimeWithNanos.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTimeWithNanos.java
@@ -1,5 +1,7 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
import io.ebeaninternal.server.core.BasicTypeConverter;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLong.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLong.java
index e2aaa1945..26c272f54 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLong.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLong.java
@@ -1,9 +1,11 @@
package io.ebeaninternal.server.type;
-import io.ebeaninternal.server.core.BasicTypeConverter;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
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.ebeaninternal.server.core.BasicTypeConverter;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMathBigInteger.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMathBigInteger.java
index d15446df5..bb101706f 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMathBigInteger.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMathBigInteger.java
@@ -1,9 +1,11 @@
package io.ebeaninternal.server.type;
-import io.ebeaninternal.server.core.BasicTypeConverter;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
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.ebeaninternal.server.core.BasicTypeConverter;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMonth.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMonth.java
index 7ee10bc88..2707c88f1 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMonth.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMonth.java
@@ -1,5 +1,8 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+
import javax.persistence.EnumType;
import java.sql.SQLException;
import java.sql.Types;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMonthDay.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMonthDay.java
index 2c4276b67..acebb04e9 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMonthDay.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMonthDay.java
@@ -1,8 +1,10 @@
package io.ebeaninternal.server.type;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
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 java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypePostgresHstore.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypePostgresHstore.java
index 888166c30..1d0451247 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypePostgresHstore.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypePostgresHstore.java
@@ -1,13 +1,15 @@
package io.ebeaninternal.server.type;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonParser;
import io.ebean.config.dbplatform.DbPlatformType;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.DocPropertyType;
import io.ebean.text.TextException;
import io.ebean.text.json.EJson;
import io.ebeaninternal.json.ModifyAwareMap;
import io.ebeaninternal.json.ModifyAwareOwner;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeShort.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeShort.java
index c1d2ae01f..43d7dac80 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeShort.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeShort.java
@@ -1,10 +1,12 @@
package io.ebeaninternal.server.type;
-import io.ebean.text.TextException;
-import io.ebeaninternal.server.core.BasicTypeConverter;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
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.text.TextException;
+import io.ebeaninternal.server.core.BasicTypeConverter;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeStringBase.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeStringBase.java
index 5f1c59b52..50b0d980d 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeStringBase.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeStringBase.java
@@ -2,8 +2,10 @@ 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.ebeaninternal.server.core.BasicTypeConverter;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTime.java
index f6fdde838..4664d79ed 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTime.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTime.java
@@ -1,9 +1,11 @@
package io.ebeaninternal.server.type;
-import io.ebeaninternal.server.core.BasicTypeConverter;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
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.ebeaninternal.server.core.BasicTypeConverter;
import java.io.DataInput;
import java.io.DataOutput;
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 fbf80de9d..92db17b5d 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
@@ -1,6 +1,8 @@
package io.ebeaninternal.server.type;
import io.ebean.config.JsonConfig;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
import io.ebeaninternal.server.core.BasicTypeConverter;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDBase.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDBase.java
index ba14a710f..28ea7c879 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDBase.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDBase.java
@@ -1,10 +1,10 @@
package io.ebeaninternal.server.type;
-import io.ebean.config.dbplatform.DbPlatformType;
-import io.ebeaninternal.server.core.BasicTypeConverter;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
+import io.ebean.config.dbplatform.DbPlatformType;
+import io.ebean.core.type.DocPropertyType;
+import io.ebeaninternal.server.core.BasicTypeConverter;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDBinary.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDBinary.java
index 0dca16f79..c94b73d67 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDBinary.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDBinary.java
@@ -1,5 +1,7 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
import io.ebeaninternal.server.core.BasicTypeConverter;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDNative.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDNative.java
index 91aac0ce5..cbbc63d27 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDNative.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDNative.java
@@ -1,6 +1,8 @@
package io.ebeaninternal.server.type;
import io.ebean.config.dbplatform.DbPlatformType;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
import java.sql.SQLException;
import java.util.UUID;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDVarchar.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDVarchar.java
index 806862ec1..aaba1c713 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDVarchar.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDVarchar.java
@@ -1,5 +1,8 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+
import java.sql.SQLException;
import java.sql.Types;
import java.util.UUID;
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 88f80a57f..711992a08 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
@@ -1,6 +1,8 @@
package io.ebeaninternal.server.type;
import io.ebean.config.JsonConfig;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
import io.ebeaninternal.server.core.BasicTypeConverter;
import java.sql.SQLException;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeWrapper.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeWrapper.java
index a55a9727f..8adee19d3 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeWrapper.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeWrapper.java
@@ -1,9 +1,12 @@
package io.ebeaninternal.server.type;
-import io.ebean.config.ScalarTypeConverter;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
+import io.ebean.config.ScalarTypeConverter;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.DocPropertyType;
+import io.ebean.core.type.ScalarType;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeYear.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeYear.java
index 2c3bfbd07..d9b35fad5 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeYear.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeYear.java
@@ -1,10 +1,12 @@
package io.ebeaninternal.server.type;
-import io.ebean.text.TextException;
-import io.ebeaninternal.server.core.BasicTypeConverter;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
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.text.TextException;
+import io.ebeaninternal.server.core.BasicTypeConverter;
import java.io.DataInput;
import java.io.DataOutput;
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeManager.java
index 7e2fa6d76..3a7071317 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeManager.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeManager.java
@@ -1,6 +1,7 @@
package io.ebeaninternal.server.type;
import io.ebean.annotation.DbArray;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.deploy.meta.DeployBeanProperty;
import javax.persistence.EnumType;
diff --git a/ebean-core/src/main/java/io/ebeanservice/docstore/api/mapping/DocPropertyMapping.java b/ebean-core/src/main/java/io/ebeanservice/docstore/api/mapping/DocPropertyMapping.java
index c34bb9a65..843f60f58 100644
--- a/ebean-core/src/main/java/io/ebeanservice/docstore/api/mapping/DocPropertyMapping.java
+++ b/ebean-core/src/main/java/io/ebeanservice/docstore/api/mapping/DocPropertyMapping.java
@@ -1,6 +1,7 @@
package io.ebeanservice.docstore.api.mapping;
import io.ebean.annotation.DocMapping;
+import io.ebean.core.type.DocPropertyType;
import java.util.ArrayList;
import java.util.List;
diff --git a/ebean-core/src/test/java/io/ebean/server/type/TestTypeManager.java b/ebean-core/src/test/java/io/ebean/server/type/TestTypeManager.java
index 90f3c2c8d..537191972 100644
--- a/ebean-core/src/test/java/io/ebean/server/type/TestTypeManager.java
+++ b/ebean-core/src/test/java/io/ebean/server/type/TestTypeManager.java
@@ -3,10 +3,10 @@ package io.ebean.server.type;
import io.ebean.BaseTestCase;
import io.ebean.config.ServerConfig;
import io.ebean.config.dbplatform.h2.H2Platform;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.core.bootup.BootupClasses;
import io.ebeaninternal.server.type.DefaultTypeManager;
import io.ebeaninternal.server.type.RsetDataReader;
-import io.ebeaninternal.server.type.ScalarType;
import io.ebeaninternal.server.type.ScalarTypeEnumStandard;
import org.junit.Assert;
import org.junit.Test;
diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/BasePlatformArrayTypeFactoryTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/type/BasePlatformArrayTypeFactoryTest.java
index 6efbaf710..aca97f3ca 100644
--- a/ebean-core/src/test/java/io/ebeaninternal/server/type/BasePlatformArrayTypeFactoryTest.java
+++ b/ebean-core/src/test/java/io/ebeaninternal/server/type/BasePlatformArrayTypeFactoryTest.java
@@ -1,5 +1,6 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.ScalarType;
import org.postgresql.util.PGobject;
import java.sql.SQLException;
diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/DefaultTypeFactoryTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/type/DefaultTypeFactoryTest.java
index 471f6ce7e..e023c9d7d 100644
--- a/ebean-core/src/test/java/io/ebeaninternal/server/type/DefaultTypeFactoryTest.java
+++ b/ebean-core/src/test/java/io/ebeaninternal/server/type/DefaultTypeFactoryTest.java
@@ -1,5 +1,6 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.ScalarType;
import org.junit.Test;
import java.sql.Types;
diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/DefaultTypeManagerTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/type/DefaultTypeManagerTest.java
index b03a452f4..e64bc2b7a 100644
--- a/ebean-core/src/test/java/io/ebeaninternal/server/type/DefaultTypeManagerTest.java
+++ b/ebean-core/src/test/java/io/ebeaninternal/server/type/DefaultTypeManagerTest.java
@@ -2,6 +2,7 @@ package io.ebeaninternal.server.type;
import io.ebean.config.ServerConfig;
import io.ebean.config.dbplatform.postgres.PostgresPlatform;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.core.bootup.BootupClasses;
import org.junit.Test;
diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/JsonTester.java b/ebean-core/src/test/java/io/ebeaninternal/server/type/JsonTester.java
index 578a1fb89..b50efaad2 100644
--- a/ebean-core/src/test/java/io/ebeaninternal/server/type/JsonTester.java
+++ b/ebean-core/src/test/java/io/ebeaninternal/server/type/JsonTester.java
@@ -5,6 +5,7 @@ import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import io.ebean.config.JsonConfig;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.server.text.json.WriteJson;
import java.io.IOException;
diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeArrayListTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeArrayListTest.java
index 7004781f4..5e9a99645 100644
--- a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeArrayListTest.java
+++ b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeArrayListTest.java
@@ -1,6 +1,8 @@
package io.ebeaninternal.server.type;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.ScalarType;
import org.junit.Test;
import org.mockito.Mockito;
diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJsonListTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJsonListTest.java
index 75334885e..ff329efac 100644
--- a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJsonListTest.java
+++ b/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJsonListTest.java
@@ -1,7 +1,7 @@
package io.ebeaninternal.server.type;
import io.ebean.config.dbplatform.ExtraDbTypes;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
+import io.ebean.core.type.DocPropertyType;
import org.junit.Test;
import java.sql.SQLException;
diff --git a/ebean-core/src/test/java/org/tests/basic/TestJodaType.java b/ebean-core/src/test/java/org/tests/basic/TestJodaType.java
index 59eeda3a0..a7f76a3d7 100644
--- a/ebean-core/src/test/java/org/tests/basic/TestJodaType.java
+++ b/ebean-core/src/test/java/org/tests/basic/TestJodaType.java
@@ -2,10 +2,10 @@ package org.tests.basic;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.api.SpiEbeanServer;
import io.ebeaninternal.server.deploy.BeanDescriptor;
import io.ebeaninternal.server.deploy.BeanProperty;
-import io.ebeaninternal.server.type.ScalarType;
import org.tests.model.basic.TJodaEntity;
import org.joda.time.LocalTime;
import org.junit.Assert;
diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml
index db9f6c013..e889b89db 100644
--- a/ebean-ddl-generator/pom.xml
+++ b/ebean-ddl-generator/pom.xml
@@ -10,6 +10,7 @@
ebean ddl generation
DDL and DB Migration generation
ebean-ddl-generator
+
@@ -25,6 +26,13 @@
12.2.0
+
+ io.ebean
+ ebean-core-type
+ 12.6.1-SNAPSHOT
+ provided
+
+
io.ebean
ebean-core
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildContext.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildContext.java
index 8c55e39ed..2dc0b245d 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildContext.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildContext.java
@@ -4,6 +4,7 @@ import io.ebean.config.DbConstraintNaming;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.config.dbplatform.DbPlatformType;
import io.ebean.config.dbplatform.DbPlatformTypeMapping;
+import io.ebean.core.type.ScalarType;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.DefaultConstraintMaxLength;
import io.ebeaninternal.dbmigration.model.MColumn;
import io.ebeaninternal.dbmigration.model.MCompoundForeignKey;
@@ -14,7 +15,6 @@ import io.ebeaninternal.server.deploy.BeanDescriptor;
import io.ebeaninternal.server.deploy.BeanProperty;
import io.ebeaninternal.server.deploy.TableJoin;
import io.ebeaninternal.server.deploy.TableJoinColumn;
-import io.ebeaninternal.server.type.ScalarType;
import java.util.Collection;
import java.util.List;
diff --git a/ebean-postgis/src/main/java/io/ebean/postgis/PostgisExtraTypeFactory.java b/ebean-postgis/src/main/java/io/ebean/postgis/PostgisExtraTypeFactory.java
index a4990ad50..c8c95e009 100644
--- a/ebean-postgis/src/main/java/io/ebean/postgis/PostgisExtraTypeFactory.java
+++ b/ebean-postgis/src/main/java/io/ebean/postgis/PostgisExtraTypeFactory.java
@@ -1,14 +1,14 @@
package io.ebean.postgis;
import io.ebean.config.DatabaseConfig;
+import io.ebean.core.type.ExtraTypeFactory;
+import io.ebean.core.type.ScalarType;
import io.ebean.postgis.latte.ScalarTypeGeoLatteLineString;
import io.ebean.postgis.latte.ScalarTypeGeoLatteMultiLineString;
import io.ebean.postgis.latte.ScalarTypeGeoLatteMultiPoint;
import io.ebean.postgis.latte.ScalarTypeGeoLatteMultiPolygon;
import io.ebean.postgis.latte.ScalarTypeGeoLattePoint;
import io.ebean.postgis.latte.ScalarTypeGeoLattePolygon;
-import io.ebeaninternal.api.ExtraTypeFactory;
-import io.ebeaninternal.server.type.ScalarType;
import java.util.ArrayList;
import java.util.List;
diff --git a/ebean-postgis/src/main/java/io/ebean/postgis/PostgisGeoTypeBinder.java b/ebean-postgis/src/main/java/io/ebean/postgis/PostgisGeoTypeBinder.java
index b6951e6e9..32765036b 100644
--- a/ebean-postgis/src/main/java/io/ebean/postgis/PostgisGeoTypeBinder.java
+++ b/ebean-postgis/src/main/java/io/ebean/postgis/PostgisGeoTypeBinder.java
@@ -1,6 +1,6 @@
package io.ebean.postgis;
-import io.ebeaninternal.server.type.DataBinder;
+import io.ebean.core.type.DataBinder;
import io.ebeaninternal.server.type.GeoTypeBinder;
import org.geolatte.geom.codec.Wkt;
import org.postgis.Geometry;
diff --git a/ebean-postgis/src/main/java/io/ebean/postgis/ScalarTypePgisBase.java b/ebean-postgis/src/main/java/io/ebean/postgis/ScalarTypePgisBase.java
index 66f494823..2b8463d0b 100644
--- a/ebean-postgis/src/main/java/io/ebean/postgis/ScalarTypePgisBase.java
+++ b/ebean-postgis/src/main/java/io/ebean/postgis/ScalarTypePgisBase.java
@@ -2,10 +2,10 @@ package io.ebean.postgis;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
-import io.ebeaninternal.server.type.DataBinder;
-import io.ebeaninternal.server.type.DataReader;
-import io.ebeaninternal.server.type.ScalarType;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.DocPropertyType;
+import io.ebean.core.type.ScalarType;
import org.postgis.Geometry;
import org.postgis.PGgeometry;
import org.postgis.PGgeometryLW;
diff --git a/ebean-postgis/src/main/java/io/ebean/postgis/latte/ScalarTypeGeoLatteBase.java b/ebean-postgis/src/main/java/io/ebean/postgis/latte/ScalarTypeGeoLatteBase.java
index f14aa9706..f4c5d7769 100644
--- a/ebean-postgis/src/main/java/io/ebean/postgis/latte/ScalarTypeGeoLatteBase.java
+++ b/ebean-postgis/src/main/java/io/ebean/postgis/latte/ScalarTypeGeoLatteBase.java
@@ -2,10 +2,10 @@ package io.ebean.postgis.latte;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
-import io.ebeaninternal.server.type.DataBinder;
-import io.ebeaninternal.server.type.DataReader;
-import io.ebeaninternal.server.type.ScalarType;
-import io.ebeanservice.docstore.api.mapping.DocPropertyType;
+import io.ebean.core.type.DataBinder;
+import io.ebean.core.type.DataReader;
+import io.ebean.core.type.DocPropertyType;
+import io.ebean.core.type.ScalarType;
import org.geolatte.geom.Geometry;
import org.geolatte.geom.codec.Wkt;
import org.postgis.PGgeometry;
diff --git a/ebean-postgis/src/main/resources/META-INF/services/io.ebeaninternal.api.ExtraTypeFactory b/ebean-postgis/src/main/resources/META-INF/services/io.ebean.core.type.ExtraTypeFactory
similarity index 100%
rename from ebean-postgis/src/main/resources/META-INF/services/io.ebeaninternal.api.ExtraTypeFactory
rename to ebean-postgis/src/main/resources/META-INF/services/io.ebean.core.type.ExtraTypeFactory
diff --git a/pom.xml b/pom.xml
index cf603faac..aca6e2181 100644
--- a/pom.xml
+++ b/pom.xml
@@ -71,6 +71,7 @@
ebean
ebean-api
ebean-bom
+ ebean-core-type
ebean-core
ebean-ddl-generator
ebean-autotune