You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2010/06/23 09:55:35 UTC
svn commit: r957136 - in
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core:
SessionImpl.java session/SessionContext.java
Author: jukka
Date: Wed Jun 23 07:55:35 2010
New Revision: 957136
URL: http://svn.apache.org/viewvc?rev=957136&view=rev
Log:
JCR-890: concurrent read-only access to a session
Move ItemManager into SessionContext.
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionContext.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java?rev=957136&r1=957135&r2=957136&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java Wed Jun 23 07:55:35 2010
@@ -167,11 +167,6 @@ public class SessionImpl extends Abstrac
protected AccessManager accessMgr;
/**
- * the item mgr associated with this session
- */
- protected final ItemManager itemMgr;
-
- /**
* the Workspace associated with this session
*/
protected final WorkspaceImpl wsp;
@@ -275,7 +270,7 @@ public class SessionImpl extends Abstrac
wsp = createWorkspaceInstance(wspConfig);
context.setItemStateManager(
createSessionItemStateManager(wsp.getItemStateManager()));
- itemMgr = createItemManager();
+ context.setItemManager(createItemManager());
accessMgr = createAccessManager(subject);
versionMgr = createVersionManager();
ntInstanceHandler = new NodeTypeInstanceHandler(userId);
@@ -449,7 +444,7 @@ public class SessionImpl extends Abstrac
* @return the <code>ItemManager</code>
*/
public ItemManager getItemManager() {
- return itemMgr;
+ return context.getItemManager();
}
/**
@@ -880,10 +875,10 @@ public class SessionImpl extends Abstrac
throws RepositoryException {
// JCR-2425: check whether session is allowed to read root node
if (hasPermission("/", ACTION_READ)) {
- getItemManager().getRootNode().save();
+ context.getItemManager().getRootNode().save();
} else {
NodeId id = context.getItemStateManager().getIdOfRootTransientNodeState();
- getItemManager().getItem(id).save();
+ context.getItemManager().getItem(id).save();
}
}
});
@@ -1200,7 +1195,7 @@ public class SessionImpl extends Abstrac
// dispose session item state manager
context.getItemStateManager().dispose();
// dispose item manager
- itemMgr.dispose();
+ context.getItemManager().dispose();
// dispose workspace
wsp.dispose();
@@ -1633,7 +1628,7 @@ public class SessionImpl extends Abstrac
}
ps.println(" (" + this + ")");
ps.println();
- itemMgr.dump(ps);
+ context.getItemManager().dump(ps);
ps.println();
context.getItemStateManager().dump(ps);
}
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionContext.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionContext.java?rev=957136&r1=957135&r2=957136&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionContext.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionContext.java Wed Jun 23 07:55:35 2010
@@ -17,6 +17,7 @@
package org.apache.jackrabbit.core.session;
import org.apache.jackrabbit.core.HierarchyManager;
+import org.apache.jackrabbit.core.ItemManager;
import org.apache.jackrabbit.core.SessionImpl;
import org.apache.jackrabbit.core.state.SessionItemStateManager;
@@ -31,6 +32,12 @@ public class SessionContext {
*/
private volatile SessionItemStateManager itemStateManager;
+ /**
+ * The item manager associated with this session
+ */
+ private volatile ItemManager itemManager;
+
+
public SessionContext(SessionImpl session) {
this.session = session;
}
@@ -62,4 +69,14 @@ public class SessionContext {
return itemStateManager.getHierarchyMgr();
}
+ public ItemManager getItemManager() {
+ assert itemManager != null;
+ return itemManager;
+ }
+
+ public void setItemManager(ItemManager itemManager) {
+ assert itemManager != null;
+ this.itemManager = itemManager;
+ }
+
}