You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by st...@apache.org on 2013/05/11 15:49:40 UTC
git commit: DELTASPIKE-356 fix JsfMessage which I broke with the
refactoring
Updated Branches:
refs/heads/master 7aea84015 -> acc6c7368
DELTASPIKE-356 fix JsfMessage which I broke with the refactoring
Project: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/commit/acc6c736
Tree: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/tree/acc6c736
Diff: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/diff/acc6c736
Branch: refs/heads/master
Commit: acc6c73680f4f2fb0b13c9a4b429d995035a34c7
Parents: 7aea840
Author: Mark Struberg <st...@apache.org>
Authored: Sat May 11 15:38:40 2013 +0200
Committer: Mark Struberg <st...@apache.org>
Committed: Sat May 11 15:38:40 2013 +0200
----------------------------------------------------------------------
.../message/MessageBundleInvocationHandler.java | 5 +++-
.../jsf/impl/message/DefaultJsfMessage.java | 13 +++++++----
.../message/JsfMessageBundleInvocationHandler.java | 16 ++++++++++----
.../jsf/impl/message/JsfMessageProducer.java | 11 ++++++---
4 files changed, 30 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/acc6c736/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/message/MessageBundleInvocationHandler.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/message/MessageBundleInvocationHandler.java b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/message/MessageBundleInvocationHandler.java
index ae84341..3402787 100644
--- a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/message/MessageBundleInvocationHandler.java
+++ b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/message/MessageBundleInvocationHandler.java
@@ -37,7 +37,10 @@ import org.apache.deltaspike.core.api.message.MessageTemplate;
import org.apache.deltaspike.core.api.provider.BeanProvider;
import org.apache.deltaspike.core.util.ClassUtils;
-
+/**
+ * This Proxy InvocationHandler implements the handling for all our
+ * {@link org.apache.deltaspike.core.api.message.MessageBundle}s.
+ */
@Dependent
public class MessageBundleInvocationHandler implements InvocationHandler, Serializable
{
http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/acc6c736/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/message/DefaultJsfMessage.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/message/DefaultJsfMessage.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/message/DefaultJsfMessage.java
index 0be7212..c45a739 100644
--- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/message/DefaultJsfMessage.java
+++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/message/DefaultJsfMessage.java
@@ -25,6 +25,7 @@ import javax.faces.component.UIComponent;
import java.lang.reflect.Proxy;
import org.apache.deltaspike.core.api.message.MessageBundle;
+import org.apache.deltaspike.core.impl.message.MessageBundleInvocationHandler;
import org.apache.deltaspike.core.util.ClassUtils;
import org.apache.deltaspike.jsf.api.message.JsfMessage;
@@ -35,18 +36,20 @@ import org.apache.deltaspike.jsf.api.message.JsfMessage;
*/
public class DefaultJsfMessage<T> implements JsfMessage<T>
{
- private String clientId = null;
- private Class<T> type;
+ private final String clientId;
+ private final Class<T> type;
+ private final MessageBundleInvocationHandler invocationHandler;
/**
* The Message type
* @param type
* @param clientId
*/
- public DefaultJsfMessage(Class<T> type, String clientId)
+ public DefaultJsfMessage(Class<T> type, String clientId, MessageBundleInvocationHandler invocationHandler)
{
this.type = type;
this.clientId = clientId;
+ this.invocationHandler = invocationHandler;
if (! type.isInterface() || type.getAnnotation(MessageBundle.class) == null)
{
@@ -58,7 +61,7 @@ public class DefaultJsfMessage<T> implements JsfMessage<T>
@Override
public JsfMessage<T> forClientId(String clientId)
{
- return new DefaultJsfMessage<T>(type, clientId);
+ return new DefaultJsfMessage<T>(type, clientId, invocationHandler);
}
@Override
@@ -100,7 +103,7 @@ public class DefaultJsfMessage<T> implements JsfMessage<T>
private T getMessage(FacesMessage.Severity severity)
{
return type.cast(Proxy.newProxyInstance(ClassUtils.getClassLoader(null),
- new Class<?>[]{type}, new JsfMessageBundleInvocationHandler(severity, clientId)));
+ new Class<?>[]{type}, new JsfMessageBundleInvocationHandler(severity, clientId, invocationHandler)));
}
}
http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/acc6c736/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/message/JsfMessageBundleInvocationHandler.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/message/JsfMessageBundleInvocationHandler.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/message/JsfMessageBundleInvocationHandler.java
index a75bf8e..e8915ab 100644
--- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/message/JsfMessageBundleInvocationHandler.java
+++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/message/JsfMessageBundleInvocationHandler.java
@@ -18,8 +18,10 @@
*/
package org.apache.deltaspike.jsf.impl.message;
+import javax.enterprise.inject.Typed;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
+import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import org.apache.deltaspike.core.api.message.Message;
@@ -30,20 +32,24 @@ import org.apache.deltaspike.jsf.api.message.JsfMessage;
* This Proxy InvocationHandler automatically registers the
* returned messages in the FacesContext if a severity is set.
*/
-public class JsfMessageBundleInvocationHandler extends MessageBundleInvocationHandler
+@Typed()
+public class JsfMessageBundleInvocationHandler implements InvocationHandler
{
- private FacesMessage.Severity severity;
- private String clientId;
+ private final FacesMessage.Severity severity;
+ private final String clientId;
+ private final MessageBundleInvocationHandler invocationHandler;
- public JsfMessageBundleInvocationHandler(FacesMessage.Severity severity, String clientId)
+ public JsfMessageBundleInvocationHandler(FacesMessage.Severity severity, String clientId,
+ MessageBundleInvocationHandler invocationHandler)
{
this.severity = severity;
this.clientId = clientId;
+ this.invocationHandler = invocationHandler;
}
public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable
{
- Object message = super.invoke(proxy, method, args);
+ Object message = invocationHandler.invoke(proxy, method, args);
if (severity == null)
{
http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/acc6c736/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/message/JsfMessageProducer.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/message/JsfMessageProducer.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/message/JsfMessageProducer.java
index c035b23..8751468 100644
--- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/message/JsfMessageProducer.java
+++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/message/JsfMessageProducer.java
@@ -26,6 +26,7 @@ import javax.enterprise.inject.spi.InjectionPoint;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
+import org.apache.deltaspike.core.impl.message.MessageBundleInvocationHandler;
import org.apache.deltaspike.jsf.api.message.JsfMessage;
/**
@@ -36,7 +37,8 @@ public class JsfMessageProducer
{
@Produces
@Dependent
- public <M> JsfMessage<M> createJsfMessage(InjectionPoint injectionPoint)
+ public <M> JsfMessage<M> createJsfMessage(InjectionPoint injectionPoint,
+ MessageBundleInvocationHandler invocationHandler)
{
if (!(injectionPoint.getType() instanceof ParameterizedType))
{
@@ -52,7 +54,7 @@ public class JsfMessageProducer
{
@SuppressWarnings("unchecked")
Class<M> type = (Class<M>) actualTypes[0];
- return createJsfMessageFor(injectionPoint, type);
+ return createJsfMessageFor(injectionPoint, type, invocationHandler);
}
catch (ClassCastException e)
{
@@ -60,9 +62,10 @@ public class JsfMessageProducer
}
}
- private <M> JsfMessage<M> createJsfMessageFor(InjectionPoint injectionPoint, Class<M> rawType)
+ private <M> JsfMessage<M> createJsfMessageFor(InjectionPoint injectionPoint, Class<M> rawType,
+ MessageBundleInvocationHandler invocationHandler)
{
// X TODO check if the JsfMessage should get injected into a UIComponent and use #getClientId()
- return new DefaultJsfMessage<M>(rawType, null);
+ return new DefaultJsfMessage<M>(rawType, null, invocationHandler);
}
}