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;