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/04/20 11:49:34 UTC
svn commit: r935848 - in
/myfaces/extensions/cdi/trunk/jse-modules/message-module:
api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/
impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/
impl/src/test/java/org/apache/myfaces...
Author: gpetracek
Date: Tue Apr 20 09:49:34 2010
New Revision: 935848
URL: http://svn.apache.org/viewvc?rev=935848&view=rev
Log:
EXTCDI-21 minor improvements
Modified:
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/AbstractMessage.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/test/java/org/apache/myfaces/extensions/cdi/message/test/HelperTest.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/message/test/SimpleMessageTest.java
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/AbstractMessage.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/AbstractMessage.java?rev=935848&r1=935847&r2=935848&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/AbstractMessage.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/AbstractMessage.java Tue Apr 20 09:49:34 2010
@@ -83,6 +83,15 @@ public abstract class AbstractMessage im
{
for (Serializable argument : arguments)
{
+ if(argument == null)
+ {
+ argument = "null";
+ }
+ else if(argument instanceof Localizable && this.getMessageContextConfig() != null)
+ {
+ argument = ((Localizable)argument).toString(this.getMessageContextConfig().use().create());
+ }
+
checkArgument(argument);
if (argument instanceof NamedArgument)
{
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=935848&r1=935847&r2=935848&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 Tue Apr 20 09:49:34 2010
@@ -21,8 +21,11 @@ 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;
+import org.apache.myfaces.extensions.cdi.message.api.Formatter;
+import org.apache.myfaces.extensions.cdi.message.api.Localizable;
import org.apache.myfaces.extensions.cdi.message.api.NamedArgument;
import org.apache.myfaces.extensions.cdi.message.api.payload.MessagePayload;
import org.apache.myfaces.extensions.cdi.message.api.payload.MessagePayloadKey;
@@ -118,6 +121,12 @@ class DefaultMessageBuilder implements M
Class<? extends MessagePayload> severity = getMessageSeverity();
Message result = new DefaultMessage(this.messageTemplate, severity);
+
+ if(result instanceof MessageContextConfigAware)
+ {
+ ((MessageContextConfigAware)result).setMessageContextConfig(this.messageContext.config());
+ }
+
addArguments(result);
addPayload(result);
@@ -218,18 +227,64 @@ class DefaultMessageBuilder implements M
private String checkedResult(String result, Message baseMessage)
{
- if (result == null || isKey(baseMessage.getTemplate()))
+ if (result == null || isKey(baseMessage.getTemplate()) || (!result.contains(" ") && result.endsWith(baseMessage.getTemplate())))
{
String oldTemplate = extractTemplate(baseMessage.getTemplate()); //minor performance tweak for inline-msg
if (result == null || result.equals(oldTemplate))
{
- return MessageResolver.MISSING_RESOURCE_MARKER + oldTemplate + MessageResolver.MISSING_RESOURCE_MARKER;
+ return MessageResolver.MISSING_RESOURCE_MARKER + oldTemplate + MessageResolver.MISSING_RESOURCE_MARKER + getArguments(baseMessage);
}
}
return result;
}
+ private String getArguments(Message message)
+ {
+ StringBuffer result = new StringBuffer();
+
+ Serializable argument;
+ Serializable[] arguments = message.getArguments();
+ Formatter formatter;
+
+ if(arguments == null || arguments.length == 0)
+ {
+ return "";
+ }
+
+ for(int i = 0; i < arguments.length; i++)
+ {
+ if(i == 0)
+ {
+ result.append(" (");
+ }
+ else
+ {
+ result.append(",");
+ }
+
+ argument = arguments[i];
+ formatter = this.messageContext.config().getFormatterFactory().findFormatter(argument.getClass());
+
+ if (formatter != null)
+ {
+ //noinspection unchecked
+ result.append(formatter.format(this.messageContext, argument));
+ }
+ else if(argument instanceof Localizable)
+ {
+ result.append(((Localizable)argument).toString(this.messageContext));
+ }
+ else
+ {
+ result.append(argument.toString());
+ }
+ }
+ result.append(')');
+
+ return result.toString();
+ }
+
private String extractTemplate(String template)
{
String result = getEscapedTemplate(template);
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/message/test/HelperTest.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/HelperTest.java?rev=935848&r1=935847&r2=935848&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/message/test/HelperTest.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/message/test/HelperTest.java Tue Apr 20 09:49:34 2010
@@ -19,6 +19,7 @@
package org.apache.myfaces.extensions.cdi.message.test;
import org.apache.myfaces.extensions.cdi.message.api.Message;
+import org.apache.myfaces.extensions.cdi.message.api.MessageContextConfigAware;
import org.apache.myfaces.extensions.cdi.message.impl.DefaultMessage;
import org.apache.myfaces.extensions.cdi.message.impl.ELAwareMessageInterpolator;
import org.apache.myfaces.extensions.cdi.message.impl.NamedArguments;
@@ -48,6 +49,7 @@ public class HelperTest extends Abstract
.namedArgument("arg1", arg1).namedArgument("arg2", arg2).create();
Message message2 = new DefaultMessage(text, NamedArguments.add("arg1", arg1).add("arg2", arg2).create());
+ ((MessageContextConfigAware)message2).setMessageContextConfig(this.messageContext.config());
assertEquals(message1, message2);
assertEquals(message1.toString(), message2.toString());
@@ -69,6 +71,7 @@ public class HelperTest extends Abstract
arguments.put("arg1", arg1);
arguments.put("arg2", arg2);
Message message2 = new DefaultMessage(text, NamedArguments.convert(arguments));
+ ((MessageContextConfigAware)message2).setMessageContextConfig(this.messageContext.config());
assertEquals(message1, message2);
assertEquals(message1.toString(), message2.toString());
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/message/test/SimpleMessageTest.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/SimpleMessageTest.java?rev=935848&r1=935847&r2=935848&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/message/test/SimpleMessageTest.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/message/test/SimpleMessageTest.java Tue Apr 20 09:49:34 2010
@@ -104,6 +104,14 @@ public class SimpleMessageTest extends A
}
@Test
+ public void createInvalidMessageWithArgumentsTest()
+ {
+ String messageText = this.messageContext.message().text("{xyz123}").argument("123").argument("456").argument("789").toText();
+
+ assertEquals("???xyz123??? (123,456,789)", messageText);
+ }
+
+ @Test
public void resolveTextTest()
{
String messageText = this.messageContext.message().text("{hello}").toText();