This is an automated email from the ASF dual-hosted git repository.

sjust 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 8711c3b  ISSUE #1653: Clients with zk:// uri's should read layout from 
store
8711c3b is described below

commit 8711c3b911beb79c20ca87e47077a8ab4ccf5025
Author: Samuel Just <[email protected]>
AuthorDate: Fri Sep 7 15:07:18 2018 -0700

    ISSUE #1653: Clients with zk:// uri's should read layout from store
    
    zk+null:// will cause the layout to be read from the store.  This patch
    updates zk:// to do the same.  This matches past behavior with an
    unspecified ledgerManagerFactoryClass.
    
    Some tests needed to be updated with the new behavior.
    
    (bug W-5415120)
    (rev cguttapalem)
    Signed-off-by: Samuel Just <sjustsalesforce.com>
    
    Author: Samuel Just <[email protected]>
    
    Reviewers: Sijie Guo <[email protected]>
    
    This closes #1668 from athanatos/forupstream/wip-1653, closes #1653
---
 .../apache/bookkeeper/meta/zk/ZKMetadataDriverBase.java   |  3 ++-
 .../org/apache/bookkeeper/meta/TestLedgerManager.java     |  2 +-
 .../meta/zk/ZKMetadataDriverBaseStaticTest.java           | 15 ++++++++++++---
 .../apache/bookkeeper/test/BookKeeperClusterTestCase.java |  4 ++++
 4 files changed, 19 insertions(+), 5 deletions(-)

diff --git 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/zk/ZKMetadataDriverBase.java
 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/zk/ZKMetadataDriverBase.java
index a9e1a13..e9efc82 100644
--- 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/zk/ZKMetadataDriverBase.java
+++ 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/zk/ZKMetadataDriverBase.java
@@ -117,7 +117,8 @@ public class ZKMetadataDriverBase implements AutoCloseable {
                         + schemeParts[1] + "' at uri : " + metadataServiceUri);
             }
         } else {
-            ledgerManagerFactoryClass = HierarchicalLedgerManagerFactory.class;
+            // behave as in the +null case, infer the layout from the store or 
fall back to the default
+            ledgerManagerFactoryClass = null;
         }
         return ledgerManagerFactoryClass;
     }
diff --git 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java
 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java
index 499a6e9..a91485a 100644
--- 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java
+++ 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java
@@ -183,7 +183,7 @@ public class TestLedgerManager extends 
BookKeeperClusterTestCase {
         String root0 = "/badzk0";
         zkc.create(root0, new byte[0],
                    Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
-        conf.setMetadataServiceUri(newMetadataServiceUri(root0));
+        conf.setMetadataServiceUri(newMetadataServiceUri(root0, 
HierarchicalLedgerManagerFactory.NAME));
 
         LedgerLayout layout = new LedgerLayout("DoesNotExist",
                          0xdeadbeef);
diff --git 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/zk/ZKMetadataDriverBaseStaticTest.java
 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/zk/ZKMetadataDriverBaseStaticTest.java
index 0ed3f7d..66b0961 100644
--- 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/zk/ZKMetadataDriverBaseStaticTest.java
+++ 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/zk/ZKMetadataDriverBaseStaticTest.java
@@ -64,11 +64,20 @@ public class ZKMetadataDriverBaseStaticTest {
     }
 
     @Test
-    public void testResolveLedgerManagerFactoryDefaultValue() {
+    public void testResolveLedgerManagerFactoryUnspecifiedLayout() {
         assertEquals(
-            HierarchicalLedgerManagerFactory.class,
+            null,
             ZKMetadataDriverBase.resolveLedgerManagerFactory(
-                URI.create("zk://127.0.0.1/ledgers"))
+                        URI.create("zk://127.0.0.1/ledgers"))
+        );
+    }
+
+    @Test
+    public void testResolveLedgerManagerFactoryNullLayout() {
+        assertEquals(
+                null,
+                ZKMetadataDriverBase.resolveLedgerManagerFactory(
+                        URI.create("zk+null://127.0.0.1/ledgers"))
         );
     }
 
diff --git 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java
 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java
index e42b818..932abd9 100644
--- 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java
+++ 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java
@@ -315,6 +315,10 @@ public abstract class BookKeeperClusterTestCase {
         return zkUtil.getMetadataServiceUri(ledgersRootPath);
     }
 
+    protected String newMetadataServiceUri(String ledgersRootPath, String 
type) {
+        return zkUtil.getMetadataServiceUri(ledgersRootPath, type);
+    }
+
     /**
      * Get bookie address for bookie at index.
      */

Reply via email to