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/07/11 13:33:59 UTC
svn commit: r963054 - in /myfaces/extensions/cdi/trunk:
core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/
examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/
je...
Author: gpetracek
Date: Sun Jul 11 11:33:58 2010
New Revision: 963054
URL: http://svn.apache.org/viewvc?rev=963054&view=rev
Log:
EXTCDI-1, EXTCDI-2 and EXTCDI-3 refactoring for simpler usage
Added:
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/DefaultGroup.java
- copied, changed from r962943, myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationGroup.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ViewAccessGroup.java
- copied, changed from r962943, myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ViewAccess.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowGroup.java
- copied, changed from r962943, myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/Window.java
Removed:
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ViewAccess.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/Window.java
Modified:
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationGroup.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationScoped.java
myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationDemoBean1.java
myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationDemoBean2.java
myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationDemoBean3.java
myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationDemoBean4.java
myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationGroup1.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/DefaultConversation.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/GroupedConversationContextAdapter.java
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationGroup.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/ConversationGroup.java?rev=963054&r1=963053&r2=963054&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationGroup.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationGroup.java Sun Jul 11 11:33:58 2010
@@ -18,20 +18,11 @@
*/
package org.apache.myfaces.extensions.cdi.core.api.scope.conversation;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-
/**
* TODO refactor it
*
* @author Gerhard Petracek
*/
-@Target({TYPE})
-@Retention(RUNTIME)
-public @interface ConversationGroup
+public interface ConversationGroup
{
- Class value();
}
\ No newline at end of file
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationScoped.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/ConversationScoped.java?rev=963054&r1=963053&r2=963054&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationScoped.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationScoped.java Sun Jul 11 11:33:58 2010
@@ -37,4 +37,5 @@ import static java.lang.annotation.Reten
@Inherited
public @interface ConversationScoped
{
+ Class<? extends ConversationGroup> value() default DefaultGroup.class;
}
Copied: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/DefaultGroup.java (from r962943, myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationGroup.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/DefaultGroup.java?p2=myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/DefaultGroup.java&p1=myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationGroup.java&r1=962943&r2=963054&rev=963054&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationGroup.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/DefaultGroup.java Sun Jul 11 11:33:58 2010
@@ -18,20 +18,11 @@
*/
package org.apache.myfaces.extensions.cdi.core.api.scope.conversation;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-
/**
* TODO refactor it
*
* @author Gerhard Petracek
*/
-@Target({TYPE})
-@Retention(RUNTIME)
-public @interface ConversationGroup
+public interface DefaultGroup extends ConversationGroup
{
- Class value();
}
\ No newline at end of file
Copied: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ViewAccessGroup.java (from r962943, myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ViewAccess.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/ViewAccessGroup.java?p2=myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ViewAccessGroup.java&p1=myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ViewAccess.java&r1=962943&r2=963054&rev=963054&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ViewAccess.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ViewAccessGroup.java Sun Jul 11 11:33:58 2010
@@ -18,17 +18,9 @@
*/
package org.apache.myfaces.extensions.cdi.core.api.scope.conversation;
-import static java.lang.annotation.ElementType.TYPE;
-import java.lang.annotation.Retention;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import java.lang.annotation.Target;
-
-
/**
* @author Gerhard Petracek
*/
-@Target({TYPE})
-@Retention(RUNTIME)
-public @interface ViewAccess
+public interface ViewAccessGroup extends ConversationGroup
{
}
\ No newline at end of file
Copied: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowGroup.java (from r962943, myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/Window.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/WindowGroup.java?p2=myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowGroup.java&p1=myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/Window.java&r1=962943&r2=963054&rev=963054&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/Window.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowGroup.java Sun Jul 11 11:33:58 2010
@@ -18,17 +18,9 @@
*/
package org.apache.myfaces.extensions.cdi.core.api.scope.conversation;
-import static java.lang.annotation.ElementType.TYPE;
-import java.lang.annotation.Retention;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import java.lang.annotation.Target;
-
-
/**
* @author Gerhard Petracek
*/
-@Target({TYPE})
-@Retention(RUNTIME)
-public @interface Window
+public interface WindowGroup extends ConversationGroup
{
}
\ No newline at end of file
Modified: myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationDemoBean1.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/conversation/grouped/ConversationDemoBean1.java?rev=963054&r1=963053&r2=963054&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationDemoBean1.java (original)
+++ myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationDemoBean1.java Sun Jul 11 11:33:58 2010
@@ -19,7 +19,6 @@
package org.apache.myfaces.blank.conversation.grouped;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationScoped;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationGroup;
import javax.inject.Named;
import javax.annotation.PostConstruct;
@@ -30,8 +29,7 @@ import java.util.Date;
* @author Gerhard Petracek
*/
@Named
-@ConversationScoped
-@ConversationGroup(ConversationGroup1.class)
+@ConversationScoped(ConversationGroup1.class)
public class ConversationDemoBean1 implements Serializable
{
private String value = "Hello grouped conversation1! ";
Modified: myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationDemoBean2.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/conversation/grouped/ConversationDemoBean2.java?rev=963054&r1=963053&r2=963054&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationDemoBean2.java (original)
+++ myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationDemoBean2.java Sun Jul 11 11:33:58 2010
@@ -19,7 +19,6 @@
package org.apache.myfaces.blank.conversation.grouped;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationScoped;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationGroup;
import javax.inject.Named;
import javax.annotation.PostConstruct;
@@ -30,8 +29,7 @@ import java.util.Date;
* @author Gerhard Petracek
*/
@Named
-@ConversationScoped
-@ConversationGroup(ConversationGroup1.class)
+@ConversationScoped(ConversationGroup1.class)
public class ConversationDemoBean2 implements Serializable
{
private String value = "Hello grouped conversation2! ";
Modified: myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationDemoBean3.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/conversation/grouped/ConversationDemoBean3.java?rev=963054&r1=963053&r2=963054&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationDemoBean3.java (original)
+++ myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationDemoBean3.java Sun Jul 11 11:33:58 2010
@@ -19,7 +19,7 @@
package org.apache.myfaces.blank.conversation.grouped;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationScoped;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Window;
+import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowGroup;
import javax.inject.Named;
import javax.annotation.PostConstruct;
@@ -30,8 +30,7 @@ import java.util.Date;
* @author Gerhard Petracek
*/
@Named
-@Window
-@ConversationScoped
+@ConversationScoped(WindowGroup.class)
public class ConversationDemoBean3 implements Serializable
{
private String value = "Hello window conversation! ";
Modified: myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationDemoBean4.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/conversation/grouped/ConversationDemoBean4.java?rev=963054&r1=963053&r2=963054&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationDemoBean4.java (original)
+++ myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationDemoBean4.java Sun Jul 11 11:33:58 2010
@@ -19,7 +19,7 @@
package org.apache.myfaces.blank.conversation.grouped;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationScoped;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ViewAccess;
+import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ViewAccessGroup;
import javax.inject.Named;
import javax.annotation.PostConstruct;
@@ -30,8 +30,7 @@ import java.util.Date;
* @author Gerhard Petracek
*/
@Named
-@ViewAccess
-@ConversationScoped
+@ConversationScoped(ViewAccessGroup.class)
public class ConversationDemoBean4 implements Serializable
{
private String value = "Hello view access scoped! ";
Modified: myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationGroup1.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/conversation/grouped/ConversationGroup1.java?rev=963054&r1=963053&r2=963054&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationGroup1.java (original)
+++ myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/blank/conversation/grouped/ConversationGroup1.java Sun Jul 11 11:33:58 2010
@@ -18,9 +18,11 @@
*/
package org.apache.myfaces.blank.conversation.grouped;
+import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationGroup;
+
/**
* @author Gerhard Petracek
*/
-interface ConversationGroup1
+interface ConversationGroup1 extends ConversationGroup
{
}
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/DefaultConversation.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/scope/conversation/DefaultConversation.java?rev=963054&r1=963053&r2=963054&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/DefaultConversation.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/DefaultConversation.java Sun Jul 11 11:33:58 2010
@@ -19,8 +19,9 @@
package org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Conversation;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ViewAccess;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Window;
+import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ViewAccessGroup;
+import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowGroup;
+import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationScoped;
import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.BeanEntry;
import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.EditableConversation;
@@ -52,15 +53,12 @@ public class DefaultConversation impleme
private Date lastAccess;
- public DefaultConversation(Class groupKey, int conversationTimeoutInMinutes)
+ public DefaultConversation(Class<?> groupKey, int conversationTimeoutInMinutes)
{
this.groupKey = groupKey;
- this.windowScoped = Window.class.isAssignableFrom(groupKey);
+ this.windowScoped = WindowGroup.class.isAssignableFrom(groupKey);
- if (groupKey.isAnnotationPresent(ViewAccess.class))
- {
- this.lastViewId = getCurrentViewId();
- }
+ tryToProcessAccessViewScope(groupKey);
this.beanStorage = new BeanStorage();
this.conversationTimeoutInMs = conversationTimeoutInMinutes * 60000;
@@ -113,10 +111,7 @@ public class DefaultConversation impleme
public <T> void addBean(Class<?> beanClass, BeanEntry<T> beanEntry)
{
- if (beanEntry.getBean().getBeanClass().isAnnotationPresent(ViewAccess.class))
- {
- this.lastViewId = getCurrentViewId();
- }
+ tryToProcessAccessViewScope(beanClass);
//TODO check if conversation is active
touchConversation();
@@ -171,4 +166,13 @@ public class DefaultConversation impleme
{
return FacesContext.getCurrentInstance().getViewRoot().getViewId();
}
+
+ private void tryToProcessAccessViewScope(Class<?> groupKey)
+ {
+ ConversationScoped conversationScoped = groupKey.getAnnotation(ConversationScoped.class);
+ if (conversationScoped != null && ViewAccessGroup.class.isAssignableFrom(conversationScoped.value()))
+ {
+ this.lastViewId = getCurrentViewId();
+ }
+ }
}
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/GroupedConversationContextAdapter.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/scope/conversation/GroupedConversationContextAdapter.java?rev=963054&r1=963053&r2=963054&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/GroupedConversationContextAdapter.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/GroupedConversationContextAdapter.java Sun Jul 11 11:33:58 2010
@@ -19,8 +19,10 @@
package org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Conversation;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationGroup;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Window;
+import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationScoped;
+import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.DefaultGroup;
+import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowGroup;
+import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ViewAccessGroup;
import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.AbstractConversationContextAdapter;
import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.BeanEntry;
import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.EditableConversation;
@@ -75,7 +77,7 @@ public class GroupedConversationContextA
protected <T> T resolveBeanInstance(WindowContextManager conversationManager, Bean<T> beanDescriptor)
{
Class<?> beanClass = beanDescriptor.getBeanClass();
- Conversation foundConversation = getConversation(conversationManager, beanClass);
+ Conversation foundConversation = getConversation(conversationManager, beanDescriptor);
//noinspection unchecked
return (T) foundConversation.getBean(beanClass);
@@ -83,32 +85,33 @@ public class GroupedConversationContextA
protected <T> void scopeBeanEntry(WindowContextManager conversationManager, BeanEntry<T> beanEntry)
{
- Class<?> beanClass = beanEntry.getBean().getBeanClass();
- Conversation foundConversation = getConversation(conversationManager, beanClass);
+ Bean<?> bean = beanEntry.getBean();
+ Conversation foundConversation = getConversation(conversationManager, bean);
- ((EditableConversation) foundConversation).addBean(beanClass, beanEntry);
+ ((EditableConversation) foundConversation).addBean(bean.getBeanClass(), beanEntry);
}
- private Conversation getConversation(WindowContextManager conversationManager, Class<?> beanClass)
+ private Conversation getConversation(WindowContextManager conversationManager, Bean<?> beanClass)
{
Class conversationGroup = getConversationGroup(beanClass);
return conversationManager.getCurrentWindowContext().getConversation(conversationGroup);
}
- private Class getConversationGroup(Class<?> beanClass)
+ private Class getConversationGroup(Bean<?> bean)
{
- ConversationGroup conversationGroupAnnotation = beanClass.getAnnotation(ConversationGroup.class);
+ Class groupClass = bean.getBeanClass().getAnnotation(ConversationScoped.class).value();
- if (conversationGroupAnnotation != null)
+ if(DefaultGroup.class.isAssignableFrom(groupClass) || ViewAccessGroup.class.isAssignableFrom(groupClass))
{
- return conversationGroupAnnotation.value();
+ return bean.getBeanClass();
}
- if (beanClass.isAnnotationPresent(Window.class))
+ if(WindowGroup.class.isAssignableFrom(groupClass))
{
- return Window.class;
+ return WindowGroup.class;
}
- return beanClass;
+
+ return groupClass;
}
}
\ No newline at end of file