Author: jukka
Date: Fri Oct 18 19:37:37 2013
New Revision: 1533606
URL: http://svn.apache.org/r1533606
Log:
OAK-987: Implement the MicroKernel API
Implement copy and move operations
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/NodeStoreKernel.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/NodeStoreKernel.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/NodeStoreKernel.java?rev=1533606&r1=1533605&r2=1533606&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/NodeStoreKernel.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/NodeStoreKernel.java
Fri Oct 18 19:37:37 2013
@@ -47,6 +47,9 @@ import org.apache.jackrabbit.oak.spi.sta
import com.google.common.io.ByteStreams;
+/**
+ * This is a simple {@link NodeStore}-based {@link MicroKernel} implementation.
+ */
public class NodeStoreKernel implements MicroKernel {
private final NodeStore store;
@@ -153,9 +156,19 @@ public class NodeStoreKernel implements
}
break;
case '>':
- throw new UnsupportedOperationException();
+ tokenizer.read(':');
+ String moveTarget = tokenizer.readString();
+ getNode(builder, path).moveTo(
+ getNode(builder, getParentPath(moveTarget)),
+ getName(moveTarget));
+ break;
case '*':
- throw new UnsupportedOperationException();
+ tokenizer.read(':');
+ String copyTarget = tokenizer.readString();
+ getNode(builder, path).copyTo(
+ getNode(builder, getParentPath(copyTarget)),
+ getName(copyTarget));
+ break;
default:
throw new MicroKernelException(
"Unexpected token: " + tokenizer.getEscapedToken());