You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by md...@apache.org on 2011/09/23 23:39:47 UTC
svn commit: r1175041 - in /jackrabbit/sandbox/jackrabbit-mk:
jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/
jackrabbit-spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/
Author: mduerig
Date: Fri Sep 23 21:39:47 2011
New Revision: 1175041
URL: http://svn.apache.org/viewvc?rev=1175041&view=rev
Log:
Microkernel based Jackrabbit prototype (WIP)
refactor: make SessionState inherit from SessionInfoImpl
Modified:
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/AbstractRepositoryService.java
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/RepositoryServiceImpl.java
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/SessionState.java
Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/AbstractRepositoryService.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/AbstractRepositoryService.java?rev=1175041&r1=1175040&r2=1175041&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/AbstractRepositoryService.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/AbstractRepositoryService.java Fri Sep 23 21:39:47 2011
@@ -345,9 +345,6 @@ public abstract class AbstractRepository
*/
@Override
public void dispose(SessionInfo sessionInfo) throws RepositoryException {
- if (changePollingExecutor != null) {
- changePollingExecutor.shutdown();
- }
}
//-----------------------------< node types >-------------------------------
Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/RepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/RepositoryServiceImpl.java?rev=1175041&r1=1175040&r2=1175041&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/RepositoryServiceImpl.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/RepositoryServiceImpl.java Fri Sep 23 21:39:47 2011
@@ -69,7 +69,6 @@ import javax.jcr.PathNotFoundException;
import javax.jcr.PropertyType;
import javax.jcr.RepositoryException;
import javax.jcr.UnsupportedRepositoryOperationException;
-import javax.jcr.query.InvalidQueryException;
import javax.jcr.query.Query;
import javax.jcr.version.OnParentVersionAction;
import java.io.IOException;
@@ -85,7 +84,6 @@ import java.util.Map.Entry;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.Callable;
-import java.util.concurrent.ConcurrentHashMap;
import static javax.jcr.Repository.IDENTIFIER_STABILITY;
import static javax.jcr.Repository.IDENTIFIER_STABILITY_METHOD_DURATION;
@@ -199,7 +197,6 @@ public class RepositoryServiceImpl exten
private final PropertyIndex jcrUuidIndex;
private final PrefixIndex referenceIndex;
private final PrefixIndex weakReferenceIndex;
- private final Map<SessionInfo, SessionState> sessions = new ConcurrentHashMap<SessionInfo, SessionState>();
private final NodeTypeStore nodeTypeStore;
private final QueryProcessor queryProcessor;
private final String defaultWorkspace;
@@ -279,14 +276,7 @@ public class RepositoryServiceImpl exten
userId = anonymousId;
}
- SessionInfo s = super.createSessionInfo(userId, workspaceName);
- createSessionState(s);
- return s;
- }
-
- @Override
- public void dispose(SessionInfo sessionInfo) throws RepositoryException {
- sessions.remove(sessionInfo);
+ return new SessionState(microKernel, userId, workspaceName);
}
@Override
@@ -561,7 +551,7 @@ public class RepositoryServiceImpl exten
@Override
public Subscription createSubscription(SessionInfo sessionInfo, EventFilter[] filters) throws RepositoryException {
- SubscriptionImpl subscription = new SubscriptionImpl(microKernel, sessionState(sessionInfo));
+ SubscriptionImpl subscription = new SubscriptionImpl(microKernel, sessionInfoImpl(sessionInfo));
subscription.setEventFilters(filters);
return subscription;
}
@@ -894,8 +884,8 @@ public class RepositoryServiceImpl exten
}
}
- private static SessionInfoImpl sessionInfoImpl(SessionInfo sessionInfo) throws RepositoryException {
- if (sessionInfo instanceof SessionInfoImpl) {
+ private static SessionState sessionInfoImpl(SessionInfo sessionInfo) throws RepositoryException {
+ if (sessionInfo instanceof SessionState) {
return cast(sessionInfo);
}
else {
@@ -905,29 +895,6 @@ public class RepositoryServiceImpl exten
}
}
- private SessionState sessionState(SessionInfo sessionInfo) throws RepositoryException {
- SessionState state = sessions.get(sessionInfo);
-
- if (state == null) {
- RepositoryException e = new RepositoryException("Invalid session");
- log.error(e.getMessage(), e);
- throw e;
- }
- else {
- return state;
- }
- }
-
- private void createSessionState(SessionInfo sessionInfo) throws RepositoryException {
- try {
- sessions.put(sessionInfo, new SessionState(sessionInfo, microKernel.getHeadRevision()));
- }
- catch (MicroKernelException e) {
- log.error(e.getMessage(), e);
- throw new RepositoryException(e.getMessage(), e);
- }
- }
-
private void createWorkspace(String revisionId, String name, boolean ignoreExisting) throws RepositoryException {
try {
if (microKernel.nodeExists('/' + name, revisionId)) {
@@ -1108,7 +1075,7 @@ public class RepositoryServiceImpl exten
// todo: check value constraints
// todo: throw InvalidItemStateException when item no longer exists
// todo: throw ReferentialIntegrityException when saving removed node which is target of a reference
- sessionState(sessionInfo).commitWithLock(new Callable<String>() {
+ sessionInfoImpl(sessionInfo).commitWithLock(new Callable<String>() {
@Override
public String call() {
String rev = microKernel.getHeadRevision();
Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/SessionState.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/SessionState.java?rev=1175041&r1=1175040&r2=1175041&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/SessionState.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/SessionState.java Fri Sep 23 21:39:47 2011
@@ -19,7 +19,8 @@
package org.apache.jackrabbit.spi2microkernel;
-import org.apache.jackrabbit.spi.SessionInfo;
+import org.apache.jackrabbit.mk.api.MicroKernel;
+import org.apache.jackrabbit.spi.commons.SessionInfoImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -28,19 +29,17 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
-public class SessionState {
+public class SessionState extends SessionInfoImpl {
private static final Logger log = LoggerFactory.getLogger(SessionState.class);
- private final SessionInfo sessionInfo;
+ private final MicroKernel microKernel;
private final List<String> commitLog = new ArrayList<String>();
- public SessionState(SessionInfo sessionInfo, String initialRevision) {
- this.sessionInfo = sessionInfo;
- commitLog.add(initialRevision);
- }
-
- public SessionInfo getSessionInfo() {
- return sessionInfo;
+ public SessionState(MicroKernel microKernel, String userId, String workspaceName) {
+ this.microKernel = microKernel;
+ setUserID(userId);
+ setWorkspacename(workspaceName);
+ commitLog.add(microKernel.getHeadRevision());
}
public void commitWithLock(Callable<String> commit) throws RepositoryException {
@@ -86,4 +85,11 @@ public class SessionState {
public boolean hasRevision(String revisionId) {
return getCommitLog().contains(revisionId);
}
+
+ //------------------------------------------< SessionInfo >---
+
+ @Override
+ public void refresh() {
+ super.refresh(); // todo implement refresh
+ }
}