Author: chris.laprun(a)jboss.com
Date: 2009-05-14 18:03:40 -0400 (Thu, 14 May 2009)
New Revision: 13374
Modified:
branches/JBoss_Portal_Branch_2_7/faces/src/main/org/jboss/portal/faces/gui/BeanContext.java
branches/JBoss_Portal_Branch_2_7/faces/src/main/org/jboss/portal/faces/gui/JSFBeanContext.java
Log:
- Made resource name where error messages are found injectable.
- Better handling of non-existent localization key: now display the key and log info
instead of failing.
Modified:
branches/JBoss_Portal_Branch_2_7/faces/src/main/org/jboss/portal/faces/gui/BeanContext.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/faces/src/main/org/jboss/portal/faces/gui/BeanContext.java 2009-05-14
16:59:23 UTC (rev 13373)
+++
branches/JBoss_Portal_Branch_2_7/faces/src/main/org/jboss/portal/faces/gui/BeanContext.java 2009-05-14
22:03:40 UTC (rev 13374)
@@ -23,11 +23,13 @@
package org.jboss.portal.faces.gui;
+import org.apache.log4j.Logger;
import org.jboss.portal.common.util.ParameterValidation;
import java.text.MessageFormat;
import java.util.Locale;
import java.util.Map;
+import java.util.MissingResourceException;
import java.util.ResourceBundle;
/**
@@ -37,13 +39,26 @@
*/
public abstract class BeanContext
{
+ protected final static Logger log = Logger.getLogger(BeanContext.class);
+
public static final String STATUS = "status";
- private static final String RESOURCE_NAME = "Resource";
+ private static final String DEFAULT_RESOURCE_NAME = "Resource";
private static final String UNEXPECTED_ERROR =
"bean_support_unexpected_error";
private static final String CAUSE = "bean_support_cause";
private static final String CURRENT_PLACEHOLDER = "###";
+ private String resourceName = DEFAULT_RESOURCE_NAME;
+ public void setResourceName(String resourceName)
+ {
+ this.resourceName = resourceName;
+ }
+
+ public String getResourceName()
+ {
+ return resourceName;
+ }
+
/**
* Retrieves the value of the parameter which name is given from the JSF request.
*
@@ -91,15 +106,34 @@
public String getMessageFromBundle(String localizedMessageId, Object... params)
{
- return getLocalizedMessage(localizedMessageId, getLocale(), params);
+ return getLocalizedMessage(localizedMessageId, getLocale(), resourceName, params);
}
public static String getLocalizedMessage(String localizationKey, Locale locale,
Object... params)
{
- ResourceBundle rb = ResourceBundle.getBundle(RESOURCE_NAME, locale);
- return MessageFormat.format(rb.getString(localizationKey), params);
+ return getLocalizedMessage(localizationKey, locale, DEFAULT_RESOURCE_NAME,
params);
}
+ public static String getLocalizedMessage(String localizationKey, Locale locale, String
resourceName, Object... params)
+ {
+ ResourceBundle rb = ResourceBundle.getBundle(resourceName, locale);
+
+ String message;
+ try
+ {
+ message = rb.getString(localizationKey);
+ }
+ catch (MissingResourceException e)
+ {
+ // if the key doesn't exist, return it instead of failing
+ log.info("Couldn't find localization message for key '" +
localizationKey + "' in bundle " + resourceName
+ + " for locale " + locale.getDisplayName());
+ return localizationKey;
+ }
+
+ return MessageFormat.format(message, params);
+ }
+
public void createErrorMessageFrom(Exception e)
{
createErrorMessageFrom(STATUS, e);
Modified:
branches/JBoss_Portal_Branch_2_7/faces/src/main/org/jboss/portal/faces/gui/JSFBeanContext.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/faces/src/main/org/jboss/portal/faces/gui/JSFBeanContext.java 2009-05-14
16:59:23 UTC (rev 13373)
+++
branches/JBoss_Portal_Branch_2_7/faces/src/main/org/jboss/portal/faces/gui/JSFBeanContext.java 2009-05-14
22:03:40 UTC (rev 13374)
@@ -88,7 +88,7 @@
else
{
// todo: do something better here
- System.out.println("Couldn't resolve component target: " +
target);
+ log.info("Couldn't resolve component target: " + target);
}
FacesMessage msg = new FacesMessage(jsfSeverity, message, message);
Show replies by date