You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by si...@apache.org on 2018/01/30 20:10:24 UTC
[bookkeeper] branch master updated: Lombok doesn't work with groovy
This is an automated email from the ASF dual-hosted git repository.
sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
The following commit(s) were added to refs/heads/master by this push:
new a7fcf36 Lombok doesn't work with groovy
a7fcf36 is described below
commit a7fcf36ccf7485e8d169776950102c8a31a513f8
Author: Ivan Kelly <iv...@apache.org>
AuthorDate: Tue Jan 30 12:10:17 2018 -0800
Lombok doesn't work with groovy
So the Cleanup annotation does nothing. I've changed it in the BC
test to a traditional try {} finally {} since groovy doesn't do
try-with-resources either, and its equivalent doesn't do multiple
objects.
Master Issue: #903
Author: Ivan Kelly <iv...@apache.org>
Reviewers: Enrico Olivelli <eo...@gmail.com>, Sijie Guo <si...@apache.org>
This closes #1084 from ivankelly/lombok-dont-work
---
.../TestCompatHierarchicalLedgerManager.groovy | 65 ++++----
.../TestCompatUpgradeWithHostnameBookieId.groovy | 106 +++++++------
...mpatUpgradeOldServerInClusterWithCookies.groovy | 68 ++++----
.../TestCompatRecoveryNoPassword.groovy | 176 +++++++++++----------
.../backwardcompat/TestCompatUpgradeDirect.groovy | 120 +++++++-------
.../tests/backwardcompat/TestCompatUpgrade.groovy | 81 +++++-----
6 files changed, 325 insertions(+), 291 deletions(-)
diff --git a/tests/backward-compat/hierarchical-ledger-manager/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatHierarchicalLedgerManager.groovy b/tests/backward-compat/hierarchical-ledger-manager/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatHierarchicalLedgerManager.groovy
index aa9a401..f376144 100644
--- a/tests/backward-compat/hierarchical-ledger-manager/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatHierarchicalLedgerManager.groovy
+++ b/tests/backward-compat/hierarchical-ledger-manager/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatHierarchicalLedgerManager.groovy
@@ -19,8 +19,6 @@ package org.apache.bookkeeper.tests.backwardcompat
import com.github.dockerjava.api.DockerClient
-import lombok.Cleanup
-
import org.apache.bookkeeper.tests.BookKeeperClusterUtils
import org.apache.bookkeeper.tests.MavenClassLoader
@@ -60,35 +58,42 @@ class TestCompatHierarchicalLedgerManager {
Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, "4.2.0"))
String zookeeper = BookKeeperClusterUtils.zookeeperConnectString(docker)
- int numEntries = 10
- @Cleanup def v420CL = MavenClassLoader.forBookKeeperVersion("4.2.0")
- @Cleanup def v420BK = v420CL.newBookKeeper(zookeeper)
-
- def ledger0 = v420BK.createLedger(3, 2, v420CL.digestType("CRC32"), PASSWD)
- for (int i = 0; i < numEntries; i++) {
- ledger0.addEntry(("foobar" + i).getBytes())
- }
- ledger0.close()
-
- Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
-
- BookKeeperClusterUtils.updateAllBookieConf(docker, currentVersion,
- "ledgerManagerFactoryClass",
- "org.apache.bookkeeper.meta.HierarchicalLedgerManagerFactory")
- Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
-
- @Cleanup def currentCL = MavenClassLoader.forBookKeeperVersion(currentVersion)
- @Cleanup def currentBK = currentCL.newBookKeeper(zookeeper)
- def ledger1 = currentBK.openLedger(ledger0.getId(), currentCL.digestType("CRC32"), PASSWD)
- Assert.assertEquals(numEntries, ledger1.getLastAddConfirmed() + 1 /* counts from 0 */)
- def entries = ledger1.readEntries(0, ledger1.getLastAddConfirmed())
- int j = 0
- while (entries.hasMoreElements()) {
- def e = entries.nextElement()
- Assert.assertEquals(new String(e.getEntry()), "foobar"+ j)
- j++
+ def v420CL = MavenClassLoader.forBookKeeperVersion("4.2.0")
+ def v420BK = v420CL.newBookKeeper(zookeeper)
+ def currentCL = MavenClassLoader.forBookKeeperVersion(currentVersion)
+ def currentBK = currentCL.newBookKeeper(zookeeper)
+ try {
+ int numEntries = 10
+
+ def ledger0 = v420BK.createLedger(3, 2, v420CL.digestType("CRC32"), PASSWD)
+ for (int i = 0; i < numEntries; i++) {
+ ledger0.addEntry(("foobar" + i).getBytes())
+ }
+ ledger0.close()
+
+ Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
+
+ BookKeeperClusterUtils.updateAllBookieConf(docker, currentVersion,
+ "ledgerManagerFactoryClass",
+ "org.apache.bookkeeper.meta.HierarchicalLedgerManagerFactory")
+ Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
+
+ def ledger1 = currentBK.openLedger(ledger0.getId(), currentCL.digestType("CRC32"), PASSWD)
+ Assert.assertEquals(numEntries, ledger1.getLastAddConfirmed() + 1 /* counts from 0 */)
+ def entries = ledger1.readEntries(0, ledger1.getLastAddConfirmed())
+ int j = 0
+ while (entries.hasMoreElements()) {
+ def e = entries.nextElement()
+ Assert.assertEquals(new String(e.getEntry()), "foobar"+ j)
+ j++
+ }
+ ledger1.close()
+ } finally {
+ currentBK.close()
+ currentCL.close()
+ v420BK.close()
+ v420CL.close()
}
- ledger1.close()
}
}
diff --git a/tests/backward-compat/hostname-bookieid/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeWithHostnameBookieId.groovy b/tests/backward-compat/hostname-bookieid/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeWithHostnameBookieId.groovy
index c86e7d0..134d057 100644
--- a/tests/backward-compat/hostname-bookieid/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeWithHostnameBookieId.groovy
+++ b/tests/backward-compat/hostname-bookieid/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeWithHostnameBookieId.groovy
@@ -19,8 +19,6 @@ package org.apache.bookkeeper.tests.backwardcompat
import com.github.dockerjava.api.DockerClient
-import lombok.Cleanup
-
import org.apache.bookkeeper.tests.BookKeeperClusterUtils
import org.apache.bookkeeper.tests.MavenClassLoader
@@ -80,52 +78,64 @@ class TestCompatUpgradeWithHostnameBookieId {
Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, "4.1.0"))
- // Write a ledger with v4.1.0 client
- @Cleanup def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
- @Cleanup def v410BK = v410CL.newBookKeeper(zookeeper)
-
- def ledger410 = v410BK.createLedger(3, 2, v410CL.digestType("CRC32"), PASSWD)
- writeEntries(ledger410, numEntries)
- ledger410.close()
-
- // Write a ledger with v4.2.0 client
- @Cleanup def v420CL = MavenClassLoader.forBookKeeperVersion("4.2.0")
- @Cleanup def v420BK = v420CL.newBookKeeper(zookeeper)
-
- def ledger420 = v420BK.createLedger(3, 2, v420CL.digestType("CRC32"), PASSWD)
- writeEntries(ledger420, numEntries)
- ledger420.close()
-
- // Stop bookies, change config to use hostname as id, restart with latest version
- Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
- BookKeeperClusterUtils.updateAllBookieConf(docker, currentVersion, "useHostNameAsBookieID", "true")
- Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
-
- // Ensure we can read ledger with v4.1.0 client
- def ledger410r = v410BK.openLedger(ledger410.getId(), v410CL.digestType("CRC32"), PASSWD)
- assertHasEntries(ledger410r, numEntries)
- ledger410r.close()
-
- // Ensure we can read ledger with v4.2.0 client
- def ledger420r = v420BK.openLedger(ledger420.getId(), v420CL.digestType("CRC32"), PASSWD)
- assertHasEntries(ledger420r, numEntries)
- ledger420r.close()
-
- // Ensure we can write and read new ledgers with all client versions
- @Cleanup def currentCL = MavenClassLoader.forBookKeeperVersion(currentVersion)
- @Cleanup def currentBK = currentCL.newBookKeeper(zookeeper)
- oldClientVersions.each{
- LOG.info("Testing ledger creation for version {}", it)
- @Cleanup def oldCL = MavenClassLoader.forBookKeeperVersion(it)
- @Cleanup def oldBK = oldCL.newBookKeeper(zookeeper)
-
- def ledger0 = oldBK.createLedger(3, 2, oldCL.digestType("CRC32"), PASSWD)
- writeEntries(ledger0, numEntries)
- ledger0.close()
-
- def ledger1 = currentBK.openLedger(ledger0.getId(), currentCL.digestType("CRC32"), PASSWD)
- assertHasEntries(ledger1, numEntries)
- ledger1.close()
+ def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
+ def v410BK = v410CL.newBookKeeper(zookeeper)
+ def v420CL = MavenClassLoader.forBookKeeperVersion("4.2.0")
+ def v420BK = v420CL.newBookKeeper(zookeeper)
+ def currentCL = MavenClassLoader.forBookKeeperVersion(currentVersion)
+ def currentBK = currentCL.newBookKeeper(zookeeper)
+
+ try {
+ // Write a ledger with v4.1.0 client
+ def ledger410 = v410BK.createLedger(3, 2, v410CL.digestType("CRC32"), PASSWD)
+ writeEntries(ledger410, numEntries)
+ ledger410.close()
+
+ // Write a ledger with v4.2.0 client
+ def ledger420 = v420BK.createLedger(3, 2, v420CL.digestType("CRC32"), PASSWD)
+ writeEntries(ledger420, numEntries)
+ ledger420.close()
+
+ // Stop bookies, change config to use hostname as id, restart with latest version
+ Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
+ BookKeeperClusterUtils.updateAllBookieConf(docker, currentVersion, "useHostNameAsBookieID", "true")
+ Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
+
+ // Ensure we can read ledger with v4.1.0 client
+ def ledger410r = v410BK.openLedger(ledger410.getId(), v410CL.digestType("CRC32"), PASSWD)
+ assertHasEntries(ledger410r, numEntries)
+ ledger410r.close()
+
+ // Ensure we can read ledger with v4.2.0 client
+ def ledger420r = v420BK.openLedger(ledger420.getId(), v420CL.digestType("CRC32"), PASSWD)
+ assertHasEntries(ledger420r, numEntries)
+ ledger420r.close()
+
+ // Ensure we can write and read new ledgers with all client versions
+ oldClientVersions.each{
+ LOG.info("Testing ledger creation for version {}", it)
+ def oldCL = MavenClassLoader.forBookKeeperVersion(it)
+ def oldBK = oldCL.newBookKeeper(zookeeper)
+ try {
+ def ledger0 = oldBK.createLedger(3, 2, oldCL.digestType("CRC32"), PASSWD)
+ writeEntries(ledger0, numEntries)
+ ledger0.close()
+
+ def ledger1 = currentBK.openLedger(ledger0.getId(), currentCL.digestType("CRC32"), PASSWD)
+ assertHasEntries(ledger1, numEntries)
+ ledger1.close()
+ } finally {
+ oldBK.close()
+ oldCL.close()
+ }
+ }
+ } finally {
+ currentBK.close()
+ currentCL.close()
+ v420BK.close()
+ v420CL.close()
+ v410BK.close()
+ v410CL.close()
}
}
diff --git a/tests/backward-compat/old-cookie-new-cluster/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeOldServerInClusterWithCookies.groovy b/tests/backward-compat/old-cookie-new-cluster/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeOldServerInClusterWithCookies.groovy
index 2756f70..c2d7263 100644
--- a/tests/backward-compat/old-cookie-new-cluster/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeOldServerInClusterWithCookies.groovy
+++ b/tests/backward-compat/old-cookie-new-cluster/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeOldServerInClusterWithCookies.groovy
@@ -19,8 +19,6 @@ package org.apache.bookkeeper.tests.backwardcompat
import com.github.dockerjava.api.DockerClient
-import lombok.Cleanup
-
import org.apache.bookkeeper.tests.BookKeeperClusterUtils
import org.apache.bookkeeper.tests.MavenClassLoader
@@ -51,38 +49,42 @@ class TestCompatUpgradeOldServerInClusterWithCookies {
int numEntries = 10
Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, "4.1.0"))
- @Cleanup def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
- @Cleanup def v410BK = v410CL.newBookKeeper(zookeeper)
-
- def ledger0 = v410BK.createLedger(3, 2, v410CL.digestType("CRC32"), PASSWD)
- for (int i = 0; i < numEntries; i++) {
- ledger0.addEntry(("foobar" + i).getBytes())
- }
- ledger0.close()
-
- Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
-
- // format metadata
- String bookieScript = "/opt/bookkeeper/" + currentVersion + "/bin/bookkeeper"
- Assert.assertTrue(
- BookKeeperClusterUtils.runOnAnyBookie(docker, bookieScript,
- "shell", "metaformat", "-nonInteractive", "-force"))
-
- // bookies shouldn't come up because the cookie doesn't have instance id
- Assert.assertFalse(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
-
- // format bookie
- BookKeeperClusterUtils.runOnAllBookies(docker, bookieScript,
- "shell", "bookieformat", "-nonInteractive", "-force")
-
- // bookies should come up
- Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
-
- // but data has been lost of course, we formatted everything
+ def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
+ def v410BK = v410CL.newBookKeeper(zookeeper)
try {
- v410BK.openLedger(ledger0.getId(), v410CL.digestType("CRC32"), PASSWD)
- } catch (Exception e) {
- // correct behaviour
+ def ledger0 = v410BK.createLedger(3, 2, v410CL.digestType("CRC32"), PASSWD)
+ for (int i = 0; i < numEntries; i++) {
+ ledger0.addEntry(("foobar" + i).getBytes())
+ }
+ ledger0.close()
+
+ Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
+
+ // format metadata
+ String bookieScript = "/opt/bookkeeper/" + currentVersion + "/bin/bookkeeper"
+ Assert.assertTrue(
+ BookKeeperClusterUtils.runOnAnyBookie(docker, bookieScript,
+ "shell", "metaformat", "-nonInteractive", "-force"))
+
+ // bookies shouldn't come up because the cookie doesn't have instance id
+ Assert.assertFalse(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
+
+ // format bookie
+ BookKeeperClusterUtils.runOnAllBookies(docker, bookieScript,
+ "shell", "bookieformat", "-nonInteractive", "-force")
+
+ // bookies should come up
+ Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
+
+ // but data has been lost of course, we formatted everything
+ try {
+ v410BK.openLedger(ledger0.getId(), v410CL.digestType("CRC32"), PASSWD)
+ } catch (Exception e) {
+ // correct behaviour
+ }
+ } finally {
+ v410BK.close()
+ v410CL.close()
}
}
}
diff --git a/tests/backward-compat/recovery-no-password/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatRecoveryNoPassword.groovy b/tests/backward-compat/recovery-no-password/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatRecoveryNoPassword.groovy
index 908c178..d24a890 100644
--- a/tests/backward-compat/recovery-no-password/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatRecoveryNoPassword.groovy
+++ b/tests/backward-compat/recovery-no-password/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatRecoveryNoPassword.groovy
@@ -27,8 +27,6 @@ import java.util.concurrent.CountDownLatch
import java.util.concurrent.TimeUnit
import java.util.concurrent.atomic.AtomicLong
-import lombok.Cleanup
-
import org.apache.bookkeeper.client.BKException
import org.apache.bookkeeper.client.BookKeeper
import org.apache.bookkeeper.client.BookKeeperAdmin
@@ -158,96 +156,100 @@ class TestCompatRecoveryNoPassword {
BookKeeperClusterUtils.legacyMetadataFormat(docker)
// Create a 4.1.0 client, will update /ledgers/LAYOUT
- @Cleanup def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
- def v410Conf = v410CL.newInstance("org.apache.bookkeeper.conf.ClientConfiguration")
- v410Conf.setZkServers(zookeeper).setLedgerManagerType("hierarchical")
- def v410BK = v410CL.newInstance("org.apache.bookkeeper.client.BookKeeper", v410Conf)
-
- // Start bookies
- def bookieContainers = new ArrayList<>(DockerUtils.cubeIdsMatching("bookkeeper"))
- Assert.assertTrue(bookieContainers.size() >= 3)
- Assert.assertTrue(BookKeeperClusterUtils.startBookieWithVersion(
- docker, bookieContainers.get(0), currentVersion))
- Assert.assertTrue(BookKeeperClusterUtils.startBookieWithVersion(
- docker, bookieContainers.get(1), currentVersion))
-
- // recreate bk client so that it reads bookie list
- v410BK.close()
- v410BK = v410CL.newBookKeeper(zookeeper)
-
- // Write a ledger
- def ledger0 = v410BK.createLedger(2, 2,
- v410CL.digestType("MAC"), passwdCorrect)
- for (int i = 0; i < numEntries; i++) {
- ledger0.addEntry("foobar".getBytes())
- }
- ledger0.close()
- v410BK.close()
-
- // start a new bookie, and kill one of the initial 2
- def failedBookieId = new BookieSocketAddress(
- DockerUtils.getContainerIP(docker, bookieContainers.get(0)), 3181)
- Assert.assertTrue(BookKeeperClusterUtils.stopBookie(
- docker, bookieContainers.get(0)))
- Assert.assertTrue(BookKeeperClusterUtils.startBookieWithVersion(
- docker, bookieContainers.get(2), currentVersion))
-
- def bkCur = new BookKeeper(zookeeper)
-
- LedgerHandle lh = bkCur.openLedgerNoRecovery(
- ledger0.getId(), BookKeeper.DigestType.MAC, passwdCorrect)
- Assert.assertFalse("Should be entries missing",
- verifyFullyReplicated(bkCur, lh, numEntries))
- lh.close()
-
- ClientConfiguration adminConf = new ClientConfiguration()
- adminConf.setZkServers(zookeeper)
- adminConf.setBookieRecoveryDigestType(BookKeeper.DigestType.MAC)
- adminConf.setBookieRecoveryPasswd(passwdBad)
-
- def bka = new BookKeeperAdmin(adminConf)
+ def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
try {
- bka.recoverBookieData(failedBookieId)
- Assert.fail("Shouldn't be able to recover with wrong password")
- } catch (BKException bke) {
- // correct behaviour
- } finally {
- bka.close();
- }
-
- adminConf.setBookieRecoveryDigestType(BookKeeper.DigestType.CRC32)
- adminConf.setBookieRecoveryPasswd(passwdCorrect)
-
- bka = new BookKeeperAdmin(adminConf)
- try {
- bka.recoverBookieData(failedBookieId)
- Assert.fail("Shouldn't be able to recover with wrong digest")
- } catch (BKException bke) {
- // correct behaviour
- } finally {
- bka.close();
- }
+ def v410Conf = v410CL.newInstance("org.apache.bookkeeper.conf.ClientConfiguration")
+ v410Conf.setZkServers(zookeeper).setLedgerManagerType("hierarchical")
+ def v410BK = v410CL.newInstance("org.apache.bookkeeper.client.BookKeeper", v410Conf)
+
+ // Start bookies
+ def bookieContainers = new ArrayList<>(DockerUtils.cubeIdsMatching("bookkeeper"))
+ Assert.assertTrue(bookieContainers.size() >= 3)
+ Assert.assertTrue(BookKeeperClusterUtils.startBookieWithVersion(
+ docker, bookieContainers.get(0), currentVersion))
+ Assert.assertTrue(BookKeeperClusterUtils.startBookieWithVersion(
+ docker, bookieContainers.get(1), currentVersion))
+
+ // recreate bk client so that it reads bookie list
+ v410BK.close()
+ v410BK = v410CL.newBookKeeper(zookeeper)
+
+ // Write a ledger
+ def ledger0 = v410BK.createLedger(2, 2,
+ v410CL.digestType("MAC"), passwdCorrect)
+ for (int i = 0; i < numEntries; i++) {
+ ledger0.addEntry("foobar".getBytes())
+ }
+ ledger0.close()
+ v410BK.close()
+
+ // start a new bookie, and kill one of the initial 2
+ def failedBookieId = new BookieSocketAddress(
+ DockerUtils.getContainerIP(docker, bookieContainers.get(0)), 3181)
+ Assert.assertTrue(BookKeeperClusterUtils.stopBookie(
+ docker, bookieContainers.get(0)))
+ Assert.assertTrue(BookKeeperClusterUtils.startBookieWithVersion(
+ docker, bookieContainers.get(2), currentVersion))
+
+ def bkCur = new BookKeeper(zookeeper)
+ LedgerHandle lh = bkCur.openLedgerNoRecovery(
+ ledger0.getId(), BookKeeper.DigestType.MAC, passwdCorrect)
+ Assert.assertFalse("Should be entries missing",
+ verifyFullyReplicated(bkCur, lh, numEntries))
+ lh.close()
+
+ ClientConfiguration adminConf = new ClientConfiguration()
+ adminConf.setZkServers(zookeeper)
+ adminConf.setBookieRecoveryDigestType(BookKeeper.DigestType.MAC)
+ adminConf.setBookieRecoveryPasswd(passwdBad)
+
+ def bka = new BookKeeperAdmin(adminConf)
+ try {
+ bka.recoverBookieData(failedBookieId)
+ Assert.fail("Shouldn't be able to recover with wrong password")
+ } catch (BKException bke) {
+ // correct behaviour
+ } finally {
+ bka.close();
+ }
- // Check that entries are still missing
- lh = bkCur.openLedgerNoRecovery(ledger0.getId(),
- BookKeeper.DigestType.MAC, passwdCorrect)
- Assert.assertFalse("Should be entries missing",
- verifyFullyReplicated(bkCur, lh, numEntries))
- lh.close()
+ adminConf.setBookieRecoveryDigestType(BookKeeper.DigestType.CRC32)
+ adminConf.setBookieRecoveryPasswd(passwdCorrect)
+
+ bka = new BookKeeperAdmin(adminConf)
+ try {
+ bka.recoverBookieData(failedBookieId)
+ Assert.fail("Shouldn't be able to recover with wrong digest")
+ } catch (BKException bke) {
+ // correct behaviour
+ } finally {
+ bka.close();
+ }
+ // Check that entries are still missing
+ lh = bkCur.openLedgerNoRecovery(ledger0.getId(),
+ BookKeeper.DigestType.MAC, passwdCorrect)
+ Assert.assertFalse("Should be entries missing",
+ verifyFullyReplicated(bkCur, lh, numEntries))
+ lh.close()
- // Set correct password and mac, recovery will work
- adminConf.setBookieRecoveryDigestType(BookKeeper.DigestType.MAC)
- adminConf.setBookieRecoveryPasswd(passwdCorrect)
- bka = new BookKeeperAdmin(adminConf)
- bka.recoverBookieData(failedBookieId)
- bka.close()
+ // Set correct password and mac, recovery will work
+ adminConf.setBookieRecoveryDigestType(BookKeeper.DigestType.MAC)
+ adminConf.setBookieRecoveryPasswd(passwdCorrect)
- lh = bkCur.openLedgerNoRecovery(ledger0.getId(),
- BookKeeper.DigestType.MAC, passwdCorrect)
- Assert.assertTrue("Should have recovered everything",
- verifyFullyReplicated(bkCur, lh, numEntries))
- lh.close()
+ bka = new BookKeeperAdmin(adminConf)
+ bka.recoverBookieData(failedBookieId)
+ bka.close()
+
+ lh = bkCur.openLedgerNoRecovery(ledger0.getId(),
+ BookKeeper.DigestType.MAC, passwdCorrect)
+ Assert.assertTrue("Should have recovered everything",
+ verifyFullyReplicated(bkCur, lh, numEntries))
+ lh.close()
+ bkCur.close()
+ } finally {
+ v410CL.close()
+ }
}
}
diff --git a/tests/backward-compat/upgrade-direct/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeDirect.groovy b/tests/backward-compat/upgrade-direct/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeDirect.groovy
index 1a81326..2fe675e 100644
--- a/tests/backward-compat/upgrade-direct/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeDirect.groovy
+++ b/tests/backward-compat/upgrade-direct/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgradeDirect.groovy
@@ -19,8 +19,6 @@ package org.apache.bookkeeper.tests.backwardcompat
import com.github.dockerjava.api.DockerClient
-import lombok.Cleanup
-
import org.apache.bookkeeper.tests.BookKeeperClusterUtils
import org.apache.bookkeeper.tests.MavenClassLoader
@@ -52,43 +50,49 @@ class TestCompatUpgradeDirect {
int numEntries = 10
Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, "4.1.0"))
- @Cleanup def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
- @Cleanup def v410BK = v410CL.newBookKeeper(zookeeper)
-
- def ledger0 = v410BK.createLedger(3, 2,
- v410CL.digestType("CRC32"),
- PASSWD)
- for (int i = 0; i < numEntries; i++) {
- ledger0.addEntry(("foobar" + i).getBytes())
- }
- ledger0.close()
-
- // Current client shouldn't be able to write to 4.1.0 server
- @Cleanup def currentCL = MavenClassLoader.forBookKeeperVersion(currentVersion)
- @Cleanup def currentBK = currentCL.newBookKeeper(zookeeper)
- def ledger1 = currentBK.createLedger(3, 2, currentCL.digestType("CRC32"), PASSWD)
+ def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
+ def v410BK = v410CL.newBookKeeper(zookeeper)
+ def currentCL = MavenClassLoader.forBookKeeperVersion(currentVersion)
+ def currentBK = currentCL.newBookKeeper(zookeeper)
try {
- ledger1.addEntry("foobar".getBytes())
-
- Assert.fail("Shouldn't have been able to write")
- } catch (Exception e) {
- // correct behaviour
+ def ledger0 = v410BK.createLedger(3, 2,
+ v410CL.digestType("CRC32"),
+ PASSWD)
+ for (int i = 0; i < numEntries; i++) {
+ ledger0.addEntry(("foobar" + i).getBytes())
+ }
+ ledger0.close()
+
+ // Current client shouldn't be able to write to 4.1.0 server
+ def ledger1 = currentBK.createLedger(3, 2, currentCL.digestType("CRC32"), PASSWD)
+ try {
+ ledger1.addEntry("foobar".getBytes())
+
+ Assert.fail("Shouldn't have been able to write")
+ } catch (Exception e) {
+ // correct behaviour
+ }
+
+ Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
+ Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
+
+ // check that old client can read its old ledgers on new server
+ def ledger2 = v410BK.openLedger(ledger0.getId(), v410CL.digestType("CRC32"), PASSWD)
+ Assert.assertEquals(numEntries, ledger2.getLastAddConfirmed() + 1 /* counts from 0 */)
+ def entries = ledger2.readEntries(0, ledger2.getLastAddConfirmed())
+ int j = 0
+ while (entries.hasMoreElements()) {
+ def e = entries.nextElement()
+ Assert.assertEquals(new String(e.getEntry()), "foobar"+ j)
+ j++
+ }
+ ledger2.close()
+ } finally {
+ currentBK.close()
+ currentCL.close()
+ v410BK.close()
+ v410CL.close()
}
-
- Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
- Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, currentVersion))
-
- // check that old client can read its old ledgers on new server
- def ledger2 = v410BK.openLedger(ledger0.getId(), v410CL.digestType("CRC32"), PASSWD)
- Assert.assertEquals(numEntries, ledger2.getLastAddConfirmed() + 1 /* counts from 0 */)
- def entries = ledger2.readEntries(0, ledger2.getLastAddConfirmed())
- int j = 0
- while (entries.hasMoreElements()) {
- def e = entries.nextElement()
- Assert.assertEquals(new String(e.getEntry()), "foobar"+ j)
- j++
- }
- ledger2.close()
}
@Test
@@ -96,26 +100,32 @@ class TestCompatUpgradeDirect {
String currentVersion = System.getProperty("currentVersion")
String zookeeper = BookKeeperClusterUtils.zookeeperConnectString(docker)
- @Cleanup def currentCL = MavenClassLoader.forBookKeeperVersion(currentVersion)
- @Cleanup def currentBK = currentCL.newBookKeeper(zookeeper)
-
- def numEntries = 5
- def ledger0 = currentBK.createLedger(3, 2,
- currentCL.digestType("CRC32"),
- PASSWD)
- for (int i = 0; i < numEntries; i++) {
- ledger0.addEntry(("foobar" + i).getBytes())
- }
- ledger0.close()
-
- @Cleanup def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
- @Cleanup def v410BK = v410CL.newBookKeeper(zookeeper)
+ def currentCL = MavenClassLoader.forBookKeeperVersion(currentVersion)
+ def currentBK = currentCL.newBookKeeper(zookeeper)
+ def v410CL = MavenClassLoader.forBookKeeperVersion("4.1.0")
+ def v410BK = v410CL.newBookKeeper(zookeeper)
try {
- def ledger1 = v410BK.openLedger(ledger0.getId(), v410CL.digestType("CRC32"), PASSWD)
- Assert.fail("Shouldn't have been able to open")
- } catch (Exception e) {
- // correct behaviour
+ def numEntries = 5
+ def ledger0 = currentBK.createLedger(3, 2,
+ currentCL.digestType("CRC32"),
+ PASSWD)
+ for (int i = 0; i < numEntries; i++) {
+ ledger0.addEntry(("foobar" + i).getBytes())
+ }
+ ledger0.close()
+
+ try {
+ def ledger1 = v410BK.openLedger(ledger0.getId(), v410CL.digestType("CRC32"), PASSWD)
+ Assert.fail("Shouldn't have been able to open")
+ } catch (Exception e) {
+ // correct behaviour
+ }
+ } finally {
+ v410BK.close()
+ v410CL.close()
+ currentBK.close()
+ currentCL.close()
}
}
}
diff --git a/tests/backward-compat/upgrade/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgrade.groovy b/tests/backward-compat/upgrade/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgrade.groovy
index 76b02d8..7933c2f 100644
--- a/tests/backward-compat/upgrade/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgrade.groovy
+++ b/tests/backward-compat/upgrade/src/test/groovy/org/apache/bookkeeper/tests/backwardcompat/TestCompatUpgrade.groovy
@@ -19,8 +19,6 @@ package org.apache.bookkeeper.tests.backwardcompat
import com.github.dockerjava.api.DockerClient
-import lombok.Cleanup
-
import org.apache.bookkeeper.tests.BookKeeperClusterUtils
import org.apache.bookkeeper.tests.MavenClassLoader
@@ -49,48 +47,55 @@ class TestCompatUpgrade {
String zookeeper = BookKeeperClusterUtils.zookeeperConnectString(docker)
LOG.info("Upgrading from {} to {}", currentlyRunning, upgradeTo)
int numEntries = 10
- @Cleanup def currentRunningCL = MavenClassLoader.forBookKeeperVersion(currentlyRunning)
- @Cleanup def currentRunningBK = currentRunningCL.newBookKeeper(zookeeper)
-
- def ledger0 = currentRunningBK.createLedger(3, 2,
- currentRunningCL.digestType("CRC32"),
- PASSWD)
- for (int i = 0; i < numEntries; i++) {
- ledger0.addEntry(("foobar" + i).getBytes())
- }
- ledger0.close()
+ def currentRunningCL = MavenClassLoader.forBookKeeperVersion(currentlyRunning)
+ def currentRunningBK = currentRunningCL.newBookKeeper(zookeeper)
+ def upgradedCL = MavenClassLoader.forBookKeeperVersion(upgradeTo)
+ def upgradedBK = upgradedCL.newBookKeeper(zookeeper)
- // Check whether current client can write to old server
- @Cleanup def upgradedCL = MavenClassLoader.forBookKeeperVersion(upgradeTo)
- @Cleanup def upgradedBK = upgradedCL.newBookKeeper(zookeeper)
- def ledger1 = upgradedBK.createLedger(3, 2, upgradedCL.digestType("CRC32"), PASSWD)
try {
- ledger1.addEntry("foobar".getBytes())
-
- if (clientCompatBroken) {
- Assert.fail("Shouldn't have been able to write")
+ def ledger0 = currentRunningBK.createLedger(3, 2,
+ currentRunningCL.digestType("CRC32"),
+ PASSWD)
+ for (int i = 0; i < numEntries; i++) {
+ ledger0.addEntry(("foobar" + i).getBytes())
}
- } catch (Exception e) {
- if (!clientCompatBroken) {
- throw e;
+ ledger0.close()
+
+ // Check whether current client can write to old server
+ def ledger1 = upgradedBK.createLedger(3, 2, upgradedCL.digestType("CRC32"), PASSWD)
+ try {
+ ledger1.addEntry("foobar".getBytes())
+
+ if (clientCompatBroken) {
+ Assert.fail("Shouldn't have been able to write")
+ }
+ } catch (Exception e) {
+ if (!clientCompatBroken) {
+ throw e;
+ }
}
- }
- Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
- Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, upgradeTo))
-
- // check that old client can read its old ledgers on new server
- def ledger2 = currentRunningBK.openLedger(ledger0.getId(), currentRunningCL.digestType("CRC32"),
- PASSWD)
- Assert.assertEquals(numEntries, ledger2.getLastAddConfirmed() + 1 /* counts from 0 */)
- def entries = ledger2.readEntries(0, ledger2.getLastAddConfirmed())
- int j = 0
- while (entries.hasMoreElements()) {
- def e = entries.nextElement()
- Assert.assertEquals(new String(e.getEntry()), "foobar"+ j)
- j++
+ Assert.assertTrue(BookKeeperClusterUtils.stopAllBookies(docker))
+ Assert.assertTrue(BookKeeperClusterUtils.startAllBookiesWithVersion(docker, upgradeTo))
+
+ // check that old client can read its old ledgers on new server
+ def ledger2 = currentRunningBK.openLedger(ledger0.getId(), currentRunningCL.digestType("CRC32"),
+ PASSWD)
+ Assert.assertEquals(numEntries, ledger2.getLastAddConfirmed() + 1 /* counts from 0 */)
+ def entries = ledger2.readEntries(0, ledger2.getLastAddConfirmed())
+ int j = 0
+ while (entries.hasMoreElements()) {
+ def e = entries.nextElement()
+ Assert.assertEquals(new String(e.getEntry()), "foobar"+ j)
+ j++
+ }
+ ledger2.close()
+ } finally {
+ upgradedBK.close()
+ upgradedCL.close()
+ currentRunningBK.close()
+ currentRunningCL.close()
}
- ledger2.close()
}
@Test
--
To stop receiving notification emails like this one, please contact
sijie@apache.org.