You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by zh...@apache.org on 2017/09/22 18:53:05 UTC

[geode] branch feature/GEODE-3239 updated: GEODE-3606: add index as parameter for toDocuments()

This is an automated email from the ASF dual-hosted git repository.

zhouxj pushed a commit to branch feature/GEODE-3239
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/feature/GEODE-3239 by this push:
     new 26c9107  GEODE-3606: add index as parameter for toDocuments()
26c9107 is described below

commit 26c9107111811534fd299997479726f81f571838
Author: zhouxh <gz...@pivotal.io>
AuthorDate: Fri Sep 22 09:38:36 2017 -0700

    GEODE-3606: add index as parameter for toDocuments()
    
    This closes #810
---
 .../geode/cache/lucene/LuceneSerializer.java       |  4 ++-
 .../lucene/internal/IndexRepositoryFactory.java    |  2 +-
 .../internal/LuceneIndexForPartitionedRegion.java  |  2 +-
 .../cache/lucene/internal/LuceneRawIndex.java      |  2 +-
 .../lucene/internal/RawIndexRepositoryFactory.java |  2 +-
 .../internal/repository/IndexRepositoryImpl.java   | 16 ++++------
 .../serializer/HeterogeneousLuceneSerializer.java  | 37 ++++++----------------
 .../repository/serializer/PdxLuceneSerializer.java | 11 +++----
 .../repository/serializer/PrimitiveSerializer.java |  3 +-
 .../serializer/ReflectionLuceneSerializer.java     |  4 +--
 .../geode/cache/lucene/DummyLuceneSerializer.java  |  2 +-
 .../cache/lucene/LuceneIndexCreationDUnitTest.java |  3 +-
 .../LuceneIndexMaintenanceIntegrationTest.java     |  6 ++--
 .../LuceneIndexCreationProfileJUnitTest.java       |  2 +-
 .../LuceneIndexRecoveryHAIntegrationTest.java      |  4 +--
 .../PartitionedRepositoryManagerJUnitTest.java     |  2 +-
 .../RawLuceneRepositoryManagerJUnitTest.java       |  2 +-
 .../distributed/DistributedScoringJUnitTest.java   |  7 ++--
 .../repository/IndexRepositoryImplJUnitTest.java   |  7 ++--
 .../IndexRepositoryImplPerformanceTest.java        |  6 ++--
 .../HeterogeneousLuceneSerializerJUnitTest.java    | 20 ++++++------
 .../serializer/PdxFieldMapperJUnitTest.java        | 12 +++----
 .../serializer/ReflectionFieldMapperJUnitTest.java |  8 ++---
 .../serializer/SerializerTestHelper.java           |  9 ++++--
 .../cache/lucene/test/LuceneTestSerializer.java    |  3 +-
 25 files changed, 82 insertions(+), 94 deletions(-)

diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/LuceneSerializer.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/LuceneSerializer.java
index f1c530d..363867d 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/LuceneSerializer.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/LuceneSerializer.java
@@ -30,6 +30,8 @@ public interface LuceneSerializer extends Declarable {
 
   /**
    * Add the fields of the given value to a set of documents
+   * 
+   * @param index lucene index
    */
-  Collection<Document> toDocuments(Object value);
+  Collection<Document> toDocuments(LuceneIndex index, Object value);
 }
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/IndexRepositoryFactory.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/IndexRepositoryFactory.java
index a863ddc..08ffaa9 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/IndexRepositoryFactory.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/IndexRepositoryFactory.java
@@ -83,7 +83,7 @@ public class IndexRepositoryFactory {
       IndexWriterConfig config = new IndexWriterConfig(indexForPR.getAnalyzer());
       IndexWriter writer = new IndexWriter(dir, config);
       repo = new IndexRepositoryImpl(fileAndChunkBucket, writer, serializer,
-          indexForPR.getIndexStats(), dataBucket, lockService, lockName);
+          indexForPR.getIndexStats(), dataBucket, lockService, lockName, indexForPR);
       success = true;
       return repo;
     } catch (IOException e) {
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexForPartitionedRegion.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexForPartitionedRegion.java
index 2fc714a..b383210 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexForPartitionedRegion.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexForPartitionedRegion.java
@@ -59,7 +59,7 @@ public class LuceneIndexForPartitionedRegion extends LuceneIndexImpl {
   protected RepositoryManager createRepositoryManager(LuceneSerializer luceneSerializer) {
     LuceneSerializer mapper = luceneSerializer;
     if (mapper == null) {
-      mapper = new HeterogeneousLuceneSerializer(getFieldNames());
+      mapper = new HeterogeneousLuceneSerializer();
     }
     PartitionedRepositoryManager partitionedRepositoryManager =
         new PartitionedRepositoryManager(this, mapper);
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneRawIndex.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneRawIndex.java
index 7ee0ff5..7ecd5c2 100755
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneRawIndex.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneRawIndex.java
@@ -29,7 +29,7 @@ public class LuceneRawIndex extends LuceneIndexImpl {
   protected RepositoryManager createRepositoryManager(LuceneSerializer luceneSerializer) {
     HeterogeneousLuceneSerializer mapper = (HeterogeneousLuceneSerializer) luceneSerializer;
     if (mapper == null) {
-      mapper = new HeterogeneousLuceneSerializer(getFieldNames());
+      mapper = new HeterogeneousLuceneSerializer();
     }
     RawLuceneRepositoryManager rawLuceneRepositoryManager =
         new RawLuceneRepositoryManager(this, mapper);
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/RawIndexRepositoryFactory.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/RawIndexRepositoryFactory.java
index 9085ce0..f1f9cd3 100755
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/RawIndexRepositoryFactory.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/RawIndexRepositoryFactory.java
@@ -58,6 +58,6 @@ public class RawIndexRepositoryFactory extends IndexRepositoryFactory {
     IndexWriter writer = new IndexWriter(dir, config);
 
     return new IndexRepositoryImpl(null, writer, serializer, indexForRaw.getIndexStats(),
-        dataBucket, null, "");
+        dataBucket, null, "", indexForRaw);
   }
 }
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImpl.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImpl.java
index 8698471..da1cb2e 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImpl.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImpl.java
@@ -17,6 +17,7 @@ package org.apache.geode.cache.lucene.internal.repository;
 
 import org.apache.geode.cache.Region;
 import org.apache.geode.cache.lucene.internal.LuceneIndexStats;
+import org.apache.geode.cache.lucene.LuceneIndex;
 import org.apache.geode.cache.lucene.LuceneSerializer;
 import org.apache.geode.cache.lucene.internal.repository.serializer.SerializerUtil;
 import org.apache.geode.distributed.DistributedLockService;
@@ -54,19 +55,13 @@ public class IndexRepositoryImpl implements IndexRepository {
   private DocumentCountSupplier documentCountSupplier;
   private final DistributedLockService lockService;
   private String lockName;
+  private LuceneIndex index;
 
   private static final Logger logger = LogService.getLogger();
 
-  // For test purposes
-  IndexRepositoryImpl(Region<?, ?> region, IndexWriter writer, LuceneSerializer serializer,
-      LuceneIndexStats stats, Region<?, ?> userRegion) throws IOException {
-    this(region, writer, serializer, stats, userRegion,
-        ((DistributedRegion) region).getLockService(), "NoLockFile");
-  }
-
   public IndexRepositoryImpl(Region<?, ?> region, IndexWriter writer, LuceneSerializer serializer,
       LuceneIndexStats stats, Region<?, ?> userRegion, DistributedLockService lockService,
-      String lockName) throws IOException {
+      String lockName, LuceneIndex index) throws IOException {
     this.region = region;
     this.userRegion = userRegion;
     this.writer = writer;
@@ -77,13 +72,14 @@ public class IndexRepositoryImpl implements IndexRepository {
     stats.addDocumentsSupplier(documentCountSupplier);
     this.lockService = lockService;
     this.lockName = lockName;
+    this.index = index;
   }
 
   @Override
   public void create(Object key, Object value) throws IOException {
     long start = stats.startUpdate();
     try {
-      Collection<Document> docs = serializer.toDocuments(value);
+      Collection<Document> docs = serializer.toDocuments(index, value);
       docs.forEach(doc -> SerializerUtil.addKey(key, doc));
       writer.addDocuments(docs);
     } finally {
@@ -95,7 +91,7 @@ public class IndexRepositoryImpl implements IndexRepository {
   public void update(Object key, Object value) throws IOException {
     long start = stats.startUpdate();
     try {
-      Collection<Document> docs = serializer.toDocuments(value);
+      Collection<Document> docs = serializer.toDocuments(index, value);
       docs.forEach(doc -> SerializerUtil.addKey(key, doc));
       Term keyTerm = SerializerUtil.toKeyTerm(key);
       writer.updateDocuments(keyTerm, docs);
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/HeterogeneousLuceneSerializer.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/HeterogeneousLuceneSerializer.java
index 864b3b7..9a15356 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/HeterogeneousLuceneSerializer.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/HeterogeneousLuceneSerializer.java
@@ -21,7 +21,7 @@ import java.util.Map;
 
 import org.apache.logging.log4j.Logger;
 import org.apache.lucene.document.Document;
-
+import org.apache.geode.cache.lucene.LuceneIndex;
 import org.apache.geode.cache.lucene.LuceneSerializer;
 import org.apache.geode.cache.lucene.LuceneService;
 import org.apache.geode.internal.logging.LogService;
@@ -34,11 +34,6 @@ import org.apache.geode.pdx.PdxInstance;
  */
 public class HeterogeneousLuceneSerializer implements LuceneSerializer {
   /**
-   * The set of indexed fields for this mapper
-   */
-  private String[] indexedFields;
-
-  /**
    * A mapper for converting a PDX object into a document
    */
   private LuceneSerializer pdxMapper;
@@ -53,36 +48,24 @@ public class HeterogeneousLuceneSerializer implements LuceneSerializer {
 
   private static final Logger logger = LogService.getLogger();
 
-  public HeterogeneousLuceneSerializer(String[] indexedFields) {
-    this.indexedFields = indexedFields;
-    pdxMapper = new PdxLuceneSerializer(indexedFields);
-
+  public HeterogeneousLuceneSerializer() {
+    final PrimitiveSerializer primitiveSerializer = new PrimitiveSerializer();
+    SerializerUtil.supportedPrimitiveTypes().stream()
+        .forEach(type -> mappers.put(type, primitiveSerializer));
 
-    addSerializersForPrimitiveValues();
-  }
-
-  /**
-   * Add serializers for the primitive value types (String, Number, etc.) if the user has requested
-   * that the whole value be serialized
-   */
-  private void addSerializersForPrimitiveValues() {
-    if (Arrays.asList(indexedFields).contains(LuceneService.REGION_VALUE_FIELD)) {
-      final PrimitiveSerializer primitiveSerializer = new PrimitiveSerializer();
-      SerializerUtil.supportedPrimitiveTypes().stream()
-          .forEach(type -> mappers.put(type, primitiveSerializer));
-    }
+    pdxMapper = new PdxLuceneSerializer();
   }
 
   @Override
-  public Collection<Document> toDocuments(Object value) {
+  public Collection<Document> toDocuments(LuceneIndex index, Object value) {
 
     if (value == null) {
       return Collections.emptyList();
     }
 
-    LuceneSerializer mapper = getFieldMapper(value);
+    LuceneSerializer mapper = getFieldMapper(value, index.getFieldNames());
 
-    Collection<Document> docs = mapper.toDocuments(value);
+    Collection<Document> docs = mapper.toDocuments(index, value);
     if (logger.isDebugEnabled()) {
       logger.debug("HeterogeneousLuceneSerializer.toDocuments:" + docs);
     }
@@ -93,7 +76,7 @@ public class HeterogeneousLuceneSerializer implements LuceneSerializer {
   /**
    * Get the field mapper based on the type of the given object.
    */
-  private LuceneSerializer getFieldMapper(Object value) {
+  private LuceneSerializer getFieldMapper(Object value, String[] indexedFields) {
     if (value instanceof PdxInstance) {
       return pdxMapper;
     } else {
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/PdxLuceneSerializer.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/PdxLuceneSerializer.java
index f63a1b7..cb1f0cd 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/PdxLuceneSerializer.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/PdxLuceneSerializer.java
@@ -21,6 +21,7 @@ import org.apache.lucene.document.Document;
 import java.util.Collection;
 import java.util.Collections;
 
+import org.apache.geode.cache.lucene.LuceneIndex;
 import org.apache.geode.cache.lucene.LuceneSerializer;
 import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.pdx.PdxInstance;
@@ -30,19 +31,15 @@ import org.apache.geode.pdx.PdxInstance;
  */
 class PdxLuceneSerializer implements LuceneSerializer {
 
-  private String[] indexedFields;
-
   private static final Logger logger = LogService.getLogger();
 
-  public PdxLuceneSerializer(String[] indexedFields) {
-    this.indexedFields = indexedFields;
-  }
+  public PdxLuceneSerializer() {}
 
   @Override
-  public Collection<Document> toDocuments(Object value) {
+  public Collection<Document> toDocuments(LuceneIndex index, Object value) {
     Document doc = new Document();
     PdxInstance pdx = (PdxInstance) value;
-    for (String field : indexedFields) {
+    for (String field : index.getFieldNames()) {
       if (pdx.hasField(field)) {
         Object fieldValue = pdx.getField(field);
         if (fieldValue == null) {
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/PrimitiveSerializer.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/PrimitiveSerializer.java
index 159f18c..fddcb44 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/PrimitiveSerializer.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/PrimitiveSerializer.java
@@ -17,6 +17,7 @@ package org.apache.geode.cache.lucene.internal.repository.serializer;
 import java.util.Collection;
 import java.util.Collections;
 
+import org.apache.geode.cache.lucene.LuceneIndex;
 import org.apache.geode.cache.lucene.LuceneSerializer;
 import org.apache.geode.cache.lucene.LuceneService;
 
@@ -29,7 +30,7 @@ import org.apache.lucene.document.Document;
 public class PrimitiveSerializer implements LuceneSerializer {
 
   @Override
-  public Collection<Document> toDocuments(final Object value) {
+  public Collection<Document> toDocuments(LuceneIndex index, final Object value) {
     Document doc = new Document();
     SerializerUtil.addField(doc, LuceneService.REGION_VALUE_FIELD, value);
     return Collections.singleton(doc);
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/ReflectionLuceneSerializer.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/ReflectionLuceneSerializer.java
index a9ef5d2..5b9298b 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/ReflectionLuceneSerializer.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/ReflectionLuceneSerializer.java
@@ -25,7 +25,7 @@ import java.util.Set;
 
 import org.apache.logging.log4j.Logger;
 import org.apache.lucene.document.Document;
-
+import org.apache.geode.cache.lucene.LuceneIndex;
 import org.apache.geode.cache.lucene.LuceneSerializer;
 import org.apache.geode.internal.logging.LogService;
 
@@ -63,7 +63,7 @@ class ReflectionLuceneSerializer implements LuceneSerializer {
   }
 
   @Override
-  public Collection<Document> toDocuments(Object value) {
+  public Collection<Document> toDocuments(LuceneIndex index, Object value) {
     Document doc = new Document();
     for (Field field : fields) {
       try {
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/DummyLuceneSerializer.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/DummyLuceneSerializer.java
index 2a31768..def03f7 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/DummyLuceneSerializer.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/DummyLuceneSerializer.java
@@ -22,7 +22,7 @@ import org.apache.lucene.document.Document;
 public class DummyLuceneSerializer implements LuceneSerializer {
 
   @Override
-  public Collection<Document> toDocuments(Object value) {
+  public Collection<Document> toDocuments(LuceneIndex index, Object value) {
     return Collections.emptyList();
   }
 
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneIndexCreationDUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneIndexCreationDUnitTest.java
index e41cf85..afd8c96 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneIndexCreationDUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneIndexCreationDUnitTest.java
@@ -506,8 +506,7 @@ public class LuceneIndexCreationDUnitTest extends LuceneDUnitTest {
     return () -> {
       LuceneService luceneService = LuceneServiceProvider.get(getCache());
       luceneService.createIndexFactory().setFields(new String[] {"field1", "field2"})
-          .setLuceneSerializer(new HeterogeneousLuceneSerializer(new String[] {"field1", "field2"}))
-          .create(INDEX_NAME, REGION_NAME);
+          .setLuceneSerializer(new HeterogeneousLuceneSerializer()).create(INDEX_NAME, REGION_NAME);
     };
   }
 }
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneIndexMaintenanceIntegrationTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneIndexMaintenanceIntegrationTest.java
index 03921ee..1827f2a 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneIndexMaintenanceIntegrationTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneIndexMaintenanceIntegrationTest.java
@@ -109,10 +109,8 @@ public class LuceneIndexMaintenanceIntegrationTest extends LuceneIntegrationTest
 
   @Test
   public void useSerializerToIndex() throws Exception {
-    luceneService.createIndexFactory().setFields("title", "name")
-        .setLuceneSerializer(
-            new HeterogeneousLuceneSerializer(new String[] {"title", "description"}))
-        .create(INDEX_NAME, REGION_NAME);
+    luceneService.createIndexFactory().setFields("title", "description")
+        .setLuceneSerializer(new HeterogeneousLuceneSerializer()).create(INDEX_NAME, REGION_NAME);
 
     Region region = createRegion(REGION_NAME, RegionShortcut.PARTITION);
     region.put("object-1", new TestObject("title 1", "hello world"));
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexCreationProfileJUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexCreationProfileJUnitTest.java
index c653c2f..5ecca42 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexCreationProfileJUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexCreationProfileJUnitTest.java
@@ -97,7 +97,7 @@ public class LuceneIndexCreationProfileJUnitTest {
 
   private LuceneIndexCreationProfile getHeterogeneousLuceneSerializerCreationProfile() {
     return new LuceneIndexCreationProfile(INDEX_NAME, REGION_NAME, new String[] {"field1"},
-        new StandardAnalyzer(), null, new HeterogeneousLuceneSerializer(new String[] {"field1"}));
+        new StandardAnalyzer(), null, new HeterogeneousLuceneSerializer());
   }
 
   @Test
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexRecoveryHAIntegrationTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexRecoveryHAIntegrationTest.java
index b6b1d23..5adf823 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexRecoveryHAIntegrationTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexRecoveryHAIntegrationTest.java
@@ -43,7 +43,7 @@ import static org.junit.Assert.assertTrue;
 @Category(IntegrationTest.class)
 public class LuceneIndexRecoveryHAIntegrationTest {
   String[] indexedFields = new String[] {"txt"};
-  HeterogeneousLuceneSerializer mapper = new HeterogeneousLuceneSerializer(indexedFields);
+  HeterogeneousLuceneSerializer mapper = new HeterogeneousLuceneSerializer();
   Analyzer analyzer = new StandardAnalyzer();
 
   Cache cache;
@@ -53,7 +53,7 @@ public class LuceneIndexRecoveryHAIntegrationTest {
   @Before
   public void setup() {
     indexedFields = new String[] {"txt"};
-    mapper = new HeterogeneousLuceneSerializer(indexedFields);
+    mapper = new HeterogeneousLuceneSerializer();
     analyzer = new StandardAnalyzer();
     LuceneServiceImpl.registerDataSerializables();
 
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/PartitionedRepositoryManagerJUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/PartitionedRepositoryManagerJUnitTest.java
index deda987..20d0213 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/PartitionedRepositoryManagerJUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/PartitionedRepositoryManagerJUnitTest.java
@@ -82,7 +82,7 @@ public class PartitionedRepositoryManagerJUnitTest {
     userDataStore = Mockito.mock(PartitionedRegionDataStore.class);
     when(userRegion.getDataStore()).thenReturn(userDataStore);
     when(cache.getRegion("/testRegion")).thenReturn(userRegion);
-    serializer = new HeterogeneousLuceneSerializer(new String[] {"a", "b"});
+    serializer = new HeterogeneousLuceneSerializer();
     DLockService lockService = mock(DLockService.class);
     when(lockService.lock(any(), anyLong(), anyLong())).thenReturn(true);
     DLockService.addLockServiceForTests(PartitionedRegionHelper.PARTITION_LOCK_SERVICE_NAME,
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/RawLuceneRepositoryManagerJUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/RawLuceneRepositoryManagerJUnitTest.java
index ca4d170..26447ca 100755
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/RawLuceneRepositoryManagerJUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/RawLuceneRepositoryManagerJUnitTest.java
@@ -46,7 +46,7 @@ public class RawLuceneRepositoryManagerJUnitTest extends PartitionedRepositoryMa
     userDataStore = Mockito.mock(PartitionedRegionDataStore.class);
     when(userRegion.getDataStore()).thenReturn(userDataStore);
     when(cache.getRegion("/testRegion")).thenReturn(userRegion);
-    serializer = new HeterogeneousLuceneSerializer(new String[] {"a", "b"});
+    serializer = new HeterogeneousLuceneSerializer();
     createIndexAndRepoManager();
   }
 
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/distributed/DistributedScoringJUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/distributed/DistributedScoringJUnitTest.java
index ee1c70f..ef6f44e 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/distributed/DistributedScoringJUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/distributed/DistributedScoringJUnitTest.java
@@ -32,6 +32,7 @@ import org.junit.experimental.categories.Category;
 import org.mockito.Mockito;
 
 import org.apache.geode.cache.Region;
+import org.apache.geode.cache.lucene.LuceneIndex;
 import org.apache.geode.cache.lucene.internal.LuceneIndexStats;
 import org.apache.geode.cache.lucene.internal.directory.RegionDirectory;
 import org.apache.geode.cache.lucene.internal.filesystem.FileSystemStats;
@@ -43,7 +44,7 @@ import org.apache.geode.test.junit.categories.UnitTest;
 public class DistributedScoringJUnitTest {
 
   private String[] indexedFields = new String[] {"txt"};
-  private HeterogeneousLuceneSerializer mapper = new HeterogeneousLuceneSerializer(indexedFields);
+  private HeterogeneousLuceneSerializer mapper = new HeterogeneousLuceneSerializer();
 
   private final StandardAnalyzer analyzer = new StandardAnalyzer();
   private Region<String, String> region;
@@ -135,8 +136,10 @@ public class DistributedScoringJUnitTest {
 
     IndexWriterConfig config = new IndexWriterConfig(analyzer);
     IndexWriter writer = new IndexWriter(dir, config);
+    LuceneIndex index = Mockito.mock(LuceneIndex.class);
+    Mockito.when(index.getFieldNames()).thenReturn(new String[] {"txt"});
 
-    return new IndexRepositoryImpl(region, writer, mapper, indexStats, null, null, "");
+    return new IndexRepositoryImpl(region, writer, mapper, indexStats, null, null, "", index);
   }
 
   private static class TestType {
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImplJUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImplJUnitTest.java
index 23c2e9c..bac4c12 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImplJUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImplJUnitTest.java
@@ -42,6 +42,7 @@ import org.mockito.ArgumentCaptor;
 import org.mockito.Mockito;
 
 import org.apache.geode.cache.Region;
+import org.apache.geode.cache.lucene.LuceneIndex;
 import org.apache.geode.cache.lucene.internal.LuceneIndexStats;
 import org.apache.geode.cache.lucene.internal.directory.RegionDirectory;
 import org.apache.geode.cache.lucene.internal.filesystem.FileSystemStats;
@@ -73,7 +74,7 @@ public class IndexRepositoryImplJUnitTest {
     IndexWriterConfig config = new IndexWriterConfig(analyzer);
     writer = new IndexWriter(dir, config);
     String[] indexedFields = new String[] {"s", "i", "l", "d", "f", "s2", "missing"};
-    mapper = new HeterogeneousLuceneSerializer(indexedFields);
+    mapper = new HeterogeneousLuceneSerializer();
     region = Mockito.mock(Region.class);
     userRegion = Mockito.mock(BucketRegion.class);
     BucketAdvisor bucketAdvisor = Mockito.mock(BucketAdvisor.class);
@@ -83,8 +84,10 @@ public class IndexRepositoryImplJUnitTest {
     Mockito.when(((BucketRegion) userRegion).getBucketAdvisor().isPrimary()).thenReturn(true);
     stats = Mockito.mock(LuceneIndexStats.class);
     Mockito.when(userRegion.isDestroyed()).thenReturn(false);
+    LuceneIndex index = Mockito.mock(LuceneIndex.class);
+    Mockito.when(index.getFieldNames()).thenReturn(new String[] {"s"});
     repo = new IndexRepositoryImpl(region, writer, mapper, stats, userRegion,
-        mock(DistributedLockService.class), "lockName");
+        mock(DistributedLockService.class), "lockName", index);
   }
 
   @Test
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImplPerformanceTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImplPerformanceTest.java
index 4b321a5..d0b2a91 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImplPerformanceTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImplPerformanceTest.java
@@ -66,6 +66,7 @@ import org.apache.geode.cache.lucene.internal.directory.RegionDirectory;
 import org.apache.geode.cache.lucene.internal.distributed.TopEntriesCollector;
 import org.apache.geode.cache.lucene.internal.filesystem.FileSystemStats;
 import org.apache.geode.cache.lucene.internal.repository.serializer.HeterogeneousLuceneSerializer;
+import org.apache.geode.internal.cache.DistributedRegion;
 import org.apache.geode.test.junit.categories.PerformanceTest;
 
 
@@ -119,8 +120,9 @@ public class IndexRepositoryImplPerformanceTest {
         IndexWriterConfig config = new IndexWriterConfig(analyzer);
         writer = new IndexWriter(dir, config);
         String[] indexedFields = new String[] {"text"};
-        HeterogeneousLuceneSerializer mapper = new HeterogeneousLuceneSerializer(indexedFields);
-        repo = new IndexRepositoryImpl(fileAndChunkRegion, writer, mapper, stats, null);
+        HeterogeneousLuceneSerializer mapper = new HeterogeneousLuceneSerializer();
+        repo = new IndexRepositoryImpl(fileAndChunkRegion, writer, mapper, stats, null,
+            ((DistributedRegion) fileAndChunkRegion).getLockService(), "NoLockFile", null);
       }
 
       @Override
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/serializer/HeterogeneousLuceneSerializerJUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/serializer/HeterogeneousLuceneSerializerJUnitTest.java
index e7e95ba..a741678 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/serializer/HeterogeneousLuceneSerializerJUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/serializer/HeterogeneousLuceneSerializerJUnitTest.java
@@ -37,11 +37,11 @@ public class HeterogeneousLuceneSerializerJUnitTest {
   @Test
   public void testHeterogeneousObjects() {
     String[] fields = new String[] {"s", "i", "l", "d", "f", "s2", "missing"};
-    HeterogeneousLuceneSerializer mapper = new HeterogeneousLuceneSerializer(fields);
+    HeterogeneousLuceneSerializer mapper = new HeterogeneousLuceneSerializer();
 
     Type1 t1 = new Type1("a", 1, 2L, 3.0, 4.0f);
 
-    Document doc1 = SerializerTestHelper.invokeSerializer(mapper, t1);
+    Document doc1 = SerializerTestHelper.invokeSerializer(mapper, t1, fields);
 
     assertEquals(5, doc1.getFields().size());
     assertEquals("a", doc1.getField("s").stringValue());
@@ -52,7 +52,7 @@ public class HeterogeneousLuceneSerializerJUnitTest {
 
     Type2 t2 = new Type2("a", 1, 2L, 3.0, 4.0f, "b");
 
-    Document doc2 = SerializerTestHelper.invokeSerializer(mapper, t2);
+    Document doc2 = SerializerTestHelper.invokeSerializer(mapper, t2, fields);
 
     assertEquals(6, doc2.getFields().size());
     assertEquals("a", doc2.getField("s").stringValue());
@@ -69,7 +69,7 @@ public class HeterogeneousLuceneSerializerJUnitTest {
     when(pdxInstance.getField("s")).thenReturn("a");
     when(pdxInstance.getField("i")).thenReturn(5);
 
-    Document doc3 = SerializerTestHelper.invokeSerializer(mapper, pdxInstance);
+    Document doc3 = SerializerTestHelper.invokeSerializer(mapper, pdxInstance, fields);
 
     assertEquals(2, doc3.getFields().size());
     assertEquals("a", doc3.getField("s").stringValue());
@@ -78,18 +78,18 @@ public class HeterogeneousLuceneSerializerJUnitTest {
 
   @Test
   public void shouldIndexPrimitiveStringIfRequested() {
-    HeterogeneousLuceneSerializer mapper =
-        new HeterogeneousLuceneSerializer(new String[] {LuceneService.REGION_VALUE_FIELD});
-    Document doc = SerializerTestHelper.invokeSerializer(mapper, "sample value");
+    HeterogeneousLuceneSerializer mapper = new HeterogeneousLuceneSerializer();
+    Document doc = SerializerTestHelper.invokeSerializer(mapper, "sample value",
+        new String[] {LuceneService.REGION_VALUE_FIELD});
     assertEquals(1, doc.getFields().size());
     assertEquals("sample value", doc.getField(LuceneService.REGION_VALUE_FIELD).stringValue());
   }
 
   @Test
   public void shouldIndexPrimitiveNumberIfRequested() {
-    HeterogeneousLuceneSerializer mapper =
-        new HeterogeneousLuceneSerializer(new String[] {LuceneService.REGION_VALUE_FIELD});
-    Document doc = SerializerTestHelper.invokeSerializer(mapper, 53);
+    HeterogeneousLuceneSerializer mapper = new HeterogeneousLuceneSerializer();
+    Document doc = SerializerTestHelper.invokeSerializer(mapper, 53,
+        new String[] {LuceneService.REGION_VALUE_FIELD});
 
     assertEquals(1, doc.getFields().size());
 
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/serializer/PdxFieldMapperJUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/serializer/PdxFieldMapperJUnitTest.java
index eacc314..e31f14d 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/serializer/PdxFieldMapperJUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/serializer/PdxFieldMapperJUnitTest.java
@@ -34,7 +34,7 @@ public class PdxFieldMapperJUnitTest {
   @Test
   public void testWriteFields() {
     String[] fields = new String[] {"s", "i"};
-    PdxLuceneSerializer mapper = new PdxLuceneSerializer(fields);
+    PdxLuceneSerializer mapper = new PdxLuceneSerializer();
 
     PdxInstance pdxInstance = mock(PdxInstance.class);
 
@@ -43,7 +43,7 @@ public class PdxFieldMapperJUnitTest {
     when(pdxInstance.getField("s")).thenReturn("a");
     when(pdxInstance.getField("i")).thenReturn(5);
 
-    Document doc = invokeSerializer(mapper, pdxInstance);
+    Document doc = invokeSerializer(mapper, pdxInstance, fields);
 
     assertEquals(2, doc.getFields().size());
     assertEquals("a", doc.getField("s").stringValue());
@@ -53,7 +53,7 @@ public class PdxFieldMapperJUnitTest {
   @Test
   public void testIgnoreMissing() {
     String[] fields = new String[] {"s", "i", "s2", "o"};
-    PdxLuceneSerializer mapper = new PdxLuceneSerializer(fields);
+    PdxLuceneSerializer mapper = new PdxLuceneSerializer();
 
     PdxInstance pdxInstance = mock(PdxInstance.class);
 
@@ -66,7 +66,7 @@ public class PdxFieldMapperJUnitTest {
     when(pdxInstance.getField("o")).thenReturn(new Object());
     when(pdxInstance.getField("o2")).thenReturn(new Object());
 
-    Document doc = invokeSerializer(mapper, pdxInstance);
+    Document doc = invokeSerializer(mapper, pdxInstance, fields);
 
     assertEquals(2, doc.getFields().size());
     assertEquals("a", doc.getField("s").stringValue());
@@ -76,7 +76,7 @@ public class PdxFieldMapperJUnitTest {
   @Test
   public void testNullField() {
     String[] fields = new String[] {"s", "i"};
-    PdxLuceneSerializer mapper = new PdxLuceneSerializer(fields);
+    PdxLuceneSerializer mapper = new PdxLuceneSerializer();
 
     PdxInstance pdxInstance = mock(PdxInstance.class);
 
@@ -85,7 +85,7 @@ public class PdxFieldMapperJUnitTest {
     when(pdxInstance.getField("s")).thenReturn("a");
     when(pdxInstance.getField("i")).thenReturn(null);
 
-    Document doc = invokeSerializer(mapper, pdxInstance);
+    Document doc = invokeSerializer(mapper, pdxInstance, fields);
 
     assertEquals(1, doc.getFields().size());
     assertEquals("a", doc.getField("s").stringValue());
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/serializer/ReflectionFieldMapperJUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/serializer/ReflectionFieldMapperJUnitTest.java
index 2b6c29e..197be43 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/serializer/ReflectionFieldMapperJUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/serializer/ReflectionFieldMapperJUnitTest.java
@@ -39,7 +39,7 @@ public class ReflectionFieldMapperJUnitTest {
     Type1 type1 = new Type1("a", 1, 2L, 3.0, 4.0f);
     Type2 type2 = new Type2("a", 1, 2L, 3.0, 4.0f, "b");
 
-    Document doc1 = invokeSerializer(mapper1, type1);
+    Document doc1 = invokeSerializer(mapper1, type1, allFields);
 
     assertEquals(5, doc1.getFields().size());
     assertEquals("a", doc1.getField("s").stringValue());
@@ -48,7 +48,7 @@ public class ReflectionFieldMapperJUnitTest {
     assertEquals(3.0, doc1.getField("d").numericValue());
     assertEquals(4.0f, doc1.getField("f").numericValue());
 
-    Document doc2 = invokeSerializer(mapper2, type2);
+    Document doc2 = invokeSerializer(mapper2, type2, allFields);
 
     assertEquals(6, doc2.getFields().size());
     assertEquals("a", doc2.getField("s").stringValue());
@@ -67,7 +67,7 @@ public class ReflectionFieldMapperJUnitTest {
 
     Type2 type2 = new Type2("a", 1, 2L, 3.0, 4.0f, "b");
 
-    Document doc = invokeSerializer(mapper, type2);
+    Document doc = invokeSerializer(mapper, type2, fields);
 
     assertEquals(2, doc.getFields().size());
     assertEquals("a", doc.getField("s").stringValue());
@@ -82,7 +82,7 @@ public class ReflectionFieldMapperJUnitTest {
 
     Type2 type2 = new Type2("a", 1, 2L, 3.0, 4.0f, null);
 
-    Document doc = invokeSerializer(mapper, type2);
+    Document doc = invokeSerializer(mapper, type2, fields);
 
     assertEquals(1, doc.getFields().size());
     assertEquals("a", doc.getField("s").stringValue());
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/serializer/SerializerTestHelper.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/serializer/SerializerTestHelper.java
index 3f5e8d7..4ef06f4 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/serializer/SerializerTestHelper.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/repository/serializer/SerializerTestHelper.java
@@ -19,12 +19,15 @@ import static org.junit.Assert.assertEquals;
 import java.util.Collection;
 
 import org.apache.lucene.document.Document;
-
+import org.mockito.Mockito;
+import org.apache.geode.cache.lucene.LuceneIndex;
 import org.apache.geode.cache.lucene.LuceneSerializer;
 
 public class SerializerTestHelper {
-  static Document invokeSerializer(LuceneSerializer mapper, Object object) {
-    Collection<Document> docs = mapper.toDocuments(object);
+  static Document invokeSerializer(LuceneSerializer mapper, Object object, String[] fields) {
+    LuceneIndex index = Mockito.mock(LuceneIndex.class);
+    Mockito.when(index.getFieldNames()).thenReturn(fields);
+    Collection<Document> docs = mapper.toDocuments(index, object);
     assertEquals(1, docs.size());
     return docs.iterator().next();
   }
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/test/LuceneTestSerializer.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/test/LuceneTestSerializer.java
index 7466b7a..0f2e86c 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/test/LuceneTestSerializer.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/test/LuceneTestSerializer.java
@@ -15,6 +15,7 @@
 package org.apache.geode.cache.lucene.test;
 
 import org.apache.geode.cache.Declarable;
+import org.apache.geode.cache.lucene.LuceneIndex;
 import org.apache.geode.cache.lucene.LuceneSerializer;
 import org.apache.geode.internal.cache.xmlcache.Declarable2;
 import org.apache.lucene.document.Document;
@@ -59,7 +60,7 @@ public class LuceneTestSerializer implements LuceneSerializer {
   }
 
   @Override
-  public Collection<Document> toDocuments(Object value) {
+  public Collection<Document> toDocuments(LuceneIndex index, Object value) {
     return Collections.emptyList();
   }
 }

-- 
To stop receiving notification emails like this one, please contact
['"commits@geode.apache.org" <co...@geode.apache.org>'].