You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2017/03/01 00:14:03 UTC

[04/34] geode git commit: GEODE-1887: Now Size api goes through ServerProxy when cache is of type client and DataPolicy is Empty. Added a test for both PR and Replicated regions.

GEODE-1887: Now Size api goes through ServerProxy when cache is of type client and DataPolicy is Empty.
Added a test for both PR and Replicated regions.

GEODE-1887: Addressing review comments, refactor test based on the
region type.

GEODE-1887: Spotless fixes.

GEODE-1887: Addressing Review Comments.

GEODE-1887: Spotless


Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/f2721dc8
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/f2721dc8
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/f2721dc8

Branch: refs/heads/GEODE-4160-mockito
Commit: f2721dc81256bcec84e855e9dc52d2f234e745da
Parents: a8757f6
Author: adongre <ad...@apache.org>
Authored: Sat Feb 4 21:34:37 2017 +0530
Committer: adongre <ad...@apache.org>
Committed: Mon Feb 27 18:01:53 2017 +0530

----------------------------------------------------------------------
 .../geode/internal/cache/LocalRegion.java       |  6 ++
 .../tier/sockets/ClientServerMiscDUnitTest.java | 84 +++++++++++++++-----
 2 files changed, 69 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/f2721dc8/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
index 5d5c7e2..382c225 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
@@ -9122,6 +9122,12 @@ public class LocalRegion extends AbstractRegion implements LoaderHelperFactory,
       lockRIReadLock(); // bug #40871 - test sees wrong size for region during RI
     }
     try {
+      if (isClient && getDataPolicy() == DataPolicy.EMPTY) {
+        ServerRegionProxy srp = getServerProxy();
+        if (srp != null) {
+          return srp.size();
+        }
+      }
       return entryCount();
     } finally {
       if (isClient) {

http://git-wip-us.apache.org/repos/asf/geode/blob/f2721dc8/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java
index b4f3185..06ea6ba 100755
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java
@@ -23,20 +23,12 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import junitparams.JUnitParamsRunner;
+import junitparams.Parameters;
 import org.apache.geode.GemFireConfigException;
 import org.apache.geode.GemFireIOException;
-import org.apache.geode.cache.AttributesFactory;
-import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheException;
-import org.apache.geode.cache.CacheWriterException;
-import org.apache.geode.cache.DataPolicy;
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.RegionAttributes;
-import org.apache.geode.cache.Scope;
-import org.apache.geode.cache.client.ClientCacheFactory;
-import org.apache.geode.cache.client.NoAvailableServersException;
-import org.apache.geode.cache.client.Pool;
-import org.apache.geode.cache.client.PoolManager;
+import org.apache.geode.cache.*;
+import org.apache.geode.cache.client.*;
 import org.apache.geode.cache.client.internal.Connection;
 import org.apache.geode.cache.client.internal.Op;
 import org.apache.geode.cache.client.internal.PoolImpl;
@@ -49,15 +41,7 @@ import org.apache.geode.internal.AvailablePort;
 import org.apache.geode.internal.cache.CacheServerImpl;
 import org.apache.geode.internal.cache.GemFireCacheImpl;
 import org.apache.geode.internal.cache.LocalRegion;
-import org.apache.geode.test.dunit.Assert;
-import org.apache.geode.test.dunit.DistributedTestUtils;
-import org.apache.geode.test.dunit.Host;
-import org.apache.geode.test.dunit.IgnoredException;
-import org.apache.geode.test.dunit.LogWriterUtils;
-import org.apache.geode.test.dunit.NetworkUtils;
-import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.Wait;
-import org.apache.geode.test.dunit.WaitCriterion;
+import org.apache.geode.test.dunit.*;
 import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase;
 import org.apache.geode.test.dunit.standalone.VersionManager;
 import org.apache.geode.test.junit.categories.ClientServerTest;
@@ -77,6 +61,7 @@ import java.util.Set;
  * Tests client server corner cases between Region and Pool
  */
 @Category({DistributedTest.class, ClientServerTest.class})
+@RunWith(JUnitParamsRunner.class)
 public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
 
   protected static PoolImpl pool = null;
@@ -773,6 +758,63 @@ public class ClientServerMiscDUnitTest extends JUnit4CacheTestCase {
   }
 
 
+  @Test
+  @Parameters(method = "regionShortcut")
+  public void testProxyRegionClientServerOp(RegionShortcut shortcut) throws Exception {
+    // start server first
+    final String REGION_NAME = "proxyRegionClientServerOp";
+    PORT1 = initServerCache(false);
+    // Create regions on servers.
+    server1.invoke(() -> {
+      Cache cache = CacheFactory.getAnyInstance();
+      Region<Object, Object> region = cache.createRegionFactory(shortcut).create(REGION_NAME);
+      assertNotNull(region);
+    });
+
+    String host = NetworkUtils.getServerHostName(server1.getHost());
+
+    Properties props = new Properties();
+    props.setProperty(MCAST_PORT, "0");
+    props.setProperty(LOCATORS, "");
+    ClientCacheFactory ccf = new ClientCacheFactory(props);
+    ccf.addPoolServer(host, PORT1);
+
+    ClientCache clientCache = ccf.create();
+    Region<Object, Object> clientRegion =
+        clientCache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);
+    assertNotNull(clientRegion);
+
+    // let us populate this region from client.
+    for (int i = 0; i < 10; i++) {
+      clientRegion.put(i, i * 10);
+    }
+    // Verify using gets
+    for (int i = 0; i < 10; i++) {
+      assertEquals(i * 10, clientRegion.get(i));
+    }
+    assertEquals(10, clientRegion.size());
+    assertFalse(clientRegion.isEmpty());
+    // delete all the entries from the server
+    server1.invoke(() -> {
+      Cache cache = CacheFactory.getAnyInstance();
+      Region<Object, Object> region = cache.getRegion(REGION_NAME);
+      assertNotNull(region);
+      for (int i = 0; i < 10; i++) {
+        region.remove(i);
+      }
+    });
+    assertEquals(0, clientRegion.size());
+    assertTrue(clientRegion.isEmpty());
+
+    clientRegion.destroyRegion();
+    clientCache.close();
+  }
+
+  private RegionShortcut[] regionShortcut() {
+    return new RegionShortcut[] {RegionShortcut.PARTITION, RegionShortcut.REPLICATE};
+  }
+
+
   private void createCache(Properties props) throws Exception {
     createCacheV(props);
   }