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}".
+