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 ca...@apache.org on 2018/04/13 02:04:22 UTC

svn commit: r1829026 - in /jackrabbit/oak/trunk/oak-lucene/src: main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderServiceTest.java

Author: catholicon
Date: Fri Apr 13 02:04:21 2018
New Revision: 1829026

URL: http://svn.apache.org/viewvc?rev=1829026&view=rev
Log:
OAK-7408: LuceneIndexProviderService uses default tracker constructor with disabled CoR

Modified:
    jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java
    jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderServiceTest.java

Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java?rev=1829026&r1=1829025&r2=1829026&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java Fri Apr 13 02:04:21 2018
@@ -523,7 +523,7 @@ public class LuceneIndexProviderService
             }
             tracker = new IndexTracker(new DefaultIndexReaderFactory(mountInfoProvider, indexCopier), nrtIndexFactory);
         } else {
-            tracker = new IndexTracker();
+            tracker = new IndexTracker(new DefaultIndexReaderFactory(mountInfoProvider, null));
         }
 
         tracker.setAsyncIndexInfoService(asyncIndexInfoService);

Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderServiceTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderServiceTest.java?rev=1829026&r1=1829025&r2=1829026&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderServiceTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderServiceTest.java Fri Apr 13 02:04:21 2018
@@ -27,6 +27,7 @@ import static org.junit.Assert.assertTru
 import static org.mockito.Mockito.mock;
 
 import java.io.File;
+import java.lang.reflect.Field;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.Callable;
@@ -50,6 +51,7 @@ import org.apache.jackrabbit.oak.plugins
 import org.apache.jackrabbit.oak.plugins.index.importer.IndexImporterProvider;
 import org.apache.jackrabbit.oak.plugins.index.lucene.property.PropertyIndexCleaner;
 import org.apache.jackrabbit.oak.plugins.index.lucene.directory.BufferedOakDirectory;
+import org.apache.jackrabbit.oak.plugins.index.lucene.reader.DefaultIndexReaderFactory;
 import org.apache.jackrabbit.oak.plugins.index.lucene.score.ScorerProviderFactory;
 import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeStore;
 import org.apache.jackrabbit.oak.spi.blob.GarbageCollectableBlobStore;
@@ -90,9 +92,12 @@ public class LuceneIndexProviderServiceT
 
     private Whiteboard wb;
 
+    private MountInfoProvider mip;
+
     @Before
     public void setUp(){
-        context.registerService(MountInfoProvider.class, Mounts.defaultMountInfoProvider());
+        mip = Mounts.newBuilder().build();
+        context.registerService(MountInfoProvider.class, mip);
         context.registerService(StatisticsProvider.class, StatisticsProvider.NOOP);
         context.registerService(ScorerProviderFactory.class, ScorerProviderFactory.DEFAULT);
         context.registerService(IndexAugmentorFactory.class, new IndexAugmentorFactory());
@@ -203,6 +208,27 @@ public class LuceneIndexProviderServiceT
         // activation should work
         MockOsgi.activate(service, context.bundleContext(), config);
 
+        // get lucene index provider
+        LuceneIndexProvider lip = null;
+        for (QueryIndexProvider qip : context.getServices(QueryIndexProvider.class, null)) {
+            if (qip instanceof LuceneIndexProvider) {
+                lip = (LuceneIndexProvider)qip;
+                break;
+            }
+        }
+        assertNotNull(lip);
+        IndexTracker tracker = lip.getTracker();
+
+        // access reader factory with reflection and implicitly assert that it's DefaultIndexReaderFactory
+        Field readerFactorFld = IndexTracker.class.getDeclaredField("readerFactory");
+        readerFactorFld.setAccessible(true);
+        DefaultIndexReaderFactory readerFactory = (DefaultIndexReaderFactory)readerFactorFld.get(tracker);
+
+        Field mipFld = DefaultIndexReaderFactory.class.getDeclaredField("mountInfoProvider");
+        mipFld.setAccessible(true);
+        // OAK-7408: LIPS was using default tracker ctor and hence reader factor used default mounts
+        assertEquals("Reader factory not using configured MountInfoProvider", mip, mipFld.get(readerFactory));
+
         // de-activation should work
         MockOsgi.deactivate(service, context.bundleContext());
     }