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());
}