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


Reply via email to