You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by sk...@apache.org on 2008/02/12 23:05:28 UTC
svn commit: r627145 - in
/myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation:
AccessScopeManager.java jsf/AccessScopePhaseListener.java
Author: skitching
Date: Tue Feb 12 14:05:27 2008
New Revision: 627145
URL: http://svn.apache.org/viewvc?rev=627145&view=rev
Log:
Count "access-scoped" conversations as accessed only when used in the RENDER_VIEW phase.
Modified:
myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/AccessScopeManager.java
myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/jsf/AccessScopePhaseListener.java
Modified: myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/AccessScopeManager.java
URL: http://svn.apache.org/viewvc/myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/AccessScopeManager.java?rev=627145&r1=627144&r2=627145&view=diff
==============================================================================
--- myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/AccessScopeManager.java (original)
+++ myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/AccessScopeManager.java Tue Feb 12 14:05:27 2008
@@ -36,8 +36,9 @@
{
private AccessScopeManagerConfiguration accessScopeManagerConfiguration;
- private Set accessedConversations = new HashSet();
+ private boolean recordAccess;
private boolean ignoreRequest;
+ private Set accessedConversations = new HashSet();
public static AccessScopeManager getInstance()
{
@@ -79,6 +80,15 @@
}
/**
+ * This is invoked at the point in the request lifecycle after which we want to
+ * start tracking use of access-scoped objects.
+ */
+ public void beginRecording()
+ {
+ recordAccess = true;
+ }
+
+ /**
* Add a conversation to the list of accessed conversations.
* <p>
* Notice: this method is final for performance reasons.
@@ -91,7 +101,7 @@
{
// Don't bother tracking accessed conversations if we will never use the data.
// Otherwise, add this conversation name to the list of accessed conversations.
- if (!ignoreRequest && !accessedConversations.contains(conversationName))
+ if (recordAccess && !ignoreRequest && !accessedConversations.contains(conversationName))
{
accessedConversations.add(conversationName);
}
Modified: myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/jsf/AccessScopePhaseListener.java
URL: http://svn.apache.org/viewvc/myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/jsf/AccessScopePhaseListener.java?rev=627145&r1=627144&r2=627145&view=diff
==============================================================================
--- myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/jsf/AccessScopePhaseListener.java (original)
+++ myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/jsf/AccessScopePhaseListener.java Tue Feb 12 14:05:27 2008
@@ -43,16 +43,20 @@
{
private static final long serialVersionUID = 1L;
- public void afterPhase(PhaseEvent event)
+ public PhaseId getPhaseId()
{
- if (PhaseId.RENDER_RESPONSE.equals(event.getPhaseId()))
- {
- invalidateAccessScopedConversations(event.getFacesContext().getViewRoot().getViewId());
- }
+ return PhaseId.RENDER_RESPONSE;
}
public void beforePhase(PhaseEvent event)
{
+ AccessScopeManager accessManager = AccessScopeManager.getInstance();
+ accessManager.beginRecording();
+ }
+
+ public void afterPhase(PhaseEvent event)
+ {
+ invalidateAccessScopedConversations(event.getFacesContext().getViewRoot().getViewId());
}
/**
@@ -105,10 +109,5 @@
conversation.invalidate();
}
}
- }
-
- public PhaseId getPhaseId()
- {
- return PhaseId.RENDER_RESPONSE;
}
}