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