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 th...@apache.org on 2019/10/22 11:53:56 UTC

svn commit: r1868751 - in /jackrabbit/oak/trunk/oak-lucene: ./ src/test/java/org/apache/jackrabbit/oak/composite/

Author: thomasm
Date: Tue Oct 22 11:53:56 2019
New Revision: 1868751

URL: http://svn.apache.org/viewvc?rev=1868751&view=rev
Log:
OAK-8639 Composite node store tests with document store

Modified:
    jackrabbit/oak/trunk/oak-lucene/pom.xml
    jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreLuceneIndexTest.java
    jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreQueryTest.java
    jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreQueryTestBase.java

Modified: jackrabbit/oak/trunk/oak-lucene/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/pom.xml?rev=1868751&r1=1868750&r2=1868751&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-lucene/pom.xml Tue Oct 22 11:53:56 2019
@@ -422,6 +422,17 @@
       <artifactId>docker-junit-rule</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>com.h2database</groupId>
+      <artifactId>h2</artifactId>
+      <version>${h2.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.tomcat</groupId>
+      <artifactId>tomcat-jdbc</artifactId>
+      <scope>test</scope>
+    </dependency>
 
   </dependencies>
 </project>

Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreLuceneIndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreLuceneIndexTest.java?rev=1868751&r1=1868750&r2=1868751&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreLuceneIndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreLuceneIndexTest.java Tue Oct 22 11:53:56 2019
@@ -26,6 +26,7 @@ import org.apache.jackrabbit.oak.plugins
 import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider;
 import org.apache.jackrabbit.oak.spi.mount.Mounts;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -73,9 +74,12 @@ public class CompositeNodeStoreLuceneInd
         repoV1.initCompositeRepo();
     }
 
