Ard Schrijvers pushed to branch jackrabbit-2.10.1-patched at cms-community / hippo-jackrabbit-patches
Commits: 51b01812 by Ard Schrijvers at 2016-07-21T20:20:29+02:00 REPO-187: creation of item state manager in session object rt workspace Get rid of switch on SessionImpl versus XASession in workspace object and delegate creation of local item state manager to session object. This also allows for the override to use a different cacheFactory. - - - - - 3 changed files: - jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java - jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java - jackrabbit-core/src/main/java/org/apache/jackrabbit/core/XASessionImpl.java Changes: ===================================== jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java ===================================== --- a/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java +++ b/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java @@ -16,6 +16,10 @@ */ package org.apache.jackrabbit.core; +import org.apache.jackrabbit.core.observation.EventStateCollectionFactory; +import org.apache.jackrabbit.core.state.ItemStateCacheFactory; +import org.apache.jackrabbit.core.state.LocalItemStateManager; +import org.apache.jackrabbit.core.state.SharedItemStateManager; import static org.apache.jackrabbit.core.ItemValidator.CHECK_CHECKED_OUT; import static org.apache.jackrabbit.core.ItemValidator.CHECK_CONSTRAINTS; import static org.apache.jackrabbit.core.ItemValidator.CHECK_HOLD; @@ -1330,4 +1334,7 @@ public class SessionImpl extends AbstractSession } } + public LocalItemStateManager createItemStateManager(RepositoryContext repositoryContext, WorkspaceImpl workspace, SharedItemStateManager sharedStateMgr, EventStateCollectionFactory factory, String attribute, ItemStateCacheFactory cacheFactory) { + return LocalItemStateManager.createInstance(sharedStateMgr, factory, cacheFactory); + } } ===================================== jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java ===================================== --- a/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java +++ b/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java @@ -895,15 +895,7 @@ public class WorkspaceImpl extends AbstractWorkspace SharedItemStateManager sism = getSharedItemStateManager(); ItemStateCacheFactory iscf = context.getRepositoryContext().getItemStateCacheFactory(); - - // FIXME We should be able to avoid the instanceof operator here - if (context.getSessionImpl() instanceof XASessionImpl) { - return XAItemStateManager.createInstance( - sism, this, null, iscf); - } else { - return LocalItemStateManager.createInstance( - sism, this, iscf); - } + return context.getSessionImpl().createItemStateManager(this.context.getRepositoryContext(), this, sism, this, null, iscf); } ===================================== jackrabbit-core/src/main/java/org/apache/jackrabbit/core/XASessionImpl.java ===================================== --- a/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/XASessionImpl.java +++ b/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/XASessionImpl.java @@ -19,7 +19,12 @@ package org.apache.jackrabbit.core; import org.apache.jackrabbit.api.XASession; import org.apache.jackrabbit.core.config.WorkspaceConfig; import org.apache.jackrabbit.core.lock.XALockManager; +import org.apache.jackrabbit.core.observation.EventStateCollectionFactory; import org.apache.jackrabbit.core.security.authentication.AuthContext; +import org.apache.jackrabbit.core.session.SessionContext; +import org.apache.jackrabbit.core.state.ItemStateCacheFactory; +import org.apache.jackrabbit.core.state.LocalItemStateManager; +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; @@ -411,4 +416,9 @@ public class XASessionImpl extends SessionImpl return s1.equals(s2); } } + + @Override + public LocalItemStateManager createItemStateManager(RepositoryContext repositoryContext, WorkspaceImpl workspace, SharedItemStateManager sharedStateMgr, EventStateCollectionFactory factory, String attributeName, ItemStateCacheFactory cacheFactory) { + return XAItemStateManager.createInstance(sharedStateMgr, factory, attributeName, cacheFactory); + } } View it on GitLab: https://code.onehippo.org/cms-community/hippo-jackrabbit-patches/commit/51b01812e6e2fd1f8e77120b19dde8f842c22974
_______________________________________________ Hippocms-svn mailing list Hippocms-svn@lists.onehippo.org https://lists.onehippo.org/mailman/listinfo/hippocms-svn