From 9f624ec2bfc7e6b99fe84e2ac6b640c60a523be3 Mon Sep 17 00:00:00 2001
From: Robin Bygrave
Date: Tue, 9 Apr 2013 00:05:42 +1200
Subject: [PATCH] Remove Validation and LDAP features
---
pom.xml | 7 +
.../server/core/DefaultServer.java | 35 ---
.../server/core/InternalConfiguration.java | 2 +-
.../server/core/PersistRequestBean.java | 13 --
.../server/deploy/BeanCollectionHelp.java | 7 -
.../server/deploy/BeanDescriptor.java | 114 +---------
.../server/deploy/BeanDescriptorManager.java | 33 ---
.../server/deploy/BeanListHelp.java | 19 --
.../server/deploy/BeanMapHelp.java | 22 --
.../server/deploy/BeanProperty.java | 71 +------
.../server/deploy/BeanPropertyAssocMany.java | 13 --
.../server/deploy/BeanPropertyAssocOne.java | 8 -
.../server/deploy/BeanSetHelp.java | 21 --
.../deploy/meta/DeployBeanProperty.java | 39 ----
.../deploy/meta/DeployBeanPropertyLists.java | 18 --
.../deploy/parse/AnnotationAssocOnes.java | 2 +-
.../server/deploy/parse/AnnotationFields.java | 56 +----
.../server/deploy/parse/DeployUtil.java | 19 --
.../server/persist/DefaultPersistExecute.java | 200 +++++++++---------
.../server/persist/DefaultPersister.java | 5 +-
.../com/avaje/tests/model/basic/Address.java | 9 +-
.../com/avaje/tests/model/basic/Country.java | 6 +-
.../com/avaje/tests/model/basic/Customer.java | 8 +-
.../com/avaje/tests/model/basic/Order.java | 2 +-
.../com/avaje/tests/model/basic/Phone.java | 3 +-
.../com/avaje/tests/model/basic/Product.java | 4 +-
.../tests/model/basic/TWithPreInsert.java | 5 +-
27 files changed, 132 insertions(+), 609 deletions(-)
diff --git a/pom.xml b/pom.xml
index 966bc14e6..3e64ac5eb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,6 +50,13 @@
provided
+
+ javax.validation
+ validation-api
+ 1.0.0.GA
+ provided
+
+
javax.servlet
servlet-api
diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java
index cf0e693cc..c65412d1d 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java
@@ -32,7 +32,6 @@ import com.avaje.ebean.Filter;
import com.avaje.ebean.FutureIds;
import com.avaje.ebean.FutureList;
import com.avaje.ebean.FutureRowCount;
-import com.avaje.ebean.InvalidValue;
import com.avaje.ebean.PagingList;
import com.avaje.ebean.Query;
import com.avaje.ebean.QueryIterator;
@@ -119,11 +118,6 @@ public final class DefaultServer implements SpiEbeanServer {
private static final Logger logger = Logger.getLogger(DefaultServer.class.getName());
- /**
- * Used when no errors are found validating a property.
- */
- private static final InvalidValue[] EMPTY_INVALID_VALUES = new InvalidValue[0];
-
private final String serverName;
private final DatabasePlatform databasePlatform;
@@ -521,35 +515,6 @@ public final class DefaultServer implements SpiEbeanServer {
beanLoader.loadBean(ebi);
}
- public InvalidValue validate(Object bean) {
- if (bean == null) {
- return null;
- }
- BeanDescriptor> beanDescriptor = getBeanDescriptor(bean.getClass());
- return beanDescriptor.validate(true, bean);
- }
-
- public InvalidValue[] validate(Object bean, String propertyName, Object value) {
- if (bean == null) {
- return null;
- }
- BeanDescriptor> beanDescriptor = getBeanDescriptor(bean.getClass());
- BeanProperty prop = beanDescriptor.getBeanProperty(propertyName);
- if (prop == null) {
- String msg = "property " + propertyName + " was not found?";
- throw new PersistenceException(msg);
- }
- if (value == null) {
- value = prop.getValue(bean);
- }
- List errors = prop.validate(true, value);
- if (errors == null) {
- return EMPTY_INVALID_VALUES;
- } else {
- return InvalidValue.toArray(errors);
- }
- }
-
public Map diff(Object a, Object b) {
if (a == null) {
return null;
diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/InternalConfiguration.java b/src/main/java/com/avaje/ebeaninternal/server/core/InternalConfiguration.java
index e6a899f52..11f71f557 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/core/InternalConfiguration.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/core/InternalConfiguration.java
@@ -176,7 +176,7 @@ public class InternalConfiguration {
public Persister createPersister(SpiEbeanServer server) {
- return new DefaultPersister(server, serverConfig.isValidateOnSave(), binder, beanDescriptorManager, pstmtBatch);
+ return new DefaultPersister(server, binder, beanDescriptorManager, pstmtBatch);
}
public PstmtBatch getPstmtBatch() {
diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/PersistRequestBean.java b/src/main/java/com/avaje/ebeaninternal/server/core/PersistRequestBean.java
index 0b19521cb..3d58118e3 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/core/PersistRequestBean.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/core/PersistRequestBean.java
@@ -6,8 +6,6 @@ import java.util.Set;
import javax.persistence.OptimisticLockException;
-import com.avaje.ebean.InvalidValue;
-import com.avaje.ebean.ValidationException;
import com.avaje.ebean.annotation.ConcurrencyMode;
import com.avaje.ebean.bean.EntityBean;
import com.avaje.ebean.bean.EntityBeanIntercept;
@@ -452,17 +450,6 @@ public class PersistRequestBean extends PersistRequest implements BeanPersist
return intercept;
}
- /**
- * Validate the bean. This is not recursive and only runs the 'local'
- * validation rules.
- */
- public void validate() {
- InvalidValue errs = beanDescriptor.validate(false, bean);
- if (errs != null) {
- throw new ValidationException(errs);
- }
- }
-
/**
* Return true if this property is loaded (full bean or included in partial
* bean).
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanCollectionHelp.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanCollectionHelp.java
index e7f88b754..061624e23 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanCollectionHelp.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanCollectionHelp.java
@@ -1,10 +1,8 @@
package com.avaje.ebeaninternal.server.deploy;
-import java.util.ArrayList;
import java.util.Iterator;
import com.avaje.ebean.EbeanServer;
-import com.avaje.ebean.InvalidValue;
import com.avaje.ebean.Query;
import com.avaje.ebean.Transaction;
import com.avaje.ebean.bean.BeanCollection;
@@ -50,11 +48,6 @@ public interface BeanCollectionHelp {
*/
public BeanCollection createReference(Object parentBean, String propertyName);
- /**
- * Validate the List Set or Map.
- */
- public ArrayList validate(Object manyValue);
-
/**
* Refresh the List Set or Map.
*/
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptor.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptor.java
index d52bc2ac0..b146864f0 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptor.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptor.java
@@ -17,7 +17,6 @@ import java.util.logging.Logger;
import javax.persistence.PersistenceException;
-import com.avaje.ebean.InvalidValue;
import com.avaje.ebean.Query;
import com.avaje.ebean.Query.UseIndex;
import com.avaje.ebean.SqlUpdate;
@@ -38,7 +37,6 @@ import com.avaje.ebean.event.BeanPersistListener;
import com.avaje.ebean.event.BeanQueryAdapter;
import com.avaje.ebean.text.TextException;
import com.avaje.ebean.text.json.JsonWriteBeanVisitor;
-import com.avaje.ebean.validation.factory.Validator;
import com.avaje.ebeaninternal.api.SpiEbeanServer;
import com.avaje.ebeaninternal.api.SpiQuery;
import com.avaje.ebeaninternal.api.SpiUpdatePlan;
@@ -303,28 +301,6 @@ public class BeanDescriptor {
private final Map namedUpdates;
- /**
- * Has local validation rules.
- */
- private final boolean hasLocalValidation;
-
- /**
- * Has local or recursive validation rules.
- */
- private final boolean hasCascadeValidation;
-
- /**
- * Properties with local validation rules.
- */
- private final BeanProperty[] propertiesValidationLocal;
-
- /**
- * Properties with local or cascade validation rules.
- */
- private final BeanProperty[] propertiesValidationCascade;
-
- private final Validator[] beanValidators;
-
/**
* Flag used to determine if saves can be skipped.
*/
@@ -483,13 +459,7 @@ public class BeanDescriptor {
// Check if there are no cascade delete associated beans (also subject to
// change in initialiseOther()).
deleteRecurseSkippable = (0 == (propertiesOneExportedDelete.length + propertiesOneImportedDelete.length + propertiesManyDelete.length));
-
- this.propertiesValidationLocal = listHelper.getPropertiesWithValidators(false);
- this.propertiesValidationCascade = listHelper.getPropertiesWithValidators(true);
- this.beanValidators = listHelper.getBeanValidators();
- this.hasLocalValidation = (propertiesValidationLocal.length > 0 || beanValidators.length > 0);
- this.hasCascadeValidation = (propertiesValidationCascade.length > 0 || beanValidators.length > 0);
-
+
// object used to handle Id values
this.idBinder = owner.createIdBinder(propertiesId);
}
@@ -1260,88 +1230,6 @@ public class BeanDescriptor {
return deleteRecurseSkippable;
}
- /**
- * Return true if this type has local validation rules.
- */
- public boolean hasLocalValidation() {
- return hasLocalValidation;
- }
-
- /**
- * Return true if this type has local or cascading validation rules.
- */
- public boolean hasCascadeValidation() {
- return hasCascadeValidation;
- }
-
- public InvalidValue validate(boolean cascade, Object bean) {
-
- if (!hasCascadeValidation) {
- // no validation rules at all on this bean
- return null;
- }
-
- List errList = null;
-
- Set loadedProps = null;
- if (bean instanceof EntityBean) {
- EntityBeanIntercept ebi = ((EntityBean) bean)._ebean_getIntercept();
- loadedProps = ebi.getLoadedProps();
- }
- if (loadedProps != null) {
- // validate just the loaded properties
- Iterator propIt = loadedProps.iterator();
- while (propIt.hasNext()) {
- String propName = (String) propIt.next();
- BeanProperty property = getBeanProperty(propName);
-
- // check if we should fire validation on this property
- if (property != null && property.hasValidationRules(cascade)) {
- Object value = property.getValue(bean);
- List errs = property.validate(cascade, value);
- if (errs != null) {
- if (errList == null) {
- errList = new ArrayList();
- }
- errList.addAll(errs);
- }
- }
- }
- } else {
- // get appropriate list of properties with validation rules
- BeanProperty[] props = cascade ? propertiesValidationCascade : propertiesValidationLocal;
-
- // validate all the properties
- for (int i = 0; i < props.length; i++) {
- BeanProperty prop = props[i];
- Object value = prop.getValue(bean);
- List errs = prop.validate(cascade, value);
- if (errs != null) {
- if (errList == null) {
- errList = new ArrayList();
- }
- errList.addAll(errs);
- }
- }
- }
-
- for (int i = 0; i < beanValidators.length; i++) {
- if (!beanValidators[i].isValid(bean)) {
- if (errList == null) {
- errList = new ArrayList();
- }
- Validator v = beanValidators[i];
- errList.add(new InvalidValue(v.getKey(), v.getAttributes(), getFullName(), null, bean));
- }
- }
-
- if (errList == null) {
- return null;
- }
-
- return new InvalidValue(null, getFullName(), bean, InvalidValue.toArray(errList));
- }
-
/**
* Return the many property included in the query or null if one is not.
*/
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptorManager.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptorManager.java
index 3f23182cc..06c64f79c 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptorManager.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptorManager.java
@@ -31,8 +31,6 @@ import com.avaje.ebean.config.dbplatform.DbIdentity;
import com.avaje.ebean.config.dbplatform.IdGenerator;
import com.avaje.ebean.config.dbplatform.IdType;
import com.avaje.ebean.event.BeanFinder;
-import com.avaje.ebean.validation.factory.LengthValidatorFactory;
-import com.avaje.ebean.validation.factory.NotNullValidatorFactory;
import com.avaje.ebeaninternal.api.SpiEbeanServer;
import com.avaje.ebeaninternal.api.TransactionEventTable;
import com.avaje.ebeaninternal.server.core.BootupClasses;
@@ -1052,8 +1050,6 @@ public class BeanDescriptorManager implements BeanDescriptorMap {
setConcurrencyMode(desc);
}
- autoAddValidators(desc);
-
// generate the byte code
createByteCode(desc);
}
@@ -1142,35 +1138,6 @@ public class BeanDescriptorManager implements BeanDescriptorMap {
setBeanReflect(deploy);
}
- /**
- * Add Length and NotNull validators based on Column annotation etc.
- */
- private void autoAddValidators(DeployBeanDescriptor> deployDesc) {
-
- for (DeployBeanProperty prop : deployDesc.propertiesBase()) {
- autoAddValidators(prop);
- }
- }
-
- /**
- * Add Length and NotNull validators based on Column annotation etc.
- */
- private void autoAddValidators(DeployBeanProperty prop) {
-
- if (String.class.equals(prop.getPropertyType()) && prop.getDbLength() > 0) {
- // check if the property already has the LengthValidator
- if (!prop.containsValidatorType(LengthValidatorFactory.LengthValidator.class)) {
- prop.addValidator(LengthValidatorFactory.create(0, prop.getDbLength()));
- }
- }
- if (!prop.isNullable() && !prop.isId() && !prop.isGenerated()) {
- // check if the property already has the NotNullValidator
- if (!prop.containsValidatorType(NotNullValidatorFactory.NotNullValidator.class)) {
- prop.addValidator(NotNullValidatorFactory.NOT_NULL);
- }
- }
- }
-
/**
* Set the Scalar Types on all the simple types. This is done AFTER transients
* have been identified. This is because a non-transient field MUST have a
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanListHelp.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanListHelp.java
index 1b424dc11..72ba45f0f 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanListHelp.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanListHelp.java
@@ -5,7 +5,6 @@ import java.util.Iterator;
import java.util.List;
import com.avaje.ebean.EbeanServer;
-import com.avaje.ebean.InvalidValue;
import com.avaje.ebean.Query;
import com.avaje.ebean.Transaction;
import com.avaje.ebean.bean.BeanCollection;
@@ -86,24 +85,6 @@ public final class BeanListHelp implements BeanCollectionHelp {
return new BeanList(loader, parentBean, propertyName);
}
- public ArrayList validate(Object manyValue) {
-
- ArrayList errs = null;
-
- List> l = (List>) manyValue;
- for (int i = 0; i < l.size(); i++) {
- Object detailBean = l.get(i);
- InvalidValue invalid = targetDescriptor.validate(true, detailBean);
- if (invalid != null) {
- if (errs == null) {
- errs = new ArrayList();
- }
- errs.add(invalid);
- }
- }
- return errs;
- }
-
public void refresh(EbeanServer server, Query> query, Transaction t, Object parentBean) {
BeanList> newBeanList = (BeanList>) server.findList(query, t);
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanMapHelp.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanMapHelp.java
index 978233959..5ec76d500 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanMapHelp.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanMapHelp.java
@@ -1,13 +1,11 @@
package com.avaje.ebeaninternal.server.deploy;
-import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
import com.avaje.ebean.EbeanServer;
-import com.avaje.ebean.InvalidValue;
import com.avaje.ebean.Query;
import com.avaje.ebean.Transaction;
import com.avaje.ebean.bean.BeanCollection;
@@ -121,26 +119,6 @@ public final class BeanMapHelp implements BeanCollectionHelp {
return new BeanMap(loader, parentBean, propertyName);
}
- public ArrayList validate(Object manyValue) {
-
- ArrayList errs = null;
-
- Map, ?> m = (Map, ?>) manyValue;
- Iterator> it = m.values().iterator();
- while (it.hasNext()) {
- Object detailBean = (Object) it.next();
- InvalidValue invalid = targetDescriptor.validate(true, detailBean);
- if (invalid != null) {
- if (errs == null) {
- errs = new ArrayList();
- }
- errs.add(invalid);
- }
- }
-
- return errs;
- }
-
public void refresh(EbeanServer server, Query> query, Transaction t, Object parentBean) {
BeanMap, ?> newBeanMap = (BeanMap, ?>) server.findMap(query, t);
refresh(newBeanMap, parentBean);
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanProperty.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanProperty.java
index 9182a2e85..51c648bd2 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanProperty.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanProperty.java
@@ -7,13 +7,11 @@ import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.SQLException;
import java.sql.Types;
-import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.persistence.PersistenceException;
-import com.avaje.ebean.InvalidValue;
import com.avaje.ebean.bean.EntityBean;
import com.avaje.ebean.config.EncryptKey;
import com.avaje.ebean.config.dbplatform.DbEncryptFunction;
@@ -21,7 +19,6 @@ import com.avaje.ebean.config.dbplatform.DbType;
import com.avaje.ebean.text.StringFormatter;
import com.avaje.ebean.text.StringParser;
import com.avaje.ebean.text.TextException;
-import com.avaje.ebean.validation.factory.Validator;
import com.avaje.ebeaninternal.server.core.InternString;
import com.avaje.ebeaninternal.server.deploy.BeanDescriptor.EntityType;
import com.avaje.ebeaninternal.server.deploy.generatedproperty.GeneratedProperty;
@@ -228,10 +225,6 @@ public class BeanProperty implements ElPropertyValue {
@SuppressWarnings("rawtypes")
final ScalarType scalarType;
- final Validator[] validators;
-
- final boolean hasLocalValidators;
-
boolean cascadeValidate;
/**
@@ -336,9 +329,7 @@ public class BeanProperty implements ElPropertyValue {
this.lob = isLobType(dbType);
this.propertyType = deploy.getPropertyType();
this.field = deploy.getField();
- this.validators = deploy.getValidators();
- this.hasLocalValidators = (validators.length > 0);
-
+
EntityType et = descriptor == null ? null : descriptor.getEntityType();
this.elPlaceHolder = tableAliasIntern(descriptor, deploy.getElPlaceHolder(et), false, null);
this.elPlaceHolderEncrypted = tableAliasIntern(descriptor, deploy.getElPlaceHolder(et), dbEncrypted, dbColumn);
@@ -421,9 +412,7 @@ public class BeanProperty implements ElPropertyValue {
this.lob = isLobType(dbType);
this.propertyType = source.getPropertyType();
this.field = source.getField();
- this.validators = source.getValidators();
- this.hasLocalValidators = validators.length > 0;
-
+
this.elPlaceHolder = override.replace(source.elPlaceHolder, source.dbColumn);
this.elPlaceHolderEncrypted = override.replace(source.elPlaceHolderEncrypted, source.dbColumn);
@@ -650,22 +639,10 @@ public class BeanProperty implements ElPropertyValue {
return scalarType.readData(dataInput);
}
- Validator[] getValidators() {
- return validators;
- }
-
public boolean isCascadeValidate() {
return cascadeValidate;
}
- public boolean hasLocalValidators() {
- return hasLocalValidators;
- }
-
- public boolean hasValidationRules(boolean cascade) {
- return hasLocalValidators || (cascade && cascadeValidate);
- }
-
/**
* Checks to see if a bean is a reference (will be lazy loaded) or a
* BeanCollection that has not yet been populated.
@@ -677,50 +654,6 @@ public class BeanProperty implements ElPropertyValue {
return true;
}
- /**
- * Cascade the validation to the associated bean or collection.
- */
- public InvalidValue validateCascade(Object value) {
- return null;
- }
-
- /**
- * Validate the property with the given value.
- *
- * @param cascade
- * if true cascade for assoc beans and collections.
- * @param value
- * the value to validate
- * @return the list of errors that occurred.
- */
- public final List validate(boolean cascade, Object value) {
-
- if (!isValueLoaded(value)) {
- return null;
- }
-
- ArrayList list = null;
- for (int i = 0; i < validators.length; i++) {
- if (!validators[i].isValid(value)) {
- if (list == null) {
- list = new ArrayList();
- }
- Validator v = validators[i];
- list.add(new InvalidValue(v.getKey(), v.getAttributes(), descriptor.getFullName(), name, value));
- }
- }
-
- if (list == null && cascade && cascadeValidate) {
- // cascade the validation for assoc beans
- InvalidValue recursive = validateCascade(value);
- if (recursive != null) {
- return InvalidValue.toList(recursive);
-
- }
- }
- return list;
- }
-
public BeanProperty getBeanProperty() {
return this;
}
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyAssocMany.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyAssocMany.java
index 8744430a0..b33afa787 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyAssocMany.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyAssocMany.java
@@ -9,7 +9,6 @@ import javax.persistence.PersistenceException;
import com.avaje.ebean.EbeanServer;
import com.avaje.ebean.Expression;
-import com.avaje.ebean.InvalidValue;
import com.avaje.ebean.Query;
import com.avaje.ebean.SqlUpdate;
import com.avaje.ebean.Transaction;
@@ -314,18 +313,6 @@ public class BeanPropertyAssocMany extends BeanPropertyAssoc {
help.add(collection, bean);
}
- @Override
- public InvalidValue validateCascade(Object manyValue) {
-
- ArrayList errs = help.validate(manyValue);
-
- if (errs == null){
- return null;
- } else {
- return new InvalidValue("recurse.many", targetDescriptor.getFullName(), manyValue, InvalidValue.toArray(errs));
- }
- }
-
/**
* Refresh the appropriate list set or map.
*/
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyAssocOne.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyAssocOne.java
index 24394d9d2..68957aa9a 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyAssocOne.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyAssocOne.java
@@ -8,7 +8,6 @@ import java.util.List;
import javax.persistence.PersistenceException;
import com.avaje.ebean.EbeanServer;
-import com.avaje.ebean.InvalidValue;
import com.avaje.ebean.Query;
import com.avaje.ebean.SqlUpdate;
import com.avaje.ebean.Transaction;
@@ -271,13 +270,6 @@ public class BeanPropertyAssocOne extends BeanPropertyAssoc {
return true;
}
- @Override
- public InvalidValue validateCascade(Object value) {
-
- BeanDescriptor> target = getTargetDescriptor();
- return target.validate(true, value);
- }
-
private boolean hasChangedEmbedded(Object bean, Object oldValues) {
Object embValue = getValue(oldValues);
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanSetHelp.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanSetHelp.java
index 244c339fe..476a71fd3 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanSetHelp.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanSetHelp.java
@@ -1,12 +1,10 @@
package com.avaje.ebeaninternal.server.deploy;
-import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
import com.avaje.ebean.EbeanServer;
-import com.avaje.ebean.InvalidValue;
import com.avaje.ebean.Query;
import com.avaje.ebean.Transaction;
import com.avaje.ebean.bean.BeanCollection;
@@ -91,25 +89,6 @@ public final class BeanSetHelp implements BeanCollectionHelp {
return new BeanSet(loader, parentBean, propertyName);
}
-
- public ArrayList validate(Object manyValue) {
-
- ArrayList errs = null;
-
- Set> set = (Set>)manyValue;
- Iterator> i = set.iterator();
- while (i.hasNext()) {
- Object detailBean = i.next();
- InvalidValue invalid = targetDescriptor.validate(true, detailBean);
- if (invalid != null){
- if (errs == null){
- errs = new ArrayList();
- }
- errs.add(invalid);
- }
- }
- return errs;
- }
public void refresh(EbeanServer server, Query> query, Transaction t, Object parentBean) {
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/meta/DeployBeanProperty.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/meta/DeployBeanProperty.java
index 2aa919d99..a171a14ba 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/meta/DeployBeanProperty.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/meta/DeployBeanProperty.java
@@ -3,10 +3,7 @@ package com.avaje.ebeaninternal.server.deploy.meta;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.Types;
-import java.util.ArrayList;
import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
import java.util.Map;
import javax.persistence.EmbeddedId;
@@ -19,7 +16,6 @@ import com.avaje.ebean.annotation.UpdatedTimestamp;
import com.avaje.ebean.config.ScalarTypeConverter;
import com.avaje.ebean.config.dbplatform.DbEncrypt;
import com.avaje.ebean.config.dbplatform.DbEncryptFunction;
-import com.avaje.ebean.validation.factory.Validator;
import com.avaje.ebeaninternal.server.core.InternString;
import com.avaje.ebeaninternal.server.deploy.BeanDescriptor.EntityType;
import com.avaje.ebeaninternal.server.deploy.generatedproperty.GeneratedProperty;
@@ -211,8 +207,6 @@ public class DeployBeanProperty {
*/
private GeneratedProperty generatedProperty;
- private List validators = new ArrayList();
-
private final DeployBeanDescriptor> desc;
private boolean undirectionalShadow;
@@ -404,39 +398,6 @@ public class DeployBeanProperty {
return null;
}
- /**
- * Add a validator to this property.
- */
- public void addValidator(Validator validator) {
- validators.add(validator);
- }
-
- /**
- * Return true if the property contains a validator of a given type.
- *
- * Used to detect if a validator has already been assigned when trying to
- * automatically add validators such as Length and NotNull.
- *
- */
- public boolean containsValidatorType(Class> type) {
-
- Iterator it = validators.iterator();
- while (it.hasNext()) {
- Validator validator = (Validator) it.next();
- if (validator.getClass().equals(type)) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Return the validators for this property.
- */
- public Validator[] getValidators() {
- return validators.toArray(new Validator[validators.size()]);
- }
-
/**
* Return the scalarType. This returns null for native JDBC types, otherwise
* it is used to convert between logical types and jdbc types.
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/meta/DeployBeanPropertyLists.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/meta/DeployBeanPropertyLists.java
index d039d9006..c857aed16 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/meta/DeployBeanPropertyLists.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/meta/DeployBeanPropertyLists.java
@@ -6,7 +6,6 @@ import java.util.LinkedHashMap;
import java.util.List;
import com.avaje.ebean.bean.BeanCollection.ModifyListenMode;
-import com.avaje.ebean.validation.factory.Validator;
import com.avaje.ebeaninternal.server.deploy.BeanDescriptor;
import com.avaje.ebeaninternal.server.deploy.BeanDescriptorMap;
import com.avaje.ebeaninternal.server.deploy.BeanProperty;
@@ -157,23 +156,6 @@ public class DeployBeanPropertyLists {
return derivedFirstVersionProp;
}
- public BeanProperty[] getPropertiesWithValidators(boolean recurse) {
-
- ArrayList list = new ArrayList();
- Iterator it = propertyMap.values().iterator();
- while (it.hasNext()) {
- BeanProperty property = (BeanProperty) it.next();
- if (property.hasValidationRules(recurse)) {
- list.add(property);
- }
- }
- return list.toArray(new BeanProperty[list.size()]);
- }
-
- public Validator[] getBeanValidators() {
- return new Validator[0];
- }
-
public LinkedHashMap getPropertyMap() {
return propertyMap;
}
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java
index 38dad3e22..b929cee27 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java
@@ -15,11 +15,11 @@ import javax.persistence.JoinColumns;
import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
+import javax.validation.constraints.NotNull;
import com.avaje.ebean.annotation.EmbeddedColumns;
import com.avaje.ebean.annotation.Where;
import com.avaje.ebean.config.NamingConvention;
-import com.avaje.ebean.validation.NotNull;
import com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager;
import com.avaje.ebeaninternal.server.deploy.BeanTable;
import com.avaje.ebeaninternal.server.deploy.TableJoin;
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationFields.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationFields.java
index ca82376b2..d682d0e2b 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationFields.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationFields.java
@@ -1,8 +1,5 @@
package com.avaje.ebeaninternal.server.deploy.parse;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
import java.sql.Types;
import java.util.Iterator;
import java.util.Map;
@@ -23,6 +20,8 @@ import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import javax.persistence.Version;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
import com.avaje.ebean.annotation.CreatedTimestamp;
import com.avaje.ebean.annotation.EmbeddedColumns;
@@ -36,11 +35,6 @@ import com.avaje.ebean.config.GlobalProperties;
import com.avaje.ebean.config.dbplatform.DbEncrypt;
import com.avaje.ebean.config.dbplatform.DbEncryptFunction;
import com.avaje.ebean.config.dbplatform.IdType;
-import com.avaje.ebean.validation.Length;
-import com.avaje.ebean.validation.NotNull;
-import com.avaje.ebean.validation.Pattern;
-import com.avaje.ebean.validation.Patterns;
-import com.avaje.ebean.validation.ValidatorMeta;
import com.avaje.ebeaninternal.server.deploy.BeanDescriptor.EntityType;
import com.avaje.ebeaninternal.server.deploy.generatedproperty.GeneratedPropertyFactory;
import com.avaje.ebeaninternal.server.deploy.meta.DeployBeanProperty;
@@ -92,7 +86,6 @@ public class AnnotationFields extends AnnotationParser {
readField(prop);
}
- readValidations(prop);
}
}
@@ -214,11 +207,11 @@ public class AnnotationFields extends AnnotationParser {
prop.setNullable(false);
}
- Length length = get(prop, Length.class);
- if (length != null) {
- if (length.max() < Integer.MAX_VALUE) {
+ Size size = get(prop, Size.class);
+ if (size != null) {
+ if (size.max() < Integer.MAX_VALUE) {
// explicitly specify a version column
- prop.setDbLength(length.max());
+ prop.setDbLength(size.max());
}
}
@@ -460,41 +453,4 @@ public class AnnotationFields extends AnnotationParser {
}
}
- private void readValidations(DeployBeanProperty prop) {
-
- Field field = prop.getField();
- if (field != null) {
- Annotation[] fieldAnnotations = field.getAnnotations();
- for (int i = 0; i < fieldAnnotations.length; i++) {
- readValidations(prop, fieldAnnotations[i]);
- }
- }
-
- Method readMethod = prop.getReadMethod();
- if (readMethod != null) {
- Annotation[] methAnnotations = readMethod.getAnnotations();
- for (int i = 0; i < methAnnotations.length; i++) {
- readValidations(prop, methAnnotations[i]);
- }
- }
- }
-
- private void readValidations(DeployBeanProperty prop, Annotation ann) {
- Class> type = ann.annotationType();
- if (type.equals(Patterns.class)) {
- // treating this as a special case for now...
- Patterns patterns = (Patterns) ann;
- Pattern[] patternsArray = patterns.patterns();
- for (int i = 0; i < patternsArray.length; i++) {
- util.createValidator(prop, patternsArray[i]);
- }
-
- } else {
-
- ValidatorMeta meta = type.getAnnotation(ValidatorMeta.class);
- if (meta != null) {
- util.createValidator(prop, ann);
- }
- }
- }
}
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/DeployUtil.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/DeployUtil.java
index 8038c36a4..f021d9060 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/DeployUtil.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/DeployUtil.java
@@ -1,8 +1,6 @@
package com.avaje.ebeaninternal.server.deploy.parse;
-import java.lang.annotation.Annotation;
import java.sql.Types;
-import java.util.logging.Level;
import java.util.logging.Logger;
import javax.persistence.EnumType;
@@ -17,7 +15,6 @@ import com.avaje.ebean.config.NamingConvention;
import com.avaje.ebean.config.ServerConfig;
import com.avaje.ebean.config.TableName;
import com.avaje.ebean.config.dbplatform.DatabasePlatform;
-import com.avaje.ebean.validation.factory.Validator;
import com.avaje.ebeaninternal.server.deploy.meta.DeployBeanProperty;
import com.avaje.ebeaninternal.server.deploy.meta.DeployBeanPropertyCompound;
import com.avaje.ebeaninternal.server.type.DataEncryptSupport;
@@ -50,8 +47,6 @@ public class DeployUtil {
private final TypeManager typeManager;
- private final ValidatorFactoryManager validatorFactoryManager;
-
private final String manyToManyAlias;
private final DatabasePlatform dbPlatform;
@@ -75,8 +70,6 @@ public class DeployUtil {
// this alias is used for ManyToMany lazy loading queries
this.manyToManyAlias = "zzzzzz";
-
- this.validatorFactoryManager = new ValidatorFactoryManager();
}
public TypeManager getTypeManager() {
@@ -119,18 +112,6 @@ public class DeployUtil {
return manyToManyAlias;
}
- public void createValidator(DeployBeanProperty prop, Annotation ann) {
- try {
- Validator validator = validatorFactoryManager.create(ann, prop.getPropertyType());
- if (validator != null){
- prop.addValidator(validator);
- }
- } catch (Exception e){
- String msg = "Error creating a validator on "+prop.getFullBeanName();
- logger.log(Level.SEVERE, msg, e);
- }
- }
-
public ScalarType> setEnumScalarType(Enumerated enumerated, DeployBeanProperty prop) {
Class> enumType = prop.getPropertyType();
diff --git a/src/main/java/com/avaje/ebeaninternal/server/persist/DefaultPersistExecute.java b/src/main/java/com/avaje/ebeaninternal/server/persist/DefaultPersistExecute.java
index 115de6e91..115a3441d 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/persist/DefaultPersistExecute.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/persist/DefaultPersistExecute.java
@@ -17,119 +17,109 @@ import com.avaje.ebeaninternal.server.deploy.BeanManager;
*
*/
public final class DefaultPersistExecute implements PersistExecute {
-
- private final ExeCallableSql exeCallableSql;
-
- private final ExeUpdateSql exeUpdateSql;
-
- private final ExeOrmUpdate exeOrmUpdate;
-
- /**
- * The default batch size.
- */
- private final int defaultBatchSize;
- /**
- * Default for whether to call getGeneratedKeys after batch insert.
- */
- private final boolean defaultBatchGenKeys;
-
- private final boolean validate;
-
- /**
- * Construct this DmlPersistExecute.
- */
- public DefaultPersistExecute(boolean validate, Binder binder, PstmtBatch pstmtBatch) {
-
- this.validate = validate;
- this.exeOrmUpdate = new ExeOrmUpdate(binder, pstmtBatch);
- this.exeUpdateSql = new ExeUpdateSql(binder, pstmtBatch);
- this.exeCallableSql = new ExeCallableSql(binder, pstmtBatch);
-
- this.defaultBatchGenKeys = GlobalProperties.getBoolean("batch.getgeneratedkeys", true);
- this.defaultBatchSize = GlobalProperties.getInt("batch.size", 20);
- }
+ private final ExeCallableSql exeCallableSql;
- public BatchControl createBatchControl(SpiTransaction t) {
+ private final ExeUpdateSql exeUpdateSql;
- // create a BatchControl and set its defaults
- return new BatchControl(t, defaultBatchSize, defaultBatchGenKeys);
- }
-
- /**
- * execute the bean insert request.
- */
- public void executeInsertBean(PersistRequestBean request) {
-
- BeanManager mgr = request.getBeanManager();
- BeanPersister persister = mgr.getBeanPersister();
-
- BeanPersistController controller = request.getBeanController();
- if (controller == null || controller.preInsert(request)) {
- if (validate){
- request.validate();
- }
- persister.insert(request);
- // NOTE: the persister fires the postInsert so that this
- // occurs before ebeanIntercept.setLoaded(true)
- }
- }
-
- /**
- * execute the bean update request.
- */
- public void executeUpdateBean(PersistRequestBean request) {
-
- BeanManager mgr = request.getBeanManager();
- BeanPersister persister = mgr.getBeanPersister();
-
- BeanPersistController controller = request.getBeanController();
- if (controller == null || controller.preUpdate(request)) {
- if (validate){
- request.validate();
- }
- persister.update(request);
- // NOTE: the persister fires the postUpdate so that this
- // occurs before ebeanIntercept.setLoaded(true)
- }
- }
+ private final ExeOrmUpdate exeOrmUpdate;
-
- /**
- * execute the bean delete request.
- */
- public void executeDeleteBean(PersistRequestBean request) {
+ /**
+ * The default batch size.
+ */
+ private final int defaultBatchSize;
- BeanManager mgr = request.getBeanManager();
- BeanPersister persister = mgr.getBeanPersister();
-
- BeanPersistController controller = request.getBeanController();
- if (controller == null || controller.preDelete(request)) {
-
- persister.delete(request);
- // NOTE: the persister fires the postDelete
- }
- }
+ /**
+ * Default for whether to call getGeneratedKeys after batch insert.
+ */
+ private final boolean defaultBatchGenKeys;
- /**
- * Execute the updateSqlRequest
- */
- public int executeOrmUpdate(PersistRequestOrmUpdate request) {
- return exeOrmUpdate.execute(request);
+ /**
+ * Construct this DmlPersistExecute.
+ */
+ public DefaultPersistExecute(Binder binder, PstmtBatch pstmtBatch) {
+
+ this.exeOrmUpdate = new ExeOrmUpdate(binder, pstmtBatch);
+ this.exeUpdateSql = new ExeUpdateSql(binder, pstmtBatch);
+ this.exeCallableSql = new ExeCallableSql(binder, pstmtBatch);
+
+ this.defaultBatchGenKeys = GlobalProperties.getBoolean("batch.getgeneratedkeys", true);
+ this.defaultBatchSize = GlobalProperties.getInt("batch.size", 20);
+ }
+
+ public BatchControl createBatchControl(SpiTransaction t) {
+
+ // create a BatchControl and set its defaults
+ return new BatchControl(t, defaultBatchSize, defaultBatchGenKeys);
+ }
+
+ /**
+ * execute the bean insert request.
+ */
+ public void executeInsertBean(PersistRequestBean request) {
+
+ BeanManager mgr = request.getBeanManager();
+ BeanPersister persister = mgr.getBeanPersister();
+
+ BeanPersistController controller = request.getBeanController();
+ if (controller == null || controller.preInsert(request)) {
+ persister.insert(request);
+ // NOTE: the persister fires the postInsert so that this
+ // occurs before ebeanIntercept.setLoaded(true)
}
-
- /**
- * Execute the updateSqlRequest
- */
- public int executeSqlUpdate(PersistRequestUpdateSql request) {
- return exeUpdateSql.execute(request);
+ }
+
+ /**
+ * execute the bean update request.
+ */
+ public void executeUpdateBean(PersistRequestBean request) {
+
+ BeanManager mgr = request.getBeanManager();
+ BeanPersister persister = mgr.getBeanPersister();
+
+ BeanPersistController controller = request.getBeanController();
+ if (controller == null || controller.preUpdate(request)) {
+ persister.update(request);
+ // NOTE: the persister fires the postUpdate so that this
+ // occurs before ebeanIntercept.setLoaded(true)
}
-
- /**
- * Execute the CallableSqlRequest.
- */
- public int executeSqlCallable(PersistRequestCallableSql request) {
- return exeCallableSql.execute(request);
+ }
+
+ /**
+ * execute the bean delete request.
+ */
+ public void executeDeleteBean(PersistRequestBean request) {
+
+ BeanManager mgr = request.getBeanManager();
+ BeanPersister persister = mgr.getBeanPersister();
+
+ BeanPersistController controller = request.getBeanController();
+ if (controller == null || controller.preDelete(request)) {
+
+ persister.delete(request);
+ // NOTE: the persister fires the postDelete
}
+ }
+
+ /**
+ * Execute the updateSqlRequest
+ */
+ public int executeOrmUpdate(PersistRequestOrmUpdate request) {
+ return exeOrmUpdate.execute(request);
+ }
+
+ /**
+ * Execute the updateSqlRequest
+ */
+ public int executeSqlUpdate(PersistRequestUpdateSql request) {
+ return exeUpdateSql.execute(request);
+ }
+
+ /**
+ * Execute the CallableSqlRequest.
+ */
+ public int executeSqlCallable(PersistRequestCallableSql request) {
+ return exeCallableSql.execute(request);
+ }
}
diff --git a/src/main/java/com/avaje/ebeaninternal/server/persist/DefaultPersister.java b/src/main/java/com/avaje/ebeaninternal/server/persist/DefaultPersister.java
index 69de9737c..a32d00fb9 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/persist/DefaultPersister.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/persist/DefaultPersister.java
@@ -73,12 +73,11 @@ public final class DefaultPersister implements Persister {
private final boolean defaultUpdateNullProperties;
private final boolean defaultDeleteMissingChildren;
- public DefaultPersister(SpiEbeanServer server, boolean validate,
- Binder binder, BeanDescriptorManager descMgr, PstmtBatch pstmtBatch) {
+ public DefaultPersister(SpiEbeanServer server, Binder binder, BeanDescriptorManager descMgr, PstmtBatch pstmtBatch) {
this.server = server;
this.beanDescriptorManager = descMgr;
- this.persistExecute = new DefaultPersistExecute(validate, binder, pstmtBatch);
+ this.persistExecute = new DefaultPersistExecute(binder, pstmtBatch);
this.defaultUpdateNullProperties = server.isDefaultUpdateNullProperties();
this.defaultDeleteMissingChildren = server.isDefaultDeleteMissingChildren();
diff --git a/src/test/java/com/avaje/tests/model/basic/Address.java b/src/test/java/com/avaje/tests/model/basic/Address.java
index 8d92c0775..9cb3689fd 100644
--- a/src/test/java/com/avaje/tests/model/basic/Address.java
+++ b/src/test/java/com/avaje/tests/model/basic/Address.java
@@ -8,8 +8,7 @@ import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Version;
-
-import com.avaje.ebean.validation.Length;
+import javax.validation.constraints.Size;
/**
* Address entity bean.
@@ -21,15 +20,15 @@ public class Address {
@Id
Short id;
- @Length(max=100)
+ @Size(max=100)
@Column(name="line_1")
String line1;
- @Length(max=100)
+ @Size(max=100)
@Column(name="line_2")
String line2;
- @Length(max=100)
+ @Size(max=100)
String city;
Timestamp cretime;
diff --git a/src/test/java/com/avaje/tests/model/basic/Country.java b/src/test/java/com/avaje/tests/model/basic/Country.java
index ab0915d4d..5563f1267 100644
--- a/src/test/java/com/avaje/tests/model/basic/Country.java
+++ b/src/test/java/com/avaje/tests/model/basic/Country.java
@@ -3,10 +3,10 @@ package com.avaje.tests.model.basic;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
+import javax.validation.constraints.Size;
import com.avaje.ebean.annotation.CacheStrategy;
import com.avaje.ebean.annotation.CacheTuning;
-import com.avaje.ebean.validation.Length;
/**
* Country entity bean.
@@ -18,10 +18,10 @@ import com.avaje.ebean.validation.Length;
public class Country {
@Id
- @Length(max=2)
+ @Size(max=2)
String code;
- @Length(max=60)
+ @Size(max=60)
String name;
public String toString() {
diff --git a/src/test/java/com/avaje/tests/model/basic/Customer.java b/src/test/java/com/avaje/tests/model/basic/Customer.java
index bce89fd80..1acd0e2a6 100644
--- a/src/test/java/com/avaje/tests/model/basic/Customer.java
+++ b/src/test/java/com/avaje/tests/model/basic/Customer.java
@@ -11,11 +11,11 @@ import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
import com.avaje.ebean.annotation.EnumMapping;
import com.avaje.ebean.annotation.Where;
-import com.avaje.ebean.validation.Length;
-import com.avaje.ebean.validation.NotNull;
/**
* Customer entity bean.
@@ -46,11 +46,11 @@ public class Customer extends BasicDomain {
Status status;
@NotNull
- @Length(max=40)
+ @Size(max=40)
//@Column(length=39,nullable=false)
String name;
- @Length(max=100)
+ @Size(max=100)
String smallnote;
Date anniversary;
diff --git a/src/test/java/com/avaje/tests/model/basic/Order.java b/src/test/java/com/avaje/tests/model/basic/Order.java
index 2b8dccef5..64ffc21c0 100644
--- a/src/test/java/com/avaje/tests/model/basic/Order.java
+++ b/src/test/java/com/avaje/tests/model/basic/Order.java
@@ -19,12 +19,12 @@ import javax.persistence.OrderBy;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.persistence.Version;
+import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlType;
import com.avaje.ebean.annotation.CreatedTimestamp;
import com.avaje.ebean.annotation.Formula;
import com.avaje.ebean.annotation.Where;
-import com.avaje.ebean.validation.NotNull;
/**
* Order entity bean.
diff --git a/src/test/java/com/avaje/tests/model/basic/Phone.java b/src/test/java/com/avaje/tests/model/basic/Phone.java
index cfe4f5939..d4f8c8610 100644
--- a/src/test/java/com/avaje/tests/model/basic/Phone.java
+++ b/src/test/java/com/avaje/tests/model/basic/Phone.java
@@ -11,8 +11,7 @@ import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
-
-import com.avaje.ebean.validation.NotNull;
+import javax.validation.constraints.NotNull;
@Entity(name = "Phone")
@Table(name = "PHONES")
diff --git a/src/test/java/com/avaje/tests/model/basic/Product.java b/src/test/java/com/avaje/tests/model/basic/Product.java
index e17057424..df487f101 100644
--- a/src/test/java/com/avaje/tests/model/basic/Product.java
+++ b/src/test/java/com/avaje/tests/model/basic/Product.java
@@ -7,10 +7,10 @@ import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Version;
+import javax.validation.constraints.Size;
import com.avaje.ebean.annotation.CacheStrategy;
import com.avaje.ebean.annotation.CreatedTimestamp;
-import com.avaje.ebean.validation.Length;
/**
* Product entity bean.
@@ -25,7 +25,7 @@ public class Product implements Serializable {
@Id
Integer id;
- @Length(max=20)
+ @Size(max=20)
String sku;
String name;
diff --git a/src/test/java/com/avaje/tests/model/basic/TWithPreInsert.java b/src/test/java/com/avaje/tests/model/basic/TWithPreInsert.java
index 98bc511bd..aff62d408 100644
--- a/src/test/java/com/avaje/tests/model/basic/TWithPreInsert.java
+++ b/src/test/java/com/avaje/tests/model/basic/TWithPreInsert.java
@@ -2,8 +2,7 @@ package com.avaje.tests.model.basic;
import javax.persistence.Entity;
import javax.persistence.Id;
-
-import com.avaje.ebean.validation.NotEmpty;
+import javax.validation.constraints.NotNull;
@Entity
public class TWithPreInsert {
@@ -11,7 +10,7 @@ public class TWithPreInsert {
@Id
private Integer id;
- @NotEmpty
+ @NotNull
private String name;
private String title;