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 2012/02/16 18:17:38 UTC
svn commit: r1245088 - in /jackrabbit/sandbox/jackrabbit-microkernel/src:
main/java/org/apache/jackrabbit/state/ChangeTree.java
main/java/org/apache/jackrabbit/state/TransientSpace.java
test/java/org/apache/jackrabbit/RepositoryTest.java
Author: mduerig
Date: Thu Feb 16 17:17:38 2012
New Revision: 1245088
URL: http://svn.apache.org/viewvc?rev=1245088&view=rev
Log:
Microkernel based prototype of JCR implementation (WIP)
- make changeTree immutable and acquire new changeTree instance on refresh
Modified:
jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/ChangeTree.java
jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/TransientSpace.java
jackrabbit/sandbox/jackrabbit-microkernel/src/test/java/org/apache/jackrabbit/RepositoryTest.java
Modified: jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/ChangeTree.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/ChangeTree.java?rev=1245088&r1=1245087&r2=1245088&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/ChangeTree.java (original)
+++ jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/ChangeTree.java Thu Feb 16 17:17:38 2012
@@ -113,14 +113,6 @@ public class ChangeTree {
}
/**
- * Clear all transient changes made to this change tree.
- */
- public void clear() {
- root.clear();
- existing.clear();
- }
-
- /**
* @return {@code true} iff this change tree has transient changes.
*/
public boolean hasChanges() {
Modified: jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/TransientSpace.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/TransientSpace.java?rev=1245088&r1=1245087&r2=1245088&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/TransientSpace.java (original)
+++ jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/TransientSpace.java Thu Feb 16 17:17:38 2012
@@ -26,6 +26,7 @@ import org.apache.jackrabbit.mk.api.Micr
import org.apache.jackrabbit.spi.commons.iterator.Predicate;
import org.apache.jackrabbit.state.ChangeTree.Listener;
import org.apache.jackrabbit.state.ChangeTree.NodeDelta;
+import org.apache.jackrabbit.utils.Provider;
import javax.jcr.RepositoryException;
@@ -37,9 +38,10 @@ import javax.jcr.RepositoryException;
*/
public class TransientSpace {
private final MicroKernel microkernel;
- private final ChangeTree changeTree;
private final ChangeLog changeLog = new ChangeLog();
+ private final Provider<ChangeTree> changeTreeProvider;
+ private ChangeTree changeTree;
private String revision;
/**
@@ -49,11 +51,11 @@ public class TransientSpace {
* @param microkernel
* @param revision
*/
- public TransientSpace(String workspace, final MicroKernel microkernel, final String revision) {
+ public TransientSpace(final String workspace, final MicroKernel microkernel, final String revision) {
this.microkernel = microkernel;
this.revision = revision;
- Listener changeTreeListener = new Listener() {
+ final Listener changeTreeListener = new Listener() {
@Override
public void added(NodeDelta nodeDelta) {
changeLog.addNode(nodeDelta.getPath());
@@ -75,14 +77,21 @@ public class TransientSpace {
}
};
- Predicate<Path> nodeExists = new Predicate<Path>() {
+ final Predicate<Path> nodeExists = new Predicate<Path>() {
@Override
public boolean evaluate(Path path) {
return microkernel.nodeExists(path.toMkPath(), getRevision());
}
};
- changeTree = new ChangeTree(Path.create(workspace), changeTreeListener, nodeExists);
+ changeTreeProvider = new Provider<ChangeTree>() {
+ @Override
+ public ChangeTree get() {
+ return new ChangeTree(Path.create(workspace), changeTreeListener, nodeExists);
+ }
+ };
+
+ changeTree = changeTreeProvider.get();
}
/**
@@ -104,7 +113,7 @@ public class TransientSpace {
try {
revision = microkernel.commit("", changeLog.toJsop(), revision, "");
changeLog.clear();
- changeTree.clear();
+ changeTree = changeTreeProvider.get();
return revision;
}
catch (MicroKernelException e) {
@@ -122,7 +131,7 @@ public class TransientSpace {
public String refresh(boolean keepChanges) {
if (!keepChanges) {
changeLog.clear();
- changeTree.clear();
+ changeTree = changeTreeProvider.get();
}
return revision = microkernel.getHeadRevision();
Modified: jackrabbit/sandbox/jackrabbit-microkernel/src/test/java/org/apache/jackrabbit/RepositoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-microkernel/src/test/java/org/apache/jackrabbit/RepositoryTest.java?rev=1245088&r1=1245087&r2=1245088&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-microkernel/src/test/java/org/apache/jackrabbit/RepositoryTest.java (original)
+++ jackrabbit/sandbox/jackrabbit-microkernel/src/test/java/org/apache/jackrabbit/RepositoryTest.java Thu Feb 16 17:17:38 2012
@@ -1126,9 +1126,6 @@ public class RepositoryTest {
public void sessionRefreshFalse() throws RepositoryException {
Session session = getRepository().login();
try {
- session.getNode("/").addNode("foo");
- session.save();
-
Node foo = session.getNode("/foo");
foo.addNode("added");
NodeIterator it = foo.getNodes();