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/03/04 09:36:07 UTC

[bookkeeper] branch master updated: Integrate table service in bookkeeper build

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 8322482  Integrate table service in bookkeeper build
8322482 is described below

commit 8322482b8292f9326fb3b72c4b46dc05cc157811
Author: Sijie Guo <si...@apache.org>
AuthorDate: Sun Mar 4 01:35:59 2018 -0800

    Integrate table service in bookkeeper build
    
    Descriptions of the changes in this PR:
    
    - update the pom files to integrate table service with bookkeeper build
    - add 3 flags to control building/testing table service. by default the table service will be built and tested with existing maven commands.
      It only builds and runs the tests on following conditions:
        * `-Dstream`: enable building the table service
        * `-DstreamTests`: run the unit tests of table service
        * `-DstreamIntegrationTests`: run the integration tests of table service
    - update CI jobs
        * Travis: compile table service for all builds, run unit tests if code modifications happen under `stream` directory
        * Jenkins: compile table service on precommit jobs, compile and run unit tests for postcommit jobs
    
    Master Issue: #1205
    
    Author: Sijie Guo <si...@apache.org>
    
    Reviewers: Jia Zhai <zh...@apache.org>
    
    This closes #1216 from sijie/built_table_service
---
 .../job_bookkeeper_postcommit_master_java8.groovy  |   2 +-
 .../job_bookkeeper_postcommit_master_java9.groovy  |   2 +-
 .../jenkins/job_bookkeeper_precommit_java8.groovy  |   2 +-
 .../jenkins/job_bookkeeper_precommit_java9.groovy  |   2 +-
 .../job_bookkeeper_release_nightly_snapshot.groovy |   2 +-
 .travis_scripts/build.sh                           |   2 +-
 .../src/main/resources/LICENSE-all.bin.txt         |   4 +-
 .../src/main/resources/LICENSE-server.bin.txt      |   4 +-
 .../main/resources/bookkeeper/findbugsExclude.xml  |  21 ++
 pom.xml                                            | 129 ++++++-
 stream/api/pom.xml                                 |   3 +-
 stream/cli/pom.xml                                 |   3 +-
 stream/clients/java/all/pom.xml                    |   2 +-
 stream/clients/java/base/pom.xml                   |   6 +-
 stream/clients/java/kv/pom.xml                     |   2 +-
 stream/clients/java/pom.xml                        |   2 +-
 stream/clients/pom.xml                             |   2 +-
 stream/common/pom.xml                              |   3 +-
 stream/distributedlog/core/pom.xml                 |  50 ++-
 stream/pom.xml                                     | 372 ++-------------------
 stream/proto/pom.xml                               |  11 +-
 stream/server/pom.xml                              |   8 +-
 stream/statelib/pom.xml                            |   6 +-
 .../checkpoint/fs/FSCheckpointManagerTest.java     |   5 +-
 stream/storage/api/pom.xml                         |   8 +-
 stream/storage/impl/pom.xml                        |  19 +-
 stream/storage/pom.xml                             |   2 +-
 stream/tests/integration/pom.xml                   |  39 ++-
 stream/tests/pom.xml                               |   3 +-
 29 files changed, 293 insertions(+), 423 deletions(-)

diff --git a/.test-infra/jenkins/job_bookkeeper_postcommit_master_java8.groovy b/.test-infra/jenkins/job_bookkeeper_postcommit_master_java8.groovy
index d4928bb..599f4ed 100644
--- a/.test-infra/jenkins/job_bookkeeper_postcommit_master_java8.groovy
+++ b/.test-infra/jenkins/job_bookkeeper_postcommit_master_java8.groovy
@@ -42,5 +42,5 @@ mavenJob('bookkeeper_postcommit_master_java8') {
   common_job_properties.setMavenConfig(delegate)
 
   // Maven build project.
-  goals('clean apache-rat:check package spotbugs:check -Ddistributedlog')
+  goals('clean apache-rat:check package spotbugs:check -Ddistributedlog -Dstream -DstreamTests')
 }
diff --git a/.test-infra/jenkins/job_bookkeeper_postcommit_master_java9.groovy b/.test-infra/jenkins/job_bookkeeper_postcommit_master_java9.groovy
index 6134413..68c4bde 100644
--- a/.test-infra/jenkins/job_bookkeeper_postcommit_master_java9.groovy
+++ b/.test-infra/jenkins/job_bookkeeper_postcommit_master_java9.groovy
@@ -42,5 +42,5 @@ mavenJob('bookkeeper_postcommit_master_java9') {
   common_job_properties.setMavenConfig(delegate)
 
   // Maven build project.
-  goals('clean apache-rat:check package spotbugs:check -Ddistributedlog')
+  goals('clean apache-rat:check package spotbugs:check -Ddistributedlog -Dstream -DstreamTests')
 }
diff --git a/.test-infra/jenkins/job_bookkeeper_precommit_java8.groovy b/.test-infra/jenkins/job_bookkeeper_precommit_java8.groovy
index 82aa4b7..58b0a0f 100644
--- a/.test-infra/jenkins/job_bookkeeper_precommit_java8.groovy
+++ b/.test-infra/jenkins/job_bookkeeper_precommit_java8.groovy
@@ -48,5 +48,5 @@ mavenJob('bookkeeper_precommit_pullrequest_java8') {
   common_job_properties.setMavenConfig(delegate)
 
   // Maven build project
-  goals('clean apache-rat:check package spotbugs:check')
+  goals('clean apache-rat:check package spotbugs:check -Dstream')
 }
diff --git a/.test-infra/jenkins/job_bookkeeper_precommit_java9.groovy b/.test-infra/jenkins/job_bookkeeper_precommit_java9.groovy
index ad803be..b7e6217 100644
--- a/.test-infra/jenkins/job_bookkeeper_precommit_java9.groovy
+++ b/.test-infra/jenkins/job_bookkeeper_precommit_java9.groovy
@@ -48,5 +48,5 @@ mavenJob('bookkeeper_precommit_pullrequest_java9') {
   common_job_properties.setMavenConfig(delegate)
 
   // Maven build project
-  goals('clean apache-rat:check package spotbugs:check')
+  goals('clean apache-rat:check package spotbugs:check -Dstream')
 }
