You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by eo...@apache.org on 2018/11/14 11:19:57 UTC

[bookkeeper] branch branch-4.8 updated: ISSUE #1799: bkctl is broken with default build options

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

eolivelli pushed a commit to branch branch-4.8
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/branch-4.8 by this push:
     new fbfcdba  ISSUE #1799: bkctl is broken with default build options
fbfcdba is described below

commit fbfcdbae1c7484f2a783be98b5fdb7db2d7498fd
Author: Enrico Olivelli <eo...@gmail.com>
AuthorDate: Wed Nov 14 12:19:52 2018 +0100

    ISSUE #1799: bkctl is broken with default build options
    
    This is a cherry pick of #1799 on branch-4.8.
    Original commit is from Sijie Guo
    
    Descriptions of the changes in this PR:
    
    *Motivation*
    
    `bkctl` is designed in a modularized way for extensibility.
    it loads command groups via ServiceLoader. However current build
    profile doesn't leverage this extensibility. Instead it hardcodes
    all the commands in one service load file. So if `bkctl` is built
    without `-Dstream`, it will broke.
    
    *Changes*
    
    - move `ledger` related commands to `tools/ledger`
    - generate the service load file by concating `commands` files from each module's resources directory.
    
    *Results*
    
    bkctl works for all build profiles.
    
    - without `-Dstream`
    
    ```
    $ bin/bkctl
    
    bkctl interacts and operates Apache BookKeeper clusters
    
    Usage:  bkctl [flags] [command group] [commands]
    
    Commands:
    
        bookie      Commands on operating a single bookie
        bookies     Commands on operating a cluster of bookies
        cookie      Commands on operating cookies
        ledger      Commands on interacting with ledgers
    
        help        Display help information about it
    
    Flags:
    
        -c, --conf
            Configuration file
    
        -n, --namespace
            Namespace scope to run commands (only valid for table service for now)
    
        -u, --service-uri
            Service Uri
    
        -h, --help
            Display help information
    
    Use "bkctl [command] --help" or "bkctl help [command]" for more information
    about a command
    ```
    
    - with `-Dstream`
    
    ```
    $ bin/bkctl
    
    bkctl interacts and operates Apache BookKeeper clusters
    
    Usage:  bkctl [flags] [command group] [commands]
    
    Commands:
    
        bookie          Commands on operating a single bookie
        bookies         Commands on operating a cluster of bookies
        cluster         Commands on administrating bookkeeper clusters
        cookie          Commands on operating cookies
        ledger          Commands on interacting with ledgers
        namespace       Commands on operating namespaces
        table           Commands on interacting with tables
        tables          Commands on operating tables
    
        help            Display help information about it
    
    Flags:
    
        -c, --conf
            Configuration file
    
        -n, --namespace
            Namespace scope to run commands (only valid for table service for now)
    
        -u, --service-uri
            Service Uri
    
        -h, --help
            Display help information
    
    Use "bkctl [command] --help" or "bkctl help [command]" for more information
    about a command
    ```
    
    Master Issue: #1799
    
    
    Reviewers: Sijie Guo <si...@apache.org>
    
    This closes #1806 from eolivelli/fix/backport-bkctl, closes #1799
---
 .gitignore                                         |   9 ++
 site/docs/latest/getting-started/installation.md   |  10 +-
 tools/all/pom.xml                                  | 111 +++++++++++++--------
 tools/{all => ledger}/pom.xml                      |  22 +---
 .../org/apache/bookkeeper/tools/cli/BKCtl.java     |   0
 .../tools/cli/commands/BookieCommandGroup.java     |   0
 .../tools/cli/commands/BookiesCommandGroup.java    |   0
 .../tools/cli/commands/CookieCommandGroup.java     |   0
 .../tools/cli/commands/LedgerCommandGroup.java     |   0
 .../tools/cli/commands/package-info.java           |   0
 .../apache/bookkeeper/tools/cli/package-info.java  |   0
 .../src/main/resources/commands}                   |   4 -
 .../cli/commands/bookie/LastMarkCommandTest.java   |   0
 .../commands/bookies/ListBookiesCommandTest.java   |   0
 .../cli/commands/client/SimpleTestCommandTest.java |   0
 .../commands/cookie/CreateCookieCommandTest.java   |   0
 .../commands/cookie/DeleteCookieCommandTest.java   |   0
 .../commands/cookie/GenerateCookieCommandTest.java |   0
 .../cli/commands/cookie/GetCookieCommandTest.java  |   0
 .../commands/cookie/UpdateCookieCommandTest.java   |   0
 .../tools/cli/helpers/BookieCommandTestBase.java   |   0
 .../tools/cli/helpers/BookieShellCommandTest.java  |   0
 .../tools/cli/helpers/ClientCommandTest.java       |   0
 .../tools/cli/helpers/ClientCommandTestBase.java   |   0
 .../tools/cli/helpers/CommandTestBase.java         |   0
 .../tools/cli/helpers/CookieCommandTestBase.java   |   0
 .../tools/cli/helpers/DiscoveryCommandTest.java    |   0
 .../cli/helpers/DiscoveryCommandTestBase.java      |   0
 .../src/test/resources/log4j.properties            |   0
 tools/pom.xml                                      |   1 +
 .../src/main/resources/commands}                   |   4 -
 31 files changed, 93 insertions(+), 68 deletions(-)

