|
From: <hib...@li...> - 2006-08-10 03:34:06
|
Author: epbernard
Date: 2006-08-09 23:34:03 -0400 (Wed, 09 Aug 2006)
New Revision: 10240
Modified:
trunk/HibernateExt/metadata/src/java/org/hibernate/validator/ClassValidator.java
trunk/HibernateExt/metadata/src/test/ValidatorMessages.properties
trunk/HibernateExt/metadata/src/test/ValidatorMessages_da.properties
trunk/HibernateExt/metadata/src/test/ValidatorMessages_fr.properties
Log:
ANN-265 when a key is not found default to DEFAULT_VALIDATOR_MESSAGES
Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/validator/ClassValidator.java
===================================================================
--- trunk/HibernateExt/metadata/src/java/org/hibernate/validator/ClassValidator.java 2006-08-10 03:31:40 UTC (rev 10239)
+++ trunk/HibernateExt/metadata/src/java/org/hibernate/validator/ClassValidator.java 2006-08-10 03:34:03 UTC (rev 10240)
@@ -68,7 +68,8 @@
private final Class<T> beanClass;
private transient ResourceBundle messageBundle;
- private transient boolean defaultResourceBundle;
+ private transient ResourceBundle defaultMessageBundle;
+ private transient boolean isUserProvidedResourceBundle;
private final transient Map<XClass, ClassValidator> childClassValidators;
private transient List<Validator> beanValidators;
@@ -106,6 +107,7 @@
this.messageBundle = resourceBundle == null ?
getDefaultResourceBundle() :
resourceBundle;
+ this.defaultMessageBundle = ResourceBundle.getBundle( DEFAULT_VALIDATOR_MESSAGE );
this.childClassValidators = childClassValidators;
initValidator( beanClass, childClassValidators, this.messageBundle );
}
@@ -139,10 +141,10 @@
"ResourceBundle ValidatorMessages not found in Validator classloader. Delegate to " + DEFAULT_VALIDATOR_MESSAGE
);
//the user did not override the default ValidatorMessages
- rb = ResourceBundle.getBundle( DEFAULT_VALIDATOR_MESSAGE );
+ rb = null;
}
}
- defaultResourceBundle = true;
+ isUserProvidedResourceBundle = true;
return rb;
}
@@ -514,8 +516,26 @@
throw new IllegalArgumentException( "could not render message", e );
}
}
- else if ( messageBundle != null ) {
- String string = messageBundle.getString( token );
+ else {
+ String string = null;
+ try {
+ string = messageBundle != null ? messageBundle.getString( token ) : null;
+ }
+ catch( MissingResourceException e ) {
+ //give a second chance with the default resource bundle
+ }
+ if (string == null) {
+ try {
+ string = defaultMessageBundle.getString( token );
+ }
+ catch( MissingResourceException e) {
+ throw new MissingResourceException(
+ "Can't find resource in validator bundles, key " + token,
+ defaultMessageBundle.getClass().getName(),
+ token
+ );
+ }
+ }
if ( string != null ) buf.append( replace( string, parameters ) );
}
}
@@ -568,9 +588,9 @@
ResourceBundle rb = messageBundle;
if ( rb != null && ! ( rb instanceof Serializable ) ) {
messageBundle = null;
- if ( ! defaultResourceBundle ) {
+ if ( ! isUserProvidedResourceBundle ) {
log.warn(
- "Serializing a ClassValidator with a not serializable ResourceBundle: ResourceBundle ignored"
+ "Serializing a ClassValidator with a non serializable ResourceBundle: ResourceBundle ignored"
);
}
}
@@ -583,6 +603,8 @@
ois.defaultReadObject();
ResourceBundle rb = (ResourceBundle) ois.readObject();
if ( rb == null ) rb = getDefaultResourceBundle();
- initValidator( reflectionManager.toXClass( beanClass ), new HashMap<XClass, ClassValidator>(), rb );
+ this.messageBundle = rb;
+ this.defaultMessageBundle = ResourceBundle.getBundle( DEFAULT_VALIDATOR_MESSAGE );
+ initValidator( reflectionManager.toXClass( beanClass ), new HashMap<XClass, ClassValidator>(), this.messageBundle );
}
}
Modified: trunk/HibernateExt/metadata/src/test/ValidatorMessages.properties
===================================================================
--- trunk/HibernateExt/metadata/src/test/ValidatorMessages.properties 2006-08-10 03:31:40 UTC (rev 10239)
+++ trunk/HibernateExt/metadata/src/test/ValidatorMessages.properties 2006-08-10 03:34:03 UTC (rev 10240)
@@ -1,16 +1,4 @@
-#generic of Hibernate Validator
-validator.assertFalse=assertion failed
-validator.assertTrue=assertion failed
-validator.future=must be a future date
-validator.length=length must be between {min} and {max}
-validator.max=must less than or equal to {value}
-validator.min=must greater than or equal to {value}
-validator.notNull=may not be null
-validator.past=must be a past date
-validator.pattern=must match "{regex}"
-validator.range=must be between {min} and {max}
-validator.size=size must be between {min} and {max}
-validator.email=not a well-formed email address
+#overriding of default keys
#specific to my project
long=is too damn long
Modified: trunk/HibernateExt/metadata/src/test/ValidatorMessages_da.properties
===================================================================
--- trunk/HibernateExt/metadata/src/test/ValidatorMessages_da.properties 2006-08-10 03:31:40 UTC (rev 10239)
+++ trunk/HibernateExt/metadata/src/test/ValidatorMessages_da.properties 2006-08-10 03:34:03 UTC (rev 10240)
@@ -1,12 +1,7 @@
-validator.assertFalse=assertion fejlet
-validator.assertTrue=assertion fejlet
-validator.future=skal v en fremtidig dato
-validator.length=lden skal v mellem {min} og {max}
-validator.max=skal v mindre end eller lig med {value}
-validator.min=skal v stend eller lig med {value}
-validator.notNull=mkke v null
-validator.past=skal v en passeret dato
-validator.pattern=skal matche "{regex}"
-validator.range=skal v mellem {min} og {max}
-validator.size=antallet skal v mellem {min} og {max}
-validator.email=not a well-formed email address
\ No newline at end of file
+#overriding of default keys
+
+#specific to my project
+long=is too damn long
+floor.name=Floor
+out.of.range=lower that {min} and greater than {max}
+floor.out.of.range={floor.name} cannot be {out.of.range}
\ No newline at end of file
Modified: trunk/HibernateExt/metadata/src/test/ValidatorMessages_fr.properties
===================================================================
--- trunk/HibernateExt/metadata/src/test/ValidatorMessages_fr.properties 2006-08-10 03:31:40 UTC (rev 10239)
+++ trunk/HibernateExt/metadata/src/test/ValidatorMessages_fr.properties 2006-08-10 03:34:03 UTC (rev 10240)
@@ -1,15 +1,4 @@
-validator.assertFalse=l'assertion a ouvalidator.assertTrue=l'assertion a ouvalidator.future=doit e dans le futur
-validator.length=la longueur doit e entre {min} et {max}
-validator.max=doit e infeur ou l value}
-validator.min=doit e supeur ou l value}
-validator.notNull=ne peut pas e nul
-validator.past=doit e dans le passvalidator.pattern=doit suivre "{regex}"
-validator.range=doit e entre {min} et {max}
-validator.size=le nombre d'ments doit e entre {min} et {max}
-validator.email=adresse email non valide
+#overriding of default keys
#specific to my project
long=est grave trop long
|