diff --git a/.test-infra/jenkins/job_bookkeeper_release_nightly_snapshot.groovy b/.test-infra/jenkins/job_bookkeeper_release_nightly_snapshot.groovy
index 545e9c6..02d2a60 100644
--- a/.test-infra/jenkins/job_bookkeeper_release_nightly_snapshot.groovy
+++ b/.test-infra/jenkins/job_bookkeeper_release_nightly_snapshot.groovy
@@ -41,5 +41,5 @@ mavenJob('bookkeeper_release_nightly_snapshot') {
   common_job_properties.setMavenConfig(delegate)
 
   // Maven build project.
-  goals('clean apache-rat:check package spotbugs:check -Dmaven.test.failure.ignore=true deploy -Ddistributedlog')
+  goals('clean apache-rat:check package spotbugs:check -Dmaven.test.failure.ignore=true deploy -Ddistributedlog -Dstream -DstreamTests')
 }
diff --git a/.travis_scripts/build.sh b/.travis_scripts/build.sh
index d971026..85e0847 100755
--- a/.travis_scripts/build.sh
+++ b/.travis_scripts/build.sh
@@ -22,7 +22,7 @@ set -ev
 BINDIR=`dirname "$0"`
 BK_HOME=`cd $BINDIR/..;pwd`
 
-mvn --batch-mode clean apache-rat:check compile spotbugs:check install -DskipTests
+mvn --batch-mode clean apache-rat:check compile spotbugs:check install -DskipTests -Dstream
 if [ "$TRAVIS_OS_NAME" == "linux" ]; then
     $BK_HOME/dev/check-binary-license ./bookkeeper-dist/all/target/bookkeeper-all-*-bin.tar.gz;
     $BK_HOME/dev/check-binary-license ./bookkeeper-dist/server/target/bookkeeper-server-*-bin.tar.gz;
diff --git a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
index e1d0dcf..019ac24 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
@@ -210,7 +210,7 @@ Apache Software License, Version 2.
 - lib/com.fasterxml.jackson.core-jackson-databind-2.8.9.jar [3]
 - lib/com.fasterxml.jackson.module-jackson-module-paranamer-2.8.4.jar [4]
 - lib/com.fasterxml.jackson.module-jackson-module-scala_2.11-2.8.4.jar [5]
-- lib/com.google.guava-guava-20.0.jar [6]
+- lib/com.google.guava-guava-21.0.jar [6]
 - lib/commons-cli-commons-cli-1.2.jar [7]
 - lib/commons-codec-commons-codec-1.6.jar [8]
 - lib/commons-collections-commons-collections-3.2.2.jar [9]
@@ -277,7 +277,7 @@ Apache Software License, Version 2.
 [3] Source available at https://github.com/FasterXML/jackson-databind/tree/jackson-databind-2.8.9
 [4] Source available at https://github.com/FasterXML/jackson-modules-base/tree/jackson-modules-base-2.8.4
 [5] Source available at https://github.com/FasterXML/jackson-module-scala/tree/f9e099
-[6] Source available at https://github.com/google/guava/tree/v20.0
+[6] Source available at https://github.com/google/guava/tree/v21.0
 [7] Source available at https://git-wip-us.apache.org/repos/asf?p=commons-cli.git;a=tag;h=bc8f0e
 [8] Source available at http://svn.apache.org/viewvc/commons/proper/codec/tags/1_6/
 [9] Source available at https://git-wip-us.apache.org/repos/asf?p=commons-collections.git;a=tag;h=092ff4
diff --git a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
index 74e9861..9208032 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
@@ -208,7 +208,7 @@ Apache Software License, Version 2.
 - lib/com.fasterxml.jackson.core-jackson-annotations-2.8.9.jar [1]
 - lib/com.fasterxml.jackson.core-jackson-core-2.8.9.jar [2]
 - lib/com.fasterxml.jackson.core-jackson-databind-2.8.9.jar [3]
-- lib/com.google.guava-guava-20.0.jar [4]
+- lib/com.google.guava-guava-21.0.jar [4]
 - lib/commons-cli-commons-cli-1.2.jar [5]
 - lib/commons-codec-commons-codec-1.6.jar [6]
 - lib/commons-configuration-commons-configuration-1.10.jar [7]
@@ -240,7 +240,7 @@ Apache Software License, Version 2.
 [1] Source available at https://github.com/FasterXML/jackson-annotations/tree/jackson-annotations-2.8.9
 [2] Source available at https://github.com/FasterXML/jackson-core/tree/jackson-core-2.8.9
 [3] Source available at https://github.com/FasterXML/jackson-databind/tree/jackson-databind-2.8.9
-[4] Source available at https://github.com/google/guava/tree/v20.0
+[4] Source available at https://github.com/google/guava/tree/v21.0
 [5] Source available at https://git-wip-us.apache.org/repos/asf?p=commons-cli.git;a=tag;h=bc8f0e
 [6] Source available at http://svn.apache.org/viewvc/commons/proper/codec/tags/1_6/
 [7] Source available at http://svn.apache.org/viewvc/commons/proper/configuration/tags/CONFIGURATION_1_10/
diff --git a/buildtools/src/main/resources/bookkeeper/findbugsExclude.xml b/buildtools/src/main/resources/bookkeeper/findbugsExclude.xml
index 58ec8f3..aea95d4 100644
--- a/buildtools/src/main/resources/bookkeeper/findbugsExclude.xml
+++ b/buildtools/src/main/resources/bookkeeper/findbugsExclude.xml
@@ -114,4 +114,25 @@
     <Class name="org.apache.bookkeeper.client.BKException$Code" />
     <Bug pattern="NM_SAME_SIMPLE_NAME_AS_INTERFACE"/>
   </And>
