Repository: bookkeeper Updated Branches: refs/heads/master 3efde26e0 -> 89b032a1b
BOOKKEEPER-880: Make LedgerHandle implement AutoCloseable Author: eolivelli <[email protected]> Reviewers: Matteo Merli <[email protected]>, Rakesh R <[email protected]> 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 <[email protected]> Authored: Fri Apr 8 10:43:09 2016 -0700 Committer: Matteo Merli <[email protected]> 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); + } }
