You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by dw...@apache.org on 2009/06/26 22:04:20 UTC
svn commit: r788844 - in /openjpa/trunk/openjpa-persistence/src/main:
java/org/apache/openjpa/persistence/validation/ValidatorImpl.java
resources/org/apache/openjpa/persistence/validation/localizer.properties
Author: dwoods
Date: Fri Jun 26 20:04:19 2009
New Revision: 788844
URL: http://svn.apache.org/viewvc?rev=788844&view=rev
Log:
OPENJPA-1106 Add missing exception text to ConstraintValidationException instances and replace other exception strings with localized messages. Still needs some work to properly detect and rethrow the contents of a WrapperedException to the user's app.
Modified:
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidatorImpl.java
openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/validation/localizer.properties
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidatorImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidatorImpl.java?rev=788844&r1=788843&r2=788844&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidatorImpl.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/ValidatorImpl.java Fri Jun 26 20:04:19 2009
@@ -31,11 +31,15 @@
import javax.validation.ValidatorFactory;
import org.apache.openjpa.event.LifecycleEvent;
+import org.apache.openjpa.lib.util.Localizer;
import org.apache.openjpa.validation.AbstractValidator;
import org.apache.openjpa.validation.ValidationException;
public class ValidatorImpl extends AbstractValidator {
+ private static final Localizer _loc = Localizer.forPackage(
+ ValidatorImpl.class);
+
private ValidatorFactory _validatorFactory = null;
private Validator _validator = null;
private ValidationMode _mode = ValidationMode.AUTO;
@@ -104,8 +108,9 @@
if (validatorFactory instanceof ValidatorFactory) {
_validatorFactory = (ValidatorFactory)validatorFactory;
} else {
- // TODO: Add a localized exception
- throw new IllegalArgumentException();
+ // Supplied object was not an instance of a ValidatorFactory.
+ throw new IllegalArgumentException(
+ _loc.get("invalid-factory").getMessage());
}
}
initialize();
@@ -123,22 +128,24 @@
if (_validatorFactory != null) {
_validator = _validatorFactory.getValidator();
} else {
- // TODO: Add a localized exception
- throw new RuntimeException("No default ValidatorFactory");
+ // A default ValidatorFactory could not be created.
+ throw new RuntimeException(
+ _loc.get("no-default-factory").getMessage());
}
// throw an exception if we have no Validator
if (_validator == null) {
- // TODO: Add a localized exception
- throw new RuntimeException("No Validator provider");
+ // A Validator provider could not be created.
+ throw new RuntimeException(
+ _loc.get("no-validator").getMessage());
}
// add in default validation groups, which can be over-ridden later
addDefaultValidationGroups();
} else {
- // TODO: Add a localized exception
- throw new RuntimeException("No Validator should be created based " +
- "on the supplied Validation Mode.");
+ // A Validator should not be created based on the supplied ValidationMode.
+ throw new RuntimeException(
+ _loc.get("no-validation").getMessage());
}
}
@@ -156,9 +163,9 @@
_validationGroups.put(event, vgs);
return;
} else {
- // TODO: Add a localized exception
- throw new IllegalArgumentException("There were no events found " +
- "for the supplied group name.");
+ // There were no events found for group "{0}".
+ throw new IllegalArgumentException(
+ _loc.get("no-group-events", validationGroupName).getMessage());
}
}
@@ -210,10 +217,8 @@
*
* @param <T> The instance to validate
* @param arg0 The class, of type T to validate
- * @param arg1 The property to validate
- * @param arg2 The property value to validate
* @param event The event id
- * @return A Validation exception if the validator produces one or more
+ * @return ValidationException if the validator produces one or more
* constraint violations.
*/
@Override
@@ -225,7 +230,11 @@
if (violations != null && violations.size() > 0) {
return new ValidationException(
new ConstraintViolationException(
- (Set)violations));
+ // A validation constraint failure occurred for class "{0}".
+ _loc.get("validate-failed",
+ arg0.getClass().getName()).getMessage(),
+ (Set)violations),
+ true);
}
return null;
}
@@ -234,11 +243,10 @@
* Validates a property of a given instance
*
* @param <T> The instance to validate
- * @param arg0 The class, of type T to validate
- * @param arg1 The property to validate
- * @param arg2 The property value to validate
+ * @param arg0 The property to validate
+ * @param property The property to validate
* @param event The event id
- * @return A Validation exception if the validator produces one or more
+ * @return ValidationException if the validator produces one or more
* constraint violations.
*/
@Override
@@ -252,7 +260,12 @@
if (violations != null && violations.size() > 0) {
return new ValidationException(
new ConstraintViolationException(
- (Set)violations));
+ // A validation constraint failure occurred for
+ // property "{1}" in class "{0}".
+ _loc.get("valdiate-property-failed",
+ arg0.getClass().getName(),property).getMessage(),
+ (Set)violations),
+ true);
}
return null;
}
@@ -265,7 +278,7 @@
* @param arg1 The property to validate
* @param arg2 The property value to validate
* @param event The event id
- * @return A Validation exception if the validator produces one or more
+ * @return ValidationException if the validator produces one or more
* constraint violations.
*/
@Override
@@ -279,7 +292,12 @@
if (violations != null && violations.size() > 0) {
return new ValidationException(
new ConstraintViolationException(
- (Set)violations));
+ // A validation constraint failure occurred for
+ // value "{2}" of property "{1}" in class "{0}".
+ _loc.get("validate-value-failed", arg0.getClass().getName(),
+ arg1, arg2.toString()).getMessage(),
+ (Set)violations),
+ true);
}
return null;
}
Modified: openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/validation/localizer.properties
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/validation/localizer.properties?rev=788844&r1=788843&r2=788844&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/validation/localizer.properties (original)
+++ openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/validation/localizer.properties Fri Jun 26 20:04:19 2009
@@ -15,8 +15,23 @@
# specific language governing permissions and limitations
# under the License.
+# ValidationUtils
vlem-creation-warn: Could not create the optional validation provider. \
Reason returned: "{0}"
vlem-creation-error: A fatal error occurred while trying to \
create the required validation provider.
+# ValidatorImpl
+invalid-factory: Supplied object was not an instance of a ValidatorFactory.
+no-default-factory: A default ValidatorFactory could not be created.
+no-validator: A Validator provider could not be created.
+no-validation: A Validator should not be created based on the supplied \
+ ValidationMode.
+no-group-events: There were no events found for group "{0}".
+
+validate-failed: A validation constraint failure occurred for class "{0}".
+validate-property-failed: A validation constraint failure occurred for \
+ property "{1}" in class "{0}".
+validate-value-failed: A validation constraint failure occurred for \
+ value "{2}" of property "{1}" in class "{0}".
+