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 2011/07/14 16:52:52 UTC
svn commit: r1146738 - in /myfaces/extensions/cdi/trunk:
core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/
jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/
jee-...
Author: gpetracek
Date: Thu Jul 14 14:52:51 2011
New Revision: 1146738
URL: http://svn.apache.org/viewvc?rev=1146738&view=rev
Log:
EXTCDI-207 implicit sub-groups for conversation groups
Modified:
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationSubGroup.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/JsfWindowContext.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/util/ConversationUtils.java
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationSubGroup.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationSubGroup.java?rev=1146738&r1=1146737&r2=1146738&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationSubGroup.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationSubGroup.java Thu Jul 14 14:52:51 2011
@@ -55,8 +55,14 @@ import static java.lang.annotation.Reten
public @interface ConversationSubGroup
{
/**
+ * Optionally defines the base conversation group
+ * @return base conversation group or ConversationSubGroup if the subgroup inherits from the base conversation group
+ */
+ Class<?> of() default ConversationSubGroup.class;
+
+ /**
* Beans of the group which should be closed
* @return beans of the group which should be closed
*/
- Class<?>[] value();
+ Class<?>[] groups();
}
\ No newline at end of file
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/JsfWindowContext.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/JsfWindowContext.java?rev=1146738&r1=1146737&r2=1146738&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/JsfWindowContext.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/JsfWindowContext.java Thu Jul 14 14:52:51 2011
@@ -140,7 +140,7 @@ class JsfWindowContext implements Editab
Class<?>[] subGroups = null;
if(conversationSubGroup != null)
{
- subGroups = conversationSubGroup.value();
+ subGroups = conversationSubGroup.groups();
conversationGroupKey = convertToSubGroup(conversationGroupKey);
}
@@ -206,7 +206,7 @@ class JsfWindowContext implements Editab
Class<?>[] subGroups = null;
if(conversationSubGroup != null)
{
- subGroups = conversationSubGroup.value();
+ subGroups = conversationSubGroup.groups();
conversationGroupKey = convertToSubGroup(conversationGroupKey);
}
@@ -229,7 +229,7 @@ class JsfWindowContext implements Editab
Class<?>[] subGroups = null;
if(conversationSubGroup != null)
{
- subGroups = conversationSubGroup.value();
+ subGroups = conversationSubGroup.groups();
conversationGroupKey = convertToSubGroup(conversationGroupKey);
}
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/util/ConversationUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/util/ConversationUtils.java?rev=1146738&r1=1146737&r2=1146738&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/util/ConversationUtils.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/util/ConversationUtils.java Thu Jul 14 14:52:51 2011
@@ -20,6 +20,7 @@ package org.apache.myfaces.extensions.cd
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationGroup;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationScoped;
+import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationSubGroup;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ViewAccessScoped;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowContext;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowScoped;
@@ -713,12 +714,27 @@ public abstract class ConversationUtils
public static Class<?> convertToSubGroup(Class<?> conversationGroupKey)
{
- Class<?> result = conversationGroupKey.getSuperclass();
+ ConversationSubGroup conversationSubGroup = conversationGroupKey.getAnnotation(ConversationSubGroup.class);
- if(result == null && conversationGroupKey.getInterfaces().length == 1)
+ Class<?> result = conversationSubGroup.of();
+
+ if(!ConversationSubGroup.class.equals(result))
+ {
+ return result;
+ }
+
+ result = conversationGroupKey.getSuperclass();
+
+ if((result == null || Object.class.getName().equals(result.getName())) &&
+ conversationGroupKey.getInterfaces().length == 1)
{
result = conversationGroupKey.getInterfaces()[0];
}
+
+ if(Object.class.getName().equals(result.getName()))
+ {
+ return null;
+ }
return result;
}
}