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/08/12 04:22:50 UTC
svn commit: r984632 - in /myfaces/extensions/cdi/trunk:
core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/
core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/spi/
jee-modules/jsf-...
Author: gpetracek
Date: Thu Aug 12 02:22:49 2010
New Revision: 984632
URL: http://svn.apache.org/viewvc?rev=984632&view=rev
Log:
EXTCDI-1, EXTCDI-2 and EXTCDI-3 refactoring and cleanup
Added:
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/spi/EditableConversation.java
- copied, changed from r984534, myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/spi/EditableConversation.java
Removed:
myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/spi/EditableConversation.java
Modified:
myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/AbstractConversationContextAdapter.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/DefaultWindowContextManager.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/DefaultWindowContextQuotaHandler.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
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/InstanceProducer.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/JsfAwareConversationFactory.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/JsfWindowContext.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/WindowContextManagerObserver.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/spi/ConversationFactory.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/spi/EditableWindowContext.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/spi/EditableWindowContextManager.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/util/ConversationUtils.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/util/ExceptionUtils.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/util/RequestCache.java
Modified: myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/AbstractConversationContextAdapter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/AbstractConversationContextAdapter.java?rev=984632&r1=984631&r2=984632&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/AbstractConversationContextAdapter.java (original)
+++ myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/AbstractConversationContextAdapter.java Thu Aug 12 02:22:49 2010
@@ -153,24 +153,24 @@ public abstract class AbstractConversati
protected abstract WindowContextManager resolveWindowContextManager();
/**
- * @param conversationManager the current
+ * @param windowContextManager the current
* {@link org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.WindowContextManager}
* @param beanDescriptor descriptor of the requested bean
* @return the instance of the requested bean if it exists in the current
* {@link org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowContext}
* null otherwise
*/
- protected abstract <T> T resolveBeanInstance(WindowContextManager conversationManager, Bean<T> beanDescriptor);
+ protected abstract <T> T resolveBeanInstance(WindowContextManager windowContextManager, Bean<T> beanDescriptor);
/**
* Store the given bean in the
* {@link org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowContext}
*
- * @param conversationManager current
+ * @param windowContextManager current
* {@link org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.WindowContextManager}
* @param beanEntry current bean-entry
*/
- protected abstract <T> void scopeBeanEntry(WindowContextManager conversationManager, BeanEntry<T> beanEntry);
+ protected abstract <T> void scopeBeanEntry(WindowContextManager windowContextManager, BeanEntry<T> beanEntry);
protected abstract ConversationConfig getConversationConfig();
}
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=984632&r1=984631&r2=984632&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 Thu Aug 12 02:22:49 2010
@@ -19,8 +19,8 @@
package org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation;
import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.BeanEntry;
-import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.EditableConversation;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.ConversationKey;
+import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.EditableConversation;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.RequestCache;
import javax.enterprise.inject.Typed;
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/DefaultWindowContextManager.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/DefaultWindowContextManager.java?rev=984632&r1=984631&r2=984632&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/DefaultWindowContextManager.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/DefaultWindowContextManager.java Thu Aug 12 02:22:49 2010
@@ -21,11 +21,11 @@ package org.apache.myfaces.extensions.cd
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Conversation;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowContext;
import org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStage;
-import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.EditableConversation;
-import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.WindowHandler;
+import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.EditableConversation;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ConversationUtils;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.JsfUtils;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.RequestCache;
+import static org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ExceptionUtils.windowContextNotEditable;
import static org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ConversationUtils.*;
import static org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ConversationUtils.resolveWindowContextId;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.EditableWindowContext;
@@ -33,6 +33,7 @@ import org.apache.myfaces.extensions.cdi
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.EditableWindowContextManager;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.WindowContextFactory;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.WindowContextQuotaHandler;
+import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.WindowHandler;
import javax.enterprise.inject.Typed;
import javax.faces.component.UIComponent;
@@ -54,7 +55,8 @@ public class DefaultWindowContextManager
{
private static final long serialVersionUID = 2872151847183166424L;
- private Map<String, WindowContext> windowContextMap = new ConcurrentHashMap<String, WindowContext>();
+ private Map<String, EditableWindowContext> windowContextMap =
+ new ConcurrentHashMap<String, EditableWindowContext>();
private ProjectStage projectStage;
@@ -133,7 +135,13 @@ public class DefaultWindowContextManager
public synchronized WindowContext getWindowContext(String windowContextId)
{
- WindowContext result = this.windowContextMap.get(windowContextId);
+ EditableWindowContext result = this.windowContextMap.get(windowContextId);
+
+ if(result != null && !result.isActive())
+ {
+ removeWindowContext(result);
+ result = null;
+ }
if (result == null)
{
@@ -142,15 +150,12 @@ public class DefaultWindowContextManager
this.windowContextMap.put(windowContextId, result);
}
- if(result instanceof EditableWindowContext)
- {
- ((EditableWindowContext)result).touch();
- }
+ result.touch();
return result;
}
- private WindowContext createWindowContext(String windowContextId)
+ private EditableWindowContext createWindowContext(String windowContextId)
{
WindowContextFactory windowContextFactory = this.jsfAwareWindowContextConfig.getWindowContextFactory();
@@ -164,10 +169,10 @@ public class DefaultWindowContextManager
public boolean activateWindowContext(String windowContextId)
{
- return activateWindowContext(getWindowContext(windowContextId));
+ return activateWindowContext(convert(getWindowContext(windowContextId)));
}
- public boolean activateWindowContext(WindowContext windowContext)
+ public boolean activateWindowContext(EditableWindowContext windowContext)
{
JsfUtils.resetCaches();
FacesContext facesContext = FacesContext.getCurrentInstance();
@@ -184,18 +189,18 @@ public class DefaultWindowContextManager
public void resetCurrentWindowContext()
{
- resetWindowContext(getCurrentWindowContext());
+ resetWindowContext(convert(getCurrentWindowContext()));
}
public void resetWindowContext(String windowContextId)
{
- resetWindowContext(getWindowContext(windowContextId));
+ resetWindowContext(convert(getWindowContext(windowContextId)));
}
- public void resetWindowContext(WindowContext windowContext)
+ public void resetWindowContext(EditableWindowContext windowContext)
{
JsfUtils.resetCaches();
- for (Conversation conversation : ((EditableWindowContext)windowContext).getConversations().values())
+ for (Conversation conversation : windowContext.getConversations().values())
{
conversation.restart();
}
@@ -203,22 +208,22 @@ public class DefaultWindowContextManager
public void resetConversations()
{
- resetConversations(getCurrentWindowContext());
+ resetConversations(convert(getCurrentWindowContext()));
}
public void resetConversations(String windowContextId)
{
- resetConversations(getWindowContext(windowContextId));
+ resetConversations(convert(getWindowContext(windowContextId)));
}
- public void resetConversations(WindowContext windowContext)
+ public void resetConversations(EditableWindowContext windowContext)
{
JsfUtils.resetCaches();
- for (Conversation conversation : ((EditableWindowContext)windowContext).getConversations().values())
+ for (EditableConversation conversation : windowContext.getConversations().values())
{
- ((EditableConversation)conversation).deactivate();
+ conversation.deactivate();
//it isn't possible to deactivate window scoped conversations
- if (!((EditableConversation)conversation).isActive())
+ if (!conversation.isActive())
{
conversation.restart();
}
@@ -227,15 +232,15 @@ public class DefaultWindowContextManager
public void removeCurrentWindowContext()
{
- removeWindowContext(getCurrentWindowContext());
+ removeWindowContext(convert(getCurrentWindowContext()));
}
public void removeWindowContext(String windowContextId)
{
- removeWindowContext(getWindowContext(windowContextId));
+ removeWindowContext(convert(getWindowContext(windowContextId)));
}
- public void removeWindowContext(WindowContext windowContext)
+ public void removeWindowContext(EditableWindowContext windowContext)
{
JsfUtils.resetCaches();
this.windowContextMap.remove(windowContext.getId());
@@ -282,7 +287,7 @@ public class DefaultWindowContextManager
return windowContextId;
}
- public Collection<WindowContext> getWindowContexts()
+ public Collection<EditableWindowContext> getWindowContexts()
{
return Collections.unmodifiableCollection(this.windowContextMap.values());
}
@@ -300,4 +305,14 @@ public class DefaultWindowContextManager
((EditableWindowContext)windowContext).removeInactiveConversations();
}
}
+
+ private EditableWindowContext convert(WindowContext windowContext)
+ {
+ if(!(windowContext instanceof EditableWindowContext))
+ {
+ throw windowContextNotEditable(windowContext);
+ }
+
+ return (EditableWindowContext)windowContext;
+ }
}
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/DefaultWindowContextQuotaHandler.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/DefaultWindowContextQuotaHandler.java?rev=984632&r1=984631&r2=984632&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/DefaultWindowContextQuotaHandler.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/DefaultWindowContextQuotaHandler.java Thu Aug 12 02:22:49 2010
@@ -23,7 +23,6 @@ import org.apache.myfaces.extensions.cdi
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.EditableWindowContextManager;
import static org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ExceptionUtils.tooManyOpenWindowException;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ConversationUtils;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowContext;
import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.WindowContextManager;
import java.util.Collection;
@@ -65,7 +64,7 @@ public class DefaultWindowContextQuotaHa
EditableWindowContextManager editableWindowContextManager =
(EditableWindowContextManager)windowContextManager;
- Collection<WindowContext> activeWindowContexts = editableWindowContextManager.getWindowContexts();
+ Collection<EditableWindowContext> activeWindowContexts = editableWindowContextManager.getWindowContexts();
int activeWindowContextCountBeforeCleanup = activeWindowContexts.size();
@@ -80,9 +79,9 @@ public class DefaultWindowContextQuotaHa
}
private void removeEldestWindowContext(EditableWindowContextManager editableWindowContextManager,
- Collection<WindowContext> activeWindowContexts)
+ Collection<EditableWindowContext> activeWindowContexts)
{
- WindowContext windowContextToRemove = findEldestWindowContext(activeWindowContexts);
+ EditableWindowContext windowContextToRemove = findEldestWindowContext(activeWindowContexts);
if(windowContextToRemove != null)
{
@@ -90,19 +89,16 @@ public class DefaultWindowContextQuotaHa
}
}
- private WindowContext findEldestWindowContext(Collection<WindowContext> activeWindowContexts)
+ private EditableWindowContext findEldestWindowContext(Collection<EditableWindowContext> activeWindowContexts)
{
Date lastAccess = new Date();
- WindowContext result = null;
- for(WindowContext windowContext : activeWindowContexts)
+ EditableWindowContext result = null;
+ for(EditableWindowContext windowContext : activeWindowContexts)
{
- if(windowContext instanceof EditableWindowContext)
+ if(lastAccess.after(windowContext.getLastAccess()))
{
- if(lastAccess.after(((EditableWindowContext)windowContext).getLastAccess()))
- {
- lastAccess = ((EditableWindowContext)windowContext).getLastAccess();
- result = windowContext;
- }
+ lastAccess = windowContext.getLastAccess();
+ result = windowContext;
}
}
return result;
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=984632&r1=984631&r2=984632&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 Thu Aug 12 02:22:49 2010
@@ -22,14 +22,16 @@ import org.apache.myfaces.extensions.cdi
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationConfig;
import org.apache.myfaces.extensions.cdi.core.api.resolver.ConfigResolver;
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;
+import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.EditableConversation;
import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.WindowContextManager;
+import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.BeanEntry;
import static org.apache.myfaces.extensions.cdi.core.impl.utils.CodiUtils.getOrCreateScopedInstanceOfBeanByClass;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ConversationUtils;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.RequestCache;
+import static org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ExceptionUtils.windowContextManagerNotEditable;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.EditableWindowContext;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.JsfAwareWindowContextConfig;
+import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.EditableWindowContextManager;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
@@ -65,26 +67,37 @@ class GroupedConversationContextAdapter
}
/**
- * @param conversationManager the current
+ * @param windowContextManager the current
* {@link org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.WindowContextManager}
* @param beanDescriptor descriptor of the requested bean
* @return the instance of the requested bean if it exists in the current
* {@link org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowContext}
* null otherwise
*/
- protected <T> T resolveBeanInstance(WindowContextManager conversationManager, Bean<T> beanDescriptor)
+ protected <T> T resolveBeanInstance(WindowContextManager windowContextManager, Bean<T> beanDescriptor)
{
+ if(!(windowContextManager instanceof EditableWindowContextManager))
+ {
+ throw windowContextManagerNotEditable(windowContextManager);
+ }
+
Class<?> beanClass = beanDescriptor.getBeanClass();
- Conversation foundConversation = getConversation(conversationManager, beanDescriptor);
+ EditableConversation foundConversation = getConversation(
+ (EditableWindowContextManager)windowContextManager, beanDescriptor);
//noinspection unchecked
- return (T)((EditableConversation)foundConversation).getBean(beanClass);
+ return (T)foundConversation.getBean(beanClass);
}
- protected <T> void scopeBeanEntry(WindowContextManager conversationManager, BeanEntry<T> beanEntry)
+ protected <T> void scopeBeanEntry(WindowContextManager windowContextManager, BeanEntry<T> beanEntry)
{
+ if(!(windowContextManager instanceof EditableWindowContextManager))
+ {
+ throw windowContextManagerNotEditable(windowContextManager);
+ }
+
Bean<?> bean = beanEntry.getBean();
- Conversation foundConversation = getConversation(conversationManager, bean);
+ Conversation foundConversation = getConversation((EditableWindowContextManager)windowContextManager, bean);
((EditableConversation) foundConversation).addBean(beanEntry);
}
@@ -94,7 +107,7 @@ class GroupedConversationContextAdapter
return getOrCreateScopedInstanceOfBeanByClass(ConfigResolver.class).resolve(JsfAwareWindowContextConfig.class);
}
- private Conversation getConversation(WindowContextManager windowContextManager, Bean<?> bean)
+ private EditableConversation getConversation(EditableWindowContextManager windowContextManager, Bean<?> bean)
{
Class conversationGroup = ConversationUtils.getConversationGroup(bean);
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/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/javaee/jsf/impl/scope/conversation/InstanceProducer.java?rev=984632&r1=984631&r2=984632&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/InstanceProducer.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/InstanceProducer.java Thu Aug 12 02:22:49 2010
@@ -53,7 +53,7 @@ final class InstanceProducer
@SessionScoped
@Named(WINDOW_CONTEXT_MANAGER_BEAN_NAME)
protected EditableWindowContextManager createWindowContextManager(ConfigResolver configResolver,
- ProjectStage projectStage)
+ ProjectStage projectStage)
{
JsfAwareWindowContextConfig jsfAwareWindowContextConfig =
configResolver.resolve(JsfAwareWindowContextConfig.class);
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/JsfAwareConversationFactory.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/JsfAwareConversationFactory.java?rev=984632&r1=984631&r2=984632&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/JsfAwareConversationFactory.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/JsfAwareConversationFactory.java Thu Aug 12 02:22:49 2010
@@ -20,7 +20,7 @@ package org.apache.myfaces.extensions.cd
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.ConversationFactory;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.ConversationKey;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Conversation;
+import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.EditableConversation;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowScoped;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationConfig;
@@ -48,7 +48,7 @@ public class JsfAwareConversationFactory
}
}
- public Conversation createConversation(ConversationKey conversationKey, ConversationConfig configuration)
+ public EditableConversation createConversation(ConversationKey conversationKey, ConversationConfig configuration)
{
if(WindowScoped.class.isAssignableFrom(conversationKey.getConversationGroup()))
{
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/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/javaee/jsf/impl/scope/conversation/JsfWindowContext.java?rev=984632&r1=984631&r2=984632&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/JsfWindowContext.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/JsfWindowContext.java Thu Aug 12 02:22:49 2010
@@ -20,13 +20,14 @@ package org.apache.myfaces.extensions.cd
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Conversation;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowContextConfig;
-import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.EditableConversation;
+import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.EditableConversation;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.EditableWindowContext;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.ConversationKey;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.ConversationFactory;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.JsfAwareWindowContextConfig;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.RequestCache;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.JsfUtils;
+import static org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ExceptionUtils.conversationNotEditable;
import javax.enterprise.inject.Typed;
import java.util.Date;
@@ -54,8 +55,8 @@ public class JsfWindowContext implements
private final boolean projectStageDevelopment;
- private Map<ConversationKey, Conversation> groupedConversations
- = new ConcurrentHashMap<ConversationKey, Conversation>();
+ private Map<ConversationKey, EditableConversation> groupedConversations
+ = new ConcurrentHashMap<ConversationKey, EditableConversation>();
private Map<String, Object> attributes = new ConcurrentHashMap<String, Object>();
@@ -91,26 +92,26 @@ public class JsfWindowContext implements
public synchronized void endConversations(boolean forceEnd)
{
- for (Map.Entry<ConversationKey, Conversation> conversationEntry : this.groupedConversations.entrySet())
+ for (Map.Entry<ConversationKey, EditableConversation> conversationEntry : this.groupedConversations.entrySet())
{
endAndRemoveConversation(conversationEntry.getKey(), conversationEntry.getValue(), forceEnd);
}
JsfUtils.resetConversationCache();
}
- public Conversation getConversation(Class conversationGroupKey, Annotation... qualifiers)
+ public EditableConversation getConversation(Class conversationGroupKey, Annotation... qualifiers)
{
ConversationKey conversationKey =
new DefaultConversationKey(conversationGroupKey, this.projectStageDevelopment, qualifiers);
- Conversation conversation = RequestCache.getConversation(conversationKey);
+ EditableConversation conversation = RequestCache.getConversation(conversationKey);
if(conversation == null)
{
conversation = this.groupedConversations.get(conversationKey);
//TODO
- if (conversation != null && !((EditableConversation)conversation).isActive())
+ if (conversation != null && !conversation.isActive())
{
endAndRemoveConversation(conversationKey, conversation, true);
conversation = null;
@@ -133,13 +134,18 @@ public class JsfWindowContext implements
new DefaultConversationKey(conversationGroupKey, this.projectStageDevelopment, qualifiers);
Conversation conversation = this.groupedConversations.get(conversationKey);
- return endAndRemoveConversation(conversationKey, conversation, true);
+
+ if(!(conversation instanceof EditableConversation))
+ {
+ throw conversationNotEditable(conversation);
+ }
+ return endAndRemoveConversation(conversationKey, (EditableConversation)conversation, true);
}
public Set<Conversation> endConversationGroup(Class conversationGroupKey)
{
Set<Conversation> removedConversations = new HashSet<Conversation>();
- for(Map.Entry<ConversationKey, Conversation> conversationEntry : this.groupedConversations.entrySet())
+ for(Map.Entry<ConversationKey, EditableConversation> conversationEntry : this.groupedConversations.entrySet())
{
if(conversationGroupKey.isAssignableFrom(conversationEntry.getKey().getConversationGroup()))
{
@@ -150,9 +156,9 @@ public class JsfWindowContext implements
return removedConversations;
}
- private Conversation endAndRemoveConversation(ConversationKey conversationKey,
- Conversation conversation,
- boolean forceEnd)
+ private EditableConversation endAndRemoveConversation(ConversationKey conversationKey,
+ EditableConversation conversation,
+ boolean forceEnd)
{
if (forceEnd)
{
@@ -161,9 +167,9 @@ public class JsfWindowContext implements
}
else if(conversation instanceof EditableConversation)
{
- ((EditableConversation)conversation).deactivate();
+ conversation.deactivate();
- if(!((EditableConversation)conversation).isActive())
+ if(!conversation.isActive())
{
conversation.end();
return this.groupedConversations.remove(conversationKey);
@@ -173,7 +179,7 @@ public class JsfWindowContext implements
return null;
}
- public Conversation createConversation(Class conversationGroupKey, Annotation... qualifiers)
+ public EditableConversation createConversation(Class conversationGroupKey, Annotation... qualifiers)
{
ConversationKey conversationKey =
new DefaultConversationKey(conversationGroupKey, this.projectStageDevelopment, qualifiers);
@@ -183,7 +189,7 @@ public class JsfWindowContext implements
return conversationFactory.createConversation(conversationKey, this.jsfAwareWindowContextConfig);
}
- public Map<ConversationKey /*conversation group*/, Conversation> getConversations()
+ public Map<ConversationKey /*conversation group*/, EditableConversation> getConversations()
{
return Collections.unmodifiableMap(this.groupedConversations);
}
@@ -210,15 +216,14 @@ public class JsfWindowContext implements
public void removeInactiveConversations()
{
- Iterator<Conversation> conversations = this.groupedConversations.values().iterator();
+ Iterator<EditableConversation> conversations = this.groupedConversations.values().iterator();
- Conversation conversation;
+ EditableConversation conversation;
while (conversations.hasNext())
{
conversation = conversations.next();
- //TODO
- if (!((EditableConversation)conversation).getActiveState())
+ if (!conversation.getActiveState())
{
conversations.remove();
}
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/WindowContextManagerObserver.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/WindowContextManagerObserver.java?rev=984632&r1=984631&r2=984632&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/WindowContextManagerObserver.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/WindowContextManagerObserver.java Thu Aug 12 02:22:49 2010
@@ -30,11 +30,9 @@ import org.apache.myfaces.extensions.cdi
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.EditableWindowContextManager;
import static org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.WindowContextManager
.WINDOW_CONTEXT_ID_PARAMETER_KEY;
-import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.WindowContextManager;
-import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.EditableConversation;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowContext;
+import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.EditableConversation;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowContextConfig;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Conversation;
+import org.apache.myfaces.extensions.cdi.core.api.resolver.ConfigResolver;
import javax.enterprise.event.Observes;
import javax.faces.event.PhaseEvent;
@@ -50,18 +48,22 @@ final class WindowContextManagerObserver
//don't change/optimize this observer!!!
protected void cleanup(@Observes @AfterPhase(PhaseId.RESTORE_VIEW) PhaseEvent phaseEvent,
RequestTypeResolver requestTypeResolver,
- WindowContextManager windowContextManager)
+ EditableWindowContextManager windowContextManager,
+ ConfigResolver configResolver)
{
- WindowContext windowContext = windowContextManager.getCurrentWindowContext();
if (!requestTypeResolver.isPostRequest() && !requestTypeResolver.isPartialRequest())
{
- boolean continueRequest = processGetRequest(phaseEvent.getFacesContext(), windowContext.getConfig());
+ //don't use the config of the current window context - it would trigger a touch
+ boolean continueRequest = processGetRequest(
+ phaseEvent.getFacesContext(), configResolver.resolve(JsfAwareWindowContextConfig.class));
+
if (!continueRequest)
{
return;
}
}
+ EditableWindowContext windowContext = (EditableWindowContext)windowContextManager.getCurrentWindowContext();
//don't refactor it to a lazy restore
storeCurrentViewIdAsNewViewId(phaseEvent.getFacesContext(), windowContext);
@@ -152,16 +154,16 @@ final class WindowContextManagerObserver
}
//don't cleanup all window contexts (it would cause a side-effect with the access-scope and multiple windows
- private void cleanupInactiveConversations(WindowContext windowContext)
+ private void cleanupInactiveConversations(EditableWindowContext windowContext)
{
- for (Conversation conversation : ((EditableWindowContext)windowContext).getConversations().values())
+ for (EditableConversation conversation : windowContext.getConversations().values())
{
- if (!((EditableConversation)conversation).isActive())
+ if (!conversation.isActive())
{
conversation.end();
}
}
- ((EditableWindowContext)windowContext).removeInactiveConversations();
+ windowContext.removeInactiveConversations();
}
}
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/spi/ConversationFactory.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/spi/ConversationFactory.java?rev=984632&r1=984631&r2=984632&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/spi/ConversationFactory.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/spi/ConversationFactory.java Thu Aug 12 02:22:49 2010
@@ -18,7 +18,6 @@
*/
package org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Conversation;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationConfig;
import java.io.Serializable;
@@ -28,5 +27,5 @@ import java.io.Serializable;
*/
public interface ConversationFactory extends Serializable
{
- Conversation createConversation(ConversationKey conversationKey, ConversationConfig config);
+ EditableConversation createConversation(ConversationKey conversationKey, ConversationConfig config);
}
Copied: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/spi/EditableConversation.java (from r984534, myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/spi/EditableConversation.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/spi/EditableConversation.java?p2=myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/spi/EditableConversation.java&p1=myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/spi/EditableConversation.java&r1=984534&r2=984632&rev=984632&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/spi/EditableConversation.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/spi/EditableConversation.java Thu Aug 12 02:22:49 2010
@@ -16,9 +16,10 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi;
+package org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Conversation;
+import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.BeanEntry;
/**
* TODO
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/spi/EditableWindowContext.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/spi/EditableWindowContext.java?rev=984632&r1=984631&r2=984632&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/spi/EditableWindowContext.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/spi/EditableWindowContext.java Thu Aug 12 02:22:49 2010
@@ -18,7 +18,6 @@
*/
package org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Conversation;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowContext;
import java.util.Map;
@@ -45,19 +44,19 @@ public interface EditableWindowContext e
* TODO
* @return all active conversations of the current context
*/
- Map<ConversationKey /*conversation group*/, Conversation> getConversations();
+ Map<ConversationKey /*conversation group*/, EditableConversation> getConversations();
/**
* @param conversationGroup group of the conversation in question
* @param qualifiers optional qualifiers for the conversation
* @return a new conversation for the given group
*/
- Conversation createConversation(Class conversationGroup, Annotation... qualifiers);
+ EditableConversation createConversation(Class conversationGroup, Annotation... qualifiers);
/**
* @param conversationGroup group of the conversation in question
* @param qualifiers optional qualifiers for the conversation
* @return a new conversation for the given group
*/
- Conversation getConversation(Class conversationGroup, Annotation... qualifiers);
+ EditableConversation getConversation(Class conversationGroup, Annotation... qualifiers);
}
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/spi/EditableWindowContextManager.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/spi/EditableWindowContextManager.java?rev=984632&r1=984631&r2=984632&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/spi/EditableWindowContextManager.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/scope/conversation/spi/EditableWindowContextManager.java Thu Aug 12 02:22:49 2010
@@ -30,27 +30,27 @@ public interface EditableWindowContextMa
{
boolean activateWindowContext(String windowContextId);
- boolean activateWindowContext(WindowContext windowContext);
+ boolean activateWindowContext(EditableWindowContext windowContext);
void resetCurrentWindowContext();
void resetWindowContext(String windowContextId);
- void resetWindowContext(WindowContext windowContext);
+ void resetWindowContext(EditableWindowContext windowContext);
void resetConversations();
void resetConversations(String windowContextId);
- void resetConversations(WindowContext windowContext);
+ void resetConversations(EditableWindowContext windowContext);
void removeCurrentWindowContext();
void removeWindowContext(String windowContextId);
- void removeWindowContext(WindowContext windowContext);
+ void removeWindowContext(EditableWindowContext windowContext);
- Collection<WindowContext> getWindowContexts();
+ Collection<EditableWindowContext> getWindowContexts();
void destroy();
}
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/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/javaee/jsf/impl/util/ConversationUtils.java?rev=984632&r1=984631&r2=984632&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/util/ConversationUtils.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/util/ConversationUtils.java Thu Aug 12 02:22:49 2010
@@ -390,13 +390,12 @@ public class ConversationUtils
public static boolean cleanupInactiveWindowContexts(EditableWindowContextManager windowContextManager)
{
- Collection<WindowContext> windowContexts = windowContextManager.getWindowContexts();
+ Collection<EditableWindowContext> windowContexts = windowContextManager.getWindowContexts();
int count = windowContexts.size();
- for (WindowContext windowContext : windowContexts)
+ for (EditableWindowContext windowContext : windowContexts)
{
- if(windowContext instanceof EditableWindowContext &&
- isEligibleForCleanup((EditableWindowContext)windowContext))
+ if(isEligibleForCleanup(windowContext))
{
windowContextManager.removeWindowContext(windowContext);
}
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/util/ExceptionUtils.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/util/ExceptionUtils.java?rev=984632&r1=984631&r2=984632&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/util/ExceptionUtils.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/util/ExceptionUtils.java Thu Aug 12 02:22:49 2010
@@ -18,6 +18,13 @@
*/
package org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util;
+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.impl.scope.conversation.spi.WindowContextManager;
+import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.EditableWindowContext;
+import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.EditableWindowContextManager;
+import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.EditableConversation;
+
/**
* @author Gerhard Petracek
*/
@@ -29,4 +36,22 @@ public class ExceptionUtils
" Please continue with one of the existing windows or wait up to "
+ windowContextTimeoutInMinutes + " minutes.");
}
+
+ public static RuntimeException windowContextManagerNotEditable(WindowContextManager windowContextManager)
+ {
+ return new RuntimeException(windowContextManager.getClass().getName() + " has to implement "
+ + EditableWindowContextManager.class.getName());
+ }
+
+ public static RuntimeException windowContextNotEditable(WindowContext windowContext)
+ {
+ return new RuntimeException(windowContext.getClass().getName() + " has to implement "
+ + EditableWindowContext.class.getName());
+ }
+
+ public static RuntimeException conversationNotEditable(Conversation conversation)
+ {
+ return new RuntimeException(conversation.getClass().getName() + " has to implement "
+ + EditableConversation.class.getName());
+ }
}
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/util/RequestCache.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/util/RequestCache.java?rev=984632&r1=984631&r2=984632&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/util/RequestCache.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/util/RequestCache.java Thu Aug 12 02:22:49 2010
@@ -20,8 +20,8 @@ package org.apache.myfaces.extensions.cd
import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.spi.WindowContextManager;
import org.apache.myfaces.extensions.cdi.core.impl.utils.CodiUtils;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Conversation;
import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.ConversationKey;
+import org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.spi.EditableConversation;
import javax.enterprise.inject.spi.Bean;
import java.util.Map;
@@ -40,8 +40,8 @@ public class RequestCache
private static ThreadLocal<Bean<WindowContextManager>> windowContextManagerBeanCache
= new ThreadLocal<Bean<WindowContextManager>>();
- private static ThreadLocal<Map<ConversationKey, Conversation>> conversationCache
- = new ThreadLocal<Map<ConversationKey, Conversation>>();
+ private static ThreadLocal<Map<ConversationKey, EditableConversation>> conversationCache
+ = new ThreadLocal<Map<ConversationKey, EditableConversation>>();
public static void resetCache()
{
@@ -121,23 +121,23 @@ public class RequestCache
windowIdCache.set(windowId);
}
- public static Conversation getConversation(ConversationKey conversationKey)
+ public static EditableConversation getConversation(ConversationKey conversationKey)
{
return getConversationCache().get(conversationKey);
}
- public static void setConversation(ConversationKey conversationKey, Conversation conversation)
+ public static void setConversation(ConversationKey conversationKey, EditableConversation conversation)
{
getConversationCache().put(conversationKey, conversation);
}
- private static Map<ConversationKey, Conversation> getConversationCache()
+ private static Map<ConversationKey, EditableConversation> getConversationCache()
{
- Map<ConversationKey, Conversation> conversationMap = conversationCache.get();
+ Map<ConversationKey, EditableConversation> conversationMap = conversationCache.get();
if(conversationMap == null)
{
- conversationMap = new HashMap<ConversationKey, Conversation>();
+ conversationMap = new HashMap<ConversationKey, EditableConversation>();
conversationCache.set(conversationMap);
}
return conversationMap;