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

jinmeiliao 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 445c8b7  GEODE-5369: fix for Lucene Stats (#2115)
445c8b7 is described below

commit 445c8b7a4d60f06b096c1d8c9ab0fa0db41537d2
Author: jinmeiliao <[email protected]>
AuthorDate: Tue Jul 10 14:17:41 2018 -0700

    GEODE-5369: fix for Lucene Stats (#2115)
    
    * GEODE-5369: fix for Lucene Stats
    
    Co-authored-by: Mark Hanson <[email protected]>
    
    * more test clean up as what was done in GEODE-4989
    * Change Dunit tests to integration tests
---
 ...ava => LuceneIndexCommandsIntegrationTest.java} | 266 ++++++++++-----------
 ...CommandsWithReindexAllowedIntegrationTest.java} | 151 ++++++------
 2 files changed, 193 insertions(+), 224 deletions(-)

diff --git 
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommandsDUnitTest.java
 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommandsIntegrationTest.java
similarity index 78%
rename from 
geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommandsDUnitTest.java
rename to 
geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommandsIntegrationTest.java
index bded765..2e2dca2 100644
--- 
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommandsDUnitTest.java
+++ 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommandsIntegrationTest.java
@@ -26,7 +26,6 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
 import junitparams.JUnitParamsRunner;
@@ -41,11 +40,11 @@ import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
 
-import org.apache.geode.cache.Cache;
 import org.apache.geode.cache.Region;
 import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.cache.lucene.LuceneIndex;
 import org.apache.geode.cache.lucene.LuceneQuery;
+import org.apache.geode.cache.lucene.LuceneQueryException;
 import org.apache.geode.cache.lucene.LuceneService;
 import org.apache.geode.cache.lucene.LuceneServiceProvider;
 import org.apache.geode.cache.lucene.internal.LuceneIndexCreationProfile;
@@ -58,43 +57,36 @@ import org.apache.geode.management.cli.Result.Status;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
 import org.apache.geode.management.internal.cli.result.CommandResult;
 import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
-import org.apache.geode.test.dunit.rules.ClusterStartupRule;
-import org.apache.geode.test.dunit.rules.MemberVM;
 import org.apache.geode.test.junit.assertions.CommandResultAssert;
-import org.apache.geode.test.junit.categories.DistributedTest;
+import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.apache.geode.test.junit.categories.LuceneTest;
 import org.apache.geode.test.junit.rules.GfshCommandRule;
+import org.apache.geode.test.junit.rules.ServerStarterRule;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 
-@Category({DistributedTest.class, LuceneTest.class})
+@Category({IntegrationTest.class, LuceneTest.class})
 @RunWith(JUnitParamsRunner.class)
 @SuppressWarnings("serial")
