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 2010/06/18 21:08:27 UTC
svn commit: r956099 - in /myfaces/extensions/cdi/trunk:
examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/message/client/
jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/me...
Author: gpetracek
Date: Fri Jun 18 19:08:27 2010
New Revision: 956099
URL: http://svn.apache.org/viewvc?rev=956099&view=rev
Log:
EXTCDI-24 solution #3
Removed:
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContextAware.java
Modified:
myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/message/client/ClientAwareMessageResolverProducer.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/message/FacesMessageInterpolator.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/message/JsfAwareApplicationMessagesMessageResolver.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageInterpolator.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageResolver.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/AbstractFormatterAwareMessageInterpolator.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/CompositeMessageInterpolator.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultFormatterFactory.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageBuilder.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageInterpolator.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/ELAwareMessageInterpolator.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/NumberedArgumentAwareMessageInterpolator.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/message/test/TestMessageResolver.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/message/test/TestPayloadAwareMessageResolver.java
Modified: myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/message/client/ClientAwareMessageResolverProducer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/message/client/ClientAwareMessageResolverProducer.java?rev=956099&r1=956098&r2=956099&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/message/client/ClientAwareMessageResolverProducer.java (original)
+++ myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/message/client/ClientAwareMessageResolverProducer.java Fri Jun 18 19:08:27 2010
@@ -28,7 +28,6 @@ import org.apache.myfaces.extensions.cdi
import javax.enterprise.inject.Produces;
import javax.enterprise.context.RequestScoped;
import javax.faces.context.FacesContext;
-import java.util.Locale;
import java.util.Map;
import java.util.MissingResourceException;
@@ -52,8 +51,8 @@ public class ClientAwareMessageResolverP
{
return new MessageResolver()
{
- public String getMessage(String messageDescriptor,
- Locale locale,
+ public String getMessage(MessageContext messageContext,
+ String messageDescriptor,
Map<Class, Class<? extends MessagePayload>> messagePayload)
{
FacesContext facesContext = FacesContext.getCurrentInstance();
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/message/FacesMessageInterpolator.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/message/FacesMessageInterpolator.java?rev=956099&r1=956098&r2=956099&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/message/FacesMessageInterpolator.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/message/FacesMessageInterpolator.java Fri Jun 18 19:08:27 2010
@@ -19,7 +19,6 @@
package org.apache.myfaces.extensions.cdi.javaee.jsf.impl.message;
import org.apache.myfaces.extensions.cdi.message.api.MessageInterpolator;
-import org.apache.myfaces.extensions.cdi.message.api.MessageContextAware;
import org.apache.myfaces.extensions.cdi.message.api.MessageContext;
import org.apache.myfaces.extensions.cdi.message.impl.CompositeMessageInterpolator;
import org.apache.myfaces.extensions.cdi.message.impl.ELAwareMessageInterpolator;
@@ -31,7 +30,7 @@ import java.io.Serializable;
/**
* @author Gerhard Petracek
*/
-class FacesMessageInterpolator implements MessageInterpolator, MessageContextAware
+class FacesMessageInterpolator implements MessageInterpolator
{
private MessageInterpolator messageInterpolator;
@@ -49,25 +48,8 @@ class FacesMessageInterpolator implement
}
}
- public String interpolate(String messageText, Serializable... arguments)
+ public String interpolate(MessageContext messageContext, String messageText, Serializable... arguments)
{
- return this.messageInterpolator.interpolate(messageText, arguments);
- }
-
- public void setMessageContext(MessageContext messageContext)
- {
- if(this.messageInterpolator instanceof MessageContextAware)
- {
- ((MessageContextAware)this.messageInterpolator).setMessageContext(messageContext);
- }
- }
-
- public MessageContext getMessageContext()
- {
- if(this.messageInterpolator instanceof MessageContextAware)
- {
- return ((MessageContextAware)this.messageInterpolator).getMessageContext();
- }
- return null;
+ return this.messageInterpolator.interpolate(messageContext, messageText, arguments);
}
}
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/message/JsfAwareApplicationMessagesMessageResolver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/message/JsfAwareApplicationMessagesMessageResolver.java?rev=956099&r1=956098&r2=956099&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/message/JsfAwareApplicationMessagesMessageResolver.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/message/JsfAwareApplicationMessagesMessageResolver.java Fri Jun 18 19:08:27 2010
@@ -19,6 +19,7 @@
package org.apache.myfaces.extensions.cdi.javaee.jsf.impl.message;
import org.apache.myfaces.extensions.cdi.message.api.MessageResolver;
+import org.apache.myfaces.extensions.cdi.message.api.MessageContext;
import org.apache.myfaces.extensions.cdi.message.api.payload.MessagePayload;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.JsfUtils;
@@ -31,8 +32,8 @@ import java.util.MissingResourceExceptio
*/
class JsfAwareApplicationMessagesMessageResolver implements MessageResolver
{
- public String getMessage(String messageDescriptor,
- Locale locale,
+ public String getMessage(MessageContext messageContext,
+ String messageDescriptor,
Map<Class, Class<? extends MessagePayload>> messagePayload)
{
if (!isKey(messageDescriptor))
@@ -44,11 +45,11 @@ class JsfAwareApplicationMessagesMessage
{
messageDescriptor = extractKey(messageDescriptor);
- return JsfUtils.getCustomFacesMessageBundle(locale).getString(messageDescriptor);
+ return JsfUtils.getCustomFacesMessageBundle(messageContext.getLocale()).getString(messageDescriptor);
}
catch (MissingResourceException e)
{
- return defaultFacesMessage(messageDescriptor, locale);
+ return defaultFacesMessage(messageDescriptor, messageContext.getLocale());
}
}
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageInterpolator.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageInterpolator.java?rev=956099&r1=956098&r2=956099&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageInterpolator.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageInterpolator.java Fri Jun 18 19:08:27 2010
@@ -29,11 +29,13 @@ public interface MessageInterpolator
/**
* replaces the arguments of the given message with the given arguments
*
+ * @param messageContext the current {@link org.apache.myfaces.extensions.cdi.message.api.MessageContext}
+ * instead of a MessageContextAware interface. we need it to avoid expensive operations like locking or deep cloning
* @param messageText the message text which has to be interpolated
* @param arguments a list of numbered and/or named arguments for the current message
* @return the final (interpolated) message text
* if it was possible to replace the parameters with the given attributes
* the unmodified messageText otherwise
*/
- String interpolate(String messageText, Serializable... arguments);
+ String interpolate(MessageContext messageContext, String messageText, Serializable... arguments);
}
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageResolver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageResolver.java?rev=956099&r1=956098&r2=956099&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageResolver.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageResolver.java Fri Jun 18 19:08:27 2010
@@ -20,7 +20,6 @@ package org.apache.myfaces.extensions.cd
import org.apache.myfaces.extensions.cdi.message.api.payload.MessagePayload;
-import java.util.Locale;
import java.util.Map;
/**
@@ -31,10 +30,12 @@ public interface MessageResolver
static final String MISSING_RESOURCE_MARKER = "???";
/**
+ * @param messageContext the current {@link org.apache.myfaces.extensions.cdi.message.api.MessageContext}
* @param messageDescriptor the message key (or in-lined text) of the current message
- * @param locale the current locale
* @param payload the payload of the message e.g. to use different message sources
* @return the final but not interpolated message text
*/
- String getMessage(String messageDescriptor, Locale locale, Map<Class, Class<? extends MessagePayload>> payload);
+ String getMessage(MessageContext messageContext,
+ String messageDescriptor,
+ Map<Class, Class<? extends MessagePayload>> payload);
}
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/AbstractFormatterAwareMessageInterpolator.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/AbstractFormatterAwareMessageInterpolator.java?rev=956099&r1=956098&r2=956099&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/AbstractFormatterAwareMessageInterpolator.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/AbstractFormatterAwareMessageInterpolator.java Fri Jun 18 19:08:27 2010
@@ -19,7 +19,6 @@
package org.apache.myfaces.extensions.cdi.message.impl;
import org.apache.myfaces.extensions.cdi.message.api.MessageContext;
-import org.apache.myfaces.extensions.cdi.message.api.MessageContextAware;
import org.apache.myfaces.extensions.cdi.message.api.MessageInterpolator;
import org.apache.myfaces.extensions.cdi.message.api.Localizable;
import org.apache.myfaces.extensions.cdi.message.api.Formatter;
@@ -30,12 +29,10 @@ import java.io.Serializable;
* @author Gerhard Petracek
*/
abstract class AbstractFormatterAwareMessageInterpolator
- implements MessageInterpolator, MessageContextAware, Serializable
+ implements MessageInterpolator, Serializable
{
- protected MessageContext messageContext;
-
@SuppressWarnings({"unchecked"})
- protected Object formatAsString(Object value)
+ protected Object formatAsString(MessageContext messageContext, Object value)
{
if (value == null)
{
@@ -47,30 +44,20 @@ abstract class AbstractFormatterAwareMes
return value;
}
- if (this.messageContext.config().getFormatterFactory() != null)
+ if (messageContext.config().getFormatterFactory() != null)
{
- Formatter formatter = this.messageContext.config().getFormatterFactory().findFormatter(value.getClass());
+ Formatter formatter = messageContext.config().getFormatterFactory().findFormatter(value.getClass());
if (formatter != null)
{
- return formatter.format(this.messageContext, value);
+ return formatter.format(messageContext, value);
}
}
if (value instanceof Localizable)
{
- return ((Localizable) value).toString(this.messageContext);
+ return ((Localizable) value).toString(messageContext);
}
return value;
}
-
- public void setMessageContext(MessageContext messageContext)
- {
- this.messageContext = messageContext;
- }
-
- public MessageContext getMessageContext()
- {
- throw new UnsupportedOperationException();
- }
}
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/CompositeMessageInterpolator.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/CompositeMessageInterpolator.java?rev=956099&r1=956098&r2=956099&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/CompositeMessageInterpolator.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/CompositeMessageInterpolator.java Fri Jun 18 19:08:27 2010
@@ -19,7 +19,6 @@
package org.apache.myfaces.extensions.cdi.message.impl;
import org.apache.myfaces.extensions.cdi.message.api.MessageContext;
-import org.apache.myfaces.extensions.cdi.message.api.MessageContextAware;
import org.apache.myfaces.extensions.cdi.message.api.MessageInterpolator;
import java.io.Serializable;
@@ -27,39 +26,24 @@ import java.io.Serializable;
/**
* @author Gerhard Petracek
*/
-public class CompositeMessageInterpolator implements MessageInterpolator, MessageContextAware, Serializable
+public class CompositeMessageInterpolator implements MessageInterpolator, Serializable
{
private static final long serialVersionUID = 7138747032627702804L;
private MessageInterpolator[] messageInterpolators;
- private MessageContext messageContext;
public CompositeMessageInterpolator(MessageInterpolator... messageInterpolators)
{
this.messageInterpolators = messageInterpolators;
}
- public String interpolate(String messageDescriptor, Serializable... arguments)
+ public String interpolate(MessageContext messageContext, String messageDescriptor, Serializable... arguments)
{
String result = messageDescriptor;
for (MessageInterpolator messageInterpolator : this.messageInterpolators)
{
- if (messageInterpolator instanceof MessageContextAware)
- {
- ((MessageContextAware) messageInterpolator).setMessageContext(this.messageContext);
- }
- result = messageInterpolator.interpolate(result, arguments);
+ result = messageInterpolator.interpolate(messageContext, result, arguments);
}
return result;
}
-
- public void setMessageContext(MessageContext messageContext)
- {
- this.messageContext = messageContext;
- }
-
- public MessageContext getMessageContext()
- {
- throw new UnsupportedOperationException();
- }
}
\ No newline at end of file
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultFormatterFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultFormatterFactory.java?rev=956099&r1=956098&r2=956099&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultFormatterFactory.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultFormatterFactory.java Fri Jun 18 19:08:27 2010
@@ -81,7 +81,7 @@ public class DefaultFormatterFactory imp
if (found == null)
{
- this.logger.warning("default formatter used for: " + type.getName());
+ this.logger.info("default formatter used for: " + type.getName());
found = FormatterBuilder.createFormatter(type);
}
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageBuilder.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageBuilder.java?rev=956099&r1=956098&r2=956099&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageBuilder.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageBuilder.java Fri Jun 18 19:08:27 2010
@@ -20,7 +20,6 @@ package org.apache.myfaces.extensions.cd
import org.apache.myfaces.extensions.cdi.message.api.Message;
import org.apache.myfaces.extensions.cdi.message.api.MessageContext;
-import org.apache.myfaces.extensions.cdi.message.api.MessageContextAware;
import org.apache.myfaces.extensions.cdi.message.api.MessageContextConfigAware;
import org.apache.myfaces.extensions.cdi.message.api.MessageResolver;
import org.apache.myfaces.extensions.cdi.message.api.MessageInterpolator;
@@ -347,38 +346,13 @@ class DefaultMessageBuilder implements M
private String resolveMessage(MessageResolver messageResolver, Message baseMessage)
{
- if (messageResolver instanceof MessageContextAware)
- {
- ((MessageContextAware) messageResolver).setMessageContext(this.messageContext);
- }
-
- try
- {
- return messageResolver
- .getMessage(baseMessage.getDescriptor(), this.messageContext.getLocale(), baseMessage.getPayload());
- }
- finally
- {
- cleanupMessageContext(messageResolver);
- }
+ return messageResolver.getMessage(this.messageContext, baseMessage.getDescriptor(), baseMessage.getPayload());
}
private String interpolateMessage(MessageInterpolator messageInterpolator,
String messageDescriptor, Serializable... arguments)
{
- if (messageInterpolator instanceof MessageContextAware)
- {
- ((MessageContextAware) messageInterpolator).setMessageContext(this.messageContext);
- }
-
- try
- {
- return messageInterpolator.interpolate(getEscapedTemplate(messageDescriptor), arguments);
- }
- finally
- {
- cleanupMessageContext(messageInterpolator);
- }
+ return messageInterpolator.interpolate(this.messageContext, getEscapedTemplate(messageDescriptor), arguments);
}
private String getEscapedTemplate(String messageDescriptor)
@@ -391,14 +365,6 @@ class DefaultMessageBuilder implements M
return messageDescriptor;
}
- private void cleanupMessageContext(Object object)
- {
- if (object instanceof MessageContextAware)
- {
- ((MessageContextAware) object).setMessageContext(null);
- }
- }
-
protected MessageContext getMessageContext()
{
return this.messageContext;
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageInterpolator.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageInterpolator.java?rev=956099&r1=956098&r2=956099&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageInterpolator.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageInterpolator.java Fri Jun 18 19:08:27 2010
@@ -19,6 +19,7 @@
package org.apache.myfaces.extensions.cdi.message.impl;
import org.apache.myfaces.extensions.cdi.message.api.MessageInterpolator;
+import org.apache.myfaces.extensions.cdi.message.api.MessageContext;
import java.io.Serializable;
@@ -29,7 +30,7 @@ class DefaultMessageInterpolator impleme
{
private static final long serialVersionUID = -8854087197813424812L;
- public String interpolate(String messageDescriptor, Serializable... arguments)
+ public String interpolate(MessageContext messageContext, String messageDescriptor, Serializable... arguments)
{
return messageDescriptor;
}
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/ELAwareMessageInterpolator.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/ELAwareMessageInterpolator.java?rev=956099&r1=956098&r2=956099&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/ELAwareMessageInterpolator.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/ELAwareMessageInterpolator.java Fri Jun 18 19:08:27 2010
@@ -19,6 +19,7 @@
package org.apache.myfaces.extensions.cdi.message.impl;
import org.apache.myfaces.extensions.cdi.message.api.NamedArgument;
+import org.apache.myfaces.extensions.cdi.message.api.MessageContext;
import org.apache.myfaces.extensions.cdi.message.impl.spi.ELProvider;
import org.apache.myfaces.extensions.cdi.message.impl.spi.SimpleELContext;
@@ -47,13 +48,13 @@ public class ELAwareMessageInterpolator
this.elProvider = elProvider;
}
- public String interpolate(String messageDescriptor, Serializable... arguments)
+ public String interpolate(MessageContext messageContext, String messageDescriptor, Serializable... arguments)
{
List<NamedArgument> namedArguments = addNamedArguments(arguments);
if (namedArguments.size() > 0)
{
- return interpolateNamedArguments(messageDescriptor, namedArguments);
+ return interpolateNamedArguments(messageContext, messageDescriptor, namedArguments);
}
return messageDescriptor;
}
@@ -74,7 +75,9 @@ public class ELAwareMessageInterpolator
}
//TODO add warning for unused arguments,...
- private String interpolateNamedArguments(String messageDescriptor, List<NamedArgument> namedArguments)
+ private String interpolateNamedArguments(MessageContext messageContext,
+ String messageDescriptor,
+ List<NamedArgument> namedArguments)
{
ExpressionFactory factory = this.elProvider.createExpressionFactory();
SimpleELContext elContext = this.elProvider.createELContext(this.elProvider.createELResolver());
@@ -82,7 +85,8 @@ public class ELAwareMessageInterpolator
for (NamedArgument argument : namedArguments)
{
Serializable value = argument.getValue();
- elContext.setVariable(argument.getName(), factory.createValueExpression(value, value.getClass()));
+ Class valueType = value != null ? value.getClass() : Object.class;
+ elContext.setVariable(argument.getName(), factory.createValueExpression(value, valueType));
}
Matcher matcher = MESSAGE_ARGS_PATTERN.matcher(messageDescriptor);
@@ -99,7 +103,7 @@ public class ELAwareMessageInterpolator
if (value != null && !isUnresolvedArgument(expression, value))
{
- resolvedArgumentValue = formatAsString(value).toString();
+ resolvedArgumentValue = formatAsString(messageContext, value).toString();
}
else
{
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/NumberedArgumentAwareMessageInterpolator.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/NumberedArgumentAwareMessageInterpolator.java?rev=956099&r1=956098&r2=956099&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/NumberedArgumentAwareMessageInterpolator.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/NumberedArgumentAwareMessageInterpolator.java Fri Jun 18 19:08:27 2010
@@ -19,6 +19,7 @@
package org.apache.myfaces.extensions.cdi.message.impl;
import org.apache.myfaces.extensions.cdi.message.api.NamedArgument;
+import org.apache.myfaces.extensions.cdi.message.api.MessageContext;
import java.io.Serializable;
import java.text.MessageFormat;
@@ -32,13 +33,13 @@ public class NumberedArgumentAwareMessag
{
private static final long serialVersionUID = 8699632465559596371L;
- public String interpolate(String messageDescriptor, Serializable... arguments)
+ public String interpolate(MessageContext messageContext, String messageDescriptor, Serializable... arguments)
{
Serializable[] numberedArguments = addNumberedArguments(arguments);
if (numberedArguments.length > 0)
{
- return formatMessage(messageDescriptor, numberedArguments);
+ return formatMessage(messageContext, messageDescriptor, numberedArguments);
}
return messageDescriptor;
@@ -60,7 +61,7 @@ public class NumberedArgumentAwareMessag
}
//TODO add warning for unused arguments,...
- private String formatMessage(String messageDescriptor, Serializable[] arguments)
+ private String formatMessage(MessageContext messageContext, String messageDescriptor, Serializable[] arguments)
{
Object[] localizedArguments = null;
Object argument;
@@ -69,7 +70,7 @@ public class NumberedArgumentAwareMessag
for (int i = 0; i < arguments.length; i++)
{
argument = arguments[i];
- localizedArgument = formatAsString(argument);
+ localizedArgument = formatAsString(messageContext, argument);
if (localizedArgument != argument)
{
@@ -82,8 +83,7 @@ public class NumberedArgumentAwareMessag
}
}
- MessageFormat messageFormat = new MessageFormat(
- messageDescriptor, this.messageContext.getLocale());
+ MessageFormat messageFormat = new MessageFormat(messageDescriptor, messageContext.getLocale());
if (localizedArguments == null)
{
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/message/test/TestMessageResolver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/message/test/TestMessageResolver.java?rev=956099&r1=956098&r2=956099&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/message/test/TestMessageResolver.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/message/test/TestMessageResolver.java Fri Jun 18 19:08:27 2010
@@ -19,9 +19,9 @@
package org.apache.myfaces.extensions.cdi.message.test;
import org.apache.myfaces.extensions.cdi.message.api.MessageResolver;
+import org.apache.myfaces.extensions.cdi.message.api.MessageContext;
import org.apache.myfaces.extensions.cdi.message.api.payload.MessagePayload;
-import java.util.Locale;
import java.util.Map;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
@@ -35,7 +35,9 @@ class TestMessageResolver implements Mes
private static final String TEST_TECHNICAL_MESSAGES = "org.apache.myfaces.extensions.cdi.message.test.t_messages";
private static final String TEST_LABELS = "org.apache.myfaces.extensions.cdi.message.test.labels";
- public String getMessage(String key, Locale locale, Map<Class, Class<? extends MessagePayload>> messagePayload)
+ public String getMessage(MessageContext messageContext,
+ String key,
+ Map<Class, Class<? extends MessagePayload>> messagePayload)
{
if (!isKey(key))
{
@@ -48,13 +50,16 @@ class TestMessageResolver implements Mes
if(messagePayload.containsKey(Label.class))
{
- return ResourceBundle.getBundle(TEST_LABELS, locale, getClassLoader()).getString(key);
+ return ResourceBundle.getBundle(
+ TEST_LABELS, messageContext.getLocale(), getClassLoader()).getString(key);
}
else if(messagePayload.containsKey(TechnicalMessage.class))
{
- return ResourceBundle.getBundle(TEST_TECHNICAL_MESSAGES, locale, getClassLoader()).getString(key);
+ return ResourceBundle.getBundle(
+ TEST_TECHNICAL_MESSAGES, messageContext.getLocale(), getClassLoader()).getString(key);
}
- return ResourceBundle.getBundle(TEST_MESSAGES, locale, getClassLoader()).getString(key);
+ return ResourceBundle.getBundle(
+ TEST_MESSAGES, messageContext.getLocale(), getClassLoader()).getString(key);
}
catch (MissingResourceException e)
{
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/message/test/TestPayloadAwareMessageResolver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/message/test/TestPayloadAwareMessageResolver.java?rev=956099&r1=956098&r2=956099&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/message/test/TestPayloadAwareMessageResolver.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/message/test/TestPayloadAwareMessageResolver.java Fri Jun 18 19:08:27 2010
@@ -19,10 +19,10 @@
package org.apache.myfaces.extensions.cdi.message.test;
import org.apache.myfaces.extensions.cdi.message.api.MessageResolver;
+import org.apache.myfaces.extensions.cdi.message.api.MessageContext;
import org.apache.myfaces.extensions.cdi.message.api.payload.MessagePayload;
import org.apache.myfaces.extensions.cdi.message.api.payload.MessageSeverity;
-import java.util.Locale;
import java.util.Map;
/**
@@ -32,7 +32,9 @@ class TestPayloadAwareMessageResolver im
{
private boolean isPayloadAvailable = false;
- public String getMessage(String key, Locale locale, Map<Class, Class<? extends MessagePayload>> payload)
+ public String getMessage(MessageContext messageContext,
+ String key,
+ Map<Class, Class<? extends MessagePayload>> payload)
{
if(MessageSeverity.Warn.class.equals(payload.get(MessageSeverity.class)))
{