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 ju...@apache.org on 2013/03/13 17:33:35 UTC
svn commit: r1456040 [1/2] - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/core/
oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/
oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/
oak-core/src/main/jav...
Author: jukka
Date: Wed Mar 13 16:33:34 2013
New Revision: 1456040
URL: http://svn.apache.org/r1456040
Log:
OAK-698: Optimize handling of empty node states
Added:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/EmptyNodeState.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStoreBranch.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexHookManagerDiff.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/diffindex/BaseDiffCollector.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/p2/Property2IndexDiff.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexDiff.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeState.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeStore.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/JcrImporter.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MemoryStore.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MongoStore.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreBranch.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionHook.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionablePathHook.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionHook.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/EditorHook.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/JsopDiffTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexHookManagerDiffTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexHookManagerTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/diffindex/DiffCollectorTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/p2/Property2IndexTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/p2/strategy/ContentMirrorStoreStrategyTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilderTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompareAgainstBaseStateTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/RecordTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentSizeTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/commit/SubtreeValidatorTest.java
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexDiff.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexDiff.java
jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexDiffIT.java
jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexHookIT.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java Wed Mar 13 16:33:34 2013
@@ -38,7 +38,6 @@ import org.apache.jackrabbit.oak.api.Tre
import org.apache.jackrabbit.oak.api.TreeLocation;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.plugins.index.diffindex.UUIDDiffIndexProviderWrapper;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.query.QueryEngineImpl;
import org.apache.jackrabbit.oak.security.authentication.SystemSubject;
import org.apache.jackrabbit.oak.spi.commit.CommitHook;
@@ -65,6 +64,7 @@ import static com.google.common.base.Pre
import static com.google.common.base.Preconditions.checkNotNull;
import static org.apache.jackrabbit.oak.commons.PathUtils.getName;
import static org.apache.jackrabbit.oak.commons.PathUtils.getParentPath;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
public class RootImpl implements Root {
@@ -252,7 +252,7 @@ public class RootImpl implements Root {
// Disconnect all children -> access to now invalid trees fails fast
if (OAK_690) {
- rootTree.getNodeBuilder().reset(MemoryNodeState.EMPTY_NODE);
+ rootTree.getNodeBuilder().reset(EMPTY_NODE);
}
rootTree = new TreeImpl(this, lastMove);
modCount = 0;
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java Wed Mar 13 16:33:34 2013
@@ -48,6 +48,7 @@ import org.apache.jackrabbit.oak.api.Typ
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.plugins.memory.BinaryPropertyState;
import org.apache.jackrabbit.oak.plugins.memory.BooleanPropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState;
import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder;
import org.apache.jackrabbit.oak.plugins.memory.StringPropertyState;
import org.apache.jackrabbit.oak.plugins.value.Conversions;
@@ -59,6 +60,7 @@ import org.apache.jackrabbit.oak.spi.sta
import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
import static com.google.common.base.Preconditions.checkNotNull;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import static org.apache.jackrabbit.oak.plugins.memory.PropertyStates.createProperty;
/**
@@ -311,6 +313,8 @@ public final class KernelNodeState exten
public void compareAgainstBaseState(NodeState base, NodeStateDiff diff) {
if (this == base) {
return; // no differences
+ } else if (base == EMPTY_NODE) {
+ EmptyNodeState.compareAgainstEmptyState(this, diff); // special case
} else if (base instanceof KernelNodeState) {
KernelNodeState kbase = (KernelNodeState) base;
if (kernel.equals(kbase.kernel)) {
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStoreBranch.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStoreBranch.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStoreBranch.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStoreBranch.java Wed Mar 13 16:33:34 2013
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.kernel
import org.apache.jackrabbit.mk.api.MicroKernel;
import org.apache.jackrabbit.mk.api.MicroKernelException;
import org.apache.jackrabbit.oak.api.CommitFailedException;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder;
import org.apache.jackrabbit.oak.spi.commit.CommitHook;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -188,7 +187,7 @@ class KernelNodeStoreBranch implements N
} else if (headRevision == null) {
// Nothing written to persistent branch yet
// perform rebase in memory
- NodeBuilder builder = new MemoryNodeBuilder(root);
+ NodeBuilder builder = root.builder();
getHead().compareAgainstBaseState(getBase(), new RebaseDiff(builder));
head = builder.getNodeState();
base = root;
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexHookManagerDiff.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexHookManagerDiff.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexHookManagerDiff.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexHookManagerDiff.java Wed Mar 13 16:33:34 2013
@@ -30,7 +30,6 @@ import org.apache.jackrabbit.oak.api.Com
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.commons.PathUtils;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
@@ -45,6 +44,7 @@ import static org.apache.jackrabbit.oak.
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.REINDEX_PROPERTY_NAME;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.TYPE_PROPERTY_NAME;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.TYPE_UNKNOWN;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
/**
* Acts as a composite NodeStateDiff, it delegates all the diff's events to the
@@ -297,7 +297,7 @@ class IndexHookManagerDiff implements No
@Override
public void childNodeAdded(String nodeName, NodeState after) {
- childNodeChanged(nodeName, MemoryNodeState.EMPTY_NODE, after);
+ childNodeChanged(nodeName, EMPTY_NODE, after);
}
@Override
@@ -318,6 +318,6 @@ class IndexHookManagerDiff implements No
@Override
public void childNodeDeleted(String nodeName, NodeState before) {
- childNodeChanged(nodeName, before, MemoryNodeState.EMPTY_NODE);
+ childNodeChanged(nodeName, before, EMPTY_NODE);
}
}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/diffindex/BaseDiffCollector.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/diffindex/BaseDiffCollector.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/diffindex/BaseDiffCollector.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/diffindex/BaseDiffCollector.java Wed Mar 13 16:33:34 2013
@@ -17,11 +17,11 @@
package org.apache.jackrabbit.oak.plugins.index.diffindex;
import static org.apache.jackrabbit.oak.commons.PathUtils.concat;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import java.util.HashSet;
import java.util.Set;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.spi.query.Filter;
import org.apache.jackrabbit.oak.spi.state.EmptyNodeStateDiff;
import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -123,7 +123,7 @@ public abstract class BaseDiffCollector
@Override
public void childNodeAdded(String name, NodeState after) {
- childNodeChanged(name, MemoryNodeState.EMPTY_NODE, after);
+ childNodeChanged(name, EMPTY_NODE, after);
}
@Override
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/p2/Property2IndexDiff.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/p2/Property2IndexDiff.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/p2/Property2IndexDiff.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/p2/Property2IndexDiff.java Wed Mar 13 16:33:34 2013
@@ -30,7 +30,6 @@ import org.apache.jackrabbit.oak.api.Typ
import org.apache.jackrabbit.oak.plugins.index.IndexHook;
import org.apache.jackrabbit.oak.plugins.index.p2.strategy.ContentMirrorStoreStrategy;
import org.apache.jackrabbit.oak.plugins.index.p2.strategy.IndexStoreStrategy;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStateUtils;
@@ -42,6 +41,7 @@ import static org.apache.jackrabbit.oak.
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NODE_TYPE;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.TYPE_PROPERTY_NAME;
import static org.apache.jackrabbit.oak.plugins.index.p2.Property2Index.TYPE;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
/**
* {@link IndexHook} implementation that is responsible for keeping the
@@ -247,7 +247,7 @@ class Property2IndexDiff implements Inde
@Override
public void childNodeAdded(String name, NodeState after) {
- childNodeChanged(name, MemoryNodeState.EMPTY_NODE, after);
+ childNodeChanged(name, EMPTY_NODE, after);
}
@Override
@@ -260,7 +260,7 @@ class Property2IndexDiff implements Inde
@Override
public void childNodeDeleted(String name, NodeState before) {
- childNodeChanged(name, before, MemoryNodeState.EMPTY_NODE);
+ childNodeChanged(name, before, EMPTY_NODE);
}
// -----------------------------------------------------< IndexHook >--
@@ -286,7 +286,7 @@ class Property2IndexDiff implements Inde
}
if (reindex) {
state.getNodeState().compareAgainstBaseState(
- MemoryNodeState.EMPTY_NODE,
+ EMPTY_NODE,
new Property2IndexDiff(null, state, null, "/", indexMap));
}
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexDiff.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexDiff.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexDiff.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexDiff.java Wed Mar 13 16:33:34 2013
@@ -22,6 +22,7 @@ import static org.apache.jackrabbit.oak.
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NODE_TYPE;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.TYPE_PROPERTY_NAME;
import static org.apache.jackrabbit.oak.plugins.index.property.PropertyIndex.TYPE;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import java.io.IOException;
import java.util.HashMap;
@@ -34,7 +35,6 @@ import org.apache.jackrabbit.oak.api.Com
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.plugins.index.IndexHook;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStateUtils;
@@ -204,7 +204,7 @@ class PropertyIndexDiff implements Index
@Override
public void childNodeAdded(String name, NodeState after) {
- childNodeChanged(name, MemoryNodeState.EMPTY_NODE, after);
+ childNodeChanged(name, EMPTY_NODE, after);
}
@Override
@@ -217,7 +217,7 @@ class PropertyIndexDiff implements Index
@Override
public void childNodeDeleted(String name, NodeState before) {
- childNodeChanged(name, before, MemoryNodeState.EMPTY_NODE);
+ childNodeChanged(name, before, EMPTY_NODE);
}
// -----------------------------------------------------< IndexHook >--
@@ -243,7 +243,7 @@ class PropertyIndexDiff implements Index
}
if (reindex) {
state.getNodeState().compareAgainstBaseState(
- MemoryNodeState.EMPTY_NODE,
+ EMPTY_NODE,
new PropertyIndexDiff(null, state, null, "/", updates));
}
}
Added: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/EmptyNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/EmptyNodeState.java?rev=1456040&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/EmptyNodeState.java (added)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/EmptyNodeState.java Wed Mar 13 16:33:34 2013
@@ -0,0 +1,131 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.oak.plugins.memory;
+
+import java.util.Collections;
+
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
+
+import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
+import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
+import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
+
+/**
+ * Singleton instance of an empty node state, i.e. one with neither
+ * properties nor child nodes.
+ */
+public final class EmptyNodeState implements NodeState {
+
+ public static final NodeState EMPTY_NODE = new EmptyNodeState();
+
+ private EmptyNodeState() {
+ }
+
+ @Override
+ public long getPropertyCount() {
+ return 0;
+ }
+
+ @Override @CheckForNull
+ public PropertyState getProperty(String name) {
+ return null;
+ }
+
+ @Override @Nonnull
+ public Iterable<? extends PropertyState> getProperties() {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public long getChildNodeCount() {
+ return 0;
+ }
+
+ @Override
+ public boolean hasChildNode(@Nonnull String name) {
+ return false;
+ }
+
+ @Override @CheckForNull
+ public NodeState getChildNode(@Nonnull String name) {
+ return null;
+ }
+
+ @Override
+ public Iterable<String> getChildNodeNames() {
+ return Collections.emptyList();
+ }
+
+ @Override @Nonnull
+ public Iterable<? extends ChildNodeEntry> getChildNodeEntries() {
+ return Collections.emptyList();
+ }
+
+ @Override @Nonnull
+ public NodeBuilder builder() {
+ return new MemoryNodeBuilder(this);
+ }
+
+ @Override
+ public void compareAgainstBaseState(NodeState base, NodeStateDiff diff) {
+ if (base != EMPTY_NODE) {
+ for (PropertyState before : base.getProperties()) {
+ diff.propertyDeleted(before);
+ }
+ for (ChildNodeEntry before : base.getChildNodeEntries()) {
+ diff.childNodeDeleted(before.getName(), before.getNodeState());
+ }
+ }
+ }
+
+ public static void compareAgainstEmptyState(
+ NodeState state, NodeStateDiff diff) {
+ if (state != EMPTY_NODE) {
+ for (PropertyState after : state.getProperties()) {
+ diff.propertyAdded(after);
+ }
+ for (ChildNodeEntry after : state.getChildNodeEntries()) {
+ diff.childNodeAdded(after.getName(), after.getNodeState());
+ }
+ }
+ }
+
+ //------------------------------------------------------------< Object >--
+
+ public String toString() {
+ return "{ }";
+ }
+
+ public boolean equals(Object object) {
+ if (object == EMPTY_NODE) {
+ return true;
+ } else if (object instanceof NodeState) {
+ NodeState that = (NodeState) object;
+ return that.getPropertyCount() == 0
+ && that.getChildNodeCount() == 0;
+ } else {
+ return false;
+ }
+ }
+
+ public int hashCode() {
+ return 0;
+ }
+}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java Wed Mar 13 16:33:34 2013
@@ -33,6 +33,7 @@ import org.apache.jackrabbit.oak.spi.sta
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import static org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.with;
import static org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.withNodes;
import static org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.withProperties;
@@ -517,7 +518,7 @@ public class MemoryNodeBuilder implement
if (base != null) {
this.base = base;
} else {
- this.base = MemoryNodeState.EMPTY_NODE;
+ this.base = EMPTY_NODE;
}
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeState.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeState.java Wed Mar 13 16:33:34 2013
@@ -29,18 +29,13 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
+
/**
* Basic in-memory node state implementation.
*/
public class MemoryNodeState extends AbstractNodeState {
- /**
- * Singleton instance of an empty node state, i.e. one with neither
- * properties nor child nodes.
- */
- public static final NodeState EMPTY_NODE = new MemoryNodeState(
- Collections.<String, PropertyState>emptyMap(),
- Collections.<String, NodeState>emptyMap());
+ public static final NodeState EMPTY_NODE = EmptyNodeState.EMPTY_NODE;
private final Map<String, PropertyState> properties;
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeStore.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeStore.java Wed Mar 13 16:33:34 2013
@@ -29,6 +29,7 @@ import org.apache.jackrabbit.oak.spi.sta
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
/**
* Basic in-memory node store implementation. Useful as a base class for
@@ -37,7 +38,7 @@ import static com.google.common.base.Pre
public class MemoryNodeStore implements NodeStore {
private final AtomicReference<NodeState> root =
- new AtomicReference<NodeState>(MemoryNodeState.EMPTY_NODE);
+ new AtomicReference<NodeState>(EMPTY_NODE);
@Override
public NodeState getRoot() {
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java Wed Mar 13 16:33:34 2013
@@ -59,7 +59,6 @@ import org.apache.jackrabbit.oak.core.Re
import org.apache.jackrabbit.oak.namepath.NameMapper;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.namepath.NamePathMapperImpl;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import static com.google.common.base.Preconditions.checkNotNull;
@@ -68,6 +67,7 @@ import static org.apache.jackrabbit.JcrC
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
import static org.apache.jackrabbit.oak.api.Type.STRING;
import static org.apache.jackrabbit.oak.api.Type.STRINGS;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.NODE_TYPES_PATH;
/**
@@ -161,7 +161,7 @@ public abstract class ReadOnlyNodeTypeMa
.getChild(NODE_TYPES_PATH.substring(1)).getTree();
final Tree types = tree == null
- ? new ReadOnlyTree(MemoryNodeState.EMPTY_NODE) // No node types in content, use an empty node
+ ? new ReadOnlyTree(EMPTY_NODE) // No node types in content, use an empty node
: tree;
return new ReadOnlyNodeTypeManager() {
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/JcrImporter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/JcrImporter.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/JcrImporter.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/JcrImporter.java Wed Mar 13 16:33:34 2013
@@ -16,6 +16,8 @@
*/
package org.apache.jackrabbit.oak.plugins.segment;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
+
import java.util.Arrays;
import javax.jcr.Node;
@@ -24,8 +26,6 @@ import javax.jcr.Property;
import javax.jcr.PropertyIterator;
import javax.jcr.RepositoryException;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -39,8 +39,7 @@ public class JcrImporter {
}
public NodeState writeNode(Node node) throws RepositoryException {
- NodeBuilder builder =
- new MemoryNodeBuilder(MemoryNodeState.EMPTY_NODE);
+ NodeBuilder builder = EMPTY_NODE.builder();
buildNode(builder, node);
return writer.writeNode(builder.getNodeState());
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MemoryStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MemoryStore.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MemoryStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MemoryStore.java Wed Mar 13 16:33:34 2013
@@ -17,12 +17,13 @@
package org.apache.jackrabbit.oak.plugins.segment;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
+
import java.util.Collections;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentMap;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import com.google.common.collect.Maps;
@@ -39,7 +40,7 @@ public class MemoryStore implements Segm
}
public MemoryStore() {
- this(MemoryNodeState.EMPTY_NODE);
+ this(EMPTY_NODE);
}
@Override
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MongoStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MongoStore.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MongoStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MongoStore.java Wed Mar 13 16:33:34 2013
@@ -20,7 +20,7 @@ import static com.google.common.base.Pre
import static com.google.common.collect.ImmutableMap.of;
import static com.mongodb.ReadPreference.nearest;
import static com.mongodb.ReadPreference.primary;
-import static org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState.EMPTY_NODE;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import java.util.List;
import java.util.Map;
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java Wed Mar 13 16:33:34 2013
@@ -17,11 +17,13 @@
package org.apache.jackrabbit.oak.plugins.segment;
import static com.google.common.base.Preconditions.checkNotNull;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState;
import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder;
import org.apache.jackrabbit.oak.spi.state.AbstractNodeState;
import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
@@ -114,7 +116,11 @@ class SegmentNodeState extends AbstractN
@Override
public void compareAgainstBaseState(NodeState base, NodeStateDiff diff) {
- if (base instanceof SegmentNodeState) {
+ if (base == this) {
+ return; // no changes
+ } else if (base == EMPTY_NODE) {
+ EmptyNodeState.compareAgainstEmptyState(this, diff); // special case
+ } else if (base instanceof SegmentNodeState) {
SegmentNodeState that = (SegmentNodeState) base;
if (!recordId.equals(that.recordId)) {
getTemplate().compareAgainstBaseState(
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreBranch.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreBranch.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreBranch.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreBranch.java Wed Mar 13 16:33:34 2013
@@ -22,7 +22,6 @@ import javax.annotation.Nonnull;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.commons.PathUtils;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder;
import org.apache.jackrabbit.oak.spi.commit.CommitHook;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -72,7 +71,7 @@ class SegmentNodeStoreBranch implements
RecordId newBaseId = journal.getHead();
if (!baseId.equals(newBaseId)) {
NodeBuilder builder =
- new MemoryNodeBuilder(new SegmentNodeState(store, newBaseId));
+ new SegmentNodeState(store, newBaseId).builder();
getHead().compareAgainstBaseState(getBase(), new RebaseDiff(builder));
this.baseId = newBaseId;
this.rootId = writer.writeNode(builder.getNodeState()).getRecordId();
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionHook.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionHook.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionHook.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionHook.java Wed Mar 13 16:33:34 2013
@@ -30,7 +30,6 @@ import org.apache.jackrabbit.oak.api.Pro
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.core.ReadOnlyTree;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants;
import org.apache.jackrabbit.oak.spi.commit.CommitHook;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
@@ -39,6 +38,7 @@ import org.apache.jackrabbit.oak.spi.sta
import org.apache.jackrabbit.oak.spi.state.NodeStateUtils;
import static com.google.common.base.Preconditions.checkNotNull;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
/**
* TODO document
@@ -135,7 +135,7 @@ public class VersionHook implements Comm
@Override
public void childNodeAdded(String name, NodeState after) {
- childNodeChanged(name, MemoryNodeState.EMPTY_NODE, after);
+ childNodeChanged(name, EMPTY_NODE, after);
}
@Override
@@ -154,7 +154,7 @@ public class VersionHook implements Comm
if (NodeStateUtils.isHidden(name)) {
return;
}
- NodeState after = MemoryNodeState.EMPTY_NODE;
+ NodeState after = EMPTY_NODE;
after.compareAgainstBaseState(before,
new VersionDiff(this, vMgr, after.builder()));
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionablePathHook.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionablePathHook.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionablePathHook.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionablePathHook.java Wed Mar 13 16:33:34 2013
@@ -16,6 +16,8 @@
*/
package org.apache.jackrabbit.oak.plugins.version;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
+
import javax.annotation.Nonnull;
import org.apache.jackrabbit.JcrConstants;
@@ -25,7 +27,6 @@ import org.apache.jackrabbit.oak.api.Tre
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.core.ImmutableTree;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants;
import org.apache.jackrabbit.oak.spi.commit.CommitHook;
import org.apache.jackrabbit.oak.spi.state.DefaultNodeStateDiff;
@@ -88,7 +89,7 @@ public class VersionablePathHook impleme
@Override
public void childNodeAdded(String name, NodeState after) {
- childNodeChanged(name, MemoryNodeState.EMPTY_NODE, after);
+ childNodeChanged(name, EMPTY_NODE, after);
}
@Override
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionHook.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionHook.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionHook.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionHook.java Wed Mar 13 16:33:34 2013
@@ -31,7 +31,6 @@ import org.apache.jackrabbit.oak.commons
import org.apache.jackrabbit.oak.core.ImmutableRoot;
import org.apache.jackrabbit.oak.core.ImmutableTree;
import org.apache.jackrabbit.oak.core.TreeImpl;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants;
import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager;
import org.apache.jackrabbit.oak.security.authorization.AccessControlConstants;
@@ -50,6 +49,7 @@ import org.slf4j.LoggerFactory;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
/**
* {@code CommitHook} implementation that processes any modification made to
@@ -160,7 +160,7 @@ public class PermissionHook implements P
if (isACE(name, after)) {
addEntry(name, after);
} else {
- BeforeNode before = new BeforeNode(parentBefore.getPath(), name, MemoryNodeState.EMPTY_NODE);
+ BeforeNode before = new BeforeNode(parentBefore.getPath(), name, EMPTY_NODE);
Node node = new Node(parentAfter, name);
after.compareAgainstBaseState(before.getNodeState(), new Diff(before, node));
}
@@ -185,7 +185,7 @@ public class PermissionHook implements P
removeEntry(name, before);
} else {
BeforeNode nodeBefore = new BeforeNode(parentBefore.getPath(), name, before);
- Node after = new Node(parentAfter.getPath(), name, MemoryNodeState.EMPTY_NODE);
+ Node after = new Node(parentAfter.getPath(), name, EMPTY_NODE);
after.getNodeState().compareAgainstBaseState(before, new Diff(nodeBefore, after));
}
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/EditorHook.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/EditorHook.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/EditorHook.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/EditorHook.java Wed Mar 13 16:33:34 2013
@@ -26,7 +26,7 @@ import org.apache.jackrabbit.oak.spi.sta
import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
import static com.google.common.base.Preconditions.checkNotNull;
-import static org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState.EMPTY_NODE;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
/**
* This commit hook implementation processes changes to be committed
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/JsopDiffTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/JsopDiffTest.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/JsopDiffTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/JsopDiffTest.java Wed Mar 13 16:33:34 2013
@@ -27,6 +27,7 @@ import org.apache.jackrabbit.oak.spi.sta
import org.junit.Test;
import static junit.framework.Assert.assertEquals;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
public class JsopDiffTest {
@@ -59,12 +60,11 @@ public class JsopDiffTest {
@Test
public void testNodeChanges() {
JsopDiff diff;
- NodeState before = MemoryNodeState.EMPTY_NODE;
+ NodeState before = EMPTY_NODE;
NodeState after = new MemoryNodeState(
ImmutableMap.<String, PropertyState>of(
"a", LongPropertyState.createLongProperty("a", 1L)),
- ImmutableMap.of(
- "x", MemoryNodeState.EMPTY_NODE));
+ ImmutableMap.of("x", EMPTY_NODE));
diff = new JsopDiff(null);
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexHookManagerDiffTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexHookManagerDiffTest.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexHookManagerDiffTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexHookManagerDiffTest.java Wed Mar 13 16:33:34 2013
@@ -20,6 +20,7 @@ import static com.google.common.collect.
import static com.google.common.collect.Sets.newHashSet;
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NODE_TYPE;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -30,7 +31,6 @@ import java.util.Set;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.plugins.index.p2.Property2IndexHookProvider;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
@@ -40,7 +40,7 @@ public class IndexHookManagerDiffTest {
@Test
public void testIndexDefinitions() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
NodeBuilder builder = root.builder();
// this index is on the current update branch, it should be seen by the
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexHookManagerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexHookManagerTest.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexHookManagerTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexHookManagerTest.java Wed Mar 13 16:33:34 2013
@@ -19,6 +19,7 @@ package org.apache.jackrabbit.oak.plugin
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NODE_TYPE;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.REINDEX_PROPERTY_NAME;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
@@ -30,7 +31,6 @@ import org.apache.jackrabbit.oak.api.Pro
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.plugins.index.p2.Property2IndexHookProvider;
import org.apache.jackrabbit.oak.plugins.index.p2.Property2IndexLookup;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.spi.query.PropertyValues;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -52,7 +52,7 @@ public class IndexHookManagerTest {
*/
@Test
public void test() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
NodeBuilder builder = root.builder();
@@ -113,7 +113,7 @@ public class IndexHookManagerTest {
*/
@Test
public void testReindex() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
NodeBuilder builder = root.builder();
@@ -155,7 +155,7 @@ public class IndexHookManagerTest {
*/
@Test
public void testReindex2() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
NodeBuilder builder = root.builder();
@@ -196,7 +196,7 @@ public class IndexHookManagerTest {
*/
@Test
public void testReindex3() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
NodeBuilder builder = root.builder();
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/diffindex/DiffCollectorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/diffindex/DiffCollectorTest.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/diffindex/DiffCollectorTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/diffindex/DiffCollectorTest.java Wed Mar 13 16:33:34 2013
@@ -1,5 +1,6 @@
package org.apache.jackrabbit.oak.plugins.index.diffindex;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -7,7 +8,6 @@ import static org.junit.Assert.assertTru
import java.util.Iterator;
import java.util.Set;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.query.ast.Operator;
import org.apache.jackrabbit.oak.query.index.FilterImpl;
import org.apache.jackrabbit.oak.spi.query.PropertyValues;
@@ -19,7 +19,7 @@ public class DiffCollectorTest {
@Test
public void testUUID() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
NodeBuilder builder = root.builder();
builder.child("a").setProperty("jcr:uuid", "abc");
@@ -43,7 +43,7 @@ public class DiffCollectorTest {
@Test
public void testUUIDInner() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
NodeBuilder builder = root.builder();
builder.child("a").setProperty("jcr:uuid", "abc");
@@ -68,7 +68,7 @@ public class DiffCollectorTest {
@Test
public void testDeepChange() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
NodeBuilder builder = root.builder();
NodeBuilder b1 = builder.child("rep:security").child(
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/p2/Property2IndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/p2/Property2IndexTest.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/p2/Property2IndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/p2/Property2IndexTest.java Wed Mar 13 16:33:34 2013
@@ -16,6 +16,7 @@
*/
package org.apache.jackrabbit.oak.plugins.index.p2;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -26,7 +27,6 @@ import java.util.Set;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.plugins.index.IndexHook;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.query.index.FilterImpl;
import org.apache.jackrabbit.oak.spi.query.Filter;
import org.apache.jackrabbit.oak.spi.query.PropertyValues;
@@ -46,7 +46,7 @@ public class Property2IndexTest {
@Test
public void testPropertyLookup() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
// Add index definition
NodeBuilder builder = root.builder();
@@ -97,7 +97,7 @@ public class Property2IndexTest {
@Test
public void testCustomConfigPropertyLookup() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
// Add index definition
NodeBuilder builder = root.builder();
@@ -146,7 +146,7 @@ public class Property2IndexTest {
*/
@Test
public void testCustomConfigNodeType() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
// Add index definitions
NodeBuilder builder = root.builder();
@@ -209,7 +209,7 @@ public class Property2IndexTest {
*/
@Test
public void testCustomConfigNodeTypeFallback() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
// Add index definitions
NodeBuilder builder = root.builder();
@@ -265,8 +265,7 @@ public class Property2IndexTest {
@Test
public void testUnique() throws Exception {
-
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
// Add index definition
NodeBuilder builder = root.builder();
@@ -300,8 +299,7 @@ public class Property2IndexTest {
@Test
public void testUniqueByTypeOK() throws Exception {
-
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
// Add index definition
NodeBuilder builder = root.builder();
@@ -329,8 +327,7 @@ public class Property2IndexTest {
@Test
public void testUniqueByTypeKO() throws Exception {
-
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
// Add index definition
NodeBuilder builder = root.builder();
@@ -364,8 +361,7 @@ public class Property2IndexTest {
@Test
public void testUniqueByTypeDelete() throws Exception {
-
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
// Add index definition
NodeBuilder builder = root.builder();
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/p2/strategy/ContentMirrorStoreStrategyTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/p2/strategy/ContentMirrorStoreStrategyTest.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/p2/strategy/ContentMirrorStoreStrategyTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/p2/strategy/ContentMirrorStoreStrategyTest.java Wed Mar 13 16:33:34 2013
@@ -16,8 +16,9 @@
*/
package org.apache.jackrabbit.oak.plugins.index.p2.strategy;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
+
import org.apache.jackrabbit.oak.commons.PathUtils;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.junit.Assert;
@@ -45,7 +46,7 @@ public class ContentMirrorStoreStrategyT
public void testIndexPruning() throws Exception {
IndexStoreStrategy store = new ContentMirrorStoreStrategy();
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
NodeBuilder index = root.builder();
store.insert(index, "key", false,
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexTest.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexTest.java Wed Mar 13 16:33:34 2013
@@ -21,11 +21,11 @@ import java.util.Arrays;
import com.google.common.collect.ImmutableSet;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.plugins.index.IndexHook;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.junit.Test;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import static org.junit.Assert.assertEquals;
@Deprecated
@@ -35,7 +35,7 @@ public class PropertyIndexTest {
@Test
public void testPropertyLookup() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
// Add index definition
NodeBuilder builder = root.builder();
@@ -84,7 +84,7 @@ public class PropertyIndexTest {
@Test
public void testCustomConfigPropertyLookup() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
// Add index definition
NodeBuilder builder = root.builder();
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilderTest.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilderTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilderTest.java Wed Mar 13 16:33:34 2013
@@ -16,12 +16,9 @@
*/
package org.apache.jackrabbit.oak.plugins.memory;
-import java.util.Collections;
-
-import com.google.common.collect.ImmutableMap;
-import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.junit.Before;
import org.junit.Test;
import static junit.framework.Assert.assertEquals;
@@ -31,24 +28,27 @@ import static junit.framework.Assert.ass
import static junit.framework.Assert.assertTrue;
import static junit.framework.Assert.fail;
import static org.apache.jackrabbit.oak.api.Type.STRING;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
public class MemoryNodeBuilderTest {
- private static final NodeState BASE = new MemoryNodeState(
- ImmutableMap.<String, PropertyState>of(
- "a", LongPropertyState.createLongProperty("a", 1L),
- "b", LongPropertyState.createLongProperty("b", 2L),
- "c", LongPropertyState.createLongProperty("c", 3L)),
- ImmutableMap.of(
- "x", new MemoryNodeState(
- Collections.<String, PropertyState>emptyMap(),
- Collections.singletonMap("q", MemoryNodeState.EMPTY_NODE)),
- "y", MemoryNodeState.EMPTY_NODE,
- "z", MemoryNodeState.EMPTY_NODE));
+ private NodeState base;
+
+ @Before
+ public void setUp() {
+ NodeBuilder builder = EMPTY_NODE.builder();
+ builder.setProperty("a", 1L);
+ builder.setProperty("b", 2L);
+ builder.setProperty("c", 3L);
+ builder.child("x").child("q");
+ builder.child("y");
+ builder.child("z");
+ base = builder.getNodeState();
+ }
@Test
public void testConnectOnAddProperty() {
- NodeBuilder root = new MemoryNodeBuilder(BASE);
+ NodeBuilder root = base.builder();
NodeBuilder childA = root.child("x");
NodeBuilder childB = root.child("x");
@@ -59,7 +59,7 @@ public class MemoryNodeBuilderTest {
@Test
public void testConnectOnUpdateProperty() {
- NodeBuilder root = new MemoryNodeBuilder(BASE);
+ NodeBuilder root = base.builder();
NodeBuilder childA = root.child("x");
NodeBuilder childB = root.child("x");
@@ -72,7 +72,7 @@ public class MemoryNodeBuilderTest {
@Test
public void testConnectOnRemoveProperty() {
- NodeBuilder root = new MemoryNodeBuilder(BASE);
+ NodeBuilder root = base.builder();
NodeBuilder childA = root.child("x");
NodeBuilder childB = root.child("x");
@@ -89,7 +89,7 @@ public class MemoryNodeBuilderTest {
@Test
public void testConnectOnAddNode() {
- NodeBuilder root = new MemoryNodeBuilder(BASE);
+ NodeBuilder root = base.builder();
NodeBuilder childA = root.child("x");
NodeBuilder childB = root.child("x");
@@ -104,7 +104,7 @@ public class MemoryNodeBuilderTest {
@Test
public void testReadOnRemoveNode() {
for (String name : new String[] {"x", "new"}) {
- NodeBuilder root = new MemoryNodeBuilder(BASE);
+ NodeBuilder root = base.builder();
NodeBuilder child = root.child(name);
root.removeNode(name);
@@ -123,7 +123,7 @@ public class MemoryNodeBuilderTest {
@Test
public void testWriteOnRemoveNode() {
for (String name : new String[] {"x", "new"}) {
- NodeBuilder root = new MemoryNodeBuilder(BASE);
+ NodeBuilder root = base.builder();
NodeBuilder child = root.child(name);
root.removeNode(name);
@@ -141,7 +141,7 @@ public class MemoryNodeBuilderTest {
@Test
public void testAddRemovedNodeAgain() {
- NodeBuilder root = new MemoryNodeBuilder(BASE);
+ NodeBuilder root = base.builder();
root.removeNode("x");
NodeBuilder x = root.child("x");
@@ -152,39 +152,39 @@ public class MemoryNodeBuilderTest {
@Test
public void testReset() {
- NodeBuilder root = new MemoryNodeBuilder(BASE);
+ NodeBuilder root = base.builder();
NodeBuilder child = root.child("x");
child.child("new");
assertTrue(child.hasChildNode("new"));
assertTrue(root.child("x").hasChildNode("new"));
- root.reset(BASE);
+ root.reset(base);
assertFalse(child.hasChildNode("new"));
assertFalse(root.child("x").hasChildNode("new"));
}
@Test
public void testReset2() {
- NodeBuilder root = new MemoryNodeBuilder(BASE);
+ NodeBuilder root = base.builder();
NodeBuilder x = root.child("x");
x.child("y");
- root.reset(BASE);
+ root.reset(base);
assertTrue(root.hasChildNode("x"));
assertFalse(x.hasChildNode("y"));
}
@Test
public void testUnmodifiedEqualsBase() {
- NodeBuilder root = new MemoryNodeBuilder(BASE);
+ NodeBuilder root = base.builder();
NodeBuilder x = root.child("x");
assertEquals(x.getBaseState(), x.getNodeState());
}
@Test(expected = IllegalStateException.class)
public void testReadOnRemovedNode() {
- NodeBuilder root = new MemoryNodeBuilder(BASE);
+ NodeBuilder root = base.builder();
NodeBuilder m = root.child("m");
NodeBuilder n = m.child("n");
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorTest.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorTest.java Wed Mar 13 16:33:34 2013
@@ -16,10 +16,11 @@
*/
package org.apache.jackrabbit.oak.plugins.name;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
+
import java.util.Collections;
import org.apache.jackrabbit.oak.api.CommitFailedException;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.spi.commit.Validator;
import org.junit.Test;
@@ -30,51 +31,51 @@ public class NameValidatorTest {
@Test(expected = CommitFailedException.class)
public void testCurrentPath() throws CommitFailedException {
- validator.childNodeAdded(".", MemoryNodeState.EMPTY_NODE);
+ validator.childNodeAdded(".", EMPTY_NODE);
}
@Test(expected = CommitFailedException.class)
public void testParentPath() throws CommitFailedException {
- validator.childNodeAdded("..", MemoryNodeState.EMPTY_NODE);
+ validator.childNodeAdded("..", EMPTY_NODE);
}
@Test // valid as of OAK-182
public void testEmptyPrefix() throws CommitFailedException {
- validator.childNodeAdded(":name", MemoryNodeState.EMPTY_NODE);
+ validator.childNodeAdded(":name", EMPTY_NODE);
}
@Test(expected = CommitFailedException.class)
public void testInvalidPrefix() throws CommitFailedException {
- validator.childNodeAdded("invalid:name", MemoryNodeState.EMPTY_NODE);
+ validator.childNodeAdded("invalid:name", EMPTY_NODE);
}
@Test
public void testValidPrefix() throws CommitFailedException {
- validator.childNodeAdded("valid:name", MemoryNodeState.EMPTY_NODE);
+ validator.childNodeAdded("valid:name", EMPTY_NODE);
}
@Test(expected = CommitFailedException.class)
public void testSlashName() throws CommitFailedException {
- validator.childNodeAdded("invalid/name", MemoryNodeState.EMPTY_NODE);
+ validator.childNodeAdded("invalid/name", EMPTY_NODE);
}
@Test(expected = CommitFailedException.class)
public void testIndexInName() throws CommitFailedException {
- validator.childNodeAdded("name[1]", MemoryNodeState.EMPTY_NODE);
+ validator.childNodeAdded("name[1]", EMPTY_NODE);
}
@Test
public void testValidName() throws CommitFailedException {
- validator.childNodeAdded("name", MemoryNodeState.EMPTY_NODE);
+ validator.childNodeAdded("name", EMPTY_NODE);
}
@Test
public void testDeleted() throws CommitFailedException {
- validator.childNodeDeleted(".", MemoryNodeState.EMPTY_NODE);
- validator.childNodeDeleted("..", MemoryNodeState.EMPTY_NODE);
- validator.childNodeDeleted("valid:name", MemoryNodeState.EMPTY_NODE);
- validator.childNodeDeleted("invalid:name", MemoryNodeState.EMPTY_NODE);
- validator.childNodeDeleted("invalid/name", MemoryNodeState.EMPTY_NODE);
+ validator.childNodeDeleted(".", EMPTY_NODE);
+ validator.childNodeDeleted("..", EMPTY_NODE);
+ validator.childNodeDeleted("valid:name", EMPTY_NODE);
+ validator.childNodeDeleted("invalid:name", EMPTY_NODE);
+ validator.childNodeDeleted("invalid/name", EMPTY_NODE);
}
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompareAgainstBaseStateTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompareAgainstBaseStateTest.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompareAgainstBaseStateTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompareAgainstBaseStateTest.java Wed Mar 13 16:33:34 2013
@@ -16,7 +16,8 @@
*/
package org.apache.jackrabbit.oak.plugins.segment;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
+
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
@@ -35,7 +36,7 @@ public class CompareAgainstBaseStateTest
private final NodeStateDiff diff = EasyMock.createMock(NodeStateDiff.class);
- private final NodeBuilder builder = MemoryNodeState.EMPTY_NODE.builder();
+ private final NodeBuilder builder = EMPTY_NODE.builder();
@Before
public void setUp() {
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/RecordTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/RecordTest.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/RecordTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/RecordTest.java Wed Mar 13 16:33:34 2013
@@ -16,6 +16,7 @@
*/
package org.apache.jackrabbit.oak.plugins.segment;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import static org.apache.jackrabbit.oak.plugins.segment.ListRecord.LEVEL_SIZE;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -32,7 +33,6 @@ import java.util.List;
import java.util.Map;
import java.util.Random;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.junit.Test;
@@ -263,7 +263,7 @@ public class RecordTest {
@Test
public void testEmptyNode() {
- NodeState before = MemoryNodeState.EMPTY_NODE;
+ NodeState before = EMPTY_NODE;
NodeState after = writer.writeNode(before);
writer.flush();
assertEquals(before, after);
@@ -271,7 +271,7 @@ public class RecordTest {
@Test
public void testSimpleNode() {
- NodeState before = MemoryNodeState.EMPTY_NODE.builder()
+ NodeState before = EMPTY_NODE.builder()
.setProperty("foo", "abc")
.setProperty("bar", 123)
.setProperty("baz", Math.PI)
@@ -283,7 +283,7 @@ public class RecordTest {
@Test
public void testDeepNode() {
- NodeBuilder root = MemoryNodeState.EMPTY_NODE.builder();
+ NodeBuilder root = EMPTY_NODE.builder();
NodeBuilder builder = root;
for (int i = 0; i < 1000; i++) {
builder = builder.child("test");
@@ -296,7 +296,7 @@ public class RecordTest {
@Test
public void testManyMapDeletes() {
- NodeBuilder builder = MemoryNodeState.EMPTY_NODE.builder();
+ NodeBuilder builder = EMPTY_NODE.builder();
for (int i = 0; i < 1000; i++) {
builder.child("test" + i);
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentSizeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentSizeTest.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentSizeTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentSizeTest.java Wed Mar 13 16:33:34 2013
@@ -17,12 +17,12 @@
package org.apache.jackrabbit.oak.plugins.segment;
import static junit.framework.Assert.assertEquals;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import java.util.Calendar;
import java.util.Collections;
import org.apache.jackrabbit.oak.api.Type;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -38,27 +38,27 @@ public class SegmentSizeTest {
@Test
public void testNodeSize() {
- NodeBuilder builder = MemoryNodeState.EMPTY_NODE.builder();
+ NodeBuilder builder = EMPTY_NODE.builder();
assertEquals(8, getSize(builder));
assertEquals(4, getAmortizedSize(builder));
- builder = MemoryNodeState.EMPTY_NODE.builder();
+ builder = EMPTY_NODE.builder();
builder.setProperty("foo", "bar");
assertEquals(24, getSize(builder));
assertEquals(8, getAmortizedSize(builder));
- builder = MemoryNodeState.EMPTY_NODE.builder();
+ builder = EMPTY_NODE.builder();
builder.setProperty("foo", "bar");
builder.setProperty("baz", 123);
assertEquals(40, getSize(builder));
assertEquals(12, getAmortizedSize(builder));
- builder = MemoryNodeState.EMPTY_NODE.builder();
+ builder = EMPTY_NODE.builder();
builder.child("foo");
assertEquals(28, getSize(builder));
assertEquals(12, getAmortizedSize(builder));
- builder = MemoryNodeState.EMPTY_NODE.builder();
+ builder = EMPTY_NODE.builder();
builder.child("foo");
builder.child("bar");
assertEquals(56, getSize(builder));
@@ -69,7 +69,7 @@ public class SegmentSizeTest {
public void testDuplicateStrings() {
String string = "More than just a few bytes of example content.";
- NodeBuilder builder = MemoryNodeState.EMPTY_NODE.builder();
+ NodeBuilder builder = EMPTY_NODE.builder();
builder.setProperty(PropertyStates.createProperty(
"test", Collections.nCopies(1, string), Type.STRINGS));
int base = getSize(builder);
@@ -87,7 +87,7 @@ public class SegmentSizeTest {
public void testDuplicateDates() {
String now = ISO8601.format(Calendar.getInstance());
- NodeBuilder builder = MemoryNodeState.EMPTY_NODE.builder();
+ NodeBuilder builder = EMPTY_NODE.builder();
builder.setProperty(PropertyStates.createProperty(
"test", Collections.nCopies(1, now), Type.DATES));
int base = getSize(builder);
@@ -103,7 +103,7 @@ public class SegmentSizeTest {
@Test
public void testAccessControlNodes() {
- NodeBuilder builder = MemoryNodeState.EMPTY_NODE.builder();
+ NodeBuilder builder = EMPTY_NODE.builder();
builder.setProperty("jcr:primaryType", "rep:ACL", Type.NAME);
assertEquals(20, getSize(builder));
assertEquals(4, getAmortizedSize(builder));
@@ -147,7 +147,7 @@ public class SegmentSizeTest {
SegmentStore store = new MemoryStore();
SegmentWriter writer = new SegmentWriter(store);
- NodeBuilder builder = MemoryNodeState.EMPTY_NODE.builder();
+ NodeBuilder builder = EMPTY_NODE.builder();
for (int i = 0; i < 1000; i++) {
builder.child("child" + i);
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/commit/SubtreeValidatorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/commit/SubtreeValidatorTest.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/commit/SubtreeValidatorTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/commit/SubtreeValidatorTest.java Wed Mar 13 16:33:34 2013
@@ -19,7 +19,7 @@ package org.apache.jackrabbit.oak.spi.co
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertNull;
-import static org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState.EMPTY_NODE;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.junit.Test;
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexDiff.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexDiff.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexDiff.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexDiff.java Wed Mar 13 16:33:34 2013
@@ -18,6 +18,7 @@ package org.apache.jackrabbit.oak.plugin
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
import static org.apache.jackrabbit.oak.commons.PathUtils.concat;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import java.io.IOException;
import java.util.HashMap;
@@ -27,7 +28,6 @@ import org.apache.jackrabbit.oak.api.Com
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.plugins.index.IndexHook;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStateUtils;
@@ -151,7 +151,7 @@ public class LuceneIndexDiff implements
for (LuceneIndexUpdate update : updates.values()) {
update.insert(concat(getPath(), name), new ReadOnlyBuilder(after));
}
- after.compareAgainstBaseState(MemoryNodeState.EMPTY_NODE, child(name));
+ after.compareAgainstBaseState(EMPTY_NODE, child(name));
}
@Override
@@ -191,7 +191,7 @@ public class LuceneIndexDiff implements
}
if (reindex) {
state.getNodeState().compareAgainstBaseState(
- MemoryNodeState.EMPTY_NODE,
+ EMPTY_NODE,
new LuceneIndexDiff(null, state, null, "/", updates));
}
}
Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java Wed Mar 13 16:33:34 2013
@@ -20,11 +20,11 @@ import static junit.framework.Assert.ass
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import org.apache.jackrabbit.oak.plugins.index.IndexDefinition;
import org.apache.jackrabbit.oak.plugins.index.IndexDefinitionImpl;
import org.apache.jackrabbit.oak.plugins.index.IndexHook;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.query.ast.Operator;
import org.apache.jackrabbit.oak.query.index.FilterImpl;
import org.apache.jackrabbit.oak.spi.query.Cursor;
@@ -39,7 +39,7 @@ public class LuceneIndexTest implements
@Test
public void testLucene() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
NodeBuilder builder = root.builder();
builder.child("oak:index").child("lucene")
@@ -70,7 +70,7 @@ public class LuceneIndexTest implements
@Test
public void testLucene2() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
NodeBuilder builder = root.builder();
builder.child("oak:index").child("lucene")
Modified: jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexDiff.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexDiff.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexDiff.java (original)
+++ jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexDiff.java Wed Mar 13 16:33:34 2013
@@ -24,7 +24,6 @@ import org.apache.jackrabbit.oak.api.Com
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.plugins.index.IndexHook;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.plugins.index.solr.OakSolrConfiguration;
import org.apache.jackrabbit.oak.plugins.index.solr.query.SolrQueryIndex;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
@@ -35,6 +34,7 @@ import org.apache.solr.client.solrj.Solr
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
import static org.apache.jackrabbit.oak.commons.PathUtils.concat;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
/**
* {@link IndexHook} implementation that is responsible for keeping the
@@ -159,7 +159,7 @@ public class SolrIndexDiff implements In
for (SolrIndexUpdate update : updates.values()) {
update.insert(concat(getPath(), name), new ReadOnlyBuilder(after));
}
- after.compareAgainstBaseState(MemoryNodeState.EMPTY_NODE, child(name));
+ after.compareAgainstBaseState(EMPTY_NODE, child(name));
}
@Override
@@ -199,7 +199,7 @@ public class SolrIndexDiff implements In
}
if (reindex) {
state.getNodeState().compareAgainstBaseState(
- MemoryNodeState.EMPTY_NODE,
+ EMPTY_NODE,
new SolrIndexDiff(null, state, solrServer, null, "/", updates, configuration));
}
}
Modified: jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexDiffIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexDiffIT.java?rev=1456040&r1=1456039&r2=1456040&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexDiffIT.java (original)
+++ jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexDiffIT.java Wed Mar 13 16:33:34 2013
@@ -20,7 +20,6 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.index.IndexDefinitionImpl;
import org.apache.jackrabbit.oak.plugins.index.IndexHook;
import org.apache.jackrabbit.oak.plugins.index.solr.index.SolrIndexDiff;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
import org.apache.jackrabbit.oak.query.ast.Operator;
import org.apache.jackrabbit.oak.query.index.FilterImpl;
import org.apache.jackrabbit.oak.plugins.index.solr.SolrBaseTest;
@@ -39,12 +38,13 @@ import static junit.framework.Assert.ass
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertTrue;
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
public class SolrIndexDiffIT extends SolrBaseTest {
@Test
public void testSingleNodeCreation() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
NodeBuilder builder = root.builder();
builder.child("oak:index").child("solr")
@@ -78,7 +78,7 @@ public class SolrIndexDiffIT extends Sol
@Test
public void testPropertyAddition() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
NodeBuilder builder = root.builder();
builder.child("oak:index").child("solr")
@@ -113,7 +113,7 @@ public class SolrIndexDiffIT extends Sol
@Test
public void testSomeNodesCreationWithFullText() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
NodeBuilder builder = root.builder();
builder.child("oak:index").child("solr")
@@ -152,7 +152,7 @@ public class SolrIndexDiffIT extends Sol
@Test
public void testSomeNodesCreationWithDescendant() throws Exception {
- NodeState root = MemoryNodeState.EMPTY_NODE;
+ NodeState root = EMPTY_NODE;
NodeBuilder builder = root.builder();
builder.child("oak:index").child("solr")