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/12/21 20:35:56 UTC

svn commit: r1051625 - in /myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation: InjectableConversation.java InstanceProducer.java

Author: gpetracek
Date: Tue Dec 21 19:35:56 2010
New Revision: 1051625

URL: http://svn.apache.org/viewvc?rev=1051625&view=rev
Log:
EXTCDI-102

Modified:
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/InjectableConversation.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/InstanceProducer.java

Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/InjectableConversation.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/InjectableConversation.java?rev=1051625&r1=1051624&r2=1051625&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/InjectableConversation.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/InjectableConversation.java Tue Dec 21 19:35:56 2010
@@ -18,8 +18,9 @@
  */
 package org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation;
 
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Conversation;
+import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.BeanEntry;
 import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.WindowContextManager;
+import org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.spi.EditableConversation;
 import org.apache.myfaces.extensions.cdi.jsf.impl.util.ConversationUtils;
 import org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.spi.EditableWindowContext;
 
@@ -32,7 +33,7 @@ import java.util.Set;
  * @author Gerhard Petracek
  */
 @Typed()
-public class InjectableConversation implements Conversation
+public class InjectableConversation implements EditableConversation
 {
     private static final long serialVersionUID = 7754789230388003028L;
 
@@ -55,7 +56,32 @@ public class InjectableConversation impl
         findConversation().restart();
     }
 
-    protected Conversation findConversation()
+    public boolean isActive()
+    {
+        return findConversation().isActive();
+    }
+
+    public boolean getActiveState()
+    {
+        return findConversation().getActiveState();
+    }
+
+    public void deactivate()
+    {
+        findConversation().deactivate();
+    }
+
+    public <T> void addBean(BeanEntry<T> beanInstance)
+    {
+        findConversation().addBean(beanInstance);
+    }
+
+    public <T> T getBean(Class<T> key)
+    {
+        return findConversation().getBean(key);
+    }
+
+    protected EditableConversation findConversation()
     {
         Class conversationGroup = ConversationUtils.getConversationGroup(this.bean);
 

Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/InstanceProducer.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/InstanceProducer.java?rev=1051625&r1=1051624&r2=1051625&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/InstanceProducer.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/InstanceProducer.java Tue Dec 21 19:35:56 2010
@@ -19,7 +19,6 @@
 package org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation;
 
 import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowContext;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Conversation;
 import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.config.WindowContextConfig;
 import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.config.ConversationConfig;
 import org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStage;
@@ -30,6 +29,9 @@ import org.apache.myfaces.extensions.cdi
 import static org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils.getOrCreateScopedInstanceOfBeanByClass;
 import org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.spi.WindowContextManagerFactory;
 import org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.spi.EditableWindowContextManager;
+import org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.spi.EditableWindowContext;
+import org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.spi.EditableConversation;
+import static org.apache.myfaces.extensions.cdi.jsf.impl.util.ExceptionUtils.*;
 import org.apache.myfaces.extensions.cdi.jsf.impl.util.RequestCache;
 
 import javax.enterprise.inject.Produces;
@@ -78,9 +80,16 @@ final class InstanceProducer
     @Produces
     @Named(CURRENT_WINDOW_CONTEXT_BEAN_NAME)
     @RequestScoped
-    protected WindowContext currentWindowContext(WindowContextManager windowContextManager)
+    protected EditableWindowContext currentWindowContext(WindowContextManager windowContextManager)
     {
-        return windowContextManager.getCurrentWindowContext();
+        WindowContext windowContext = windowContextManager.getCurrentWindowContext();
+
+        if(windowContext instanceof EditableWindowContext)
+        {
+            return (EditableWindowContext)windowContext;
+        }
+
+        throw windowContextNotEditableException(windowContext);
     }
 
     @Produces
@@ -117,7 +126,7 @@ final class InstanceProducer
 
     @Produces
     @Dependent
-    protected Conversation currentConversation(InjectionPoint injectionPoint,
+    protected EditableConversation currentConversation(InjectionPoint injectionPoint,
                                                WindowContextManager windowContextManager)
     {
         //for @Inject Conversation conversation;