[GEODE-144] - Adding try-with-resources to cache API.

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

Branch: refs/heads/feature/GEODE-77
Commit: 7f72d8da6bfc97a4f1d4b82727dc6934addfab6a
Parents: b3e2167
Author: William Markito <wmark...@pivotal.io>
Authored: Thu Jul 23 11:39:24 2015 -0700
Committer: William Markito <wmark...@pivotal.io>
Committed: Thu Jul 23 11:41:01 2015 -0700

----------------------------------------------------------------------
 .../gemstone/gemfire/cache/RegionService.java    |  2 +-
 .../gemfire/cache/RegionFactoryJUnitTest.java    | 19 ++++++++++++++++++-
 2 files changed, 19 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/7f72d8da/gemfire-core/src/main/java/com/gemstone/gemfire/cache/RegionService.java
----------------------------------------------------------------------
diff --git 
a/gemfire-core/src/main/java/com/gemstone/gemfire/cache/RegionService.java 
b/gemfire-core/src/main/java/com/gemstone/gemfire/cache/RegionService.java
index 9ea65c0..5d65450 100644
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/cache/RegionService.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/cache/RegionService.java
@@ -39,7 +39,7 @@ import com.gemstone.gemfire.pdx.PdxInstanceFactory;
  * @since 6.5
  * @author darrel
  */
-public interface RegionService {
+public interface RegionService extends AutoCloseable {
   /**
    * the cancellation criterion for this service
    * @return the service's cancellation object

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/7f72d8da/gemfire-core/src/test/java/com/gemstone/gemfire/cache/RegionFactoryJUnitTest.java
----------------------------------------------------------------------
diff --git 
a/gemfire-core/src/test/java/com/gemstone/gemfire/cache/RegionFactoryJUnitTest.java
 
b/gemfire-core/src/test/java/com/gemstone/gemfire/cache/RegionFactoryJUnitTest.java
index 151e9c8..a561066 100644
--- 
a/gemfire-core/src/test/java/com/gemstone/gemfire/cache/RegionFactoryJUnitTest.java
+++ 
b/gemfire-core/src/test/java/com/gemstone/gemfire/cache/RegionFactoryJUnitTest.java
@@ -146,7 +146,7 @@ public class RegionFactoryJUnitTest {
     r1 = factory.create(r1Name);
     assertBasicRegionFunctionality(r1, r1Name);
   }
-  
+
   /**
    * Test RegionFactory with Cache close and DistributedSystem disconnect
    */
@@ -1100,6 +1100,23 @@ public class RegionFactoryJUnitTest {
     assertEquals(2, ra.getPartitionAttributes().getRedundantCopies());
   }
 
+  @Test
+  public void testCacheCloseUsingTryWithResources() throws Exception {
+    Cache extCache;
+
+    // try block creates and close cache
+    try (Cache cache = new CacheFactory(createGemFireProperties()).create()) {
+      extCache = cache;
+      assertEquals(false, cache.isClosed());
+    }
+
+    if (extCache != null) {
+      assertEquals(true, extCache.isClosed());
+    } else {
+      fail("CacheFactory must be created.");
+    }
+  }
+
   private String getName() {
     return getClass().getSimpleName() + "_" + testName.getMethodName();
   }

Reply via email to