+  <!-- modules under stream/ -->
+
+  <!-- common -->
+  <Match>
+    <Class name="org.apache.bookkeeper.common.hash.MurmurHash" />
+    <Method name="hash64"/>
+    <Bug pattern="SF_SWITCH_NO_DEFAULT"/>
+  </Match>
+
+  <!-- proto -->
+  <Match>
+    <Class name="~org.apache.bookkeeper.stream.coder.protobuf.test.*" />
+  </Match>
+  <Match>
+    <Class name="~org.apache.bookkeeper.stream.proto.*" />
+  </Match>
+
+  <!-- statelib -->
+  <Match>
+    <Class name="~org.apache.bookkeeper.proto.statestore.*" />
+  </Match>
 </FindBugsFilter>
diff --git a/pom.xml b/pom.xml
index fac6f13..9020df3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -107,12 +107,13 @@
     <commons-lang3.version>3.3.2</commons-lang3.version>
     <google.code.version>3.0.2</google.code.version>
     <google.errorprone.version>2.1.2</google.errorprone.version>
-    <guava.version>20.0</guava.version>
+    <grpc.version>1.5.0</grpc.version>
+    <guava.version>21.0</guava.version>
     <hamcrest.version>1.3</hamcrest.version>
     <jcommander.version>1.48</jcommander.version>
     <jmh.version>1.19</jmh.version>
     <junit.version>4.12</junit.version>
-    <lombok.version>1.16.18</lombok.version>
+    <lombok.version>1.16.20</lombok.version>
     <mockito.version>2.13.0</mockito.version>
     <netty.version>4.1.12.Final</netty.version>
     <netty-boringssl.version>2.0.3.Final</netty-boringssl.version>
@@ -136,24 +137,85 @@
     <maven-assembly-plugin.version>2.2.1</maven-assembly-plugin.version>
   </properties>
 
+  <!-- dependency definitions -->
   <dependencyManagement>
     <dependencies>