-    @Override
-    public void closeRepositories() throws Exception {
+    @After
+    public void tearDown() throws Exception {
         repoV1.cleanup();
+        if (repoV2 != null) {
+            repoV2.cleanup();
+        }
     }
 
     /**
@@ -293,9 +297,6 @@ public class CompositeNodeStoreLuceneInd
         result = repoV1.executeQuery("/jcr:root//*[@foo3 = 'bar'] order by @jcr:path", "xpath");
         assertEquals("/content-foo3/node-0, " +
                 "/content-foo3/node-1", getResult(result, "jcr:path"));
-
-        repoV1.cleanup();
-        repoV2.cleanup();
     }
 
     private static String getResult(QueryResult result, String propertyName) throws RepositoryException {

Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreQueryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreQueryTest.java?rev=1868751&r1=1868750&r2=1868751&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreQueryTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreQueryTest.java Tue Oct 22 11:53:56 2019
@@ -179,7 +179,7 @@ public class CompositeNodeStoreQueryTest
 
     }
 
-    public void createLuceneIndex(NodeBuilder b) {
+    private void createLuceneIndex(NodeBuilder b) {
         b = b.child(INDEX_DEFINITIONS_NAME).child("lucene");
         b.setProperty(JCR_PRIMARYTYPE, INDEX_DEFINITIONS_NODE_TYPE, NAME);
         b.setProperty(TYPE_PROPERTY_NAME, LuceneIndexConstants.TYPE_LUCENE);
@@ -225,26 +225,25 @@ public class CompositeNodeStoreQueryTest
         NodeBuilder builder;
         builder = store.getRoot().builder();
 
-
         builder.child(INDEX_DEFINITIONS_NAME).child("lucene").setProperty(REINDEX_PROPERTY_NAME,true);
         store.merge(builder, hook, CommitInfo.EMPTY);
         root.commit();
 
         assertEquals(builder.child(INDEX_DEFINITIONS_NAME).child("lucene").getProperty(REINDEX_COUNT).getValue(Type.STRING),"2");
-
-
     }
 
     @Test
     public void luceneIndex() throws Exception {
         // create an index in both the read-only and the read-write store
         NodeBuilder readOnlyBuilder = readOnlyStore.getRoot().builder();
+
         // add nodes in the read-only area
         for (int i = 0; i < 3; i++) {
             NodeBuilder b = readOnlyBuilder.child("readOnly").child("node-" + i);
             b.setProperty("asyncFoo", "bar");
             b.setProperty("jcr:primaryType", "nt:base", Type.NAME);
         }
+
         createLuceneIndex(readOnlyBuilder);
 
         NodeBuilder globalBuilder = globalStore.getRoot().builder();
@@ -253,9 +252,6 @@ public class CompositeNodeStoreQueryTest
         LuceneIndexEditorProvider iep = new LuceneIndexEditorProvider(indexCopier, indexTracker, null, null, mip);
         EditorHook hook = new EditorHook(
                 new IndexUpdateProvider(iep, "async", false));
-        readOnlyStore.merge(readOnlyBuilder, hook, CommitInfo.EMPTY);
-        globalStore.merge(globalBuilder, hook, CommitInfo.EMPTY);
-        root.commit();
 
         readOnlyStore.merge(readOnlyBuilder, hook, CommitInfo.EMPTY);
         globalStore.merge(globalBuilder, hook, CommitInfo.EMPTY);
@@ -263,8 +259,6 @@ public class CompositeNodeStoreQueryTest
         indexTracker.update(readOnlyStore.getRoot());
         indexTracker.update(globalStore.getRoot());
 
-        // add nodes in the read-only area
-
         // run a query
         // need to login again to see changes in the read-only area
         session = createRepository(store).login(null, null);
@@ -280,8 +274,7 @@ public class CompositeNodeStoreQueryTest
                 executeQuery("/jcr:root//*[@asyncFoo = 'bar']", "xpath").toString());
 
         // add nodes in the read-write area
-        NodeBuilder builder;
-        builder = store.getRoot().builder();
+        NodeBuilder builder = store.getRoot().builder();
         for (int i = 0; i < 3; i++) {
             builder.child("content").child("node-" + i).setProperty("asyncFoo", "bar");
         }

Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreQueryTestBase.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreQueryTestBase.java?rev=1868751&r1=1868750&r2=1868751&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreQueryTestBase.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreQueryTestBase.java Tue Oct 22 11:53:56 2019
@@ -55,6 +55,7 @@ import org.apache.jackrabbit.oak.api.Roo
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.jcr.Jcr;
 import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore;
+import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBuilder;
 import org.apache.jackrabbit.oak.plugins.document.rdb.RDBDataSourceFactory;
 import org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentNodeStoreBuilder;
 import org.apache.jackrabbit.oak.plugins.document.rdb.RDBOptions;
@@ -137,13 +138,14 @@ public class CompositeNodeStoreQueryTest
     @Rule
     public TemporaryFolder temporaryFolder = new TemporaryFolder(new File("target"));
 
-    @Parameters(name="Root: {0}, Mounts: {1}")
+    @Parameters(name = "Root: {0}, Mounts: {1}")
     public static Collection<Object[]> data() {
-        return Arrays.asList(new Object[][] {
-            { NodeStoreKind.MEMORY, NodeStoreKind.MEMORY },
-            { NodeStoreKind.SEGMENT, NodeStoreKind.SEGMENT}
-//            { NodeStoreKind.DOCUMENT_H2, NodeStoreKind.DOCUMENT_H2},
-//            { NodeStoreKind.DOCUMENT_H2, NodeStoreKind.SEGMENT}
+        return Arrays.asList(new Object[][]{
+                {NodeStoreKind.MEMORY, NodeStoreKind.MEMORY},
+                {NodeStoreKind.SEGMENT, NodeStoreKind.SEGMENT},
+                {NodeStoreKind.DOCUMENT_H2, NodeStoreKind.DOCUMENT_H2},
+                {NodeStoreKind.DOCUMENT_H2, NodeStoreKind.SEGMENT},
+                {NodeStoreKind.DOCUMENT_MEMORY, NodeStoreKind.DOCUMENT_MEMORY}
         });
     }
 
@@ -406,7 +408,7 @@ public class CompositeNodeStoreQueryTest
     }
 
     @After
-    public void closeRepositories() throws Exception {
+    public final void baseTearDown() throws Exception {
         for ( NodeStoreRegistration reg : registrations ) {
             reg.close();
         }
@@ -486,25 +488,26 @@ public class CompositeNodeStoreQueryTest
             }
         }, DOCUMENT_H2 {
 
-            // TODO - copied from DocumentRdbFixture
-
-            private DataSource ds;
-
             @Override
             public NodeStoreRegistration create(final String name) {
 
                 return new NodeStoreRegistration() {
 
                     private DocumentNodeStore instance;
+                    private String dbPath;
+
+                    // TODO - copied from DocumentRdbFixture
+
+                    private DataSource ds;
 
                     @Override
                     public NodeStore get(TemporaryFolder temporaryFolder) throws Exception {
                         RDBOptions options = new RDBOptions().dropTablesOnClose(true);
-                        String jdbcUrl = "jdbc:h2:file:" + temporaryFolder.getRoot().getAbsolutePath() + "/document";
+                        dbPath = temporaryFolder.getRoot().getAbsolutePath() + "/document";
                         if ( name != null ) {
-                            jdbcUrl += "-" + name;
+                            dbPath += "-" + name;
                         }
-                        ds = RDBDataSourceFactory.forJdbcUrl(jdbcUrl, "sa", "");
+                        ds = RDBDataSourceFactory.forJdbcUrl("jdbc:h2:file:" + dbPath, "sa", "");
 
                         instance = new RDBDocumentNodeStoreBuilder()
                                 .setRDBConnection(ds, options).build();
@@ -520,8 +523,33 @@ public class CompositeNodeStoreQueryTest
                         if ( ds instanceof Closeable ) {
                             ((Closeable) ds).close();
                         }
+                        FileUtils.deleteQuietly(new File(dbPath));
+                    }
+
+                };
+
+            }
+        }, DOCUMENT_MEMORY {
+            @Override
+            public NodeStoreRegistration create(final String name) {
+
+                return new NodeStoreRegistration() {
+
+                    private DocumentNodeStore instance;
+
+                    @Override
+                    public NodeStore get(TemporaryFolder temporaryFolder) throws Exception {
+                        DocumentNodeStoreBuilder<?> documentNodeStoreBuilder = DocumentNodeStoreBuilder.newDocumentNodeStoreBuilder();
+
+                        instance = documentNodeStoreBuilder.build();
+
+                        return instance;
                     }
 
+                    @Override
+                    public void close() {
+                        instance.dispose();
+                    }
                 };
 
             }
@@ -547,4 +575,4 @@ public class CompositeNodeStoreQueryTest
     }
 
 
-}
\ No newline at end of file
+}