Author: chetanm
Date: Tue Jun 21 06:18:48 2016
New Revision: 1749429
URL: http://svn.apache.org/viewvc?rev=1749429&view=rev
Log:
OAK-4180 - Use another NodeStore as a local cache for a remote Document store
Override the default implementation of AbstractNodeState and call them on
delegate as those are more optimized
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeStateTest.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java?rev=1749429&r1=1749428&r2=1749429&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java
Tue Jun 21 06:18:48 2016
@@ -49,6 +49,7 @@ class DelegatingDocumentNodeState extend
static final String PROP_PATH = ":doc-path";
static final String PROP_REVISION = ":doc-rev";
static final String PROP_LAST_REV = ":doc-lastRev";
+ private static final int META_PROP_COUNT = 3; //Count of above meta props
private static final Predicate<PropertyState> NOT_META_PROPS = new
Predicate<PropertyState>() {
@Override
@@ -206,6 +207,66 @@ class DelegatingDocumentNodeState extend
return new MemoryNodeBuilder(this);
}
+ //Following method should be overridden as default implementation in
AbstractNodeState
+ //is not optimized
+
+ @Override
+ public PropertyState getProperty(@Nonnull String name) {
+ return delegate.getProperty(name);
+ }
+
+ @Override
+ public long getPropertyCount() {
+ return delegate.getPropertyCount() - META_PROP_COUNT;
+ }
+
+ @Override
+ public boolean hasProperty(@Nonnull String name) {
+ return delegate.hasProperty(name);
+ }
+
+ @Override
+ public boolean getBoolean(@Nonnull String name) {
+ return delegate.getBoolean(name);
+ }
+
+ @Override
+ public long getLong(String name) {
+ return delegate.getLong(name);
+ }
+
+ @Override
+ public String getString(String name) {
+ return delegate.getString(name);
+ }
+
+ @Nonnull
+ @Override
+ public Iterable<String> getStrings(@Nonnull String name) {
+ return delegate.getStrings(name);
+ }
+
+ @Override
+ public String getName(@Nonnull String name) {
+ return delegate.getName(name);
+ }
+
+ @Nonnull
+ @Override
+ public Iterable<String> getNames(@Nonnull String name) {
+ return delegate.getNames(name);
+ }
+
+ @Override
+ public long getChildNodeCount(long max) {
+ return delegate.getChildNodeCount(max);
+ }
+
+ @Override
+ public Iterable<String> getChildNodeNames() {
+ return delegate.getChildNodeNames();
+ }
+
//~--------------------------------------------< internal >
private NodeState decorate(NodeState childNode) {
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeStateTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeStateTest.java?rev=1749429&r1=1749428&r2=1749429&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeStateTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeStateTest.java
Tue Jun 21 06:18:48 2016
@@ -68,6 +68,7 @@ public class DelegatingDocumentNodeState
AbstractDocumentNodeState state =
DelegatingDocumentNodeState.wrap(builder.getNodeState(),
NodeStateDiffer.DEFAULT_DIFFER);
assertEquals(1, Iterables.size(state.getProperties()));
+ assertEquals(1, state.getPropertyCount());
}
@Test