+      <!-- logging dependencies -->
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-api</artifactId>
+        <version>${slf4j.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-log4j12</artifactId>
+        <version>${slf4j.version}</version>
+      </dependency>
+
+      <!-- common dependencies -->
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-lang3</artifactId>
+        <version>${commons-lang3.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>com.google.guava</groupId>
+        <artifactId>guava</artifactId>
+        <version>${guava.version}</version>
+      </dependency>
+
+      <!-- serialization/deserialization dependencies -->
+      <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-java</artifactId>
+        <version>${protobuf.version}</version>
+      </dependency>
+
+      <!-- tool dependencies -->
       <dependency>
         <groupId>com.beust</groupId>
         <artifactId>jcommander</artifactId>
         <version>${jcommander.version}</version>
       </dependency>
+
+      <!-- netty dependencies -->
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-buffer</artifactId>
+        <version>${netty.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-common</artifactId>
+        <version>${netty.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-all</artifactId>
+        <version>${netty.version}</version>
+      </dependency>
+
+      <!-- grpc dependencies -->
+      <dependency>
+        <groupId>io.grpc</groupId>
+        <artifactId>grpc-all</artifactId>
+        <version>${grpc.version}</version>
+      </dependency>
+
+      <!-- server dependencies -->
+      <dependency>
+        <groupId>org.rocksdb</groupId>
+        <artifactId>rocksdbjni</artifactId>
+        <version>${rocksdb.version}</version>
+      </dependency>
+
     </dependencies>
   </dependencyManagement>
 
   <!-- dependencies for all modules -->
   <dependencies>
-    <!-- compilation dependencies -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-      <version>${slf4j.version}</version>
-    </dependency>
+
+    <!-- provided dependencies (available at compilation and test classpths and *NOT* packaged) -->
     <dependency>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
@@ -166,11 +228,18 @@
       <version>${spotbugs-annotations.version}</version>
       <scope>provided</scope>
     </dependency>
+
+    <!-- compilation dependencies (available at all classpaths) -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
     <dependency>
       <groupId>commons-configuration</groupId>
       <artifactId>commons-configuration</artifactId>
       <version>${commons-configuration.version}</version>
     </dependency>
+
     <!-- test dependencies -->
     <dependency>
       <groupId>junit</groupId>
@@ -178,8 +247,7 @@
       <version>${junit.version}</version>
       <scope>test</scope>
     </dependency>
-    <!-- Needed by junit -->
-    <dependency>
+    <dependency><!-- Needed by junit -->
       <groupId>org.hamcrest</groupId>
       <artifactId>hamcrest-all</artifactId>
       <version>${hamcrest.version}</version>
@@ -316,24 +384,37 @@
         <version>0.12</version>
         <configuration>
           <excludes>
+            <!-- Git -->
             <exclude>.git/**/*</exclude>
             <exclude>.github/**/*</exclude>
-            <exclude>**/target/**/*</exclude>
+            <exclude>**/.gitignore</exclude>
+
+            <!-- SVN -->
             <exclude>**/.svn/**/*</exclude>
-            <exclude>CHANGES.txt</exclude>
+
+            <!-- Built directory -->
+            <exclude>**/target/**/*</exclude>
+
+            <!-- Project files -->
             <exclude>**/README.md</exclude>
             <exclude>**/apidocs/*</exclude>
-            <exclude>test-patch/**/*</exclude>
+            <exclude>**/src/main/resources/deps/**</exclude>
+            <exclude>**/META-INF/**</exclude>
+
+            <!-- IDE files (eclipse & intellij) -->
             <exclude>**/.classpath</exclude>
-            <exclude>**/.gitignore</exclude>
             <exclude>**/.project</exclude>
             <exclude>**/.checkstyle</exclude>
             <exclude>**/.settings/*</exclude>
             <exclude>**/*.iml</exclude>
-            <exclude>site/**</exclude>
+            <exclude>**/*.iws</exclude>
+            <exclude>**/*.ipr</exclude>
+
+            <!-- Maven (CI builds) -->
             <exclude>.repository/**</exclude>
-            <exclude>**/src/main/resources/deps/**</exclude>
-            <exclude>**/META-INF/**</exclude>
+
+            <!-- Website -->
+            <exclude>site/**</exclude>
           </excludes>
           <consoleOutput>true</consoleOutput>
         </configuration>
@@ -484,5 +565,19 @@
         </plugins>
       </build>
     </profile>
+
+    <!-- enable building table service module only when -Dstream is provided -->
+    <profile>
+      <id>stream</id>
+      <activation>
+        <property>
+          <name>stream</name>
+        </property>
+      </activation>
+      <modules>
+        <!-- enable building table service -->
+        <module>stream</module>
+      </modules>
+    </profile>
   </profiles>
 </project>
diff --git a/stream/api/pom.xml b/stream/api/pom.xml
index 09b867a..2950a24 100644
--- a/stream/api/pom.xml
+++ b/stream/api/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <artifactId>stream-storage-parent</artifactId>
     <groupId>org.apache.bookkeeper</groupId>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>4.7.0-SNAPSHOT</version>
     <relativePath>..</relativePath>
   </parent>
   <groupId>org.apache.bookkeeper</groupId>
@@ -34,6 +34,7 @@
     <dependency>
       <groupId>org.apache.bookkeeper</groupId>
       <artifactId>bookkeeper-common</artifactId>
+      <version>${project.parent.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.bookkeeper</groupId>
diff --git a/stream/cli/pom.xml b/stream/cli/pom.xml
index e72b332..dabde1c 100644
--- a/stream/cli/pom.xml
+++ b/stream/cli/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.bookkeeper</groupId>
     <artifactId>stream-storage-parent</artifactId>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>4.7.0-SNAPSHOT</version>
   </parent>
   <artifactId>stream-storage-cli</artifactId>
   <name>Apache BookKeeper :: Stream Storage :: CLI</name>
@@ -40,6 +40,7 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
+      <scope>runtime</scope>
     </dependency>
   </dependencies>
   <build>
diff --git a/stream/clients/java/all/pom.xml b/stream/clients/java/all/pom.xml
index c6ddd44..4ab5a86 100644
--- a/stream/clients/java/all/pom.xml
+++ b/stream/clients/java/all/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.bookkeeper</groupId>
     <artifactId>stream-storage-java-client-parent</artifactId>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>4.7.0-SNAPSHOT</version>
   </parent>
   <artifactId>stream-storage-java-client</artifactId>
   <name>Apache BookKeeper :: Stream Storage :: Clients :: Java Client </name>
diff --git a/stream/clients/java/base/pom.xml b/stream/clients/java/base/pom.xml
index bd8a8ca..9e1356c 100644
--- a/stream/clients/java/base/pom.xml
+++ b/stream/clients/java/base/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.bookkeeper</groupId>
     <artifactId>stream-storage-java-client-parent</artifactId>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>4.7.0-SNAPSHOT</version>
   </parent>
   <artifactId>stream-storage-java-client-base</artifactId>
   <name>Apache BookKeeper :: Stream Storage :: Clients :: Java Client :: Base</name>
@@ -41,10 +41,6 @@
   <build>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>findbugs-maven-plugin</artifactId>
-      </plugin>
-      <plugin>
         <artifactId>maven-compiler-plugin</artifactId>
         <version>${maven-compiler-plugin.version}</version>
       </plugin>
diff --git a/stream/clients/java/kv/pom.xml b/stream/clients/java/kv/pom.xml
index 62db439..a558174 100644
--- a/stream/clients/java/kv/pom.xml
+++ b/stream/clients/java/kv/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.bookkeeper</groupId>
     <artifactId>stream-storage-java-client-parent</artifactId>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>4.7.0-SNAPSHOT</version>
   </parent>
   <artifactId>stream-storage-java-kv-client</artifactId>
   <name>Apache BookKeeper :: Stream Storage :: Clients :: Java Client :: KV</name>
diff --git a/stream/clients/java/pom.xml b/stream/clients/java/pom.xml
index f3ac391..0e23f85 100644
--- a/stream/clients/java/pom.xml
+++ b/stream/clients/java/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.bookkeeper</groupId>
     <artifactId>stream-storage-clients-parent</artifactId>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>4.7.0-SNAPSHOT</version>
     <relativePath>..</relativePath>
   </parent>
   <artifactId>stream-storage-java-client-parent</artifactId>
diff --git a/stream/clients/pom.xml b/stream/clients/pom.xml
index 35206d4..da22000 100644
--- a/stream/clients/pom.xml
+++ b/stream/clients/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.bookkeeper</groupId>
     <artifactId>stream-storage-parent</artifactId>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>4.7.0-SNAPSHOT</version>
     <relativePath>..</relativePath>
   </parent>
   <artifactId>stream-storage-clients-parent</artifactId>
diff --git a/stream/common/pom.xml b/stream/common/pom.xml
index dd4393f..15ea596 100644
--- a/stream/common/pom.xml
+++ b/stream/common/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <artifactId>stream-storage-parent</artifactId>
     <groupId>org.apache.bookkeeper</groupId>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>4.7.0-SNAPSHOT</version>
     <relativePath>..</relativePath>
   </parent>
   <groupId>org.apache.bookkeeper</groupId>
@@ -31,6 +31,7 @@
     <dependency>
       <groupId>org.apache.bookkeeper</groupId>
       <artifactId>bookkeeper-common</artifactId>
+      <version>${project.parent.version}</version>
     </dependency>
     <dependency>
       <groupId>io.netty</groupId>
diff --git a/stream/distributedlog/core/pom.xml b/stream/distributedlog/core/pom.xml
index 48a6b64..a467329 100644
--- a/stream/distributedlog/core/pom.xml
+++ b/stream/distributedlog/core/pom.xml
@@ -212,18 +212,44 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>license-maven-plugin</artifactId>
+        <version>1.6</version>
+        <configuration>
+          <canUpdateCopyright>false</canUpdateCopyright>
+          <roots><root>${project.basedir}</root></roots>
+        </configuration>
+        <executions>
+          <execution>
+            <id>update-pom-license</id>
+            <goals>
+              <goal>update-file-header</goal>
+            </goals>
+            <phase>package</phase>
+            <configuration>
+              <licenseName>apache_v2</licenseName>
+              <includes>
+                <include>dependency-reduced-pom.xml</include>
+              </includes>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-clean-plugin</artifactId>
+        <version>2.5</version>
+        <configuration>
+          <filesets>
+            <fileset>
+              <directory>${project.basedir}</directory>
+              <includes>
+                <include>dependency-reduced-pom.xml</include>
+              </includes>
+            </fileset>
+          </filesets>
+        </configuration>
+      </plugin>
     </plugins>
   </build>
-  <profiles>
-    <profile>
-      <id>twitter-ostrich-provider</id>
-      <dependencies>
-        <dependency>
-          <groupId>org.apache.bookkeeper.stats</groupId>
-          <artifactId>twitter-ostrich-provider</artifactId>
-          <version>${bookkeeper.version}</version>
-        </dependency>
-      </dependencies>
-    </profile>
-  </profiles>
 </project>
diff --git a/stream/pom.xml b/stream/pom.xml
index 8eb4b1d..de13b3c 100644
--- a/stream/pom.xml
+++ b/stream/pom.xml
@@ -18,43 +18,16 @@
 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.bookkeeper</groupId>
+    <artifactId>bookkeeper</artifactId>
+    <version>4.7.0-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
   <packaging>pom</packaging>
   <groupId>org.apache.bookkeeper</groupId>
   <artifactId>stream-storage-parent</artifactId>
-  <version>0.6.0-SNAPSHOT</version>
   <name>Apache BookKeeper :: Stream Storage :: Parent</name>
-  <url>http://maven.apache.org</url>
-  <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <project.libdir>${basedir}/lib</project.libdir>
-    <!-- dependencies -->
-    <bookkeeper.version>4.7.0-SNAPSHOT</bookkeeper.version>
-    <commons-lang3.version>3.3.2</commons-lang3.version>
-    <distributedlog.version>4.7.0-SNAPSHOT</distributedlog.version>
-    <grpc.version>1.5.0</grpc.version>
-    <guava.version>21.0</guava.version>
-    <helix-core.version>0.6.7</helix-core.version>
-    <jcommander.version>1.48</jcommander.version>
-    <lombok.version>1.16.18</lombok.version>
-    <netty.version>4.1.12.Final</netty.version>
-    <protobuf.version>3.4.0</protobuf.version>
-    <rocksdb.version>5.8.6</rocksdb.version>
-    <slf4j.version>1.7.25</slf4j.version>
-    <!-- test dependencies -->
-    <junit.version>4.12</junit.version>
-    <mockito-core.version>2.13.0</mockito-core.version>
-    <powermock.version>2.0.0-beta.5</powermock.version>
-    <!-- plugin dependencies -->
-    <apache-rat-plugin.version>0.12</apache-rat-plugin.version>
-    <findbugs-maven-plugin.version>3.0.3</findbugs-maven-plugin.version>
-    <maven-checkstyle-plugin.version>2.17</maven-checkstyle-plugin.version>
-    <maven-compiler-plugin.version>3.1</maven-compiler-plugin.version>
-    <maven-jar-plugin.version>2.2</maven-jar-plugin.version>
-    <maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version>
-    <puppycrawl.checkstyle.version>6.19</puppycrawl.checkstyle.version>
-    <!-- github server corresponds to entry in ~/.m2/settings.xml -->
-    <github.global.server>github</github.global.server>
-  </properties>
 
   <modules>
     <module>common</module>
@@ -68,239 +41,14 @@
     <module>tests</module>
   </modules>
 
-  <dependencyManagement>
-    <dependencies>
-      <!-- logging dependencies -->
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-api</artifactId>
-        <version>${slf4j.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-log4j12</artifactId>
-        <version>${slf4j.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.projectlombok</groupId>
-        <artifactId>lombok</artifactId>
-        <version>${lombok.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-lang3</artifactId>
-        <version>${commons-lang3.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.distributedlog</groupId>
-        <artifactId>distributedlog-core</artifactId>
-        <version>${distributedlog.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.apache.bookkeeper</groupId>
-            <artifactId>bookkeeper-common</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.bookkeeper</groupId>
-        <artifactId>bookkeeper-common</artifactId>
-        <version>${bookkeeper.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>com.google.guava</groupId>
-        <artifactId>guava</artifactId>
-        <version>${guava.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-buffer</artifactId>
-        <version>${netty.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.rocksdb</groupId>
-        <artifactId>rocksdbjni</artifactId>
-        <version>${rocksdb.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>com.google.protobuf</groupId>
-        <artifactId>protobuf-java</artifactId>
-        <version>${protobuf.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>io.grpc</groupId>
-        <artifactId>grpc-all</artifactId>
-        <version>${grpc.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.helix</groupId>
-        <artifactId>helix-core</artifactId>
-        <version>${helix-core.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.apache.zookeeper</groupId>
-            <artifactId>zookeeper</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>com.beust</groupId>
-        <artifactId>jcommander</artifactId>
-        <version>${jcommander.version}</version>
-      </dependency>
-
-      <!-- test depenencies -->
-      <dependency>
-        <groupId>junit</groupId>
-        <artifactId>junit</artifactId>
-        <version>${junit.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.distributedlog</groupId>
-        <artifactId>distributedlog-core</artifactId>
-        <version>${distributedlog.version}</version>
-        <type>test-jar</type>
-      </dependency>
-      <dependency>
-        <groupId>org.mockito</groupId>
-        <artifactId>mockito-core</artifactId>
-        <version>${mockito-core.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.powermock</groupId>
-        <artifactId>powermock-api-mockito2</artifactId>
-        <version>${powermock.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.powermock</groupId>
-        <artifactId>powermock-module-junit4</artifactId>
-        <version>${powermock.version}</version>
-      </dependency>
-
-    </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-    <!-- These dependencies are common to all the submodules -->
-
-    <!-- Provided -->
-    <dependency>
-      <groupId>org.projectlombok</groupId>
-      <artifactId>lombok</artifactId>
-      <scope>provided</scope>
-    </dependency>
-
-    <!-- Compilation & Runtime -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-
-    <!-- Tests -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.powermock</groupId>
-      <artifactId>powermock-api-mockito2</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.powermock</groupId>
-      <artifactId>powermock-module-junit4</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
   <build>
     <plugins>
       <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-        <version>${apache-rat-plugin.version}</version>
-        <configuration>
-          <excludes>
-            <exclude>ChangeLog</exclude>
-            <exclude>CONFIG.ini</exclude>
-            <exclude>GROUPS</exclude>
-            <exclude>OWNERS</exclude>
-            <exclude>dist/**/*</exclude>
-            <exclude>docs/**/*</exclude>
-            <exclude>scripts/dev/reviewers</exclude>
-            <exclude>website/**/*</exclude>
-            <exclude>**/*.md</exclude>
-            <exclude>**/apidocs/*</exclude>
-            <exclude>**/dependency-reduced-pom.xml</exclude>
-            <exclude>**/org/apache/distributedlog/thrift/*</exclude>
-            <exclude>**/logs/*.log</exclude>
-            <exclude>**/target/**/*</exclude>
-            <!-- Git -->
-            <exclude>.git/**/*</exclude>
-            <exclude>.github/**/*</exclude>
-            <exclude>.gitignore</exclude>
-            <exclude>docker/.gitignore</exclude>
-            <exclude>.idea/**/*</exclude>
-            <!-- Intellij -->
-            <exclude>**/*.iml</exclude>
-            <exclude>**/*.iws</exclude>
-            <exclude>**/*.ipr</exclude>
-            <!-- SVN -->
-            <exclude>**/.svn/**/*</exclude>
-            <!-- Maven -->
-            <exclude>.repository/**</exclude>
-            <!-- Grafana -->
-            <exclude>docker/grafana/dashboards/*.json</exclude>
-            <!-- Travis -->
-            <exclude>*.log</exclude>
-          </excludes>
-          <consoleOutput>true</consoleOutput>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>findbugs-maven-plugin</artifactId>
-        <version>${findbugs-maven-plugin.version}</version>
-        <configuration>
-          <excludeFilterFile>${session.executionRootDirectory}/distributedlog-build-tools/src/main/resources/distributedlog/findbugsExclude.xml</excludeFilterFile>
-        </configuration>
-      </plugin>
-      <plugin>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>${maven-compiler-plugin.version}</version>
+        <groupId>com.github.spotbugs</groupId>
+        <artifactId>spotbugs-maven-plugin</artifactId>
+        <version>${spotbugs-maven-plugin.version}</version>
         <configuration>
-          <source>1.8</source>
-          <target>1.8</target>
-          <compilerArgs>
-            <compilerArg>-Werror</compilerArg>
-            <compilerArg>-Xlint:deprecation</compilerArg>
-            <compilerArg>-Xlint:unchecked</compilerArg>
-            <!-- https://issues.apache.org/jira/browse/MCOMPILER-205 -->
-            <compilerArg>-Xpkginfo:always</compilerArg>
-	  </compilerArgs>
+          <skip>true</skip>
         </configuration>
       </plugin>
       <plugin>
@@ -308,83 +56,37 @@
         <artifactId>maven-surefire-plugin</artifactId>
         <version>${maven-surefire-plugin.version}</version>
         <configuration>
-          <argLine>-Xmx2G -Djava.net.preferIPv4Stack=true</argLine>
+          <!-- only run tests when -DstreamTests is specified //-->
+          <skipTests>true</skipTests>
           <redirectTestOutputToFile>true</redirectTestOutputToFile>
-          <reuseForks>false</reuseForks>
+          <argLine>-Xmx3G -Djava.net.preferIPv4Stack=true -XX:MaxDirectMemorySize=2G -Dio.netty.leakDetection.level=PARANOID</argLine>
+          <forkMode>always</forkMode>
           <forkedProcessTimeoutInSeconds>1800</forkedProcessTimeoutInSeconds>
         </configuration>
       </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>${maven-checkstyle-plugin.version}</version>
-        <dependencies>
-          <dependency>
-            <groupId>com.puppycrawl.tools</groupId>
-            <artifactId>checkstyle</artifactId>
-            <version>${puppycrawl.checkstyle.version}</version>
-          </dependency>
-          <dependency>
-            <groupId>org.apache.bookkeeper</groupId>
-            <artifactId>buildtools</artifactId>
-            <version>${bookkeeper.version}</version>
-          </dependency>
-        </dependencies>
-        <configuration>
-          <configLocation>bookkeeper/checkstyle.xml</configLocation>
-          <suppressionsLocation>bookkeeper/suppressions.xml</suppressionsLocation>
-          <consoleOutput>true</consoleOutput>
-          <failOnViolation>true</failOnViolation>
-          <includeResources>false</includeResources>
-          <includeTestSourceDirectory>true</includeTestSourceDirectory>
-        </configuration>
-        <executions>
-          <execution>
-            <id>checkstyle</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>check</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>com.github.github</groupId>
-        <artifactId>site-maven-plugin</artifactId>
-        <version>0.11</version>
-        <configuration>
-          <message>Maven artifacts for ${project.version}</message>  <!-- git commit message -->
-          <noJekyll>true</noJekyll>                                  <!-- disable webpage processing -->
-          <outputDirectory>${user.dir}/target/mvn-repo</outputDirectory> <!-- matches distribution management repository url above -->
-          <branch>refs/heads/mvn-repo</branch>                       <!-- remote branch name -->
-          <includes><include>**/*</include></includes>
-          <repositoryName>artifacts</repositoryName>                 <!-- github repo name -->
-          <repositoryOwner>sijie</repositoryOwner>                   <!-- github username  -->
-        </configuration>
-        <executions>
-          <!-- run site-maven-plugin's 'site' target as part of the build's normal 'deploy' phase -->
-          <execution>
-            <goals>
-              <goal>site</goal>
-            </goals>
-            <phase>deploy</phase>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-deploy-plugin</artifactId>
-        <version>2.8.1</version>
-        <configuration>
-            <altDeploymentRepository>internal.repo::default::file://${user.dir}/target/mvn-repo</altDeploymentRepository>
-        </configuration>
-      </plugin>
     </plugins>
   </build>
-  <distributionManagement>
-    <repository>
-      <id>internal.repo</id>
-      <name>Temporary Staging Repository</name>
-      <url>file://${project.build.directory}/mvn-repo</url>
-    </repository>
-  </distributionManagement>
+
+  <profiles>
+    <profile>
+      <id>streamTests</id>
+      <activation>
+        <property>
+          <name>streamTests</name>
+        </property>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <skipTests>false</skipTests>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+
 </project>
diff --git a/stream/proto/pom.xml b/stream/proto/pom.xml
index 9471567..e6a34c5 100644
--- a/stream/proto/pom.xml
+++ b/stream/proto/pom.xml
@@ -21,9 +21,10 @@
   <parent>
     <groupId>org.apache.bookkeeper</groupId>
     <artifactId>stream-storage-parent</artifactId>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>4.7.0-SNAPSHOT</version>
     <relativePath>..</relativePath>
   </parent>
+  <groupId>org.apache.bookkeeper</groupId>
   <artifactId>stream-storage-proto</artifactId>
   <name>Apache BookKeeper :: Stream Storage :: Proto</name>
 
@@ -37,6 +38,10 @@
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
     </dependency>
+    <dependency>
+      <groupId>com.google.protobuf</groupId>
+      <artifactId>protobuf-java</artifactId>
+    </dependency>
   </dependencies>
 
   <build>
@@ -68,10 +73,6 @@
         </executions>
       </plugin>
       <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>findbugs-maven-plugin</artifactId>
-      </plugin>
-      <plugin>
         <artifactId>maven-compiler-plugin</artifactId>
         <version>${maven-compiler-plugin.version}</version>
         <configuration>
diff --git a/stream/server/pom.xml b/stream/server/pom.xml
index 06448e6..1036f53 100644
--- a/stream/server/pom.xml
+++ b/stream/server/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.bookkeeper</groupId>
     <artifactId>stream-storage-parent</artifactId>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>4.7.0-SNAPSHOT</version>
   </parent>
   <artifactId>stream-storage-server</artifactId>
   <name>Apache BookKeeper :: Stream Storage :: Server</name>
@@ -46,10 +46,6 @@
   <build>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>findbugs-maven-plugin</artifactId>
-      </plugin>
-      <plugin>
         <artifactId>maven-compiler-plugin</artifactId>
         <version>${maven-compiler-plugin.version}</version>
       </plugin>
@@ -89,7 +85,7 @@
           <dependency>
             <groupId>org.apache.bookkeeper</groupId>
             <artifactId>buildtools</artifactId>
-            <version>${bookkeeper.version}</version>
+            <version>${project.parent.version}</version>
           </dependency>
         </dependencies>
         <configuration>
diff --git a/stream/statelib/pom.xml b/stream/statelib/pom.xml
index 8e74bd0..dc5a0ed 100644
--- a/stream/statelib/pom.xml
+++ b/stream/statelib/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <artifactId>stream-storage-parent</artifactId>
     <groupId>org.apache.bookkeeper</groupId>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>4.7.0-SNAPSHOT</version>
     <relativePath>..</relativePath>
   </parent>
   <groupId>org.apache.bookkeeper</groupId>
@@ -32,10 +32,12 @@
     <dependency>
       <groupId>org.apache.distributedlog</groupId>
       <artifactId>distributedlog-core</artifactId>
+      <version>${project.parent.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.bookkeeper</groupId>
       <artifactId>bookkeeper-common</artifactId>
+      <version>${project.parent.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.bookkeeper</groupId>
@@ -67,7 +69,7 @@
     <dependency>
       <groupId>org.apache.distributedlog</groupId>
       <artifactId>distributedlog-core</artifactId>
-      <version>${distributedlog.version}</version>
+      <version>${project.parent.version}</version>
       <classifier>tests</classifier>
     </dependency>
   </dependencies>
diff --git a/stream/statelib/src/test/java/org/apache/bookkeeper/statelib/impl/rocksdb/checkpoint/fs/FSCheckpointManagerTest.java b/stream/statelib/src/test/java/org/apache/bookkeeper/statelib/impl/rocksdb/checkpoint/fs/FSCheckpointManagerTest.java
index fe707d8..0beb41d 100644
--- a/stream/statelib/src/test/java/org/apache/bookkeeper/statelib/impl/rocksdb/checkpoint/fs/FSCheckpointManagerTest.java
+++ b/stream/statelib/src/test/java/org/apache/bookkeeper/statelib/impl/rocksdb/checkpoint/fs/FSCheckpointManagerTest.java
@@ -28,6 +28,7 @@ import com.google.common.collect.Lists;
 import java.io.File;
 import java.io.OutputStream;
 import java.nio.file.NoSuchFileException;
+import java.util.Collections;
 import java.util.List;
 import org.junit.Before;
 import org.junit.Rule;
@@ -79,8 +80,10 @@ public class FSCheckpointManagerTest {
             expectedFiles.add(filename);
             new File(testDir, filename).mkdir();
         }
+        List<String> files = cm.listFiles(runtime.getMethodName());
+        Collections.sort(files);
 
-        assertEquals(expectedFiles, cm.listFiles(runtime.getMethodName()));
+        assertEquals(expectedFiles, files);
     }
 
     @Test
diff --git a/stream/storage/api/pom.xml b/stream/storage/api/pom.xml
index ed07ff8..24a5663 100644
--- a/stream/storage/api/pom.xml
+++ b/stream/storage/api/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.bookkeeper</groupId>
     <artifactId>stream-storage-service-parent</artifactId>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>4.7.0-SNAPSHOT</version>
     <relativePath>..</relativePath>
   </parent>
   <artifactId>stream-storage-service-api</artifactId>
@@ -31,7 +31,7 @@
     <dependency>
       <groupId>org.apache.bookkeeper</groupId>
       <artifactId>bookkeeper-common</artifactId>
-      <version>${bookkeeper.version}</version>
+      <version>${project.parent.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.bookkeeper</groupId>
@@ -43,10 +43,6 @@
   <build>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>findbugs-maven-plugin</artifactId>
-      </plugin>
-      <plugin>
         <artifactId>maven-compiler-plugin</artifactId>
         <version>${maven-compiler-plugin.version}</version>
       </plugin>
diff --git a/stream/storage/impl/pom.xml b/stream/storage/impl/pom.xml
index 7338bbb..7c6a7f4 100644
--- a/stream/storage/impl/pom.xml
+++ b/stream/storage/impl/pom.xml
@@ -21,12 +21,17 @@
   <parent>
     <groupId>org.apache.bookkeeper</groupId>
     <artifactId>stream-storage-service-parent</artifactId>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>4.7.0-SNAPSHOT</version>
     <relativePath>..</relativePath>
   </parent>
   <artifactId>stream-storage-service-impl</artifactId>
   <name>Apache BookKeeper :: Stream Storage :: Storage :: Impl</name>
 
+  <properties>
+    <!-- dependencies -->
+    <helix-core.version>0.6.7</helix-core.version>
+  </properties>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.bookkeeper</groupId>
@@ -39,18 +44,14 @@
       <version>${project.parent.version}</version>
     </dependency>
     <dependency>
-      <groupId>org.apache.bookkeeper</groupId>
-      <artifactId>statelib</artifactId>
-      <version>${project.parent.version}</version>
-    </dependency>
-    <dependency>
       <groupId>org.apache.helix</groupId>
       <artifactId>helix-core</artifactId>
+      <version>${helix-core.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.distributedlog</groupId>
       <artifactId>distributedlog-core</artifactId>
-      <version>${distributedlog.version}</version>
+      <version>${project.parent.version}</version>
       <classifier>tests</classifier>
       <scope>test</scope>
     </dependency>
@@ -58,10 +59,6 @@
   <build>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>findbugs-maven-plugin</artifactId>
-      </plugin>
-      <plugin>
         <artifactId>maven-compiler-plugin</artifactId>
         <version>${maven-compiler-plugin.version}</version>
       </plugin>
diff --git a/stream/storage/pom.xml b/stream/storage/pom.xml
index c294fd6..04439c7 100644
--- a/stream/storage/pom.xml
+++ b/stream/storage/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.bookkeeper</groupId>
     <artifactId>stream-storage-parent</artifactId>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>4.7.0-SNAPSHOT</version>
     <relativePath>..</relativePath>
   </parent>
   <artifactId>stream-storage-service-parent</artifactId>
diff --git a/stream/tests/integration/pom.xml b/stream/tests/integration/pom.xml
index 8648373..d79c7c6 100644
--- a/stream/tests/integration/pom.xml
+++ b/stream/tests/integration/pom.xml
@@ -19,9 +19,9 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <groupId>org.apache.bookkeeper</groupId>
+    <groupId>org.apache.bookkeeper.tests</groupId>
     <artifactId>stream-storage-tests-parent</artifactId>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>4.7.0-SNAPSHOT</version>
   </parent>
   <artifactId>stream-storage-integration-test</artifactId>
   <name>Apache BookKeeper :: Stream Storage :: Tests :: Integration</name>
@@ -40,7 +40,7 @@
     <dependency>
       <groupId>org.apache.distributedlog</groupId>
       <artifactId>distributedlog-core</artifactId>
-      <version>${distributedlog.version}</version>
+      <version>${project.parent.version}</version>
       <classifier>tests</classifier>
       <scope>test</scope>
     </dependency>
@@ -73,6 +73,8 @@
         <artifactId>maven-surefire-plugin</artifactId>
         <version>${maven-surefire-plugin.version}</version>
         <configuration>
+          <!-- only run tests when -DstreamIntegrationTests is specified //-->
+          <skipTests>true</skipTests>
           <redirectTestOutputToFile>true</redirectTestOutputToFile>
           <argLine>-Xmx3G -Djava.net.preferIPv4Stack=true -XX:MaxDirectMemorySize=2G</argLine>
           <forkMode>always</forkMode>
@@ -92,7 +94,7 @@
           <dependency>
             <groupId>org.apache.bookkeeper</groupId>
             <artifactId>buildtools</artifactId>
-            <version>${bookkeeper.version}</version>
+            <version>${project.parent.version}</version>
           </dependency>
         </dependencies>
         <configuration>
@@ -114,4 +116,33 @@
       </plugin>
     </plugins>
   </build>
+  <profiles>
+    <profile>
+      <id>streamIntegrationTests</id>
+      <activation>
+        <property>
+          <name>streamIntegrationTests</name>
+        </property>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <skipTests>false</skipTests>
+            </configuration>
+          </plugin>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-deploy-plugin</artifactId>
+            <version>${maven-deploy-plugin.version}</version>
+            <configuration>
+              <skip>true</skip>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
 </project>
diff --git a/stream/tests/pom.xml b/stream/tests/pom.xml
index 946fea9..0296da1 100644
--- a/stream/tests/pom.xml
+++ b/stream/tests/pom.xml
@@ -22,8 +22,9 @@
   <parent>
     <groupId>org.apache.bookkeeper</groupId>
     <artifactId>stream-storage-parent</artifactId>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>4.7.0-SNAPSHOT</version>
   </parent>
+  <groupId>org.apache.bookkeeper.tests</groupId>
   <artifactId>stream-storage-tests-parent</artifactId>
   <name>Apache BookKeeper :: Stream Storage :: Tests</name>
   <modules>

-- 
To stop receiving notification emails like this one, please contact
sijie@apache.org.