diff --git a/pom.xml b/pom.xml
index 94dac9412..ca6f7eaf0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -124,7 +124,7 @@
io.ebean
ebean-types
- 1.3
+ 2.1
diff --git a/src/main/java/io/ebean/config/dbplatform/DbPlatformTypeMapping.java b/src/main/java/io/ebean/config/dbplatform/DbPlatformTypeMapping.java
index cc17d0fb3..c5d25a889 100644
--- a/src/main/java/io/ebean/config/dbplatform/DbPlatformTypeMapping.java
+++ b/src/main/java/io/ebean/config/dbplatform/DbPlatformTypeMapping.java
@@ -29,6 +29,8 @@ public class DbPlatformTypeMapping {
private static final DbPlatformType INET_NATIVE = new DbPlatformType("inet", false);
private static final DbPlatformType INET_VARCHAR = new DbPlatformType("varchar", 50);
+ private static final DbPlatformType CIDR_NATIVE = new DbPlatformType("cidr", false);
+ private static final DbPlatformType CIDR_VARCHAR = new DbPlatformType("varchar", 50);
private static final DbPlatformType UUID_NATIVE = new DbPlatformType("uuid", false);
@SuppressWarnings("unused")
@@ -110,6 +112,7 @@ public class DbPlatformTypeMapping {
put(DbType.JSONVARCHAR, new DbPlatformType("jsonvarchar", 1000));
put(DbType.UUID, UUID_NATIVE);
put(DbType.INET, INET_NATIVE);
+ put(DbType.CIDR, CIDR_NATIVE);
} else {
put(DbType.VARCHAR, new DbPlatformType("varchar", 255));
@@ -126,6 +129,7 @@ public class DbPlatformTypeMapping {
// default to native UUID and override on platform configure()
put(DbType.UUID, UUID_NATIVE);
put(DbType.INET, INET_VARCHAR);
+ put(DbType.CIDR, CIDR_VARCHAR);
}
}
diff --git a/src/main/java/io/ebean/config/dbplatform/DbType.java b/src/main/java/io/ebean/config/dbplatform/DbType.java
index 6f7705d65..5a9fa51bb 100644
--- a/src/main/java/io/ebean/config/dbplatform/DbType.java
+++ b/src/main/java/io/ebean/config/dbplatform/DbType.java
@@ -36,7 +36,7 @@ public enum DbType {
UUID(ExtraDbTypes.UUID),
INET(ExtraDbTypes.INET),
- CDIR(ExtraDbTypes.CDIR),
+ CIDR(ExtraDbTypes.CIDR),
POINT(ExtraDbTypes.POINT),
POLYGON(ExtraDbTypes.POLYGON),
diff --git a/src/main/java/io/ebean/config/dbplatform/ExtraDbTypes.java b/src/main/java/io/ebean/config/dbplatform/ExtraDbTypes.java
index d7b0f9339..e56fe2b89 100644
--- a/src/main/java/io/ebean/config/dbplatform/ExtraDbTypes.java
+++ b/src/main/java/io/ebean/config/dbplatform/ExtraDbTypes.java
@@ -41,7 +41,7 @@ public interface ExtraDbTypes {
int JSONBlob = 5005;
int INET = 5020;
- int CDIR = 5021;
+ int CIDR = 5021;
/**
* Geo Point
diff --git a/src/main/java/io/ebean/config/dbplatform/clickhouse/ClickHousePlatform.java b/src/main/java/io/ebean/config/dbplatform/clickhouse/ClickHousePlatform.java
index 17ee210bf..742f97321 100644
--- a/src/main/java/io/ebean/config/dbplatform/clickhouse/ClickHousePlatform.java
+++ b/src/main/java/io/ebean/config/dbplatform/clickhouse/ClickHousePlatform.java
@@ -47,7 +47,7 @@ public class ClickHousePlatform extends DatabasePlatform {
dbTypeMap.put(DbType.UUID, new DbPlatformType("UUID", false));
dbTypeMap.put(DbType.INET, new DbPlatformType("String", false));
- dbTypeMap.put(DbType.CDIR, new DbPlatformType("String", false));
+ dbTypeMap.put(DbType.CIDR, new DbPlatformType("String", false));
}
@Override
diff --git a/src/main/java/io/ebean/config/dbplatform/postgres/PostgresPlatform.java b/src/main/java/io/ebean/config/dbplatform/postgres/PostgresPlatform.java
index b280d1a61..0c17ab55f 100644
--- a/src/main/java/io/ebean/config/dbplatform/postgres/PostgresPlatform.java
+++ b/src/main/java/io/ebean/config/dbplatform/postgres/PostgresPlatform.java
@@ -63,6 +63,7 @@ public class PostgresPlatform extends DatabasePlatform {
dbTypeMap.put(DbType.UUID, new DbPlatformType("uuid", false));
dbTypeMap.put(DbType.INET, new DbPlatformType("inet", false));
+ dbTypeMap.put(DbType.CIDR, new DbPlatformType("cidr", false));
dbTypeMap.put(DbType.HSTORE, new DbPlatformType("hstore", false));
dbTypeMap.put(DbType.JSON, new DbPlatformType("json", false));
dbTypeMap.put(DbType.JSONB, new DbPlatformType("jsonb", false));
diff --git a/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java b/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java
index 9da7169dc..907484a4d 100644
--- a/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java
+++ b/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java
@@ -14,7 +14,7 @@ import io.ebean.config.ScalarTypeConverter;
import io.ebean.config.ServerConfig;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.config.dbplatform.DbPlatformType;
-import io.ebean.types.Cdir;
+import io.ebean.types.Cidr;
import io.ebean.types.Inet;
import io.ebean.util.AnnotationUtil;
import io.ebeaninternal.api.ExtraTypeFactory;
@@ -993,10 +993,10 @@ public final class DefaultTypeManager implements TypeManager {
}
if (offlineMigrationGeneration || postgres) {
- addType(Cdir.class, new ScalarTypeCdir.Postgres());
+ addType(Cidr.class, new ScalarTypeCdir.Postgres());
addType(Inet.class, new ScalarTypeInet.Postgres());
} else {
- addType(Cdir.class, new ScalarTypeCdir.Varchar());
+ addType(Cidr.class, new ScalarTypeCdir.Varchar());
addType(Inet.class, new ScalarTypeInet.Varchar());
}
diff --git a/src/main/java/io/ebeaninternal/server/type/ScalarTypeCdir.java b/src/main/java/io/ebeaninternal/server/type/ScalarTypeCdir.java
index cef625c29..fe7573f49 100644
--- a/src/main/java/io/ebeaninternal/server/type/ScalarTypeCdir.java
+++ b/src/main/java/io/ebeaninternal/server/type/ScalarTypeCdir.java
@@ -1,7 +1,7 @@
package io.ebeaninternal.server.type;
import io.ebean.config.dbplatform.ExtraDbTypes;
-import io.ebean.types.Cdir;
+import io.ebean.types.Cidr;
import java.sql.SQLException;
import java.sql.Types;
@@ -9,33 +9,33 @@ import java.sql.Types;
/**
* ScalarType for Cdir to Varchar or Postgres CDIR.
*/
-public abstract class ScalarTypeCdir extends ScalarTypeBaseVarchar {
+public abstract class ScalarTypeCdir extends ScalarTypeBaseVarchar {
ScalarTypeCdir() {
- super(Cdir.class, false, ExtraDbTypes.INET);
+ super(Cidr.class, false, ExtraDbTypes.CIDR);
}
@Override
- public abstract void bind(DataBind b, Cdir value) throws SQLException;
+ public abstract void bind(DataBind b, Cidr value) throws SQLException;
@Override
- public Cdir convertFromDbString(String dbValue) {
+ public Cidr convertFromDbString(String dbValue) {
return parse(dbValue);
}
@Override
- public String convertToDbString(Cdir beanValue) {
+ public String convertToDbString(Cidr beanValue) {
return formatValue(beanValue);
}
@Override
- public String formatValue(Cdir value) {
+ public String formatValue(Cidr value) {
return value.getAddress();
}
@Override
- public Cdir parse(String value) {
- return new Cdir(value);
+ public Cidr parse(String value) {
+ return new Cidr(value);
}
/**
@@ -44,7 +44,7 @@ public abstract class ScalarTypeCdir extends ScalarTypeBaseVarchar {
public static class Varchar extends ScalarTypeCdir {
@Override
- public void bind(DataBind b, Cdir value) throws SQLException {
+ public void bind(DataBind b, Cidr value) throws SQLException {
if (value == null) {
b.setNull(Types.VARCHAR);
} else {
@@ -59,7 +59,7 @@ public abstract class ScalarTypeCdir extends ScalarTypeBaseVarchar {
public static class Postgres extends ScalarTypeCdir {
@Override
- public void bind(DataBind b, Cdir value) throws SQLException {
+ public void bind(DataBind b, Cidr value) throws SQLException {
if (value == null) {
b.setNull(Types.OTHER);
} else {
diff --git a/src/test/java/org/tests/basic/type/TestInetAddressType.java b/src/test/java/org/tests/basic/type/TestInetAddressType.java
index 6f821802f..66910df8f 100644
--- a/src/test/java/org/tests/basic/type/TestInetAddressType.java
+++ b/src/test/java/org/tests/basic/type/TestInetAddressType.java
@@ -2,7 +2,7 @@ package org.tests.basic.type;
import io.ebean.DB;
import io.ebean.TransactionalTestCase;
-import io.ebean.types.Cdir;
+import io.ebean.types.Cidr;
import io.ebean.types.Inet;
import org.junit.Test;
import org.tests.model.basic.EWithInetAddr;
@@ -21,16 +21,16 @@ public class TestInetAddressType extends TransactionalTestCase {
@Test
public void testIp4() throws UnknownHostException {
- insertUpdateDeleteFind("120.12.12.56", "120.12.12.56");
+ insertUpdateDeleteFind("120.12.12.56", "120.12.12.56", "192.168.100.128/25", "192.168.100.128/25");
}
@Test
public void testIp6() throws UnknownHostException {
if (isPostgres()) {
- insertUpdateDeleteFind("2001:db8:85a3:0:0:8a2e:370:7334", "2001:db8:85a3::8a2e:370:7334");
+ insertUpdateDeleteFind("2001:db8:85a3:0:0:8a2e:370:7334", "2001:db8:85a3::8a2e:370:7334", "2001:4f8:3:ba::/64", "2001:4f8:3:ba::/64");
} else {
- insertUpdateDeleteFind("2001:db8:85a3:0:0:8a2e:370:7334", "2001:db8:85a3:0:0:8a2e:370:7334");
+ insertUpdateDeleteFind("2001:db8:85a3:0:0:8a2e:370:7334", "2001:db8:85a3:0:0:8a2e:370:7334", "192.168.100.128/25", "192.168.100.128/25");
}
}
@@ -85,7 +85,7 @@ public class TestInetAddressType extends TransactionalTestCase {
.findList();
}
- private void insertUpdateDeleteFind(String ipAddress, String expected) throws UnknownHostException {
+ private void insertUpdateDeleteFind(String ipAddress, String expected, String cidr, String cidrExpected) throws UnknownHostException {
EWithInetAddr bean1 = new EWithInetAddr();
bean1.setName("jim");
@@ -93,7 +93,7 @@ public class TestInetAddressType extends TransactionalTestCase {
InetAddress address1 = InetAddress.getByName(ipAddress);
bean1.setInetAddress(address1);
bean1.setInet2(new Inet(ipAddress));
- bean1.setCdir(new Cdir(ipAddress));
+ bean1.setCidr(new Cidr(cidr));
DB.save(bean1);
@@ -103,12 +103,12 @@ public class TestInetAddressType extends TransactionalTestCase {
assertNotNull(address2.getHostAddress());
assertThat(address1.getHostAddress()).isEqualTo(address2.getHostAddress());
assertThat(bean2.getInet2().getAddress()).isEqualTo(expected);
- assertThat(bean2.getCdir().getAddress()).isEqualTo(expected);
+ assertThat(bean2.getCidr().getAddress()).isEqualTo(cidrExpected);
bean2.setName("modJim");
bean2.setInetAddress(InetAddress.getByName("120.12.20.80"));
bean1.setInet2(new Inet("120.12.20.80"));
- bean1.setCdir(new Cdir("120.12.20.80"));
+ bean1.setCidr(new Cidr("120.12.20.80"));
DB.save(bean2);
DB.delete(bean2);
}
@@ -116,23 +116,23 @@ public class TestInetAddressType extends TransactionalTestCase {
@Test
public void testIp6_ranges() {
- insertFindDeleteRange("2001:4f8:3:ba::/64");
- insertFindDeleteRange("2001:4f8:3:ba:2e0:81ff:fe22:d1f1/64");
+ insertFindDeleteRange("2001:4f8:3:ba::/64", "2001:4f8:3:ba::/64");
+ insertFindDeleteRange("2001:4f8:3:ba:2e0:81ff:fe22:d1f1/64", "2001:4f8:3:ba:2e0:81ff:fe22:d1f1/128");
}
- private void insertFindDeleteRange(String ipAddressRange) {
+ private void insertFindDeleteRange(String ipAddressRange, String cidr) {
EWithInetAddr bean1 = new EWithInetAddr();
bean1.setName("withRange");
bean1.setInet2(new Inet(ipAddressRange));
- bean1.setCdir(new Cdir(ipAddressRange));
+ bean1.setCidr(new Cidr(cidr));
DB.save(bean1);
EWithInetAddr bean2 = DB.find(EWithInetAddr.class, bean1.getId());
assertNotNull(bean2.getInet2());
assertThat(bean2.getInet2().getAddress()).isEqualTo(ipAddressRange);
- assertThat(bean2.getCdir().getAddress()).isEqualTo(ipAddressRange);
+ assertThat(bean2.getCidr().getAddress()).isEqualTo(cidr);
DB.delete(bean2);
}
diff --git a/src/test/java/org/tests/model/basic/EWithInetAddr.java b/src/test/java/org/tests/model/basic/EWithInetAddr.java
index 87ca89342..29a187be3 100644
--- a/src/test/java/org/tests/model/basic/EWithInetAddr.java
+++ b/src/test/java/org/tests/model/basic/EWithInetAddr.java
@@ -1,6 +1,6 @@
package org.tests.model.basic;
-import io.ebean.types.Cdir;
+import io.ebean.types.Cidr;
import io.ebean.types.Inet;
import javax.persistence.Entity;
@@ -25,7 +25,7 @@ public class EWithInetAddr {
Inet inet2;
- Cdir cdir;
+ Cidr cidr;
public Long getId() {
return id;
@@ -67,11 +67,11 @@ public class EWithInetAddr {
this.inet2 = inet2;
}
- public Cdir getCdir() {
- return cdir;
+ public Cidr getCidr() {
+ return cidr;
}
- public void setCdir(Cdir cdir) {
- this.cdir = cdir;
+ public void setCidr(Cidr cidr) {
+ this.cidr = cidr;
}
}