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 2012/03/29 18:59:53 UTC
svn commit: r1306988 - in
/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr:
SessionContext.java SessionImpl.java state/TransientNodeState.java
state/TransientSpace.java
Author: mduerig
Date: Thu Mar 29 16:59:52 2012
New Revision: 1306988
URL: http://svn.apache.org/viewvc?rev=1306988&view=rev
Log:
OAK-15: Clean up oak-jcr
- reduce explicit tracking of revision
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/TransientNodeState.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/TransientSpace.java
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=1306988&r1=1306987&r2=1306988&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 Thu Mar 29 16:59:52 2012
@@ -31,8 +31,7 @@ public interface SessionContext<T extend
GlobalContext getGlobalContext();
String getWorkspaceName();
Connection getConnection();
- MicroKernel getMicrokernel();
- String getRevision(); // TODO: this should be superfluous if SessionInfo is used for communication
+ MicroKernel getMicrokernel(); // TODO: this should be superfluous when Connection is used for communication
ValueFactory getValueFactory();
NodeStateProvider getNodeStateProvider();
}
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=1306988&r1=1306987&r2=1306988&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 Thu Mar 29 16:59:52 2012
@@ -65,7 +65,6 @@ public class SessionImpl extends Abstrac
private final TransientSpace transientSpace;
private final NodeStateProvider nodeStateProvider;
- private String revision; // TODO: revision should be kept with sessionINFO and adjusted upon calls on oak-core API
private boolean isAlive = true;
private final SessionContext<SessionImpl> sessionContext = new Context();
@@ -74,13 +73,12 @@ public class SessionImpl extends Abstrac
this.globalContext = globalContext;
this.connection = connection;
- this.revision = globalContext.getInstance(MicroKernel.class).getHeadRevision(); // fixme: this is a hack and creates a race. however we will get rid of tracking the revision here anyway
valueFactory = new ValueFactoryImpl();
repository = new RepositoryAdaptor(globalContext.getInstance(Repository.class), valueFactory);
workspace = new WorkspaceImpl(sessionContext);
- transientSpace = new TransientSpace(sessionContext.getWorkspaceName(), sessionContext.getMicrokernel(), revision);
+ transientSpace = new TransientSpace(sessionContext.getWorkspaceName(), sessionContext.getMicrokernel());
nodeStateProvider = new NodeStateProvider(sessionContext, transientSpace);
}
@@ -214,8 +212,8 @@ public class SessionImpl extends Abstrac
public void save() throws RepositoryException {
checkIsAlive();
try {
- revision = transientSpace.save();
- connection.commit(connection.getCurrentRoot()); // todo: need a way to update a connection to head
+ transientSpace.save();
+ connection.commit(connection.getCurrentRoot()); // todo: need a better way to update a connection to head
nodeStateProvider.clear();
}
catch (CommitFailedException e) {
@@ -227,8 +225,8 @@ public class SessionImpl extends Abstrac
public void refresh(boolean keepChanges) throws RepositoryException {
checkIsAlive();
try {
- revision = transientSpace.refresh(keepChanges);
- connection.commit(connection.getCurrentRoot()); // todo: need a way to update a connection to head
+ transientSpace.refresh(keepChanges);
+ connection.commit(connection.getCurrentRoot()); // todo: need a better way to update a connection to head
nodeStateProvider.clear();
}
catch (CommitFailedException e) {
@@ -502,11 +500,6 @@ public class SessionImpl extends Abstrac
}
@Override
- public String getRevision() {
- return revision;
- }
-
- @Override
public ValueFactory getValueFactory() {
return valueFactory;
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/TransientNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/TransientNodeState.java?rev=1306988&r1=1306987&r2=1306988&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/TransientNodeState.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/TransientNodeState.java Thu Mar 29 16:59:52 2012
@@ -53,8 +53,6 @@ public class TransientNodeState {
private final SessionContext<SessionImpl> sessionContext;
- private String revision;
- private NodeState persistentNodeState;
private NodeDelta nodeDelta;
TransientNodeState(SessionContext<SessionImpl> sessionContext, NodeDelta nodeDelta) {
@@ -325,17 +323,10 @@ public class TransientNodeState {
private synchronized NodeState getPersistentNodeState() {
Path path = getNodeDelta().getPersistentPath();
- String baseRevision = sessionContext.getRevision();
- if (persistentNodeState == null || !revision.equals(baseRevision)) {
- revision = baseRevision;
- if (path == null) {
- persistentNodeState = EmptyNodeState.INSTANCE;
- } else {
- persistentNodeState = getPersistentNodeState(sessionContext.getConnection(), path);
- }
- }
- return persistentNodeState;
+ return path == null
+ ? EmptyNodeState.INSTANCE
+ : getPersistentNodeState(sessionContext.getConnection(), path);
}
private NodeDelta getNodeDelta() {
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/TransientSpace.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/TransientSpace.java?rev=1306988&r1=1306987&r2=1306988&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/TransientSpace.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/TransientSpace.java Thu Mar 29 16:59:52 2012
@@ -75,12 +75,11 @@ public class TransientSpace {
* and {@code revision}.
* @param workspace
* @param microkernel
- * @param revision
*/
- public TransientSpace(final String workspace, final MicroKernel microkernel, final String revision) {
+ public TransientSpace(String workspace, MicroKernel microkernel) {
this.microkernel = microkernel;
this.workspace = workspace;
- this.revision = revision;
+ this.revision = microkernel.getHeadRevision();
changeTree = createChangeTree(workspace, changeTreeListener);
}