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

wchevreuil pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2 by this push:
     new 35868ab  HBASE-26838 Junit jar is not included in the hbase tar ball, 
causing … (#4223)
35868ab is described below

commit 35868abe8f9d384f543866dc7edffaf159e1cba3
Author: Wellington Ramos Chevreuil <wchevre...@apache.org>
AuthorDate: Thu Mar 31 21:22:19 2022 +0100

    HBASE-26838 Junit jar is not included in the hbase tar ball, causing … 
(#4223)
    
    Signed-off-by: Josh Elser <els...@apache.org>
    Singed-off-by: Nick Dimiduk <ndimi...@apache.org>
    Reviewed-by: Sean Busbey <bus...@apache.org>
---
 bin/hbase                                                |  7 +++++++
 hbase-assembly/pom.xml                                   | 13 ++++++++++++-
 hbase-assembly/src/main/assembly/client.xml              | 12 ++++++++++++
 hbase-assembly/src/main/assembly/hadoop-three-compat.xml | 13 +++++++++++++
 src/main/asciidoc/_chapters/developer.adoc               | 13 ++++++++++++-
 5 files changed, 56 insertions(+), 2 deletions(-)

diff --git a/bin/hbase b/bin/hbase
index 4489a3f..f1ffb11 100755
--- a/bin/hbase
+++ b/bin/hbase
@@ -729,6 +729,13 @@ elif [ "$COMMAND" = "hbtop" ] ; then
   HBASE_OPTS="${HBASE_OPTS} ${HBASE_HBTOP_OPTS}"
 else
   CLASS=$COMMAND
+if [[ "$CLASS" =~ .*IntegrationTest.* ]] ; then
+    for f in ${HBASE_HOME}/lib/test/*.jar; do
+      if [ -f "${f}" ]; then
+        CLASSPATH="${CLASSPATH}:${f}"
+      fi
+    done
+  fi
 fi
 
 # Add lib/jdk11 jars to the classpath
diff --git a/hbase-assembly/pom.xml b/hbase-assembly/pom.xml
index 198a76e..f5d8a78 100644
--- a/hbase-assembly/pom.xml
+++ b/hbase-assembly/pom.xml
@@ -388,7 +388,18 @@
           <groupId>org.apache.hbase</groupId>
           <artifactId>hbase-rsgroup</artifactId>
         </dependency>
-      </dependencies>
+      <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <!-- Making it compile here so that it can be downloaded during 
packaging. -->
+      <!-- All other modules scope it as test or inherit test scope from 
parent pom.  -->
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
     </profile>
   </profiles>
 </project>
diff --git a/hbase-assembly/src/main/assembly/client.xml 
b/hbase-assembly/src/main/assembly/client.xml
index 2a8e669..54ed2e9 100644
--- a/hbase-assembly/src/main/assembly/client.xml
+++ b/hbase-assembly/src/main/assembly/client.xml
@@ -52,6 +52,7 @@
               <exclude>com.sun.jersey:*</exclude>
               <exclude>com.sun.jersey.contribs:*</exclude>
               <exclude>jline:jline</exclude>
+              <exclude>junit:junit</exclude>
               
<exclude>com.github.stephenc.findbugs:findbugs-annotations</exclude>
               <exclude>commons-logging:commons-logging</exclude>
               <exclude>org.apache.hbase:hbase-shaded-client</exclude>
@@ -63,6 +64,8 @@
               <exclude>org.slf4j:*</exclude>
               <exclude>org.apache.logging.log4j:*</exclude>
               <exclude>io.opentelemetry.javaagent:*</exclude>
+              <exclude>org.hamcrest:hamcrest-core</exclude>
+              <exclude>org.mockito:mockito-core</exclude>
             </excludes>
           </dependencySet>
         </dependencySets>
@@ -157,6 +160,15 @@
         <include>io.opentelemetry.javaagent:*</include>
       </includes>
     </dependencySet>
+    <!-- Adds junit libs to lib/test -->
+    <dependencySet>
+      <outputDirectory>lib/test</outputDirectory>
+      <includes>
+        <include>junit:junit</include>
+        <include>org.hamcrest:hamcrest-core</include>
+        <include>org.mockito:mockito-core</include>
+      </includes>
+    </dependencySet>
   </dependencySets>
 
 </assembly>
diff --git a/hbase-assembly/src/main/assembly/hadoop-three-compat.xml 
b/hbase-assembly/src/main/assembly/hadoop-three-compat.xml
index a1bbcb8..61a2dfa 100644
--- a/hbase-assembly/src/main/assembly/hadoop-three-compat.xml
+++ b/hbase-assembly/src/main/assembly/hadoop-three-compat.xml
@@ -110,6 +110,9 @@
               <exclude>org.slf4j:*</exclude>
               <exclude>org.apache.logging.log4j:*</exclude>
               <exclude>io.opentelemetry.javaagent:*</exclude>
+              <exclude>junit:junit</exclude>
+              <exclude>org.hamcrest:hamcrest-core</exclude>
+              <exclude>org.mockito:mockito-core</exclude>
             </excludes>
           </dependencySet>
         </dependencySets>
@@ -258,6 +261,16 @@
         <include>io.opentelemetry.javaagent:*</include>
       </includes>
     </dependencySet>
+
+    <!-- Adds junit libs to lib/test -->
+    <dependencySet>
+      <outputDirectory>lib/test</outputDirectory>
+      <includes>
+        <include>junit:junit</include>
+        <include>org.hamcrest:hamcrest-core</include>
+        <include>org.mockito:mockito-core</include>
+      </includes>
+    </dependencySet>
   </dependencySets>
 
 </assembly>
diff --git a/src/main/asciidoc/_chapters/developer.adoc 
b/src/main/asciidoc/_chapters/developer.adoc
index b3e2ffe..6eacead 100644
--- a/src/main/asciidoc/_chapters/developer.adoc
+++ b/src/main/asciidoc/_chapters/developer.adoc
@@ -1677,7 +1677,7 @@ They are generally long-lasting, sizeable (the test can 
be asked to 1M rows or 1
 Integration tests are what you would run when you need to more elaborate 
proofing of a release candidate beyond what unit tests can do.
 They are not generally run on the Apache Continuous Integration build server, 
however, some sites opt to run integration tests as a part of their continuous 
testing on an actual cluster.
 
-Integration tests currently live under the _src/test_                directory 
in the hbase-it submodule and will match the regex: _**/IntegrationTest*.java_.
+Integration tests currently live under the _src/test_ directory in the 
hbase-it submodule and will match the regex: _*IntegrationTest*.java_.
 All integration tests are also annotated with 
`@Category(IntegrationTests.class)`.
 
 Integration tests can be run in two modes: using a mini cluster, or against an 
actual distributed cluster.
@@ -1794,6 +1794,17 @@ Currently tarball deployments, deployments which uses 
_hbase-daemons.sh_, and li
 _/etc/init.d/_ scripts are not supported for now, but it can be easily added.
 For other deployment options, a ClusterManager can be implemented and plugged 
in.
 
+Some integration tests define a _main_ method as entry point, and can be run 
on its' own, rather than using the test driver. For example, the _itbll_ test 
can be run as follows:
+
+----
+bin/hbase org.apache.hadoop.hbase.test.IntegrationTestBigLinkedList loop 2 1 
100000 /temp 1 1000 50 1 0
+----
+
+NOTE: The _hbase_ script assumes all integration tests with exposed _main_ 
methods to be run
+against a distributed cluster will follow the *IntegrationTest* regex naming 
pattern
+mentioned above, in order to proper set test dependencies into the classpath.
+
+
 [[maven.build.commands.integration.tests.destructive]]
 ==== Destructive integration / system tests (ChaosMonkey)
 

Reply via email to