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/07 00:24:31 UTC

[geode] branch develop updated: GEODE-3568: User can set a LuceneSerializer through the Java API

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

zhouxj pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new 51b13ab  GEODE-3568: User can set a LuceneSerializer through the Java API
51b13ab is described below

commit 51b13ab96d95af6d72ea2921ce575e8f4ecc97d7
Author: zhouxh <gz...@pivotal.io>
AuthorDate: Wed Sep 6 16:43:24 2017 -0700

    GEODE-3568: User can set a LuceneSerializer through the Java API
    
    This closes #760
---
 .../java/org/apache/geode/cache/lucene/LuceneIndexFactory.java   | 9 +++++++++
 .../geode/cache/lucene/internal/LuceneIndexFactoryImpl.java      | 6 ++++++
 .../repository/serializer/HeterogeneousLuceneSerializer.java     | 5 +++++
 .../lucene/internal/repository/serializer/LuceneSerializer.java  | 6 ++++++
 .../internal/repository/serializer/PdxLuceneSerializer.java      | 7 +++++++
 .../internal/repository/serializer/PrimitiveSerializer.java      | 7 +++++++
 .../repository/serializer/ReflectionLuceneSerializer.java        | 6 ++++++
 7 files changed, 46 insertions(+)

diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/LuceneIndexFactory.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/LuceneIndexFactory.java
index a737cbe..f01ef1b 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/LuceneIndexFactory.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/LuceneIndexFactory.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.cache.lucene;
 
+import org.apache.geode.cache.lucene.internal.repository.serializer.LuceneSerializer;
 import org.apache.lucene.analysis.Analyzer;
 
 import java.util.Map;
@@ -81,4 +82,12 @@ public interface LuceneIndexFactory {
    */
   void create(String indexName, String regionPath);
 
+  /**
+   * Configure the way objects are converted to lucene documents for this lucene index
+   * 
+   * @param luceneSerializer A callback which converts a region value to a lucene document or
+   *        documents to be stored in the index.
+   */
+  public LuceneIndexFactory setLuceneSerializer(LuceneSerializer luceneSerializer);
+
 }
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexFactoryImpl.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexFactoryImpl.java
index b77d8b6..8ffe38c 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexFactoryImpl.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexFactoryImpl.java
@@ -15,6 +15,7 @@
 package org.apache.geode.cache.lucene.internal;
 
 import org.apache.geode.cache.lucene.LuceneIndexFactory;
+import org.apache.geode.cache.lucene.internal.repository.serializer.LuceneSerializer;
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.standard.StandardAnalyzer;
 
@@ -62,4 +63,9 @@ public class LuceneIndexFactoryImpl implements org.apache.geode.cache.lucene.Luc
     service.createIndex(indexName, regionPath, fields);
 
   }
+
+  @Override
+  public LuceneIndexFactory setLuceneSerializer(LuceneSerializer luceneSerializer) {
+    return this;
+  }
 }
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 3c2f8b7..09d3832 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
@@ -15,6 +15,7 @@
 package org.apache.geode.cache.lucene.internal.repository.serializer;
 
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Map;
 
 import org.apache.logging.log4j.Logger;
@@ -102,5 +103,9 @@ public class HeterogeneousLuceneSerializer implements LuceneSerializer {
     }
   }
 
+  @Override
+  public Collection<Document> toDocuments(Object value) {
+    return null;
+  }
 
 }
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/LuceneSerializer.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/LuceneSerializer.java
index fa38f47..8b9b664 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/LuceneSerializer.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/serializer/LuceneSerializer.java
@@ -15,6 +15,8 @@
 
 package org.apache.geode.cache.lucene.internal.repository.serializer;
 
+import java.util.Collection;
+
 import org.apache.lucene.document.Document;
 
 /**
@@ -27,4 +29,8 @@ public interface LuceneSerializer {
    */
   void toDocument(Object value, Document doc);
 
+  /**
+   * Add the fields of the given value to a set of documents
+   */
+  Collection<Document> toDocuments(Object value);
 }
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 f34390c..c9aaed2 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
@@ -18,6 +18,8 @@ package org.apache.geode.cache.lucene.internal.repository.serializer;
 import org.apache.logging.log4j.Logger;
 import org.apache.lucene.document.Document;
 
+import java.util.Collection;
+
 import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.pdx.PdxInstance;
 
@@ -50,4 +52,9 @@ class PdxLuceneSerializer implements LuceneSerializer {
       logger.debug("PdxLuceneSerializer.toDocument:" + doc);
     }
   }
+
+  @Override
+  public Collection<Document> toDocuments(Object value) {
+    return 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 cf644a8..5e30a43 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
@@ -14,6 +14,8 @@
  */
 package org.apache.geode.cache.lucene.internal.repository.serializer;
 
+import java.util.Collection;
+
 import org.apache.geode.cache.lucene.LuceneService;
 
 import org.apache.lucene.document.Document;
@@ -28,4 +30,9 @@ public class PrimitiveSerializer implements LuceneSerializer {
   public void toDocument(final Object value, final Document doc) {
     SerializerUtil.addField(doc, LuceneService.REGION_VALUE_FIELD, value);
   }
+
+  @Override
+  public Collection<Document> toDocuments(Object value) {
+    return null;
+  }
 }
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 07a66fb..05cccc2 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
@@ -18,6 +18,7 @@ package org.apache.geode.cache.lucene.internal.repository.serializer;
 import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -76,4 +77,9 @@ class ReflectionLuceneSerializer implements LuceneSerializer {
       logger.debug("ReflectionLuceneSerializer.toDocument:" + doc);
     }
   }
+
+  @Override
+  public Collection<Document> toDocuments(Object value) {
+    return null;
+  }
 }

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