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/05/27 17:02:19 UTC
svn commit: r948857 - in
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core:
SessionImpl.java WorkspaceImpl.java XASessionImpl.java XAWorkspace.java
Author: jukka
Date: Thu May 27 15:02:18 2010
New Revision: 948857
URL: http://svn.apache.org/viewvc?rev=948857&view=rev
Log:
JCR-2640: Internal repository context
Streamline WorkspaceImpl creation with the new WorkspaceManager class.
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/WorkspaceImpl.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/XASessionImpl.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/XAWorkspace.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=948857&r1=948856&r2=948857&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 Thu May 27 15:02:18 2010
@@ -40,7 +40,6 @@ import org.apache.jackrabbit.core.securi
import org.apache.jackrabbit.core.state.LocalItemStateManager;
import org.apache.jackrabbit.core.state.NodeState;
import org.apache.jackrabbit.core.state.SessionItemStateManager;
-import org.apache.jackrabbit.core.state.SharedItemStateManager;
import org.apache.jackrabbit.core.util.Dumpable;
import org.apache.jackrabbit.core.value.ValueFactoryImpl;
import org.apache.jackrabbit.core.version.InternalVersionManager;
@@ -287,10 +286,7 @@ public class SessionImpl extends Abstrac
ntMgr = new NodeTypeManagerImpl(
repositoryContext.getNodeTypeRegistry(), this,
repositoryContext.getDataStore());
- String wspName = wspConfig.getName();
- wsp = createWorkspaceInstance(
- wspConfig,
- repositoryContext.getWorkspaceManager().getWorkspaceStateManager(wspName));
+ wsp = createWorkspaceInstance(wspConfig);
itemStateMgr = createSessionItemStateManager(wsp.getItemStateManager());
hierMgr = itemStateMgr.getHierarchyMgr();
itemMgr = createItemManager(itemStateMgr, hierMgr);
@@ -324,13 +320,13 @@ public class SessionImpl extends Abstrac
* Creates the workspace instance backing this session.
*
* @param wspConfig The workspace configuration
- * @param stateMgr The shared item state manager
* @return An instance of the {@link WorkspaceImpl} class or an extension
* thereof.
+ * @throws RepositoryException if the workspace can not be accessed
*/
- protected WorkspaceImpl createWorkspaceInstance(
- WorkspaceConfig wspConfig, SharedItemStateManager stateMgr) {
- return new WorkspaceImpl(wspConfig, stateMgr, repositoryContext, this);
+ protected WorkspaceImpl createWorkspaceInstance(WorkspaceConfig wspConfig)
+ throws RepositoryException {
+ return new WorkspaceImpl(wspConfig, repositoryContext, this);
}
/**
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java?rev=948857&r1=948856&r2=948857&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java Thu May 27 15:02:18 2010
@@ -143,12 +143,12 @@ public class WorkspaceImpl extends Abstr
* @param session The session
*/
protected WorkspaceImpl(
- WorkspaceConfig wspConfig, SharedItemStateManager stateMgr,
- RepositoryContext repositoryContext, SessionImpl session) {
+ WorkspaceConfig wspConfig, RepositoryContext repositoryContext,
+ SessionImpl session) throws RepositoryException {
this.wspConfig = wspConfig;
this.repositoryContext = repositoryContext;
this.rep = repositoryContext.getRepository();
- this.stateMgr = createItemStateManager(stateMgr);
+ this.stateMgr = createItemStateManager();
this.hierMgr = new CachingHierarchyManager(
repositoryContext.getRootNodeId(), this.stateMgr);
this.stateMgr.addListener(hierMgr);
@@ -848,13 +848,27 @@ public class WorkspaceImpl extends Abstr
}
/**
+ * Returns the shared item state manager of this workspace.
+ *
+ * @return shared item state manager
+ * @throws RepositoryException if the workspace can not be accessed
+ */
+ protected SharedItemStateManager getSharedItemStateManager()
+ throws RepositoryException {
+ WorkspaceManager manager = repositoryContext.getWorkspaceManager();
+ return manager.getWorkspaceStateManager(getName());
+ }
+
+ /**
* Create the persistent item state manager on top of the shared item
* state manager. May be overridden by subclasses.
* @param shared shared item state manager
* @return local item state manager
*/
- protected LocalItemStateManager createItemStateManager(SharedItemStateManager shared) {
- return LocalItemStateManager.createInstance(shared, this, rep.getItemStateCacheFactory());
+ protected LocalItemStateManager createItemStateManager()
+ throws RepositoryException {
+ return LocalItemStateManager.createInstance(
+ getSharedItemStateManager(), this, rep.getItemStateCacheFactory());
}
//------------------------------------------< EventStateCollectionFactory >
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/XASessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/XASessionImpl.java?rev=948857&r1=948856&r2=948857&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/XASessionImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/XASessionImpl.java Thu May 27 15:02:18 2010
@@ -22,7 +22,6 @@ import org.apache.jackrabbit.core.lock.L
import org.apache.jackrabbit.core.lock.LockManagerImpl;
import org.apache.jackrabbit.core.lock.XALockManager;
import org.apache.jackrabbit.core.security.authentication.AuthContext;
-import org.apache.jackrabbit.core.state.SharedItemStateManager;
import org.apache.jackrabbit.core.state.XAItemStateManager;
import org.apache.jackrabbit.core.version.InternalVersionManager;
import org.apache.jackrabbit.core.version.InternalXAVersionManager;
@@ -42,6 +41,7 @@ import java.util.Map;
/**
* Session extension that provides XA support.
*/
+@SuppressWarnings("deprecation")
public class XASessionImpl extends SessionImpl
implements XASession, XAResource {
@@ -158,9 +158,9 @@ public class XASessionImpl extends Sessi
* {@inheritDoc}
*/
@Override
- protected WorkspaceImpl createWorkspaceInstance(
- WorkspaceConfig wspConfig, SharedItemStateManager stateMgr) {
- return new XAWorkspace(wspConfig, stateMgr, repositoryContext, this);
+ protected WorkspaceImpl createWorkspaceInstance(WorkspaceConfig wspConfig)
+ throws RepositoryException {
+ return new XAWorkspace(wspConfig, repositoryContext, this);
}
/**
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/XAWorkspace.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/XAWorkspace.java?rev=948857&r1=948856&r2=948857&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/XAWorkspace.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/XAWorkspace.java Thu May 27 15:02:18 2010
@@ -16,10 +16,11 @@
*/
package org.apache.jackrabbit.core;
+import javax.jcr.RepositoryException;
+
import org.apache.jackrabbit.core.config.WorkspaceConfig;
-import org.apache.jackrabbit.core.state.SharedItemStateManager;
-import org.apache.jackrabbit.core.state.XAItemStateManager;
import org.apache.jackrabbit.core.state.LocalItemStateManager;
+import org.apache.jackrabbit.core.state.XAItemStateManager;
/**
* Workspace extension that works in an XA environment.
@@ -30,20 +31,20 @@ public class XAWorkspace extends Workspa
* Protected constructor.
*
* @param wspConfig The workspace configuration
- * @param stateMgr The shared item state manager
* @param repositoryContext repository context
* @param session The session
*/
protected XAWorkspace(
- WorkspaceConfig wspConfig, SharedItemStateManager stateMgr,
- RepositoryContext repositoryContext, SessionImpl session) {
- super(wspConfig, stateMgr, repositoryContext, session);
+ WorkspaceConfig wspConfig, RepositoryContext repositoryContext,
+ SessionImpl session) throws RepositoryException {
+ super(wspConfig, repositoryContext, session);
}
- /**
- * {@inheritDoc}
- */
- protected LocalItemStateManager createItemStateManager(SharedItemStateManager shared) {
- return XAItemStateManager.createInstance(shared, this, null, rep.getItemStateCacheFactory());
+ @Override
+ protected LocalItemStateManager createItemStateManager()
+ throws RepositoryException {
+ return XAItemStateManager.createInstance(
+ getSharedItemStateManager(), this, null,
+ rep.getItemStateCacheFactory());
}
}