From 8ed6df9c25869885708dd934f4f96662288af98c Mon Sep 17 00:00:00 2001 From: eolivelli Date: Fri, 8 Apr 2016 09:00:52 +0200 Subject: [PATCH 1/4] BOOKKEEPER-880 Make LedgerHandle implement AutoCloseable --- .../org/apache/bookkeeper/client/BookKeeper.java | 2 +- .../org/apache/bookkeeper/client/LedgerHandle.java | 2 +- .../org/apache/bookkeeper/client/BookKeeperTest.java | 12 ++++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) 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 f354bef0851..101f5e851c4 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 @@ * */ -public class BookKeeper { +public class BookKeeper implements AutoCloseable { static final Logger LOG = LoggerFactory.getLogger(BookKeeper.class); 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 9af2db78eb4..dff1f771b46 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 @@ * 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; 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 a0eab35cc44..8d623758131 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,16 @@ public void readComplete(int rc, LedgerHandle lh, Enumeration seq, startBKCluster(); } + + @Test + public void testAutoclosableBooKeeper() throws Exception { + ClientConfiguration conf = new ClientConfiguration() + .setZkServers(zkUtil.getZooKeeperConnectString()); + try (BookKeeper bkc = new BookKeeper(conf); + LedgerHandle lh = bkc.createLedger(digestType, "testPasswd".getBytes());){ + for (int i = 0; i < 100; i++) { + lh.addEntry("foobar".getBytes()); + } + } + } } From 376cb1ac7971a5acf65205838d7e541693a0b6f9 Mon Sep 17 00:00:00 2001 From: eolivelli Date: Fri, 8 Apr 2016 14:47:25 +0200 Subject: [PATCH 2/4] BOOKKEEPER-880 Make LedgerHandle implement AutoCloseable --- .../bookkeeper/client/BookKeeperTest.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) 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 8d623758131..d456a705994 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 @@ -291,15 +291,19 @@ public void readComplete(int rc, LedgerHandle lh, Enumeration seq, startBKCluster(); } - @Test - public void testAutoclosableBooKeeper() throws Exception { + @Test(timeout = 60000) + public void testAutoCloseableBookKeeper() throws Exception { ClientConfiguration conf = new ClientConfiguration() - .setZkServers(zkUtil.getZooKeeperConnectString()); - try (BookKeeper bkc = new BookKeeper(conf); - LedgerHandle lh = bkc.createLedger(digestType, "testPasswd".getBytes());){ - for (int i = 0; i < 100; i++) { - lh.addEntry("foobar".getBytes()); + .setZkServers(zkUtil.getZooKeeperConnectString()); + try (BookKeeper bkc = new BookKeeper(conf);) { + 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)); } } } From 6bf112ba531b9b0e1bbee4b5901e971d959f0f59 Mon Sep 17 00:00:00 2001 From: eolivelli Date: Fri, 8 Apr 2016 17:09:29 +0200 Subject: [PATCH 3/4] BOOKKEEPER-880 Make LedgerHandle implement AutoCloseable --- .../java/org/apache/bookkeeper/client/BookKeeperTest.java | 4 ++++ 1 file changed, 4 insertions(+) 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 d456a705994..0d4446741e0 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 @@ -295,7 +295,9 @@ public void readComplete(int rc, LedgerHandle lh, Enumeration seq, 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(); @@ -305,5 +307,7 @@ public void testAutoCloseableBookKeeper() throws Exception { } Assert.assertTrue("Ledger should be closed!", bkc.isClosed(ledgerId)); } + Assert.assertTrue("BookKeeper should be closed!", _bkc.closed); + } } From 7a6eb77612937a4e1c6dea4445a06176c4c834ac Mon Sep 17 00:00:00 2001 From: eolivelli Date: Fri, 8 Apr 2016 17:10:48 +0200 Subject: [PATCH 4/4] BOOKKEEPER-880 Make LedgerHandle implement AutoCloseable --- .../test/java/org/apache/bookkeeper/client/BookKeeperTest.java | 1 - 1 file changed, 1 deletion(-) 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 0d4446741e0..e87fdc01328 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 @@ -308,6 +308,5 @@ public void testAutoCloseableBookKeeper() throws Exception { Assert.assertTrue("Ledger should be closed!", bkc.isClosed(ledgerId)); } Assert.assertTrue("BookKeeper should be closed!", _bkc.closed); - } }