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

Reply via email to