You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by mm...@apache.org on 2016/04/08 19:43:22 UTC

bookkeeper git commit: BOOKKEEPER-880: Make LedgerHandle implement AutoCloseable

Repository: bookkeeper
Updated Branches:
  refs/heads/master 3efde26e0 -> 89b032a1b


BOOKKEEPER-880: Make LedgerHandle implement AutoCloseable

Author: eolivelli <eo...@gmail.com>

Reviewers: Matteo Merli <mm...@apache.org>, Rakesh R <ra...@intel.com>

Closes #33 from eolivelli/BOOKKEEPER-880


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

Branch: refs/heads/master
Commit: 89b032a1b59bebaf1bd48a95c0eb0f3e0caa2519
Parents: 3efde26
Author: eolivelli <eo...@gmail.com>
Authored: Fri Apr 8 10:43:09 2016 -0700
Committer: Matteo Merli <mm...@apache.org>
Committed: Fri Apr 8 10:43:09 2016 -0700

----------------------------------------------------------------------
 .../org/apache/bookkeeper/client/BookKeeper.java |  2 +-
 .../apache/bookkeeper/client/LedgerHandle.java   |  2 +-
 .../apache/bookkeeper/client/BookKeeperTest.java | 19 +++++++++++++++++++
 3 files changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/89b032a1/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java
----------------------------------------------------------------------
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java
index f354bef..101f5e8 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java
@@ -73,7 +73,7 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder;
  *
  */
 
-public class BookKeeper {
+public class BookKeeper implements AutoCloseable {
 
     static final Logger LOG = LoggerFactory.getLogger(BookKeeper.class);
 

http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/89b032a1/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java
----------------------------------------------------------------------
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java
index 9af2db7..dff1f77 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java
@@ -56,7 +56,7 @@ import com.google.common.util.concurrent.RateLimiter;
  * Ledger handle contains ledger metadata and is used to access the read and
  * write operations to a ledger.
  */
-public class LedgerHandle {
+public class LedgerHandle implements AutoCloseable {
     final static Logger LOG = LoggerFactory.getLogger(LedgerHandle.class);
 
     final byte[] ledgerKey;

http://git-wip-us.apache.org/repos/asf/bookkeeper/blob/89b032a1/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperTest.java
----------------------------------------------------------------------
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperTest.java
index a0eab35..e87fdc0 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookKeeperTest.java
@@ -290,4 +290,23 @@ public class BookKeeperTest extends BaseTestCase {
 
         startBKCluster();
     }
+
+    @Test(timeout = 60000)
+    public void testAutoCloseableBookKeeper() throws Exception {
+        ClientConfiguration conf = new ClientConfiguration()
+                .setZkServers(zkUtil.getZooKeeperConnectString());
+        BookKeeper _bkc;
+        try (BookKeeper bkc = new BookKeeper(conf);) {
+            _bkc = bkc;
+            long ledgerId;
+            try (LedgerHandle lh = bkc.createLedger(digestType, "testPasswd".getBytes());) {
+                ledgerId = lh.getId();
+                for (int i = 0; i < 100; i++) {
+                    lh.addEntry("foobar".getBytes());
+                }
+            }
+            Assert.assertTrue("Ledger should be closed!", bkc.isClosed(ledgerId));
+        }
+        Assert.assertTrue("BookKeeper should be closed!", _bkc.closed);
+    }
 }