diff --git a/.gitignore b/.gitignore
index 4865c98..86f2415 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,3 +29,12 @@ logs/
 
 # Data directory
 data/
+
+# Pid files
+**/*.pid
+
+# files are generated under following directories
+tools/all/src/main/resources
+
+# Exclude versionBackup file (generated by `mvn versions:set`)
+**/*.versionsBackup
diff --git a/site/docs/latest/getting-started/installation.md b/site/docs/latest/getting-started/installation.md
index 9986cd8..7e92b47 100644
--- a/site/docs/latest/getting-started/installation.md
+++ b/site/docs/latest/getting-started/installation.md
@@ -44,6 +44,12 @@ Once you have the BookKeeper on your local machine, either by [downloading](#dow
 $ mvn package
 ```
 
+Since 4.8.0, bookkeeper introduces `table service`. If you would like to build and tryout table service, you can build it with `stream` profile.
+
+```shell
+$ mvn package -Dstream
+```
+
 > You can skip tests by adding the `-DskipTests` flag when running `mvn package`.
 
 ### Useful Maven commands
@@ -60,7 +66,9 @@ Command | Action
 `mvn verify` | Performs a wide variety of verification and validation tasks
 `mvn apache-rat:check` | Run Maven using the [Apache Rat](http://creadur.apache.org/rat/apache-rat-plugin/) plugin
 `mvn compile javadoc:aggregate` | Build Javadocs locally
-`mvn package assembly:single` | Build a complete distribution using the Maven [Assembly](http://maven.apache.org/plugins/maven-assembly-plugin/) plugin
+`mvn -am -pl bookkeeper-dist/server package` | Build a server distribution using the Maven [Assembly](http://maven.apache.org/plugins/maven-assembly-plugin/) plugin
+
+> You can enable `table service` by adding the `-Dstream` flag when running above commands.
 
 ## Package directory
 
diff --git a/tools/all/pom.xml b/tools/all/pom.xml
index bbb41e0..25e01c9 100644
--- a/tools/all/pom.xml
+++ b/tools/all/pom.xml
@@ -1,20 +1,22 @@
 <?xml version="1.0"?>
 <!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
@@ -27,33 +29,37 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.bookkeeper</groupId>
-      <artifactId>bookkeeper-tools-framework</artifactId>
+      <artifactId>bookkeeper-tools-ledger</artifactId>
       <version>${project.version}</version>
     </dependency>
-    <dependency>
-      <groupId>org.apache.bookkeeper</groupId>
-      <artifactId>bookkeeper-server</artifactId>
-      <version>${project.parent.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.bookkeeper</groupId>
-      <artifactId>buildtools</artifactId>
-      <version>${project.parent.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.bookkeeper</groupId>
-      <artifactId>bookkeeper-server</artifactId>
-      <type>test-jar</type>
-      <version>${project.parent.version}</version>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <version>${maven-antrun-plugin.version}</version>
+        <executions>
+          <execution>
+            <id>append-ledger-commands</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>run</goal>
+            </goals>
+            <configuration>
+              <target>
+                <concat destfile="${project.basedir}/src/main/resources/META-INF/services/org.apache.bookkeeper.tools.framework.CommandGroup"
+                        overwrite="true">
+                  <filelist dir="${project.basedir}/../ledger/src/main/resources" files="commands">
+                  </filelist>
+                </concat>
+              </target>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
   <profiles>
     <profile>
       <id>stream</id>
@@ -70,6 +76,33 @@
           <version>${project.version}</version>
         </dependency>
       </dependencies>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-antrun-plugin</artifactId>
+            <version>${maven-antrun-plugin.version}</version>
+            <executions>
+              <execution>
+                <id>append-stream-commands</id>
+                <phase>generate-resources</phase>
+                <goals>
+                  <goal>run</goal>
+                </goals>
+                <configuration>
+                  <target>
+                    <concat destfile="${project.basedir}/src/main/resources/META-INF/services/org.apache.bookkeeper.tools.framework.CommandGroup"
+                            append="true">
+                      <filelist dir="${project.basedir}/../stream/src/main/resources" files="commands">
+                      </filelist>
+                    </concat>
+                  </target>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
     </profile>
   </profiles>
 </project>
diff --git a/tools/all/pom.xml b/tools/ledger/pom.xml
similarity index 80%
copy from tools/all/pom.xml
copy to tools/ledger/pom.xml
index bbb41e0..161f29d 100644
--- a/tools/all/pom.xml
+++ b/tools/ledger/pom.xml
@@ -22,8 +22,8 @@
     <groupId>org.apache.bookkeeper</groupId>
     <version>4.8.1-SNAPSHOT</version>
   </parent>
-  <artifactId>bookkeeper-tools</artifactId>
-  <name>Apache BookKeeper :: Tools</name>
+  <artifactId>bookkeeper-tools-ledger</artifactId>
+  <name>Apache BookKeeper :: Tools :: Ledger</name>
   <dependencies>
     <dependency>
       <groupId>org.apache.bookkeeper</groupId>
@@ -54,22 +54,4 @@
       <scope>test</scope>
     </dependency>
   </dependencies>
-  <profiles>
-    <profile>
-      <id>stream</id>
-      <activation>
-        <property>
-          <name>stream</name>
-        </property>
-      </activation>
-      <dependencies>
-        <!-- stream.storage -->
-        <dependency>
-          <groupId>org.apache.bookkeeper</groupId>
-          <artifactId>stream-storage-cli</artifactId>
-          <version>${project.version}</version>
-        </dependency>
-      </dependencies>
-    </profile>
-  </profiles>
 </project>
diff --git a/tools/all/src/main/java/org/apache/bookkeeper/tools/cli/BKCtl.java b/tools/ledger/src/main/java/org/apache/bookkeeper/tools/cli/BKCtl.java
similarity index 100%
rename from tools/all/src/main/java/org/apache/bookkeeper/tools/cli/BKCtl.java
rename to tools/ledger/src/main/java/org/apache/bookkeeper/tools/cli/BKCtl.java
diff --git a/tools/all/src/main/java/org/apache/bookkeeper/tools/cli/commands/BookieCommandGroup.java b/tools/ledger/src/main/java/org/apache/bookkeeper/tools/cli/commands/BookieCommandGroup.java
similarity index 100%
rename from tools/all/src/main/java/org/apache/bookkeeper/tools/cli/commands/BookieCommandGroup.java
rename to tools/ledger/src/main/java/org/apache/bookkeeper/tools/cli/commands/BookieCommandGroup.java
diff --git a/tools/all/src/main/java/org/apache/bookkeeper/tools/cli/commands/BookiesCommandGroup.java b/tools/ledger/src/main/java/org/apache/bookkeeper/tools/cli/commands/BookiesCommandGroup.java
similarity index 100%
rename from tools/all/src/main/java/org/apache/bookkeeper/tools/cli/commands/BookiesCommandGroup.java
rename to tools/ledger/src/main/java/org/apache/bookkeeper/tools/cli/commands/BookiesCommandGroup.java
diff --git a/tools/all/src/main/java/org/apache/bookkeeper/tools/cli/commands/CookieCommandGroup.java b/tools/ledger/src/main/java/org/apache/bookkeeper/tools/cli/commands/CookieCommandGroup.java
similarity index 100%
rename from tools/all/src/main/java/org/apache/bookkeeper/tools/cli/commands/CookieCommandGroup.java
rename to tools/ledger/src/main/java/org/apache/bookkeeper/tools/cli/commands/CookieCommandGroup.java
diff --git a/tools/all/src/main/java/org/apache/bookkeeper/tools/cli/commands/LedgerCommandGroup.java b/tools/ledger/src/main/java/org/apache/bookkeeper/tools/cli/commands/LedgerCommandGroup.java
similarity index 100%
rename from tools/all/src/main/java/org/apache/bookkeeper/tools/cli/commands/LedgerCommandGroup.java
rename to tools/ledger/src/main/java/org/apache/bookkeeper/tools/cli/commands/LedgerCommandGroup.java
diff --git a/tools/all/src/main/java/org/apache/bookkeeper/tools/cli/commands/package-info.java b/tools/ledger/src/main/java/org/apache/bookkeeper/tools/cli/commands/package-info.java
similarity index 100%
rename from tools/all/src/main/java/org/apache/bookkeeper/tools/cli/commands/package-info.java
rename to tools/ledger/src/main/java/org/apache/bookkeeper/tools/cli/commands/package-info.java
diff --git a/tools/all/src/main/java/org/apache/bookkeeper/tools/cli/package-info.java b/tools/ledger/src/main/java/org/apache/bookkeeper/tools/cli/package-info.java
similarity index 100%
rename from tools/all/src/main/java/org/apache/bookkeeper/tools/cli/package-info.java
rename to tools/ledger/src/main/java/org/apache/bookkeeper/tools/cli/package-info.java
diff --git a/tools/all/src/main/resources/META-INF/services/org.apache.bookkeeper.tools.framework.CommandGroup b/tools/ledger/src/main/resources/commands
similarity index 82%
copy from tools/all/src/main/resources/META-INF/services/org.apache.bookkeeper.tools.framework.CommandGroup
copy to tools/ledger/src/main/resources/commands
index 0147eca..7ea146b 100644
--- a/tools/all/src/main/resources/META-INF/services/org.apache.bookkeeper.tools.framework.CommandGroup
+++ b/tools/ledger/src/main/resources/commands
@@ -20,7 +20,3 @@ org.apache.bookkeeper.tools.cli.commands.BookieCommandGroup
 org.apache.bookkeeper.tools.cli.commands.BookiesCommandGroup
 org.apache.bookkeeper.tools.cli.commands.CookieCommandGroup
 org.apache.bookkeeper.tools.cli.commands.LedgerCommandGroup
-org.apache.bookkeeper.stream.cli.ClusterCommandGroup
-org.apache.bookkeeper.stream.cli.NamespaceCommandGroup
-org.apache.bookkeeper.stream.cli.TableAdminCommandGroup
-org.apache.bookkeeper.stream.cli.TableCommandGroup
diff --git a/tools/all/src/test/java/org/apache/bookkeeper/tools/cli/commands/bookie/LastMarkCommandTest.java b/tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/commands/bookie/LastMarkCommandTest.java
similarity index 100%
rename from tools/all/src/test/java/org/apache/bookkeeper/tools/cli/commands/bookie/LastMarkCommandTest.java
rename to tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/commands/bookie/LastMarkCommandTest.java
diff --git a/tools/all/src/test/java/org/apache/bookkeeper/tools/cli/commands/bookies/ListBookiesCommandTest.java b/tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/commands/bookies/ListBookiesCommandTest.java
similarity index 100%
rename from tools/all/src/test/java/org/apache/bookkeeper/tools/cli/commands/bookies/ListBookiesCommandTest.java
rename to tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/commands/bookies/ListBookiesCommandTest.java
diff --git a/tools/all/src/test/java/org/apache/bookkeeper/tools/cli/commands/client/SimpleTestCommandTest.java b/tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/commands/client/SimpleTestCommandTest.java
similarity index 100%
rename from tools/all/src/test/java/org/apache/bookkeeper/tools/cli/commands/client/SimpleTestCommandTest.java
rename to tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/commands/client/SimpleTestCommandTest.java
diff --git a/tools/all/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/CreateCookieCommandTest.java b/tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/CreateCookieCommandTest.java
similarity index 100%
rename from tools/all/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/CreateCookieCommandTest.java
rename to tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/CreateCookieCommandTest.java
diff --git a/tools/all/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/DeleteCookieCommandTest.java b/tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/DeleteCookieCommandTest.java
similarity index 100%
rename from tools/all/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/DeleteCookieCommandTest.java
rename to tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/DeleteCookieCommandTest.java
diff --git a/tools/all/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/GenerateCookieCommandTest.java b/tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/GenerateCookieCommandTest.java
similarity index 100%
rename from tools/all/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/GenerateCookieCommandTest.java
rename to tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/GenerateCookieCommandTest.java
diff --git a/tools/all/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/GetCookieCommandTest.java b/tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/GetCookieCommandTest.java
similarity index 100%
rename from tools/all/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/GetCookieCommandTest.java
rename to tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/GetCookieCommandTest.java
diff --git a/tools/all/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/UpdateCookieCommandTest.java b/tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/UpdateCookieCommandTest.java
similarity index 100%
rename from tools/all/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/UpdateCookieCommandTest.java
rename to tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/commands/cookie/UpdateCookieCommandTest.java
diff --git a/tools/all/src/test/java/org/apache/bookkeeper/tools/cli/helpers/BookieCommandTestBase.java b/tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/helpers/BookieCommandTestBase.java
similarity index 100%
rename from tools/all/src/test/java/org/apache/bookkeeper/tools/cli/helpers/BookieCommandTestBase.java
rename to tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/helpers/BookieCommandTestBase.java
diff --git a/tools/all/src/test/java/org/apache/bookkeeper/tools/cli/helpers/BookieShellCommandTest.java b/tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/helpers/BookieShellCommandTest.java
similarity index 100%
rename from tools/all/src/test/java/org/apache/bookkeeper/tools/cli/helpers/BookieShellCommandTest.java
rename to tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/helpers/BookieShellCommandTest.java
diff --git a/tools/all/src/test/java/org/apache/bookkeeper/tools/cli/helpers/ClientCommandTest.java b/tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/helpers/ClientCommandTest.java
similarity index 100%
rename from tools/all/src/test/java/org/apache/bookkeeper/tools/cli/helpers/ClientCommandTest.java
rename to tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/helpers/ClientCommandTest.java
diff --git a/tools/all/src/test/java/org/apache/bookkeeper/tools/cli/helpers/ClientCommandTestBase.java b/tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/helpers/ClientCommandTestBase.java
similarity index 100%
rename from tools/all/src/test/java/org/apache/bookkeeper/tools/cli/helpers/ClientCommandTestBase.java
rename to tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/helpers/ClientCommandTestBase.java
diff --git a/tools/all/src/test/java/org/apache/bookkeeper/tools/cli/helpers/CommandTestBase.java b/tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/helpers/CommandTestBase.java
similarity index 100%
rename from tools/all/src/test/java/org/apache/bookkeeper/tools/cli/helpers/CommandTestBase.java
rename to tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/helpers/CommandTestBase.java
diff --git a/tools/all/src/test/java/org/apache/bookkeeper/tools/cli/helpers/CookieCommandTestBase.java b/tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/helpers/CookieCommandTestBase.java
similarity index 100%
rename from tools/all/src/test/java/org/apache/bookkeeper/tools/cli/helpers/CookieCommandTestBase.java
rename to tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/helpers/CookieCommandTestBase.java
diff --git a/tools/all/src/test/java/org/apache/bookkeeper/tools/cli/helpers/DiscoveryCommandTest.java b/tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/helpers/DiscoveryCommandTest.java
similarity index 100%
rename from tools/all/src/test/java/org/apache/bookkeeper/tools/cli/helpers/DiscoveryCommandTest.java
rename to tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/helpers/DiscoveryCommandTest.java
diff --git a/tools/all/src/test/java/org/apache/bookkeeper/tools/cli/helpers/DiscoveryCommandTestBase.java b/tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/helpers/DiscoveryCommandTestBase.java
similarity index 100%
rename from tools/all/src/test/java/org/apache/bookkeeper/tools/cli/helpers/DiscoveryCommandTestBase.java
rename to tools/ledger/src/test/java/org/apache/bookkeeper/tools/cli/helpers/DiscoveryCommandTestBase.java
diff --git a/tools/all/src/test/resources/log4j.properties b/tools/ledger/src/test/resources/log4j.properties
similarity index 100%
rename from tools/all/src/test/resources/log4j.properties
rename to tools/ledger/src/test/resources/log4j.properties
diff --git a/tools/pom.xml b/tools/pom.xml
index 97611bf..ee315bf 100644
--- a/tools/pom.xml
+++ b/tools/pom.xml
@@ -27,6 +27,7 @@
   <packaging>pom</packaging>
   <modules>
     <module>framework</module>
+    <module>ledger</module>
     <module>all</module>
   </modules>
   <profiles>
diff --git a/tools/all/src/main/resources/META-INF/services/org.apache.bookkeeper.tools.framework.CommandGroup b/tools/stream/src/main/resources/commands
similarity index 80%
rename from tools/all/src/main/resources/META-INF/services/org.apache.bookkeeper.tools.framework.CommandGroup
rename to tools/stream/src/main/resources/commands
index 0147eca..070efbf 100644
--- a/tools/all/src/main/resources/META-INF/services/org.apache.bookkeeper.tools.framework.CommandGroup
+++ b/tools/stream/src/main/resources/commands
@@ -16,10 +16,6 @@
 # limitations under the License.
 #
 
-org.apache.bookkeeper.tools.cli.commands.BookieCommandGroup
-org.apache.bookkeeper.tools.cli.commands.BookiesCommandGroup
-org.apache.bookkeeper.tools.cli.commands.CookieCommandGroup
-org.apache.bookkeeper.tools.cli.commands.LedgerCommandGroup
 org.apache.bookkeeper.stream.cli.ClusterCommandGroup
 org.apache.bookkeeper.stream.cli.NamespaceCommandGroup
 org.apache.bookkeeper.stream.cli.TableAdminCommandGroup