You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2008/08/03 00:03:48 UTC
svn commit: r682068 - in
/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation:
message/resolver/AbstractValidationErrorMessageResolver.java
strategy/AbstractValidationStrategy.java
Author: gpetracek
Date: Sat Aug 2 15:03:47 2008
New Revision: 682068
URL: http://svn.apache.org/viewvc?rev=682068&view=rev
Log:
optional feature to configure a message resolver via a bean in order to use dependency injection
Modified:
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/AbstractValidationErrorMessageResolver.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidationStrategy.java
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/AbstractValidationErrorMessageResolver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/AbstractValidationErrorMessageResolver.java?rev=682068&r1=682067&r2=682068&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/AbstractValidationErrorMessageResolver.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/AbstractValidationErrorMessageResolver.java Sat Aug 2 15:03:47 2008
@@ -22,6 +22,7 @@
import org.apache.commons.logging.LogFactory;
import org.apache.myfaces.extensions.validator.core.WebXmlParameter;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+import org.apache.myfaces.extensions.validator.util.ELUtils;
import java.util.Locale;
import java.util.MissingResourceException;
@@ -33,6 +34,9 @@
public abstract class AbstractValidationErrorMessageResolver implements MessageResolver {
private static String deactivateDefaultConvention = WebXmlParameter.DEACTIVATE_DEFAULT_CONVENTION;
private static ResourceBundle defaultBundle = null;
+ private String messageBundleBaseName;
+ //with jsf 1.1 only available if there is a custom bean
+ private String messageBundleVarName;
protected final Log logger = LogFactory.getLog(getClass());
@@ -41,7 +45,37 @@
return null;
}
- String customMessage = tryToUseMessageBundleConvention(key, locale);
+ ResourceBundle resourceBundle = null;
+ String customMessage = null;
+
+ //only in case of a ValidationErrorMessageResolver which is configured as bean
+ if(this.messageBundleBaseName != null) {
+ resourceBundle = ResourceBundle.getBundle(this.messageBundleBaseName, locale);
+ if(resourceBundle != null) {
+ customMessage = resourceBundle.getString(key);
+ } else {
+ logger.warn("message bundle " + this.messageBundleBaseName + " not found");
+ }
+ }
+
+ //only in case of a ValidationErrorMessageResolver which is configured as bean
+ if(this.messageBundleVarName != null && customMessage == null) {
+ resourceBundle = (ResourceBundle)ELUtils.getBean(messageBundleVarName);
+ if(resourceBundle != null) {
+ customMessage = resourceBundle.getString(key);
+ } else {
+ logger.warn("message bundle var name " + this.messageBundleVarName + " not found");
+ }
+ }
+
+ if (customMessage != null) {
+ return customMessage;
+ }
+
+ /*
+ * try to use the convention for the message bundle
+ */
+ customMessage = tryToUseMessageBundleConvention(key, locale);
if (customMessage != null) {
return customMessage;
@@ -50,7 +84,6 @@
/*
* no message bundle or message found (with the convention)?
*/
- ResourceBundle resourceBundle = null;
//try to load custom messages
try {
@@ -109,4 +142,12 @@
protected String getCustomBaseName() {
return null;
}
+
+ public void setMessageBundleBaseName(String messageBundleBaseName) {
+ this.messageBundleBaseName = messageBundleBaseName;
+ }
+
+ public void setMessageBundleVarName(String messageBundleVarName) {
+ this.messageBundleVarName = messageBundleVarName;
+ }
}
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidationStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidationStrategy.java?rev=682068&r1=682067&r2=682068&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidationStrategy.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidationStrategy.java Sat Aug 2 15:03:47 2008
@@ -19,6 +19,7 @@
package org.apache.myfaces.extensions.validator.core.validation.strategy;
import org.apache.myfaces.extensions.validator.util.FactoryUtils;
+import org.apache.myfaces.extensions.validator.core.validation.message.resolver.MessageResolver;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
@@ -31,11 +32,12 @@
*/
public abstract class AbstractValidationStrategy extends AbstractValidatorAdapter {
protected static final String DETAIL_MESSAGE_KEY_POSTFIX = "_details";
+ private MessageResolver messageResolver;
protected String resolveMessage(String key) {
Locale locale = FacesContext.getCurrentInstance().getViewRoot().getLocale();
- return FactoryUtils.getMessageResolverFactory().create(this).getMessage(key, locale);
+ return this.messageResolver != null ? this.messageResolver.getMessage(key, locale) : FactoryUtils.getMessageResolverFactory().create(this).getMessage(key, locale);
}
protected String getErrorMessageSummary(Annotation annotation) {
@@ -57,4 +59,8 @@
}
protected abstract String getValidationErrorMsgKey(Annotation annotation);
+
+ public void setMessageResolver(MessageResolver messageResolver) {
+ this.messageResolver = messageResolver;
+ }
}