-public class LuceneIndexCommandsDUnitTest implements Serializable {
+public class LuceneIndexCommandsIntegrationTest {
 
   @Rule
   public transient GfshCommandRule gfsh = new GfshCommandRule();
 
   @Rule
-  public ClusterStartupRule startupRule = new ClusterStartupRule();
-
-  @Rule
   public SerializableTestName testName = new SerializableTestName();
 
-  protected MemberVM serverVM;
+  @Rule
+  public ServerStarterRule server = new ServerStarterRule();
 
   @Before
   public void before() throws Exception {
-    Properties props = new Properties();
-    props.setProperty(ConfigurationProperties.SERIALIZABLE_OBJECT_FILTER,
-        
"org.apache.geode.cache.lucene.internal.cli.LuceneIndexCommandsWithReindexAllowedDUnitTest"
-            + 
";org.apache.geode.cache.lucene.internal.cli.LuceneIndexCommandsDUnitTest*"
-            + ";org.apache.geode.test.**");
-    serverVM = startupRule.startServerVM(0, x -> 
x.withProperties(props).withJMXManager());
-    connect(serverVM);
-  }
+    server.withProperty(ConfigurationProperties.SERIALIZABLE_OBJECT_FILTER,
+        
"org.apache.geode.cache.lucene.internal.cli.LuceneIndexCommandsWithReindexAllowedIntegrationTest"
+            + 
";org.apache.geode.cache.lucene.internal.cli.LuceneIndexCommandsIntegrationTest*"
+            + ";org.apache.geode.test.**")
+        .withJMXManager().startServer();
 
-  public void connect(MemberVM serverVM) throws Exception {
-    gfsh.connectAndVerify(serverVM.getJmxPort(), 
GfshCommandRule.PortType.jmxManager);
+    gfsh.connectAndVerify(server.getJmxPort(), 
GfshCommandRule.PortType.jmxManager);
   }
 
   @Test
@@ -142,18 +134,22 @@ public class LuceneIndexCommandsDUnitTest implements 
Serializable {
     entries.put("B", new TestObject("ABC", "EFG", "HIJ"));
 
     putEntries(entries, 2);
-    queryAndVerify("field1:value1", "field1", Collections.singletonList("A"));
+    queryAndVerify("field1:value1", "field1");
 
     CommandStringBuilder csb = new 
CommandStringBuilder(LuceneCliStrings.LUCENE_LIST_INDEX);
     csb.addOption(LuceneCliStrings.LUCENE_LIST_INDEX__STATS, "true");
 
-    gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess()
-        .tableHasColumnWithExactValuesInAnyOrder("Index Name", INDEX_NAME)
-        .tableHasColumnWithExactValuesInAnyOrder("Status", "INITIALIZED")
-        .tableHasColumnWithExactValuesInAnyOrder("Region Path", "/region")
-        .tableHasColumnWithExactValuesInAnyOrder("Query Executions", "1")
-        .tableHasColumnWithExactValuesInAnyOrder("Documents", "2");
+    CommandResult result = 
gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess()
+        .tableHasColumnOnlyWithValues("Index Name", INDEX_NAME)
+        .tableHasColumnOnlyWithValues("Status", "INITIALIZED")
+        .tableHasColumnOnlyWithValues("Region Path", "/region")
+        .tableHasColumnOnlyWithValues("Query Executions", "1")
+        .getCommandResult();
 
+    // the document count could be greater than 2
+    List<String> documents = result.getTableColumnValues("Documents");
+    assertThat(documents).hasSize(1);
+    assertThat(Integer.parseInt(documents.get(0))).isGreaterThanOrEqualTo(2);
   }
 
 
@@ -167,13 +163,11 @@ public class LuceneIndexCommandsDUnitTest implements 
Serializable {
     gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess()
         .containsOutput("Successfully created lucene index");
 
-    serverVM.invoke(() -> createRegion());
+    createRegion();
 
-    serverVM.invoke(() -> {
-      LuceneService luceneService = LuceneServiceProvider.get(getCache());
-      final LuceneIndex index = luceneService.getIndex(INDEX_NAME, 
REGION_NAME);
-      assertArrayEquals(new String[] {"field1", "field2", "field3"}, 
index.getFieldNames());
-    });
+    LuceneService luceneService = LuceneServiceProvider.get(server.getCache());
+    final LuceneIndex index = luceneService.getIndex(INDEX_NAME, REGION_NAME);
+    assertArrayEquals(new String[] {"field1", "field2", "field3"}, 
index.getFieldNames());
   }
 
   @Test
@@ -192,17 +186,15 @@ public class LuceneIndexCommandsDUnitTest implements 
Serializable {
     gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess()
         .containsOutput("Successfully created lucene index");
 
-    serverVM.invoke(() -> createRegion());
+    createRegion();
 
+    LuceneService luceneService = LuceneServiceProvider.get(server.getCache());
+    final LuceneIndex index = luceneService.getIndex(INDEX_NAME, REGION_NAME);
+    final Map<String, Analyzer> fieldAnalyzers = index.getFieldAnalyzers();
+    assertEquals(StandardAnalyzer.class, 
fieldAnalyzers.get("field1").getClass());
+    assertEquals(KeywordAnalyzer.class, 
fieldAnalyzers.get("field2").getClass());
+    assertEquals(StandardAnalyzer.class, 
fieldAnalyzers.get("field3").getClass());
 
-    serverVM.invoke(() -> {
-      LuceneService luceneService = LuceneServiceProvider.get(getCache());
-      final LuceneIndex index = luceneService.getIndex(INDEX_NAME, 
REGION_NAME);
-      final Map<String, Analyzer> fieldAnalyzers = index.getFieldAnalyzers();
-      assertEquals(StandardAnalyzer.class, 
fieldAnalyzers.get("field1").getClass());
-      assertEquals(KeywordAnalyzer.class, 
fieldAnalyzers.get("field2").getClass());
-      assertEquals(StandardAnalyzer.class, 
fieldAnalyzers.get("field3").getClass());
-    });
   }
 
   @Test
@@ -217,14 +209,12 @@ public class LuceneIndexCommandsDUnitTest implements 
Serializable {
     gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess()
         .containsOutput("Successfully created lucene index");
 
-    serverVM.invoke(() -> createRegion());
+    createRegion();
 
+    LuceneService luceneService = LuceneServiceProvider.get(server.getCache());
+    final LuceneIndex index = luceneService.getIndex(INDEX_NAME, REGION_NAME);
+    
assertThat(index.getLuceneSerializer()).isInstanceOf(PrimitiveSerializer.class);
 
-    serverVM.invoke(() -> {
-      LuceneService luceneService = LuceneServiceProvider.get(getCache());
-      final LuceneIndex index = luceneService.getIndex(INDEX_NAME, 
REGION_NAME);
-      
assertThat(index.getLuceneSerializer()).isInstanceOf(PrimitiveSerializer.class);
-    });
   }
 
   @Test
@@ -279,17 +269,14 @@ public class LuceneIndexCommandsDUnitTest implements 
Serializable {
     gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess()
         .containsOutput("Successfully created lucene index");
 
-    serverVM.invoke(() -> createRegion());
-
+    createRegion();
 
-    serverVM.invoke(() -> {
-      LuceneService luceneService = LuceneServiceProvider.get(getCache());
-      final LuceneIndex index = luceneService.getIndex(INDEX_NAME, 
REGION_NAME);
-      final Map<String, Analyzer> fieldAnalyzers = index.getFieldAnalyzers();
-      assertEquals(StandardAnalyzer.class, 
fieldAnalyzers.get("field1").getClass());
-      assertEquals(KeywordAnalyzer.class, 
fieldAnalyzers.get("field2").getClass());
-      assertEquals(StandardAnalyzer.class, 
fieldAnalyzers.get("field3").getClass());
-    });
+    LuceneService luceneService = LuceneServiceProvider.get(server.getCache());
+    final LuceneIndex index = luceneService.getIndex(INDEX_NAME, REGION_NAME);
+    final Map<String, Analyzer> fieldAnalyzers = index.getFieldAnalyzers();
+    assertEquals(StandardAnalyzer.class, 
fieldAnalyzers.get("field1").getClass());
+    assertEquals(KeywordAnalyzer.class, 
fieldAnalyzers.get("field2").getClass());
+    assertEquals(StandardAnalyzer.class, 
fieldAnalyzers.get("field3").getClass());
   }
 
   @Test
@@ -301,13 +288,12 @@ public class LuceneIndexCommandsDUnitTest implements 
Serializable {
 
     gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess();
 
-    serverVM.invoke(() -> {
-      LuceneServiceImpl luceneService = (LuceneServiceImpl) 
LuceneServiceProvider.get(getCache());
-      final ArrayList<LuceneIndexCreationProfile> profiles =
-          new ArrayList<>(luceneService.getAllDefinedIndexes());
-      assertEquals(1, profiles.size());
-      assertEquals(INDEX_NAME, profiles.get(0).getIndexName());
-    });
+    LuceneServiceImpl luceneService =
+        (LuceneServiceImpl) LuceneServiceProvider.get(server.getCache());
+    final ArrayList<LuceneIndexCreationProfile> profiles =
+        new ArrayList<>(luceneService.getAllDefinedIndexes());
+    assertEquals(1, profiles.size());
+    assertEquals(INDEX_NAME, profiles.get(0).getIndexName());
   }
 
   @Test
@@ -348,42 +334,41 @@ public class LuceneIndexCommandsDUnitTest implements 
Serializable {
     gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess()
         .containsOutput("Successfully created lucene index");
 
-    serverVM.invoke(() -> {
-      LuceneService luceneService = LuceneServiceProvider.get(getCache());
-      createRegion();
-      final LuceneIndex spaceIndex = luceneService.getIndex("space", 
REGION_NAME);
-      final Map<String, Analyzer> spaceFieldAnalyzers = 
spaceIndex.getFieldAnalyzers();
-
-      final LuceneIndex emptyIndex = luceneService.getIndex("empty", 
REGION_NAME);
-      final Map<String, Analyzer> emptyFieldAnalyzers2 = 
emptyIndex.getFieldAnalyzers();
-
-      final LuceneIndex keywordIndex = luceneService.getIndex("keyword", 
REGION_NAME);
-      final Map<String, Analyzer> keywordFieldAnalyzers = 
keywordIndex.getFieldAnalyzers();
-
-      // Test whitespace analyzers
-      assertEquals(StandardAnalyzer.class.getCanonicalName(),
-          spaceFieldAnalyzers.get("field1").getClass().getCanonicalName());
-      assertEquals(StandardAnalyzer.class.getCanonicalName(),
-          spaceFieldAnalyzers.get("field2").getClass().getCanonicalName());
-      assertEquals(KeywordAnalyzer.class.getCanonicalName(),
-          spaceFieldAnalyzers.get("field3").getClass().getCanonicalName());
-
-      // Test empty analyzers
-      assertEquals(StandardAnalyzer.class.getCanonicalName(),
-          emptyFieldAnalyzers2.get("field1").getClass().getCanonicalName());
-      assertEquals(StandardAnalyzer.class.getCanonicalName(),
-          emptyFieldAnalyzers2.get("field2").getClass().getCanonicalName());
-      assertEquals(KeywordAnalyzer.class.getCanonicalName(),
-          emptyFieldAnalyzers2.get("field3").getClass().getCanonicalName());
-
-      // Test keyword analyzers
-      assertEquals(StandardAnalyzer.class.getCanonicalName(),
-          keywordFieldAnalyzers.get("field1").getClass().getCanonicalName());
-      assertEquals(StandardAnalyzer.class.getCanonicalName(),
-          keywordFieldAnalyzers.get("field2").getClass().getCanonicalName());
-      assertEquals(KeywordAnalyzer.class.getCanonicalName(),
-          keywordFieldAnalyzers.get("field3").getClass().getCanonicalName());
-    });
+    LuceneService luceneService = LuceneServiceProvider.get(server.getCache());
+    createRegion();
+    final LuceneIndex spaceIndex = luceneService.getIndex("space", 
REGION_NAME);
+    final Map<String, Analyzer> spaceFieldAnalyzers = 
spaceIndex.getFieldAnalyzers();
+
+    final LuceneIndex emptyIndex = luceneService.getIndex("empty", 
REGION_NAME);
+    final Map<String, Analyzer> emptyFieldAnalyzers2 = 
emptyIndex.getFieldAnalyzers();
+
+    final LuceneIndex keywordIndex = luceneService.getIndex("keyword", 
REGION_NAME);
+    final Map<String, Analyzer> keywordFieldAnalyzers = 
keywordIndex.getFieldAnalyzers();
+
+    // Test whitespace analyzers
+    assertEquals(StandardAnalyzer.class.getCanonicalName(),
+        spaceFieldAnalyzers.get("field1").getClass().getCanonicalName());
+    assertEquals(StandardAnalyzer.class.getCanonicalName(),
+        spaceFieldAnalyzers.get("field2").getClass().getCanonicalName());
+    assertEquals(KeywordAnalyzer.class.getCanonicalName(),
+        spaceFieldAnalyzers.get("field3").getClass().getCanonicalName());
+
+    // Test empty analyzers
+    assertEquals(StandardAnalyzer.class.getCanonicalName(),
+        emptyFieldAnalyzers2.get("field1").getClass().getCanonicalName());
+    assertEquals(StandardAnalyzer.class.getCanonicalName(),
+        emptyFieldAnalyzers2.get("field2").getClass().getCanonicalName());
+    assertEquals(KeywordAnalyzer.class.getCanonicalName(),
+        emptyFieldAnalyzers2.get("field3").getClass().getCanonicalName());
+
+    // Test keyword analyzers
+    assertEquals(StandardAnalyzer.class.getCanonicalName(),
+        keywordFieldAnalyzers.get("field1").getClass().getCanonicalName());
+    assertEquals(StandardAnalyzer.class.getCanonicalName(),
+        keywordFieldAnalyzers.get("field2").getClass().getCanonicalName());
+    assertEquals(KeywordAnalyzer.class.getCanonicalName(),
+        keywordFieldAnalyzers.get("field3").getClass().getCanonicalName());
+
   }
 
   @Test
@@ -406,7 +391,7 @@ public class LuceneIndexCommandsDUnitTest implements 
Serializable {
         PrimitiveSerializer.class.getCanonicalName());
 
     gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess();
-    serverVM.invoke(() -> createRegion());
+    createRegion();
 
     csb = new CommandStringBuilder(LuceneCliStrings.LUCENE_DESCRIBE_INDEX);
     csb.addOption(LuceneCliStrings.LUCENE__INDEX_NAME, INDEX_NAME);
@@ -575,7 +560,7 @@ public class LuceneIndexCommandsDUnitTest implements 
Serializable {
 
   @Test
   public void searchWithoutIndexShouldReturnError() throws Exception {
-    serverVM.invoke(() -> createRegion());
+    createRegion();
 
     CommandStringBuilder csb = new 
CommandStringBuilder(LuceneCliStrings.LUCENE_SEARCH_INDEX);
     csb.addOption(LuceneCliStrings.LUCENE__INDEX_NAME, INDEX_NAME);
@@ -653,7 +638,7 @@ public class LuceneIndexCommandsDUnitTest implements 
Serializable {
 
   @Test
   public void testDestroyNonExistentSingleIndex() throws Exception {
-    serverVM.invoke(() -> createRegion());
+    createRegion();
     String expectedStatus = 
LocalizedStrings.LuceneService_INDEX_0_NOT_FOUND_IN_REGION_1
         .toLocalizedString(new Object[] {INDEX_NAME, '/' + REGION_NAME});
 
@@ -663,7 +648,7 @@ public class LuceneIndexCommandsDUnitTest implements 
Serializable {
 
   @Test
   public void testDestroyNonExistentIndexes() throws Exception {
-    serverVM.invoke(() -> createRegion());
+    createRegion();
 
     String expectedOutput = 
LocalizedStrings.LuceneService_NO_INDEXES_WERE_FOUND_IN_REGION_0
         .toLocalizedString(new Object[] {"/region"});
@@ -672,30 +657,26 @@ public class LuceneIndexCommandsDUnitTest implements 
Serializable {
   }
 
   protected void createRegion() {
-    
getCache().createRegionFactory(RegionShortcut.PARTITION).create(REGION_NAME);
+    
server.getCache().createRegionFactory(RegionShortcut.PARTITION).create(REGION_NAME);
   }
 
   private void createIndex() {
-    serverVM.invoke(() -> {
-      LuceneService luceneService = 
LuceneServiceProvider.get(ClusterStartupRule.getCache());
-      Map<String, Analyzer> fieldAnalyzers = new HashMap();
-      fieldAnalyzers.put("field1", new StandardAnalyzer());
-      fieldAnalyzers.put("field2", new KeywordAnalyzer());
-      fieldAnalyzers.put("field3", null);
-      
luceneService.createIndexFactory().setFields(fieldAnalyzers).create(INDEX_NAME, 
REGION_NAME);
-      createRegion();
-    });
+    LuceneService luceneService = LuceneServiceProvider.get(server.getCache());
+    Map<String, Analyzer> fieldAnalyzers = new HashMap();
+    fieldAnalyzers.put("field1", new StandardAnalyzer());
+    fieldAnalyzers.put("field2", new KeywordAnalyzer());
+    fieldAnalyzers.put("field3", null);
+    
luceneService.createIndexFactory().setFields(fieldAnalyzers).create(INDEX_NAME, 
REGION_NAME);
+    createRegion();
   }
 
   private void createIndexWithoutRegion() {
-    serverVM.invoke(() -> {
-      LuceneService luceneService = 
LuceneServiceProvider.get(ClusterStartupRule.getCache());
-      Map<String, Analyzer> fieldAnalyzers = new HashMap();
-      fieldAnalyzers.put("field1", new StandardAnalyzer());
-      fieldAnalyzers.put("field2", new KeywordAnalyzer());
-      fieldAnalyzers.put("field3", null);
-      
luceneService.createIndexFactory().setFields(fieldAnalyzers).create(INDEX_NAME, 
REGION_NAME);
-    });
+    LuceneService luceneService = LuceneServiceProvider.get(server.getCache());
+    Map<String, Analyzer> fieldAnalyzers = new HashMap();
+    fieldAnalyzers.put("field1", new StandardAnalyzer());
+    fieldAnalyzers.put("field2", new KeywordAnalyzer());
+    fieldAnalyzers.put("field3", null);
+    
luceneService.createIndexFactory().setFields(fieldAnalyzers).create(INDEX_NAME, 
REGION_NAME);
   }
 
   private void writeToLog(String text, String resultAsString) {
@@ -703,26 +684,23 @@ public class LuceneIndexCommandsDUnitTest implements 
Serializable {
     System.out.println(text + ":" + resultAsString);
   }
 
-  private void putEntries(Map<String, TestObject> entries, int 
countOfDocuments) {
-    serverVM.invoke(() -> {
-      LuceneService luceneService = LuceneServiceProvider.get(getCache());
-      Region region = getCache().getRegion(REGION_NAME);
-      region.putAll(entries);
-      luceneService.waitUntilFlushed(INDEX_NAME, REGION_NAME, 60000, 
TimeUnit.MILLISECONDS);
-      LuceneIndexImpl index = (LuceneIndexImpl) 
luceneService.getIndex(INDEX_NAME, REGION_NAME);
-      Awaitility.await().atMost(65, TimeUnit.SECONDS).until(
-          () -> assertEquals(true, countOfDocuments <= 
index.getIndexStats().getDocuments()));
-
-    });
+  private void putEntries(Map<String, TestObject> entries, int 
countOfDocuments)
+      throws InterruptedException {
+    LuceneService luceneService = LuceneServiceProvider.get(server.getCache());
+    Region region = server.getCache().getRegion(REGION_NAME);
+    region.putAll(entries);
+    luceneService.waitUntilFlushed(INDEX_NAME, REGION_NAME, 60000, 
TimeUnit.MILLISECONDS);
+    LuceneIndexImpl index = (LuceneIndexImpl) 
luceneService.getIndex(INDEX_NAME, REGION_NAME);
+    Awaitility.await().atMost(65, TimeUnit.SECONDS).until(
+        () -> index.getIndexStats().getDocuments() >= countOfDocuments);
   }
 
-  private void queryAndVerify(String queryString, String defaultField, 
List<String> expectedKeys) {
-    serverVM.invoke(() -> {
-      LuceneService luceneService = LuceneServiceProvider.get(getCache());
-      final LuceneQuery<String, TestObject> query = 
luceneService.createLuceneQueryFactory()
-          .create(INDEX_NAME, REGION_NAME, queryString, defaultField);
-      assertEquals(Collections.singletonList("A"), query.findKeys());
-    });
+  private void queryAndVerify(String queryString, String defaultField)
+      throws LuceneQueryException {
+    LuceneService luceneService = LuceneServiceProvider.get(server.getCache());
+    final LuceneQuery<String, TestObject> query = 
luceneService.createLuceneQueryFactory()
+        .create(INDEX_NAME, REGION_NAME, queryString, defaultField);
+    assertEquals(Collections.singletonList("A"), query.findKeys());
   }
 
   private String getRegionNotFoundErrorMessage(String regionPath) {
@@ -731,10 +709,6 @@ public class LuceneIndexCommandsDUnitTest implements 
Serializable {
         new Object[] {regionPath});
   }
 
-  protected static Cache getCache() {
-    return ClusterStartupRule.getCache();
-  }
-
   protected static class TestObject implements Serializable {
     private String field1;
     private String field2;
diff --git 
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommandsWithReindexAllowedDUnitTest.java
 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommandsWithReindexAllowedIntegrationTest.java
similarity index 65%
rename from 
geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommandsWithReindexAllowedDUnitTest.java
rename to 
geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommandsWithReindexAllowedIntegrationTest.java
index e2a29a1..2b3a703 100644
--- 
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommandsWithReindexAllowedDUnitTest.java
+++ 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommandsWithReindexAllowedIntegrationTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertEquals;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.core.KeywordAnalyzer;
@@ -38,21 +39,21 @@ import org.apache.geode.cache.lucene.LuceneServiceProvider;
 import org.apache.geode.cache.lucene.internal.LuceneServiceImpl;
 import 
org.apache.geode.cache.lucene.internal.repository.serializer.PrimitiveSerializer;
 import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
-import org.apache.geode.test.dunit.AsyncInvocation;
-import org.apache.geode.test.junit.categories.DistributedTest;
+import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.apache.geode.test.junit.categories.LuceneTest;
 
-@Category({DistributedTest.class, LuceneTest.class})
-public class LuceneIndexCommandsWithReindexAllowedDUnitTest extends 
LuceneIndexCommandsDUnitTest {
+@Category({IntegrationTest.class, LuceneTest.class})
+public class LuceneIndexCommandsWithReindexAllowedIntegrationTest
+    extends LuceneIndexCommandsIntegrationTest {
 
   @After
   public void clearLuceneReindexFeatureFlag() {
-    serverVM.invoke(() -> LuceneServiceImpl.LUCENE_REINDEX = false);
+    LuceneServiceImpl.LUCENE_REINDEX = false;
   }
 
   @Before
   public void setLuceneReindexFeatureFlag() {
-    serverVM.invoke(() -> LuceneServiceImpl.LUCENE_REINDEX = true);
+    LuceneServiceImpl.LUCENE_REINDEX = true;
   }
 
   @Test
@@ -63,21 +64,23 @@ public class LuceneIndexCommandsWithReindexAllowedDUnitTest 
extends LuceneIndexC
     csb.addOption(LuceneCliStrings.LUCENE__REGION_PATH, REGION_NAME);
     csb.addOption(LuceneCliStrings.LUCENE_CREATE_INDEX__FIELD, 
"__REGION_VALUE_FIELD");
 
-    serverVM.invoke(() -> createRegion());
-    AsyncInvocation ai = serverVM.invokeAsync(() -> {
+    createRegion();
+    AtomicBoolean stopped = new AtomicBoolean();
+    Thread ai = new Thread(() -> {
       int count = 0;
-      while (true) {
-        getCache().getRegion(REGION_NAME).put(count, "hello world" + count);
+      while (!stopped.get()) {
+        server.getCache().getRegion(REGION_NAME).put(count, "hello world" + 
count);
+        count++;
       }
     });
+    ai.start();
 
     gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess()
         .containsOutput("Successfully created lucene index");
     csb = new CommandStringBuilder(LuceneCliStrings.LUCENE_LIST_INDEX);
     csb.addOption(LuceneCliStrings.LUCENE_LIST_INDEX__STATS, "true");
     gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess();
-    ai.cancel(true);
-
+    stopped.set(true);
   }
 
   @Test
@@ -87,15 +90,14 @@ public class LuceneIndexCommandsWithReindexAllowedDUnitTest 
extends LuceneIndexC
     csb.addOption(LuceneCliStrings.LUCENE__REGION_PATH, REGION_NAME);
     csb.addOption(LuceneCliStrings.LUCENE_CREATE_INDEX__FIELD, 
"field1,field2,field3");
 
-    serverVM.invoke(() -> createRegion());
+    createRegion();
     gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess()
         .containsOutput("Successfully created lucene index");
 
-    serverVM.invoke(() -> {
-      LuceneService luceneService = LuceneServiceProvider.get(getCache());
-      final LuceneIndex index = luceneService.getIndex(INDEX_NAME, 
REGION_NAME);
-      assertArrayEquals(new String[] {"field1", "field2", "field3"}, 
index.getFieldNames());
-    });
+    LuceneService luceneService = LuceneServiceProvider.get(server.getCache());
+    final LuceneIndex index = luceneService.getIndex(INDEX_NAME, REGION_NAME);
+    assertArrayEquals(new String[] {"field1", "field2", "field3"}, 
index.getFieldNames());
+
   }
 
 
@@ -112,20 +114,18 @@ public class 
LuceneIndexCommandsWithReindexAllowedDUnitTest extends LuceneIndexC
     csb.addOption(LuceneCliStrings.LUCENE_CREATE_INDEX__FIELD, 
"field1,field2,field3");
     csb.addOption(LuceneCliStrings.LUCENE_CREATE_INDEX__ANALYZER, 
String.join(",", analyzerNames));
 
-    serverVM.invoke(() -> createRegion());
+    createRegion();
 
     gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess()
         .containsOutput("Successfully created lucene index");
 
+    LuceneService luceneService = LuceneServiceProvider.get(server.getCache());
+    final LuceneIndex index = luceneService.getIndex(INDEX_NAME, REGION_NAME);
+    final Map<String, Analyzer> fieldAnalyzers = index.getFieldAnalyzers();
+    assertEquals(StandardAnalyzer.class, 
fieldAnalyzers.get("field1").getClass());
+    assertEquals(KeywordAnalyzer.class, 
fieldAnalyzers.get("field2").getClass());
+    assertEquals(StandardAnalyzer.class, 
fieldAnalyzers.get("field3").getClass());
 
-    serverVM.invoke(() -> {
-      LuceneService luceneService = LuceneServiceProvider.get(getCache());
-      final LuceneIndex index = luceneService.getIndex(INDEX_NAME, 
REGION_NAME);
-      final Map<String, Analyzer> fieldAnalyzers = index.getFieldAnalyzers();
-      assertEquals(StandardAnalyzer.class, 
fieldAnalyzers.get("field1").getClass());
-      assertEquals(KeywordAnalyzer.class, 
fieldAnalyzers.get("field2").getClass());
-      assertEquals(StandardAnalyzer.class, 
fieldAnalyzers.get("field3").getClass());
-    });
   }
 
   @Test
@@ -137,16 +137,14 @@ public class 
LuceneIndexCommandsWithReindexAllowedDUnitTest extends LuceneIndexC
     csb.addOption(LuceneCliStrings.LUCENE_CREATE_INDEX__SERIALIZER,
         PrimitiveSerializer.class.getCanonicalName());
 
-    serverVM.invoke(() -> createRegion());
+    createRegion();
 
     gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess()
         .containsOutput("Successfully created lucene index");
 
-    serverVM.invoke(() -> {
-      LuceneService luceneService = LuceneServiceProvider.get(getCache());
-      final LuceneIndex index = luceneService.getIndex(INDEX_NAME, 
REGION_NAME);
-      
assertThat(index.getLuceneSerializer()).isInstanceOf(PrimitiveSerializer.class);
-    });
+    LuceneService luceneService = LuceneServiceProvider.get(server.getCache());
+    final LuceneIndex index = luceneService.getIndex(INDEX_NAME, REGION_NAME);
+    
assertThat(index.getLuceneSerializer()).isInstanceOf(PrimitiveSerializer.class);
   }
 
   @Test
@@ -163,24 +161,22 @@ public class 
LuceneIndexCommandsWithReindexAllowedDUnitTest extends LuceneIndexC
     csb.addOption(LuceneCliStrings.LUCENE_CREATE_INDEX__ANALYZER,
         "\"org.apache.lucene.analysis.standard.StandardAnalyzer, 
org.apache.lucene.analysis.core.KeywordAnalyzer, 
org.apache.lucene.analysis.standard.StandardAnalyzer\"");
 
-    serverVM.invoke(() -> createRegion());
+    createRegion();
     gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess()
         .containsOutput("Successfully created lucene index");
 
-    serverVM.invoke(() -> {
-      LuceneService luceneService = LuceneServiceProvider.get(getCache());
-      final LuceneIndex index = luceneService.getIndex(INDEX_NAME, 
REGION_NAME);
-      final Map<String, Analyzer> fieldAnalyzers = index.getFieldAnalyzers();
-      assertEquals(StandardAnalyzer.class, 
fieldAnalyzers.get("field1").getClass());
-      assertEquals(KeywordAnalyzer.class, 
fieldAnalyzers.get("field2").getClass());
-      assertEquals(StandardAnalyzer.class, 
fieldAnalyzers.get("field3").getClass());
-    });
+    LuceneService luceneService = LuceneServiceProvider.get(server.getCache());
+    final LuceneIndex index = luceneService.getIndex(INDEX_NAME, REGION_NAME);
+    final Map<String, Analyzer> fieldAnalyzers = index.getFieldAnalyzers();
+    assertEquals(StandardAnalyzer.class, 
fieldAnalyzers.get("field1").getClass());
+    assertEquals(KeywordAnalyzer.class, 
fieldAnalyzers.get("field2").getClass());
+    assertEquals(StandardAnalyzer.class, 
fieldAnalyzers.get("field3").getClass());
   }
 
   @Test
   public void 
whenLuceneReindexAllowedCreateIndexWithWhitespaceOrDefaultKeywordAnalyzerShouldUseStandardAnalyzer()
 {
 
-    serverVM.invoke(() -> createRegion());
+    createRegion();
 
     // Test whitespace analyzer name
     String analyzerList = StandardAnalyzer.class.getCanonicalName() + ",     ,"
@@ -218,41 +214,40 @@ public class 
LuceneIndexCommandsWithReindexAllowedDUnitTest extends LuceneIndexC
     gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess()
         .containsOutput("Successfully created lucene index");
 
-    serverVM.invoke(() -> {
-      LuceneService luceneService = LuceneServiceProvider.get(getCache());
-      final LuceneIndex spaceIndex = luceneService.getIndex("space", 
REGION_NAME);
-      final Map<String, Analyzer> spaceFieldAnalyzers = 
spaceIndex.getFieldAnalyzers();
-
-      final LuceneIndex emptyIndex = luceneService.getIndex("empty", 
REGION_NAME);
-      final Map<String, Analyzer> emptyFieldAnalyzers2 = 
emptyIndex.getFieldAnalyzers();
-
-      final LuceneIndex keywordIndex = luceneService.getIndex("keyword", 
REGION_NAME);
-      final Map<String, Analyzer> keywordFieldAnalyzers = 
keywordIndex.getFieldAnalyzers();
-
-      // Test whitespace analyzers
-      assertEquals(StandardAnalyzer.class.getCanonicalName(),
-          spaceFieldAnalyzers.get("field1").getClass().getCanonicalName());
-      assertEquals(StandardAnalyzer.class.getCanonicalName(),
-          spaceFieldAnalyzers.get("field2").getClass().getCanonicalName());
-      assertEquals(KeywordAnalyzer.class.getCanonicalName(),
-          spaceFieldAnalyzers.get("field3").getClass().getCanonicalName());
-
-      // Test empty analyzers
-      assertEquals(StandardAnalyzer.class.getCanonicalName(),
-          emptyFieldAnalyzers2.get("field1").getClass().getCanonicalName());
-      assertEquals(StandardAnalyzer.class.getCanonicalName(),
-          emptyFieldAnalyzers2.get("field2").getClass().getCanonicalName());
-      assertEquals(KeywordAnalyzer.class.getCanonicalName(),
-          emptyFieldAnalyzers2.get("field3").getClass().getCanonicalName());
-
-      // Test keyword analyzers
-      assertEquals(StandardAnalyzer.class.getCanonicalName(),
-          keywordFieldAnalyzers.get("field1").getClass().getCanonicalName());
-      assertEquals(StandardAnalyzer.class.getCanonicalName(),
-          keywordFieldAnalyzers.get("field2").getClass().getCanonicalName());
-      assertEquals(KeywordAnalyzer.class.getCanonicalName(),
-          keywordFieldAnalyzers.get("field3").getClass().getCanonicalName());
-    });
+    LuceneService luceneService = LuceneServiceProvider.get(server.getCache());
+    final LuceneIndex spaceIndex = luceneService.getIndex("space", 
REGION_NAME);
+    final Map<String, Analyzer> spaceFieldAnalyzers = 
spaceIndex.getFieldAnalyzers();
+
+    final LuceneIndex emptyIndex = luceneService.getIndex("empty", 
REGION_NAME);
+    final Map<String, Analyzer> emptyFieldAnalyzers2 = 
emptyIndex.getFieldAnalyzers();
+
+    final LuceneIndex keywordIndex = luceneService.getIndex("keyword", 
REGION_NAME);
+    final Map<String, Analyzer> keywordFieldAnalyzers = 
keywordIndex.getFieldAnalyzers();
+
+    // Test whitespace analyzers
+    assertEquals(StandardAnalyzer.class.getCanonicalName(),
+        spaceFieldAnalyzers.get("field1").getClass().getCanonicalName());
+    assertEquals(StandardAnalyzer.class.getCanonicalName(),
+        spaceFieldAnalyzers.get("field2").getClass().getCanonicalName());
+    assertEquals(KeywordAnalyzer.class.getCanonicalName(),
+        spaceFieldAnalyzers.get("field3").getClass().getCanonicalName());
+
+    // Test empty analyzers
+    assertEquals(StandardAnalyzer.class.getCanonicalName(),
+        emptyFieldAnalyzers2.get("field1").getClass().getCanonicalName());
+    assertEquals(StandardAnalyzer.class.getCanonicalName(),
+        emptyFieldAnalyzers2.get("field2").getClass().getCanonicalName());
+    assertEquals(KeywordAnalyzer.class.getCanonicalName(),
+        emptyFieldAnalyzers2.get("field3").getClass().getCanonicalName());
+
+    // Test keyword analyzers
+    assertEquals(StandardAnalyzer.class.getCanonicalName(),
+        keywordFieldAnalyzers.get("field1").getClass().getCanonicalName());
+    assertEquals(StandardAnalyzer.class.getCanonicalName(),
+        keywordFieldAnalyzers.get("field2").getClass().getCanonicalName());
+    assertEquals(KeywordAnalyzer.class.getCanonicalName(),
+        keywordFieldAnalyzers.get("field3").getClass().getCanonicalName());
+
   }
 
 }

Reply via email to