You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2013/03/13 17:25:56 UTC
svn commit: r1456028 - in
/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr:
SessionContext.java SessionContextProvider.java SessionImpl.java
Author: mduerig
Date: Wed Mar 13 16:25:55 2013
New Revision: 1456028
URL: http://svn.apache.org/r1456028
Log:
OAK-672: Avoid JCR APIs calling other JCR APIs
- Promote SessionContext to top level class
Added:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java (with props)
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContextProvider.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java
Added: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java?rev=1456028&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java (added)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java Wed Mar 13 16:25:55 2013
@@ -0,0 +1,294 @@
+package org.apache.jackrabbit.oak.jcr;
+
+import java.util.Map;
+
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
+import javax.jcr.PathNotFoundException;
+import javax.jcr.RepositoryException;
+import javax.jcr.lock.LockManager;
+import javax.jcr.nodetype.NodeTypeManager;
+import javax.jcr.observation.ObservationManager;
+import javax.jcr.security.AccessControlManager;
+import javax.jcr.version.VersionManager;
+
+import com.google.common.collect.Maps;
+import org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
+import org.apache.jackrabbit.api.security.principal.PrincipalManager;
+import org.apache.jackrabbit.api.security.user.UserManager;
+import org.apache.jackrabbit.oak.api.Root;
+import org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate;
+import org.apache.jackrabbit.oak.namepath.LocalNameMapper;
+import org.apache.jackrabbit.oak.namepath.NamePathMapperImpl;
+import org.apache.jackrabbit.oak.plugins.name.Namespaces;
+import org.apache.jackrabbit.oak.plugins.nodetype.DefinitionProvider;
+import org.apache.jackrabbit.oak.plugins.nodetype.EffectiveNodeTypeProvider;
+import org.apache.jackrabbit.oak.plugins.observation.ObservationManagerImpl;
+import org.apache.jackrabbit.oak.plugins.value.ValueFactoryImpl;
+import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
+import org.apache.jackrabbit.oak.spi.security.authorization.AccessControlConfiguration;
+import org.apache.jackrabbit.oak.spi.security.authorization.PermissionProvider;
+import org.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+public abstract class SessionContext {
+ private final RepositoryImpl repository;
+ private final WorkspaceImpl workspace;
+ private final NamePathMapperImpl namePathMapper;
+ private final ValueFactoryImpl valueFactory;
+
+ private AccessControlManager accessControlManager;
+ private PrincipalManager principalManager;
+ private UserManager userManager;
+ private PrivilegeManager privilegeManager;
+ private UserConfiguration userConfiguration;
+ private AccessControlConfiguration accessControlConfiguration;
+ private ObservationManagerImpl observationManager;
+
+ private SessionContext(RepositoryImpl repository, WorkspaceImpl workspace,
+ NamePathMapperImpl namePathMapper, ValueFactoryImpl valueFactory) {
+ this.repository = repository;
+ this.workspace = workspace;
+ this.namePathMapper = namePathMapper;
+ this.valueFactory = valueFactory;
+ }
+
+ public static SessionContext create(final SessionDelegate delegate, RepositoryImpl repository) {
+ final Map<String, String> namespaces = Maps.newHashMap();
+ final Root root = checkNotNull(delegate).getRoot();
+
+ LocalNameMapper nameMapper = new LocalNameMapper(namespaces) {
+ @Override
+ protected Map<String, String> getNamespaceMap() {
+ return Namespaces.getNamespaceMap(root.getTree("/"));
+ }
+ };
+
+ WorkspaceImpl workspace = new WorkspaceImpl(delegate);
+ NamePathMapperImpl namePathMapper = new NamePathMapperImpl(nameMapper, delegate.getIdManager());
+ ValueFactoryImpl valueFactory = new ValueFactoryImpl(root.getBlobFactory(), namePathMapper);
+
+ return new SessionContext(checkNotNull(repository), workspace, namePathMapper, valueFactory){
+ SessionImpl session = new SessionImpl(delegate, this, namespaces);
+ @Override
+ public SessionImpl getSession() {
+ return session;
+ }
+ };
+ }
+
+ public RepositoryImpl getRepository() {
+ return repository;
+ }
+
+ public abstract SessionImpl getSession();
+
+ public WorkspaceImpl getWorkspace() {
+ return workspace;
+ }
+
+ public LockManager getLockManager() {
+ return workspace.getLockManager();
+ }
+
+ public NodeTypeManager getNodeTypeManager() {
+ return workspace.getNodeTypeManager();
+ }
+
+ public VersionManager getVersionManager() throws RepositoryException {
+ return workspace.getVersionManager();
+ }
+
+ public EffectiveNodeTypeProvider getEffectiveNodeTypeProvider() {
+ return workspace.getReadWriteNodeTypeManager();
+ }
+
+ public DefinitionProvider getDefinitionProvider() {
+ return workspace.getReadWriteNodeTypeManager();
+ }
+
+ public NamePathMapperImpl getNamePathMapper() {
+ return namePathMapper;
+ }
+
+ public ValueFactoryImpl getValueFactory() {
+ return valueFactory;
+ }
+
+ /**
+ * Returns the Oak name for the given JCR name, or throws a
+ * {@link javax.jcr.RepositoryException} if the name is invalid or can
+ * otherwise not be mapped.
+ *
+ * @param jcrName JCR name
+ * @return Oak name
+ * @throws javax.jcr.RepositoryException if the name is invalid
+ */
+ @Nonnull
+ public String getOakName(String jcrName) throws RepositoryException {
+ return namePathMapper.getOakName(jcrName);
+ }
+
+ /**
+ * Returns the Oak path for the given JCR path, or throws a
+ * {@link javax.jcr.RepositoryException} if the path can not be mapped.
+ *
+ * @param jcrPath JCR path
+ * @return Oak path
+ * @throws javax.jcr.RepositoryException if the path can not be mapped
+ */
+ @Nonnull
+ public String getOakPath(String jcrPath) throws RepositoryException {
+ String oakPath = getOakPathOrNull(jcrPath);
+ if (oakPath != null) {
+ return oakPath;
+ } else {
+ throw new RepositoryException("Invalid name or path: " + jcrPath);
+ }
+ }
+
+ /**
+ * Shortcut for {@code SessionDelegate.getNamePathMapper().getOakPath(jcrPath)}.
+ *
+ * @param jcrPath JCR path
+ * @return Oak path, or {@code null}
+ */
+ @CheckForNull
+ public String getOakPathOrNull(String jcrPath) {
+ return namePathMapper.getOakPath(jcrPath);
+ }
+
+ /**
+ * Returns the Oak path for the given JCR path, or throws a
+ * {@link javax.jcr.PathNotFoundException} if the path can not be mapped.
+ *
+ * @param jcrPath JCR path
+ * @return Oak path
+ * @throws javax.jcr.PathNotFoundException if the path can not be mapped
+ */
+ @Nonnull
+ public String getOakPathOrThrowNotFound(String jcrPath) throws PathNotFoundException {
+ String oakPath = getOakPathOrNull(jcrPath);
+ if (oakPath != null) {
+ return oakPath;
+ } else {
+ throw new PathNotFoundException(jcrPath);
+ }
+ }
+
+ /**
+ * Shortcut for {@code SessionDelegate.getOakPathKeepIndex(jcrPath)}.
+ *
+ * @param jcrPath JCR path
+ * @return Oak path, or {@code null}, with indexes left intact
+ * @throws javax.jcr.PathNotFoundException
+ */
+ @Nonnull
+ public String getOakPathKeepIndex(String jcrPath) throws PathNotFoundException {
+ return namePathMapper.getOakPathKeepIndex(jcrPath);
+ }
+
+ /**
+ * Shortcut for {@code SessionDelegate.getOakPathKeepIndex(jcrPath)}.
+ *
+ * @param jcrPath JCR path
+ * @return Oak path, or {@code null}, with indexes left intact
+ * @throws javax.jcr.PathNotFoundException
+ */
+ @Nonnull
+ public String getOakPathKeepIndexOrThrowNotFound(String jcrPath) throws PathNotFoundException {
+ String oakPath = namePathMapper.getOakPathKeepIndex(jcrPath);
+ if (oakPath != null) {
+ return oakPath;
+ } else {
+ throw new PathNotFoundException(jcrPath);
+ }
+ }
+
+ @Nonnull
+ public AccessControlManager getAccessControlManager(SessionDelegate delegate) {
+ if (accessControlManager == null) {
+ SecurityProvider securityProvider = repository.getSecurityProvider();
+ accessControlManager = securityProvider.getAccessControlConfiguration()
+ .getAccessControlManager(delegate.getRoot(), namePathMapper);
+ }
+ return accessControlManager;
+ }
+
+ @Nonnull
+ public PermissionProvider getPermissionProvider(SessionDelegate delegate) {
+ SecurityProvider securityProvider = repository.getSecurityProvider();
+
+ // TODO
+ return securityProvider.getAccessControlConfiguration()
+ .getPermissionProvider(delegate.getRoot(), delegate.getAuthInfo().getPrincipals());
+ }
+
+ @Nonnull
+ public PrincipalManager getPrincipalManager(SessionDelegate delegate) {
+ if (principalManager == null) {
+ SecurityProvider securityProvider = repository.getSecurityProvider();
+ principalManager = securityProvider.getPrincipalConfiguration()
+ .getPrincipalManager(delegate.getRoot(), namePathMapper);
+ }
+ return principalManager;
+ }
+
+ @Nonnull
+ public UserManager getUserManager(SessionDelegate delegate) {
+ if (userManager == null) {
+ SecurityProvider securityProvider = repository.getSecurityProvider();
+ userManager = securityProvider.getUserConfiguration().getUserManager(delegate.getRoot(), namePathMapper);
+ }
+ return userManager;
+ }
+
+ @Nonnull
+ public PrivilegeManager getPrivilegeManager(SessionDelegate delegate) {
+ if (privilegeManager == null) {
+ SecurityProvider securityProvider = repository.getSecurityProvider();
+ privilegeManager = securityProvider.getPrivilegeConfiguration().getPrivilegeManager(delegate.getRoot(), namePathMapper);
+ }
+ return privilegeManager;
+ }
+
+ @Nonnull
+ public UserConfiguration getUserConfiguration() {
+ if (userConfiguration == null) {
+ SecurityProvider securityProvider = repository.getSecurityProvider();
+ userConfiguration = securityProvider.getUserConfiguration();
+ }
+ return userConfiguration;
+ }
+
+ @Nonnull
+ public AccessControlConfiguration getAccessControlConfiguration() {
+ if (accessControlConfiguration == null) {
+ SecurityProvider securityProvider = repository.getSecurityProvider();
+ accessControlConfiguration = securityProvider.getAccessControlConfiguration();
+ }
+ return accessControlConfiguration;
+ }
+
+ @Nonnull
+ public ObservationManager getObservationManager(SessionDelegate delegate) {
+ if (observationManager == null) {
+ observationManager = new ObservationManagerImpl(
+ delegate.getRoot(), namePathMapper, repository.getObservationExecutor());
+ }
+ return observationManager;
+ }
+
+ public boolean hasPendingEvents() {
+ return observationManager != null && observationManager.hasEvents();
+ }
+
+ //------------------------------------------------------------< internal >---
+
+ void dispose() {
+ if (observationManager != null) {
+ observationManager.dispose();
+ }
+ }
+}
Propchange: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision Rev URL
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContextProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContextProvider.java?rev=1456028&r1=1456027&r2=1456028&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContextProvider.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContextProvider.java Wed Mar 13 16:25:55 2013
@@ -17,16 +17,11 @@ import com.google.common.collect.Maps;
import org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
import org.apache.jackrabbit.api.security.principal.PrincipalManager;
import org.apache.jackrabbit.api.security.user.UserManager;
-import org.apache.jackrabbit.oak.api.Root;
import org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate;
-import org.apache.jackrabbit.oak.namepath.LocalNameMapper;
import org.apache.jackrabbit.oak.namepath.NamePathMapperImpl;
-import org.apache.jackrabbit.oak.plugins.name.Namespaces;
import org.apache.jackrabbit.oak.plugins.nodetype.DefinitionProvider;
import org.apache.jackrabbit.oak.plugins.nodetype.EffectiveNodeTypeProvider;
-import org.apache.jackrabbit.oak.plugins.observation.ObservationManagerImpl;
import org.apache.jackrabbit.oak.plugins.value.ValueFactoryImpl;
-import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
import org.apache.jackrabbit.oak.spi.security.authorization.AccessControlConfiguration;
import org.apache.jackrabbit.oak.spi.security.authorization.PermissionProvider;
import org.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
@@ -40,22 +35,9 @@ public final class SessionContextProvide
@Nonnull
public static Session newSession(@Nonnull SessionDelegate delegate, @Nonnull RepositoryImpl repository) {
- Map<String, String> namespaces = Maps.newHashMap();
- final Root root = delegate.getRoot();
-
- NamePathMapperImpl namePathMapper = new NamePathMapperImpl(new LocalNameMapper(namespaces) {
- @Override
- protected Map<String, String> getNamespaceMap() {
- return Namespaces.getNamespaceMap(root.getTree("/"));
- }
- }, delegate.getIdManager());
- ValueFactoryImpl valueFactory = new ValueFactoryImpl(root.getBlobFactory(), namePathMapper);
- SessionImpl session = new SessionImpl(checkNotNull(delegate), namespaces);
- WorkspaceImpl workspace = new WorkspaceImpl(delegate);
-
- CONTEXTS.put(delegate, new SessionContext(
- checkNotNull(repository), session, workspace, namePathMapper, valueFactory));
- return session;
+ SessionContext context = SessionContext.create(delegate, repository);
+ CONTEXTS.put(delegate, context);
+ return context.getSession();
}
public static void remove(SessionDelegate delegate) {
@@ -68,53 +50,53 @@ public final class SessionContextProvide
@Nonnull
public static SessionImpl getSession(@Nonnull SessionDelegate delegate) {
- return getSessionContext(delegate).session;
+ return getSessionContext(delegate).getSession();
}
@Nonnull
public static RepositoryImpl getRepository(@Nonnull SessionDelegate delegate) {
- return getSessionContext(delegate).repository;
+ return getSessionContext(delegate).getRepository();
}
@Nonnull
public static WorkspaceImpl getWorkspace(@Nonnull SessionDelegate delegate) {
- return getSessionContext(delegate).workspace;
+ return getSessionContext(delegate).getWorkspace();
}
@Nonnull
public static LockManager getLockManager(@Nonnull SessionDelegate delegate) {
- return getWorkspace(delegate).getLockManager();
+ return getSessionContext(delegate).getLockManager();
}
@Nonnull
public static NodeTypeManager getNodeTypeManager(@Nonnull SessionDelegate delegate) {
- return getWorkspace(delegate).getNodeTypeManager();
+ return getSessionContext(delegate).getNodeTypeManager();
}
@Nonnull
public static VersionManager getVersionManager(@Nonnull SessionDelegate delegate)
throws RepositoryException {
- return getWorkspace(delegate).getVersionManager();
+ return getSessionContext(delegate).getVersionManager();
}
@Nonnull
public static EffectiveNodeTypeProvider getEffectiveNodeTypeProvider(@Nonnull SessionDelegate delegate) {
- return getWorkspace(delegate).getReadWriteNodeTypeManager();
+ return getSessionContext(delegate).getEffectiveNodeTypeProvider();
}
@Nonnull
public static DefinitionProvider getDefinitionProvider(@Nonnull SessionDelegate delegate) {
- return getWorkspace(delegate).getReadWriteNodeTypeManager();
+ return getSessionContext(delegate).getDefinitionProvider();
}
@Nonnull
public static NamePathMapperImpl getNamePathMapper(@Nonnull SessionDelegate delegate) {
- return getSessionContext(delegate).namePathMapper;
+ return getSessionContext(delegate).getNamePathMapper();
}
@Nonnull
public static ValueFactoryImpl getValueFactory(@Nonnull SessionDelegate delegate) {
- return getSessionContext(delegate).valueFactory;
+ return getSessionContext(delegate).getValueFactory();
}
@Nonnull
@@ -147,64 +129,47 @@ public final class SessionContextProvide
}
@Nonnull
- public static SecurityProvider getSecurityProvider(SessionDelegate delegate) {
- return getRepository(delegate).getSecurityProvider();
- }
-
- @Nonnull
public static AccessControlManager getAccessControlManager(SessionDelegate delegate) {
- SessionContext context = getSessionContext(delegate);
- return context.getAccessControlManager(delegate);
+ return getSessionContext(delegate).getAccessControlManager(delegate);
}
@Nonnull
public static PermissionProvider getPermissionProvider(SessionDelegate delegate) {
- SecurityProvider securityProvider = getSecurityProvider(delegate);
-
- // TODO
- return securityProvider.getAccessControlConfiguration()
- .getPermissionProvider(delegate.getRoot(), delegate.getAuthInfo().getPrincipals());
+ return getSessionContext(delegate).getPermissionProvider(delegate);
}
@Nonnull
public static PrincipalManager getPrincipalManager(SessionDelegate delegate) {
- SessionContext context = getSessionContext(delegate);
- return context.getPrincipalManager(delegate);
+ return getSessionContext(delegate).getPrincipalManager(delegate);
}
@Nonnull
public static UserManager getUserManager(SessionDelegate delegate) {
- SessionContext context = getSessionContext(delegate);
- return context.getUserManager(delegate);
+ return getSessionContext(delegate).getUserManager(delegate);
}
@Nonnull
public static PrivilegeManager getPrivilegeManager(SessionDelegate delegate) {
- SessionContext context = getSessionContext(delegate);
- return context.getPrivilegeManager(delegate);
+ return getSessionContext(delegate).getPrivilegeManager(delegate);
}
@Nonnull
public static UserConfiguration getUserConfiguration(SessionDelegate delegate) {
- SessionContext context = getSessionContext(delegate);
- return context.getUserConfiguration();
+ return getSessionContext(delegate).getUserConfiguration();
}
@Nonnull
public static AccessControlConfiguration getAccessControlConfiguration(SessionDelegate delegate) {
- SessionContext context = getSessionContext(delegate);
- return context.getAccessControlConfiguration();
+ return getSessionContext(delegate).getAccessControlConfiguration();
}
@Nonnull
public static ObservationManager getObservationManager(SessionDelegate delegate) {
- SessionContext context = getSessionContext(delegate);
- return context.getObservationManager(delegate);
+ return getSessionContext(delegate).getObservationManager(delegate);
}
public static boolean hasPendingEvents(SessionDelegate delegate) {
- SessionContext context = getSessionContext(delegate);
- return context.hasPendingEvents();
+ return getSessionContext(delegate).hasPendingEvents();
}
//------------------------------------------------------------< private >---
@@ -218,181 +183,4 @@ public final class SessionContextProvide
return context;
}
- private static class SessionContext {
- final RepositoryImpl repository;
- final SessionImpl session;
- final WorkspaceImpl workspace;
- final NamePathMapperImpl namePathMapper;
- final ValueFactoryImpl valueFactory;
-
- private AccessControlManager accessControlManager;
- private PrincipalManager principalManager;
- private UserManager userManager;
- private PrivilegeManager privilegeManager;
- private UserConfiguration userConfiguration;
- private AccessControlConfiguration accessControlConfiguration;
- private ObservationManagerImpl observationManager;
-
- SessionContext(RepositoryImpl repository, SessionImpl session, WorkspaceImpl workspace,
- NamePathMapperImpl namePathMapper, ValueFactoryImpl valueFactory) {
- this.repository = repository;
- this.session = session;
- this.workspace = workspace;
- this.namePathMapper = namePathMapper;
- this.valueFactory = valueFactory;
- }
-
- /**
- * Returns the Oak name for the given JCR name, or throws a
- * {@link RepositoryException} if the name is invalid or can
- * otherwise not be mapped.
- *
- * @param jcrName JCR name
- * @return Oak name
- * @throws RepositoryException if the name is invalid
- */
- @Nonnull
- String getOakName(String jcrName) throws RepositoryException {
- return namePathMapper.getOakName(jcrName);
- }
-
- /**
- * Shortcut for {@code SessionDelegate.getNamePathMapper().getOakPath(jcrPath)}.
- *
- * @param jcrPath JCR path
- * @return Oak path, or {@code null}
- */
- @CheckForNull
- String getOakPathOrNull(String jcrPath) {
- return namePathMapper.getOakPath(jcrPath);
- }
-
- /**
- * Shortcut for {@code SessionDelegate.getOakPathKeepIndex(jcrPath)}.
- *
- * @param jcrPath JCR path
- * @return Oak path, or {@code null}, with indexes left intact
- * @throws javax.jcr.PathNotFoundException
- */
- @Nonnull
- String getOakPathKeepIndexOrThrowNotFound(String jcrPath) throws PathNotFoundException {
- String oakPath = namePathMapper.getOakPathKeepIndex(jcrPath);
- if (oakPath != null) {
- return oakPath;
- } else {
- throw new PathNotFoundException(jcrPath);
- }
- }
-
- /**
- * Returns the Oak path for the given JCR path, or throws a
- * {@link PathNotFoundException} if the path can not be mapped.
- *
- * @param jcrPath JCR path
- * @return Oak path
- * @throws PathNotFoundException if the path can not be mapped
- */
- @Nonnull
- String getOakPathOrThrowNotFound(String jcrPath) throws PathNotFoundException {
- String oakPath = getOakPathOrNull(jcrPath);
- if (oakPath != null) {
- return oakPath;
- } else {
- throw new PathNotFoundException(jcrPath);
- }
- }
-
- /**
- * Returns the Oak path for the given JCR path, or throws a
- * {@link RepositoryException} if the path can not be mapped.
- *
- * @param jcrPath JCR path
- * @return Oak path
- * @throws RepositoryException if the path can not be mapped
- */
- @Nonnull
- String getOakPath(String jcrPath) throws RepositoryException {
- String oakPath = getOakPathOrNull(jcrPath);
- if (oakPath != null) {
- return oakPath;
- } else {
- throw new RepositoryException("Invalid name or path: " + jcrPath);
- }
- }
-
- @Nonnull
- AccessControlManager getAccessControlManager(SessionDelegate delegate) {
- if (accessControlManager == null) {
- SecurityProvider securityProvider = repository.getSecurityProvider();
- accessControlManager = securityProvider.getAccessControlConfiguration()
- .getAccessControlManager(delegate.getRoot(), namePathMapper);
- }
- return accessControlManager;
- }
-
- @Nonnull
- PrincipalManager getPrincipalManager(SessionDelegate delegate) {
- if (principalManager == null) {
- SecurityProvider securityProvider = repository.getSecurityProvider();
- principalManager = securityProvider.getPrincipalConfiguration()
- .getPrincipalManager(delegate.getRoot(), namePathMapper);
- }
- return principalManager;
- }
-
- @Nonnull
- UserManager getUserManager(SessionDelegate delegate) {
- if (userManager == null) {
- SecurityProvider securityProvider = repository.getSecurityProvider();
- userManager = securityProvider.getUserConfiguration().getUserManager(delegate.getRoot(), namePathMapper);
- }
- return userManager;
- }
-
- @Nonnull
- PrivilegeManager getPrivilegeManager(SessionDelegate delegate) {
- if (privilegeManager == null) {
- SecurityProvider securityProvider = repository.getSecurityProvider();
- privilegeManager = securityProvider.getPrivilegeConfiguration().getPrivilegeManager(delegate.getRoot(), namePathMapper);
- }
- return privilegeManager;
- }
-
- @Nonnull
- UserConfiguration getUserConfiguration() {
- if (userConfiguration == null) {
- SecurityProvider securityProvider = repository.getSecurityProvider();
- userConfiguration = securityProvider.getUserConfiguration();
- }
- return userConfiguration;
- }
-
- @Nonnull
- AccessControlConfiguration getAccessControlConfiguration() {
- if (accessControlConfiguration == null) {
- SecurityProvider securityProvider = repository.getSecurityProvider();
- accessControlConfiguration = securityProvider.getAccessControlConfiguration();
- }
- return accessControlConfiguration;
- }
-
- @Nonnull
- ObservationManager getObservationManager(SessionDelegate delegate) {
- if (observationManager == null) {
- observationManager = new ObservationManagerImpl(
- delegate.getRoot(), namePathMapper, repository.getObservationExecutor());
- }
- return observationManager;
- }
-
- void dispose() {
- if (observationManager != null) {
- observationManager.dispose();
- }
- }
-
- public boolean hasPendingEvents() {
- return observationManager != null && observationManager.hasEvents();
- }
- }
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java?rev=1456028&r1=1456027&r2=1456028&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java Wed Mar 13 16:25:55 2013
@@ -85,7 +85,7 @@ public class SessionImpl extends Abstrac
*/
private final Map<String, String> namespaces;
- public SessionImpl(SessionDelegate dlg, Map<String, String> namespaces) {
+ SessionImpl(SessionDelegate dlg, SessionContext sessionContext, Map<String, String> namespaces) {
this.dlg = dlg;
this.namespaces = namespaces;
}