Author: jukka
Date: Mon Aug 12 07:42:06 2013
New Revision: 1513064
URL: http://svn.apache.org/r1513064
Log:
OAK-953: Allow sub-classing of SessionImpl
Add a factory method for creating SessionContext instances
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/RepositoryImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/RepositoryImpl.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/RepositoryImpl.java?rev=1513064&r1=1513063&r2=1513064&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/RepositoryImpl.java
(original)
+++
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/RepositoryImpl.java
Mon Aug 12 07:42:06 2013
@@ -68,7 +68,7 @@ public class RepositoryImpl implements J
private final Descriptors descriptors = new Descriptors(new
SimpleValueFactory());
private final ContentRepository contentRepository;
- private final Whiteboard whiteboard;
+ protected final Whiteboard whiteboard;
private final SecurityProvider securityProvider;
public RepositoryImpl(@Nonnull ContentRepository contentRepository,
@@ -203,7 +203,7 @@ public class RepositoryImpl implements J
}
ContentSession contentSession =
contentRepository.login(credentials, workspaceName);
- SessionContext context = new SessionContext(this, whiteboard,
+ SessionContext context = createSessionContext(
Collections.<String, Object>singletonMap(REFRESH_INTERVAL,
refreshInterval),
new SessionDelegate(contentSession, refreshInterval));
return context.getSession();
@@ -219,6 +219,18 @@ public class RepositoryImpl implements J
//------------------------------------------------------------< internal
>---
+ /**
+ * Factory method for creating a {@link SessionContext} instance for
+ * a new session. Called by {@link #login()}. Can be overridden by
+ * subclasses to customize the session implementation.
+ *
+ * @return session context
+ */
+ protected SessionContext createSessionContext(
+ Map<String, Object> attributes, SessionDelegate delegate) {
+ return new SessionContext(this, whiteboard, attributes, delegate);
+ }
+
SecurityProvider getSecurityProvider() {
return securityProvider;
}
Modified:
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=1513064&r1=1513063&r2=1513064&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java
(original)
+++
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java
Mon Aug 12 07:42:06 2013
@@ -93,7 +93,7 @@ public class SessionContext implements N
private PrivilegeManager privilegeManager;
private ObservationManagerImpl observationManager;
- SessionContext(
+ public SessionContext(
@Nonnull RepositoryImpl repository, @Nonnull Whiteboard whiteboard,
Map<String, Object> attributes, @Nonnull final SessionDelegate
delegate) {
this.repository = checkNotNull(repository);