You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by bb...@apache.org on 2022/12/15 17:03:41 UTC
[hbase] 01/91: Add maven and RPM building in blazar
This is an automated email from the ASF dual-hosted git repository.
bbeaudreault pushed a commit to branch hubspot-2
in repository https://gitbox.apache.org/repos/asf/hbase.git
commit fd5b526398d1a3bb371f15cd951606e34c6487b8
Author: Bryan Beaudreault <bb...@hubspot.com>
AuthorDate: Wed Jun 9 09:51:16 2021 -0400
Add maven and RPM building in blazar
This uses our standard buildpack, but each module must get a custom .blazar.yaml to pass in required
properties to the build. One can distribute that .blazar.yaml using build-scripts/copy_blazar_yaml.sh.
In order to minimize the duplication, most of the customizations are consolidated in
build-scripts/prepare_environment.sh.
The RPM build is hooked into the standard build hbase-assembly, as a post-build step. The RPM build
scripts in hbase-assembly/rpm-build handle turning the assembled tar.gz into multiple RPMs. We required
some minor changes to the descriptor in hbase-assembly to account for the fact that our build processes
each module independently instead of as a single reactor build. As a result, moduleSet does not work, so
moduleSet usages were converted to dependencySet.
---
.blazar.yaml | 18 +
build-scripts/copy_blazar_yaml.sh | 10 +
build-scripts/prepare_environment.sh | 103 +++++
hbase-annotations/.blazar.yaml | 18 +
hbase-archetypes/.blazar.yaml | 18 +
.../hbase-archetype-builder/.blazar.yaml | 18 +
hbase-archetypes/hbase-client-project/.blazar.yaml | 18 +
.../hbase-shaded-client-project/.blazar.yaml | 18 +
hbase-assembly/.blazar.yaml | 34 ++
hbase-assembly/pom.xml | 9 +
hbase-assembly/rpm-build/build.sh | 61 +++
hbase-assembly/rpm-build/hbase.spec | 229 +++++++++++
hbase-assembly/rpm-build/sources/hbase.1 | 88 ++++
hbase-assembly/rpm-build/sources/hbase.default | 41 ++
.../rpm-build/sources/hbase.nofiles.conf | 16 +
hbase-assembly/rpm-build/sources/hbase.svc | 92 +++++
hbase-assembly/rpm-build/sources/init.d.tmpl | 311 ++++++++++++++
hbase-assembly/rpm-build/sources/install_hbase.sh | 181 +++++++++
.../rpm-build/sources/regionserver-init.d.tpl | 446 +++++++++++++++++++++
.../src/main/assembly/hadoop-three-compat.xml | 178 +++-----
hbase-asyncfs/.blazar.yaml | 18 +
hbase-build-configuration/.blazar.yaml | 18 +
hbase-checkstyle/.blazar.yaml | 18 +
hbase-client/.blazar.yaml | 18 +
hbase-common/.blazar.yaml | 18 +
hbase-common/pom.xml | 8 +-
hbase-endpoint/.blazar.yaml | 18 +
hbase-examples/.blazar.yaml | 18 +
hbase-external-blockcache/.blazar.yaml | 18 +
hbase-hadoop-compat/.blazar.yaml | 18 +
hbase-hadoop2-compat/.blazar.yaml | 18 +
hbase-hbtop/.blazar.yaml | 18 +
hbase-http/.blazar.yaml | 18 +
hbase-it/.blazar.yaml | 18 +
hbase-logging/.blazar.yaml | 18 +
hbase-mapreduce/.blazar.yaml | 18 +
hbase-metrics-api/.blazar.yaml | 18 +
hbase-metrics/.blazar.yaml | 18 +
hbase-procedure/.blazar.yaml | 18 +
hbase-protocol-shaded/.blazar.yaml | 18 +
hbase-protocol/.blazar.yaml | 18 +
hbase-replication/.blazar.yaml | 18 +
hbase-resource-bundle/.blazar.yaml | 18 +
hbase-rest/.blazar.yaml | 18 +
hbase-rsgroup/.blazar.yaml | 18 +
hbase-server/.blazar.yaml | 18 +
hbase-shaded/.blazar.yaml | 18 +
.../hbase-shaded-check-invariants/.blazar.yaml | 18 +
.../hbase-shaded-client-byo-hadoop/.blazar.yaml | 18 +
hbase-shaded/hbase-shaded-client/.blazar.yaml | 18 +
hbase-shaded/hbase-shaded-mapreduce/.blazar.yaml | 18 +
.../hbase-shaded-testing-util-tester/.blazar.yaml | 18 +
.../hbase-shaded-testing-util/.blazar.yaml | 18 +
.../.blazar.yaml | 18 +
hbase-shell/.blazar.yaml | 18 +
hbase-testing-util/.blazar.yaml | 18 +
hbase-thrift/.blazar.yaml | 18 +
hbase-zookeeper/.blazar.yaml | 18 +
pom.xml | 5 +
59 files changed, 2472 insertions(+), 114 deletions(-)
diff --git a/.blazar.yaml b/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/build-scripts/copy_blazar_yaml.sh b/build-scripts/copy_blazar_yaml.sh
new file mode 100755
index 00000000000..1cb33dc484f
--- /dev/null
+++ b/build-scripts/copy_blazar_yaml.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+poms=$(find . -name pom.xml)
+
+for pom in $poms; do
+ module=$(dirname $pom)
+ if [[ "$module" != "." && "$module" != "./hbase-assembly" ]]; then
+ cp .blazar.yaml $module/.blazar.yaml
+ fi
+done
diff --git a/build-scripts/prepare_environment.sh b/build-scripts/prepare_environment.sh
new file mode 100755
index 00000000000..4b63081430b
--- /dev/null
+++ b/build-scripts/prepare_environment.sh
@@ -0,0 +1,103 @@
+#
+# Generates the appropriate environment vars so that we:
+# - build against the right version of hadoop, and properly set up maven
+# - generate the correct maven version based on the branches
+# - upload RPMs with the correct release based on the branch, and to the right yum repo
+#
+# Since we need to distribute .blazar.yaml to all sub-modules of the project, we define our constants once
+# in this script which can be re-used by every .blazar.yaml.
+#
+
+MAIN_BRANCH="hubspot-2"
+MAIN_YUM_REPO="6_hs-hbase"
+DEVELOP_YUM_REPO="6_hs-hbase-develop"
+
+# If we bump our hadoop build version, we should bump this as well
+# At some point it would be good to more closely link this to our hadoop build, but that can only happen
+# once we update our apache-hadoop build to do a full maven. At which point we can probably change this to
+# like 3.0-hubspot-SNAPSHOT and leave it at that.
+HADOOP_DEP_VERSION="3.3.1"
+MAVEN_ARGS="-Phadoop-3.0 -Dhadoop.profile=3.0 -Dhadoop-three.version=$HADOOP_DEP_VERSION -Dgpg.skip=true -DskipTests=true"
+
+#
+# Validate inputs from blazar
+#
+
+if [ -z "$WORKSPACE" ]; then
+ echo "Missing env var \$WORKSPACE"
+ exit 1
+fi
+if [ -z "$GIT_BRANCH" ]; then
+ echo "Missing env var \$GIT_BRANCH"
+ exit 1
+fi
+if [ -z "$BUILD_COMMAND_RC_FILE" ]; then
+ echo "Missing env var \$BUILD_COMMAND_RC_FILE"
+ exit 1
+fi
+
+#
+# Extract current hbase version from root pom.xml
+#
+
+# the pom.xml has an invalid xml namespace, so just remove that so xmllint can parse it.
+cat $WORKSPACE/pom.xml | sed '2 s/xmlns=".*"//g' > pom.xml.tmp
+HBASE_VERSION=$(echo "cat /project/version/text()" | xmllint --nocdata --shell pom.xml.tmp | sed '1d;$d')
+rm pom.xml.tmp
+
+# sanity check that we've got some that looks right. it wouldn't be the end of the world if we got it wrong, but
+# will help avoid confusion.
+if [[ ! "$HBASE_VERSION" =~ 2\.[0-9]+\.[0-9]+ ]]; then
+ echo "Unexpected HBASE_Version extracted from pom.xml. Got $HBASE_VERSION but expected a string like '2.4.3', with 3 numbers separated by decimals, the first number being 2."
+ exit 1
+fi
+
+#
+# Generate branch-specific env vars
+# We are going to generate the maven version and the RPM release here:
+# - For the maven version, we need to special case our main branch
+# - For RPM, we want our final version to be:
+# main branch: {hbase_version}-hs.{build_number}.el6
+# other branches: {hbase_version}-hs~{branch_name}.{build_number}.el6, where branch_name substitutes underscore for non-alpha-numeric characters
+#
+
+echo "Git branch $GIT_BRANCH. Detecting appropriate version override and RPM release."
+
+RELEASE="hs"
+
+if [[ "$GIT_BRANCH" = "$MAIN_BRANCH" ]]; then
+ MAVEN_VERSION="2.0-hubspot-SNAPSHOT"
+ YUM_REPO=$MAIN_YUM_REPO
+elif [[ "$GIT_BRANCH" != "hubspot" ]]; then
+ MAVEN_VERSION="2.0-${GIT_BRANCH}-SNAPSHOT"
+ RELEASE="${RELEASE}~${GIT_BRANCH//[^[:alnum:]]/_}"
+ YUM_REPO=$DEVELOP_YUM_REPO
+else
+ echo "Invalid git branch $GIT_BRANCH"
+ exit 1
+fi
+
+RELEASE="${RELEASE}.${BUILD_NUMBER}"
+FULL_BUILD_VERSION="${HBASE_VERSION}-${RELEASE}"
+
+# Add into MAVEN_ARGS because we added this property in hbase-common/pom.xml so we
+# could accurately reflect the full build version in the UI and elsewhere.
+MAVEN_ARGS="$MAVEN_ARGS -Dhubspot.build.version=$FULL_BUILD_VERSION"
+
+#
+# Dump generated env vars into rc file
+#
+
+cat >> "$BUILD_COMMAND_RC_FILE" <<EOF
+export MAVEN_ARGS='$MAVEN_ARGS'
+export SET_VERSION='$MAVEN_VERSION'
+export HBASE_VERSION='$HBASE_VERSION'
+export PKG_RELEASE='$RELEASE'
+export YUM_REPO='$YUM_REPO'
+export FULL_BUILD_VERSION='$FULL_BUILD_VERSION'
+EOF
+
+echo "Building HBase version $HBASE_VERSION"
+echo "Will use maven version $MAVEN_VERSION"
+echo "Will run maven with extra args $MAVEN_ARGS"
+echo "Will upload RPMs with version $FULL_BUILD_VERSION to $YUM_REPO"
diff --git a/hbase-annotations/.blazar.yaml b/hbase-annotations/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-annotations/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-archetypes/.blazar.yaml b/hbase-archetypes/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-archetypes/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-archetypes/hbase-archetype-builder/.blazar.yaml b/hbase-archetypes/hbase-archetype-builder/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-archetypes/hbase-archetype-builder/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-archetypes/hbase-client-project/.blazar.yaml b/hbase-archetypes/hbase-client-project/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-archetypes/hbase-client-project/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-archetypes/hbase-shaded-client-project/.blazar.yaml b/hbase-archetypes/hbase-shaded-client-project/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-archetypes/hbase-shaded-client-project/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-assembly/.blazar.yaml b/hbase-assembly/.blazar.yaml
new file mode 100644
index 00000000000..ba54ab3da02
--- /dev/null
+++ b/hbase-assembly/.blazar.yaml
@@ -0,0 +1,34 @@
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+env:
+ RPMS_OUTPUT_DIR: "$WORKSPACE/generated_rpms"
+ MAVEN_PHASE: package assembly:single
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
+
+after:
+ onSuccess:
+ - description: "Ensure $RPMS_OUTPUT_DIR exists"
+ commands:
+ - mkdir -p $RPMS_OUTPUT_DIR
+
+ - description: "Create RPM Package"
+ commands:
+ - ./rpm-build/build.sh
+
+ - description: "List RPMs in $RPMS_OUTPUT_DIR"
+ commands:
+ - echo "The following Rpms are ready for upload"
+ - ls -lah $RPMS_OUTPUT_DIR
+
+ - description: "Publish RPM"
+ commands:
+ - echo "Will upload to $YUM_REPO"
+ - rpm-upload --rpms-dir=$WORKSPACE/generated_rpms/ --repo-name $YUM_REPO
diff --git a/hbase-assembly/pom.xml b/hbase-assembly/pom.xml
index 678e553f3e4..1c1f7373f2d 100644
--- a/hbase-assembly/pom.xml
+++ b/hbase-assembly/pom.xml
@@ -175,6 +175,15 @@
</plugins>
</build>
<dependencies>
+ <!--
+ Added by HubSpot since this module was in the original hadoop-three-compat moduleSet include list,
+ which is now converted to a dependencySet.
+ -->
+ <dependency>
+ <groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-annotations</artifactId>
+ </dependency>
+
<!-- client artifacts for downstream use -->
<dependency>
<groupId>org.apache.hbase</groupId>
diff --git a/hbase-assembly/rpm-build/build.sh b/hbase-assembly/rpm-build/build.sh
new file mode 100755
index 00000000000..8767da5bb8e
--- /dev/null
+++ b/hbase-assembly/rpm-build/build.sh
@@ -0,0 +1,61 @@
+#!/bin/bash
+set -e
+set -x
+
+RPM_DIR="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
+
+# If not specified, extract the version.
+if [[ "X$HBASE_VERSION" = "X" ]]; then
+ echo "Must specifiy \$HBASE_VERSION"
+ exit 1
+fi
+
+# Setup scratch dir
+SCRATCH_DIR="${RPM_DIR}/scratch"
+
+rm -rf $SCRATCH_DIR
+mkdir -p ${SCRATCH_DIR}/{SOURCES,SPECS,RPMS,SRPMS}
+cp -a $RPM_DIR/sources/* ${SCRATCH_DIR}/SOURCES/
+cp $RPM_DIR/hbase.spec ${SCRATCH_DIR}/SPECS/
+
+# Set up src dir
+SRC_DIR="${RPM_DIR}/hbase-$HBASE_VERSION"
+TAR_NAME=hbase-$HBASE_VERSION.tar.gz
+
+rm -rf $SRC_DIR
+rsync -a $RPM_DIR/../../ $SRC_DIR --exclude rpm-assembly --exclude .git
+
+pushd $SRC_DIR/../
+tar -czf ${SCRATCH_DIR}/SOURCES/${TAR_NAME} $(basename $SRC_DIR)
+popd
+
+# Build srpm
+
+rpmbuild \
+ --define "_topdir $SCRATCH_DIR" \
+ --define "input_tar $TAR_NAME" \
+ --define "mvn_target_dir $RPM_DIR/../target" \
+ --define "hbase_version ${HBASE_VERSION}" \
+ --define "release ${PKG_RELEASE}%{?dist}" \
+ -bs --nodeps --buildroot="${SCRATCH_DIR}/INSTALL" \
+ ${SCRATCH_DIR}/SPECS/hbase.spec
+
+src_rpm=$(ls -1 ${SCRATCH_DIR}/SRPMS/hbase-*)
+
+# build rpm
+
+rpmbuild \
+ --define "_topdir $SCRATCH_DIR" \
+ --define "input_tar $TAR_NAME" \
+ --define "mvn_target_dir $RPM_DIR/../target" \
+ --define "hbase_version ${HBASE_VERSION}" \
+ --define "release ${PKG_RELEASE}%{?dist}" \
+ --rebuild $src_rpm
+
+if [[ -d $RPMS_OUTPUT_DIR ]]; then
+ mkdir -p $RPMS_OUTPUT_DIR
+
+ # Move rpms to output dir for upload
+
+ find ${SCRATCH_DIR}/{SRPMS,RPMS} -name "*.rpm" -exec mv {} $RPMS_OUTPUT_DIR/ \;
+fi
\ No newline at end of file
diff --git a/hbase-assembly/rpm-build/hbase.spec b/hbase-assembly/rpm-build/hbase.spec
new file mode 100644
index 00000000000..b2ccc892663
--- /dev/null
+++ b/hbase-assembly/rpm-build/hbase.spec
@@ -0,0 +1,229 @@
+# taken from hbase.spec in https://github.com/apache/bigtop/
+# greatly modified to simplify and fix dependencies to work in the hubspot environment
+
+%define hadoop_major_version 3.2
+%define hbase_major_version 2.4
+%define etc_hbase_conf %{_sysconfdir}/hbase/conf
+%define etc_hbase_conf_dist %{etc_hbase_conf}.dist
+%define hbase_home /usr/lib/hbase
+%define bin_hbase %{hbase_home}/bin
+%define lib_hbase %{hbase_home}/lib
+%define conf_hbase %{hbase_home}/conf
+%define logs_hbase %{hbase_home}/logs
+%define pids_hbase %{hbase_home}/pids
+#%define webapps_hbase %{hbase_home}/hbase-webapps
+%define man_dir %{_mandir}
+%define hbase_username hbase
+%define hbase_services master regionserver thrift thrift2 rest
+%define hadoop_home /usr/lib/hadoop
+%define zookeeper_home /usr/lib/zookeeper
+
+# FIXME: brp-repack-jars uses unzip to expand jar files
+# Unfortunately guice-2.0.jar pulled by ivy contains some files and directories without any read permission
+# and make whole process to fail.
+# So for now brp-repack-jars is being deactivated until this is fixed.
+# See BIGTOP-294
+%define __os_install_post \
+ %{_rpmconfigdir}/brp-compress ; \
+ %{_rpmconfigdir}/brp-strip-static-archive %{__strip} ; \
+ %{_rpmconfigdir}/brp-strip-comment-note %{__strip} %{__objdump} ; \
+ /usr/lib/rpm/brp-python-bytecompile ; \
+ %{nil}
+
+%define doc_hbase %{_docdir}/hbase-%{hbase_version}
+%global initd_dir %{_sysconfdir}/rc.d/init.d
+%define alternatives_cmd alternatives
+
+# Disable debuginfo package
+%define debug_package %{nil}
+
+Name: hbase
+Version: %{hbase_version}
+Release: %{release}
+Summary: HBase is the Hadoop database. Use it when you need random, realtime read/write access to your Big Data. This project's goal is the hosting of very large tables -- billions of rows X millions of columns -- atop clusters of commodity hardware.
+URL: http://hbase.apache.org/
+Group: Systems/Daemons
+Buildroot: %{_topdir}/INSTALL/hbase-%{version}
+License: ASL 2.0
+Source0: %{input_tar}
+Source1: install_hbase.sh
+Source2: hbase.svc
+Source3: init.d.tmpl
+Source4: hbase.default
+Source5: hbase.nofiles.conf
+Source6: regionserver-init.d.tpl
+
+Requires: coreutils, /usr/sbin/useradd, /sbin/chkconfig, /sbin/service
+Requires: hadoop >= %{hadoop_major_version}
+
+AutoReq: no
+
+%description
+HBase is an open-source, distributed, column-oriented store modeled after Google' Bigtable: A Distributed Storage System for Structured Data by Chang et al. Just as Bigtable leverages the distributed data storage provided by the Google File System, HBase provides Bigtable-like capabilities on top of Hadoop. HBase includes:
+
+ * Convenient base classes for backing Hadoop MapReduce jobs with HBase tables
+ * Query predicate push down via server side scan and get filters
+ * Optimizations for real time queries
+ * A high performance Thrift gateway
+ * A REST-ful Web service gateway that supports XML, Protobuf, and binary data encoding options
+ * Cascading source and sink modules
+ * Extensible jruby-based (JIRB) shell
+ * Support for exporting metrics via the Hadoop metrics subsystem to files or Ganglia; or via JMX
+
+%package master
+Summary: The Hadoop HBase master Server.
+Group: System/Daemons
+Requires: %{name} >= %{hbase_major_version}
+Requires(pre): %{name} >= %{hbase_major_version}
+# Required for init scripts
+Requires: /lib/lsb/init-functions
+
+%description master
+HMaster is the "coordinator server" for a HBase. There is only one HMaster for a single HBase deployment.
+
+%package regionserver
+Summary: The Hadoop HBase RegionServer server.
+Group: System/Daemons
+Requires: %{name} >= %{hbase_major_version}
+Requires(pre): %{name} >= %{hbase_major_version}
+Requires: /lib/lsb/init-functions
+
+%description regionserver
+HRegionServer makes a set of HRegions available to clients. It checks in with the HMaster. There are many HRegionServers in a single HBase deployment.
+
+%package thrift
+Summary: The Hadoop HBase Thrift Interface
+Group: System/Daemons
+Requires: %{name} >= %{hbase_major_version}
+Requires(pre): %{name} >= %{hbase_major_version}
+# Required for init scripts
+Requires: /lib/lsb/init-functions
+
+%description thrift
+ThriftServer - this class starts up a Thrift server which implements the Hbase API specified in the Hbase.thrift IDL file.
+"Thrift is a software framework for scalable cross-language services development. It combines a powerful software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, and Ruby. Thrift was developed at Facebook, and we are now releasing it as open source." For additional information, see http://developers.facebook.com/thrift/. Facebook has announced their intent to migrate Thrift into Apache Incubator.
+
+%package thrift2
+Summary: The Hadoop HBase Thrift2 Interface
+Group: System/Daemons
+Requires: %{name} >= %{hbase_major_version}
+Requires(pre): %{name} >= %{hbase_major_version}
+# Required for init scripts
+Requires: /lib/lsb/init-functions
+
+%description thrift2
+Thrift2 Server to supersede original Thrift Server.
+Still under development. https://issues.apache.org/jira/browse/HBASE-8818
+
+%package rest
+Summary: The Apache HBase REST gateway
+Group: System/Daemons
+Requires: %{name} >= %{hbase_major_version}
+Requires(pre): %{name} >= %{hbase_major_version}
+# Required for init scripts
+Requires: /lib/lsb/init-functions
+
+%description rest
+The Apache HBase REST gateway
+
+%prep
+%setup -n hbase-%{hbase_version}
+
+%install
+%__rm -rf $RPM_BUILD_ROOT
+bash %{SOURCE1} \
+ --mvn-target-dir=%{mvn_target_dir} \
+ --doc-dir=%{doc_hbase} \
+ --conf-dir=%{etc_hbase_conf_dist} \
+ --prefix=$RPM_BUILD_ROOT
+
+%__install -d -m 0755 $RPM_BUILD_ROOT/%{initd_dir}/
+
+%__install -d -m 0755 $RPM_BUILD_ROOT/etc/default/
+%__install -m 0644 %{SOURCE4} $RPM_BUILD_ROOT/etc/default/hbase
+
+%__install -d -m 0755 $RPM_BUILD_ROOT/etc/security/limits.d
+%__install -m 0644 %{SOURCE5} $RPM_BUILD_ROOT/etc/security/limits.d/hbase.nofiles.conf
+
+%__install -d -m 0755 %{buildroot}/%{_localstatedir}/log/hbase
+ln -s %{_localstatedir}/log/hbase %{buildroot}/%{logs_hbase}
+
+%__install -d -m 0755 %{buildroot}/%{_localstatedir}/run/hbase
+ln -s %{_localstatedir}/run/hbase %{buildroot}/%{pids_hbase}
+
+%__install -d -m 0755 %{buildroot}/%{_localstatedir}/lib/hbase
+
+for service in %{hbase_services}
+do
+ init_file=$RPM_BUILD_ROOT/%{initd_dir}/hbase-${service}
+ if [[ "$service" = "regionserver" ]] ; then
+ # Region servers start from a different template that allows
+ # them to run multiple concurrent instances of the daemon
+ %__cp %{SOURCE6} $init_file
+ %__sed -i -e "s|@INIT_DEFAULT_START@|3 4 5|" $init_file
+ %__sed -i -e "s|@INIT_DEFAULT_STOP@|0 1 2 6|" $init_file
+ %__sed -i -e "s|@CHKCONFIG@|345 87 13|" $init_file
+ %__sed -i -e "s|@HBASE_DAEMON@|${service}|" $init_file
+ else
+ %__sed -e "s|@HBASE_DAEMON@|${service}|" %{SOURCE2} > ${RPM_SOURCE_DIR}/hbase-${service}.node
+ bash %{SOURCE3} ${RPM_SOURCE_DIR}/hbase-${service}.node rpm $init_file
+ fi
+
+ chmod 755 $init_file
+done
+
+%__install -d -m 0755 $RPM_BUILD_ROOT/usr/bin
+
+# Pull hadoop from its packages
+rm -f $RPM_BUILD_ROOT/%{lib_hbase}/{hadoop,slf4j-log4j12-}*.jar
+
+ln -f -s %{hadoop_home}/client/hadoop-annotations.jar $RPM_BUILD_ROOT/%{lib_hbase}
+ln -f -s %{hadoop_home}/client/hadoop-auth.jar $RPM_BUILD_ROOT/%{lib_hbase}
+ln -f -s %{hadoop_home}/client/hadoop-common.jar $RPM_BUILD_ROOT/%{lib_hbase}
+ln -f -s %{hadoop_home}/client/hadoop-hdfs-client.jar $RPM_BUILD_ROOT/%{lib_hbase}
+ln -f -s %{hadoop_home}/client/hadoop-mapreduce-client-common.jar $RPM_BUILD_ROOT/%{lib_hbase}
+ln -f -s %{hadoop_home}/client/hadoop-mapreduce-client-core.jar $RPM_BUILD_ROOT/%{lib_hbase}
+ln -f -s %{hadoop_home}/client/hadoop-mapreduce-client-jobclient.jar $RPM_BUILD_ROOT/%{lib_hbase}
+ln -f -s %{hadoop_home}/client/hadoop-yarn-api.jar $RPM_BUILD_ROOT/%{lib_hbase}
+ln -f -s %{hadoop_home}/client/hadoop-yarn-client.jar $RPM_BUILD_ROOT/%{lib_hbase}
+ln -f -s %{hadoop_home}/client/hadoop-yarn-common.jar $RPM_BUILD_ROOT/%{lib_hbase}
+
+%pre
+getent group hbase 2>/dev/null >/dev/null || /usr/sbin/groupadd -r hbase
+getent passwd hbase 2>&1 > /dev/null || /usr/sbin/useradd -c "HBase" -s /sbin/nologin -g hbase -r -d /var/lib/hbase hbase 2> /dev/null || :
+
+%post
+%{alternatives_cmd} --install %{etc_hbase_conf} %{name}-conf %{etc_hbase_conf_dist} 30
+
+%files
+%defattr(-,hbase,hbase)
+%{logs_hbase}
+%{pids_hbase}
+%dir %{_localstatedir}/log/hbase
+%dir %{_localstatedir}/run/hbase
+%dir %{_localstatedir}/lib/hbase
+
+%defattr(-,root,root)
+%config(noreplace) %{_sysconfdir}/default/hbase
+%config(noreplace) /etc/security/limits.d/hbase.nofiles.conf
+%{hbase_home}
+%{hbase_home}/hbase-*.jar
+#%{webapps_hbase}
+/usr/bin/hbase
+%config(noreplace) %{etc_hbase_conf_dist}
+
+# files from doc package
+%defattr(-,root,root)
+%doc %{doc_hbase}/
+
+%define service_macro() \
+%files %1 \
+%attr(0755,root,root)/%{initd_dir}/%{name}-%1 \
+%post %1 \
+chkconfig --add %{name}-%1
+
+%service_macro master
+%service_macro thrift
+%service_macro thrift2
+%service_macro regionserver
+%service_macro rest
diff --git a/hbase-assembly/rpm-build/sources/hbase.1 b/hbase-assembly/rpm-build/sources/hbase.1
new file mode 100644
index 00000000000..349218fe1d8
--- /dev/null
+++ b/hbase-assembly/rpm-build/sources/hbase.1
@@ -0,0 +1,88 @@
+.\" 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.
+.\"
+.\" Process this file with
+.\" groff -man -Tascii hbase.1
+.\"
+.TH hbase 1 "October 2010 " Linux "User Manuals"
+
+.SH NAME
+HBase \- HBase is the Hadoop database.
+
+.SH SYNOPSIS
+
+.B hbase
+\fICOMMAND\fR
+
+.SH DESCRIPTION
+
+HBase is the Hadoop database. Use it when you need random, realtime
+read/write access to your Big Data. This project's goal is the hosting
+of very large tables -- billions of rows X millions of columns -- atop
+clusters of commodity hardware.
+
+HBase is an open-source, distributed, versioned, column-oriented store
+modeled after Google's Bigtable: A Distributed Storage System for
+Structured Data by Chang et al. Just as Bigtable leverages the
+distributed data storage provided by the Google File System, HBase
+provides Bigtable-like capabilities on top of Hadoop.
+
+For more information about HBase, see http://hbase.apache.org.
+
+\fICOMMAND\fR may be one of the following:
+ shell run the HBase shell
+ shell-tests run the HBase shell tests
+ zkcli run the ZooKeeper shell
+ master run an HBase HMaster node
+ regionserver run an HBase HRegionServer node
+ zookeeper run a Zookeeper server
+ rest run an HBase REST server
+ thrift run an HBase Thrift server
+ avro run an HBase Avro server
+ migrate upgrade an hbase.rootdir
+ hbck run the hbase 'fsck' tool
+ or
+ CLASSNAME run the class named CLASSNAME
+
+Most commands print help when invoked w/o parameters or with --help.
+
+.SH ENVIRONMENT
+
+.IP JAVA_HOME
+The java implementation to use. Overrides JAVA_HOME.
+
+.IP HBASE_CLASSPATH
+Extra Java CLASSPATH entries.
+
+.IP HBASE_HEAPSIZE
+The maximum amount of heap to use, in MB. Default is 1000.
+
+.IP HBASE_OPTS
+Extra Java runtime options.
+
+.IP HBASE_CONF_DIR
+Alternate conf dir. Default is ${HBASE_HOME}/conf.
+
+.IP HBASE_ROOT_LOGGER
+The root appender. Default is INFO,console
+
+.IP HIVE_OPT
+Extra Java runtime options.
+
+.IP HADOOP_HOME
+Optionally, the Hadoop home to run with.
+
+.SH COPYRIGHT
+Copyright (C) 2010 The Apache Software Foundation. All rights reserved.
diff --git a/hbase-assembly/rpm-build/sources/hbase.default b/hbase-assembly/rpm-build/sources/hbase.default
new file mode 100644
index 00000000000..a0058d2e405
--- /dev/null
+++ b/hbase-assembly/rpm-build/sources/hbase.default
@@ -0,0 +1,41 @@
+# 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.
+
+export HBASE_HOME="/usr/lib/hbase"
+export HBASE_CONF_DIR="/etc/hbase/conf"
+
+export HBASE_PID_DIR="/var/run/hbase"
+export HBASE_LOG_DIR="/var/log/hbase"
+export HBASE_IDENT_STRING=hbase
+
+# Up to 100 region servers can be run on a single host by specifying offsets
+# here or as CLI args when using init scripts. Each offset identifies an
+# instance and is used to determine the network ports it uses. Each instance
+# will have have its own log and pid files.
+#
+# REGIONSERVER_OFFSETS="1 2 3"
+
+#
+# Set the starting port to be assigned for HBASE RS JMX monitoring when
+# running multiple region servers on a node. Each RS will be assigned a JMX port
+# which will be equal to starting JMX port + offset
+#
+# export JMXPORT=10103
+
+#
+# Set a directory which will be used for Java temp directory. For multi RS the
+# directory will be appended with offset to make it unique for each JVM process
+#
+# export JAVA_TMP_DIR="/tmp/java_tmp_dir"
diff --git a/hbase-assembly/rpm-build/sources/hbase.nofiles.conf b/hbase-assembly/rpm-build/sources/hbase.nofiles.conf
new file mode 100644
index 00000000000..0520c2deb8d
--- /dev/null
+++ b/hbase-assembly/rpm-build/sources/hbase.nofiles.conf
@@ -0,0 +1,16 @@
+# 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.
+
+hbase - nofile 32768
diff --git a/hbase-assembly/rpm-build/sources/hbase.svc b/hbase-assembly/rpm-build/sources/hbase.svc
new file mode 100644
index 00000000000..e6eec456897
--- /dev/null
+++ b/hbase-assembly/rpm-build/sources/hbase.svc
@@ -0,0 +1,92 @@
+# 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.
+
+DAEMON="hbase-@HBASE_DAEMON@"
+DESC="HBase @HBASE_DAEMON@ daemon"
+EXEC_PATH="/usr/lib/hbase/bin/hbase-daemon.sh"
+SVC_USER="hbase"
+WORKING_DIR="/var/lib/hbase"
+DAEMON_FLAGS=""
+CONF_DIR="/etc/hbase/conf"
+PIDFILE="/var/run/hbase/hbase-${DAEMON}.pid"
+
+generate_functions() {
+cat <<'__EOT__'
+
+hbase_env() {
+ export HBASE_HOME=/usr/lib/hbase
+ BIGTOP_DEFAULTS_DIR=${BIGTOP_DEFAULTS_DIR-/etc/default}
+ [ -n "${BIGTOP_DEFAULTS_DIR}" -a -r ${BIGTOP_DEFAULTS_DIR}/hbase ] && . ${BIGTOP_DEFAULTS_DIR}/hbase
+}
+
+__EOT__
+}
+
+generate_start() {
+
+cat <<'__EOT__'
+start() {
+ hbase_env
+
+ [ -x $EXEC_PATH ] || exit $ERROR_PROGRAM_NOT_INSTALLED
+
+ checkstatusofproc
+ status=$?
+ if [ "$status" -eq "$STATUS_RUNNING" ]; then
+ log_success_msg "${DESC} is running"
+ exit 0
+ fi
+
+ runuser -s /bin/bash hbase -c "${EXEC_PATH} start @HBASE_DAEMON@"
+
+ checkstatusofproc
+ RETVAL=$?
+
+ if [ $RETVAL -eq $STATUS_RUNNING ]; then
+ touch $LOCKFILE
+ log_success_msg "Started ${DESC} (${DAEMON}): "
+ else
+ log_failure_msg "Failed to start ${DESC}. Return value: $RETVAL"
+ fi
+
+ return $RETVAL
+}
+__EOT__
+
+}
+
+generate_stop() {
+
+cat <<'__EOT__'
+stop() {
+ hbase_env
+
+ runuser -s /bin/bash hbase -c "${EXEC_PATH} stop @HBASE_DAEMON@"
+ sleep 3
+ RETVAL=$?
+
+ if [ $RETVAL -eq $RETVAL_SUCCESS ]; then
+ log_success_msg "Stopped ${DESC}: "
+ rm -f $LOCKFILE $PIDFILE
+ else
+ log_failure_msg "Failure to stop ${DESC}. Return value: $RETVAL"
+ fi
+
+ return $RETVAL
+}
+__EOT__
+
+}
+
diff --git a/hbase-assembly/rpm-build/sources/init.d.tmpl b/hbase-assembly/rpm-build/sources/init.d.tmpl
new file mode 100644
index 00000000000..3730a2a6e21
--- /dev/null
+++ b/hbase-assembly/rpm-build/sources/init.d.tmpl
@@ -0,0 +1,311 @@
+#!/bin/bash
+#
+# 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.
+
+# This is a poor man's templating engine for generating init.d scripts to
+# support all the Apache services that Bigtop distro has. An actual init.d
+# script gets generate via running this script under bash and giving it
+# a mandatory argument of a file containing the configuration for the service.
+# The argument file should be a valid piece of bash code since it gets directly
+# source into this template. E.g.
+# $ bash ./init.d.tmpl hadoop-hdfs-namenode.svc rpm hadoop-hdfs-namenode
+#
+# You must declare the following in your .svc configuration file:
+# DAEMON="name of the resulting init.d script"
+# DESC="Free form human readable description of the service"
+# EXEC_PATH="path to the upstream daemon management script"
+# SVC_USER="user to run this service as"
+# DAEMON_FLAGS="flags to be passed to the $EXEC_PATH"
+# WORKING_DIR="working directory to cd into before starting the daemon"
+# CONF_DIR="path to the configuration directory"
+# PIDFILE="file holding a PID of the running daemon"
+# LOCKFILE="file signifying the service lock"
+#
+# CHKCONFIG="chkconfig(8) registration signature"
+# INIT_DEFAULT_START="run levels to use"
+# INIT_DEFAULT_STOP="run levels not to use ;-)"
+#
+# You can, also, override parts of the generated init.d script by providing
+# function definitions for: generate_start, generate_stop, generate_functions, and generate_extra_commands.
+# See the default implemenations below and feel free to customize. Also look
+# for exising .svc files in common to see how different services are tweaking
+# the defaults.
+#
+# Of course, if this whole templating thing grows too big we might need to
+# consider a real templating engine (I have played with m4, but it seems
+# qutie brittle when used for manipulating pieces of the shell code -- think
+# $0 the like).
+
+if [ $# -lt 3 ] ; then
+ echo "Usage: ${BASH_SOURCE-0} service.definition.svc rpm|deb init.d.script"
+ exit 1
+fi
+
+# Override anything necessary for supported systems
+case "$2" in
+ "deb" )
+ # The defaults will work well on Debian-based systems
+ ;;
+ "rpm" )
+ # On RedHat, SuSE and Mageia run-level 2 is networkless, hence excluding it
+ CHKCONFIG="345 85 15"
+ INIT_DEFAULT_START="3 4 5"
+ INIT_DEFAULT_STOP="0 1 2 6"
+ ;;
+ "*" )
+ ;;
+esac
+
+# Create the init script, make it executable, and send stdout to it
+mkdir -p `dirname $3`
+touch $3
+chmod 0755 $3
+exec > $3
+
+generate_start() {
+
+cat <<'__EOT__'
+
+start() {
+ [ -x $EXEC_PATH ] || exit $ERROR_PROGRAM_NOT_INSTALLED
+ [ -d $CONF_DIR ] || exit $ERROR_PROGRAM_NOT_CONFIGURED
+
+ runuser -s /bin/bash $SVC_USER -c "cd $WORKING_DIR && $EXEC_PATH --config '$CONF_DIR' start $DAEMON_FLAGS"
+
+ # Some processes are slow to start
+ sleep $SLEEP_TIME
+ checkstatusofproc
+ RETVAL=$?
+
+ if [ $RETVAL -eq $STATUS_RUNNING ]; then
+ touch $LOCKFILE
+ log_success_msg "Started ${DESC}: "
+ else
+ log_failure_msg "Failed to start ${DESC}. Return value: $RETVAL"
+ fi
+ return $RETVAL
+}
+
+__EOT__
+
+}
+
+generate_stop() {
+
+cat <<'__EOT__'
+
+stop() {
+ start_daemon $EXEC_PATH --config "$CONF_DIR" stop $DAEMON_FLAGS
+ RETVAL=$?
+
+ if [ $RETVAL -eq $RETVAL_SUCCESS ]; then
+ log_success_msg "Stopped ${DESC}: "
+ rm -f $LOCKFILE $PIDFILE
+ else
+ log_failure_msg "Failed to stop ${DESC}. Return value: $RETVAL."
+ fi
+}
+
+__EOT__
+
+}
+
+generate_functions() {
+ :
+}
+
+generate_extra_commands() {
+
+cat <<'__EOT__'
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|try-restart|condrestart|force-reload}"
+ exit 1
+__EOT__
+
+}
+
+###################################################################
+# Some reasonable defaults for the run-level settings, these are
+# tweaked on a per-OS basis from the SPEC/rules files that call us
+# and can be further tweaked inside of individual .svc templates
+CHKCONFIG=${CHKCONFIG:-"2345 85 15"}
+INIT_DEFAULT_START=${INIT_DEFAULT_START:-"2 3 4 5"}
+INIT_DEFAULT_STOP=${INIT_DEFAULT_STOP:-"0 1 6"}
+
+###################################################################
+# NOTE how we are sourcing the argument here so that a user-defined
+# settings have a chance to override the default values for
+# generate_start, generate_stop, generate_functions and generate_extra_commands. If you
+# ever want to make this template even more flexible -- define the
+# default values above this line
+. $1
+
+cat <<__EOT__
+#!/bin/bash
+#
+# 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.
+#
+# Starts a $DESC
+#
+# chkconfig: $CHKCONFIG
+# description: $DESC
+# pidfile: $PIDFILE
+### BEGIN INIT INFO
+# Provides: $DAEMON
+# Short-Description: $DESC
+# Default-Start: $INIT_DEFAULT_START
+# Default-Stop: $INIT_DEFAULT_STOP
+# Required-Start: \$syslog \$remote_fs
+# Required-Stop: \$syslog \$remote_fs
+# Should-Start:
+# Should-Stop:
+### END INIT INFO
+
+. /lib/lsb/init-functions
+DEFAULTS_DIR=\${DEFAULTS_DIR-/etc/default}
+[ -n "\${DEFAULTS_DIR}" -a -r \${DEFAULTS_DIR}/hadoop ] && . \${DEFAULTS_DIR}/hadoop
+[ -n "\${DEFAULTS_DIR}" -a -r \${DEFAULTS_DIR}/$DAEMON ] && . \${DEFAULTS_DIR}/$DAEMON
+
+RETVAL_SUCCESS=0
+
+STATUS_RUNNING=0
+STATUS_DEAD=1
+STATUS_DEAD_AND_LOCK=2
+STATUS_NOT_RUNNING=3
+STATUS_OTHER_ERROR=102
+
+
+ERROR_PROGRAM_NOT_INSTALLED=5
+ERROR_PROGRAM_NOT_CONFIGURED=6
+
+
+RETVAL=0
+SLEEP_TIME=5
+PROC_NAME="${PROC_NAME:-java}"
+
+DAEMON="$DAEMON"
+DESC="$DESC"
+EXEC_PATH="$EXEC_PATH"
+SVC_USER="$SVC_USER"
+DAEMON_FLAGS="$DAEMON_FLAGS"
+CONF_DIR="$CONF_DIR"
+CONF_FILE="$CONF_FILE"
+LOGFILE="$LOGFILE"
+PIDFILE="$PIDFILE"
+LOCKDIR="/var/lock/subsys"
+LOCKFILE="\$LOCKDIR/$DAEMON"
+WORKING_DIR="${WORKING_DIR:-~/}"
+
+install -d -m 0755 -o $SVC_USER -g $SVC_USER $(dirname $PIDFILE) 1>/dev/null 2>&1 || :
+[ -d "\$LOCKDIR" ] || install -d -m 0755 \$LOCKDIR 1>/dev/null 2>&1 || :
+__EOT__
+
+generate_functions
+generate_start
+generate_stop
+
+cat <<'__EOT__'
+restart() {
+ stop
+ start
+}
+
+checkstatusofproc(){
+ pidofproc -p $PIDFILE $PROC_NAME > /dev/null
+}
+
+checkstatus(){
+ checkstatusofproc
+ status=$?
+ case "$status" in
+ $STATUS_RUNNING)
+ log_success_msg "${DESC} is running"
+ ;;
+ $STATUS_DEAD)
+ log_failure_msg "${DESC} is dead and pid file exists"
+ ;;
+ $STATUS_DEAD_AND_LOCK)
+ log_failure_msg "${DESC} is dead and lock file exists"
+ ;;
+ $STATUS_NOT_RUNNING)
+ log_failure_msg "${DESC} is not running"
+ ;;
+ *)
+ log_failure_msg "${DESC} status is unknown"
+ ;;
+ esac
+ return $status
+}
+
+condrestart(){
+ [ -e $LOCKFILE ] && restart || :
+}
+
+check_for_root() {
+ if [ $(id -ur) -ne 0 ]; then
+ echo 'Error: root user required'
+ echo
+ exit 1
+ fi
+}
+
+service() {
+ case "$1" in
+ start)
+ check_for_root
+ start
+ ;;
+ stop)
+ check_for_root
+ stop
+ ;;
+ status)
+ checkstatus
+ RETVAL=$?
+ ;;
+ restart|force-reload)
+ check_for_root
+ restart
+ ;;
+ condrestart|try-restart)
+ check_for_root
+ condrestart
+ ;;
+__EOT__
+
+generate_extra_commands
+
+cat <<'__EOT__'
+ esac
+}
+
+service "$@"
+
+exit $RETVAL
+__EOT__
diff --git a/hbase-assembly/rpm-build/sources/install_hbase.sh b/hbase-assembly/rpm-build/sources/install_hbase.sh
new file mode 100755
index 00000000000..9c9dd3b1fcf
--- /dev/null
+++ b/hbase-assembly/rpm-build/sources/install_hbase.sh
@@ -0,0 +1,181 @@
+#!/bin/bash
+
+# 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.
+
+set -ex
+
+usage() {
+ echo "
+usage: $0 <options>
+ Required not-so-options:
+ --mvn-target-dir=DIR path to the output of the mvn assembly
+ --prefix=PREFIX path to install into
+
+ Optional options:
+ --doc-dir=DIR path to install docs into [/usr/share/doc/hbase]
+ --lib-dir=DIR path to install hbase home [/usr/lib/hbase]
+ --installed-lib-dir=DIR path where lib-dir will end up on target system
+ --bin-dir=DIR path to install bins [/usr/bin]
+ --examples-dir=DIR path to install examples [doc-dir/examples]
+ ... [ see source for more similar options ]
+ "
+ exit 1
+}
+
+OPTS=$(getopt \
+ -n $0 \
+ -o '' \
+ -l 'prefix:' \
+ -l 'doc-dir:' \
+ -l 'lib-dir:' \
+ -l 'installed-lib-dir:' \
+ -l 'bin-dir:' \
+ -l 'examples-dir:' \
+ -l 'conf-dir:' \
+ -l 'mvn-target-dir:' -- "$@")
+
+if [ $? != 0 ] ; then
+ usage
+fi
+
+eval set -- "$OPTS"
+while true ; do
+ case "$1" in
+ --prefix)
+ PREFIX=$2 ; shift 2
+ ;;
+ --mvn-target-dir)
+ MVN_TARGET_DIR=$2 ; shift 2
+ ;;
+ --doc-dir)
+ DOC_DIR=$2 ; shift 2
+ ;;
+ --lib-dir)
+ LIB_DIR=$2 ; shift 2
+ ;;
+ --bin-dir)
+ BIN_DIR=$2 ; shift 2
+ ;;
+ --examples-dir)
+ EXAMPLES_DIR=$2 ; shift 2
+ ;;
+ --conf-dir)
+ CONF_DIR=$2 ; shift 2
+ ;;
+ --)
+ shift ; break
+ ;;
+ *)
+ echo "Unknown option: $1"
+ usage
+ exit 1
+ ;;
+ esac
+done
+
+for var in PREFIX MVN_TARGET_DIR ; do
+ if [ -z "$(eval "echo \$$var")" ]; then
+ echo Missing param: $var
+ usage
+ fi
+done
+
+MAN_DIR=${MAN_DIR:-/usr/share/man/man1}
+DOC_DIR=${DOC_DIR:-/usr/share/doc/hbase}
+LIB_DIR=${LIB_DIR:-/usr/lib/hbase}
+
+BIN_DIR=${BIN_DIR:-/usr/lib/hbase/bin}
+ETC_DIR=${ETC_DIR:-/etc/hbase}
+CONF_DIR=${CONF_DIR:-${ETC_DIR}/conf.dist}
+THRIFT_DIR=${THRIFT_DIR:-${LIB_DIR}/include/thrift}
+
+EXTRACT_DIR=extracted
+rm -rf $EXTRACT_DIR
+mkdir $EXTRACT_DIR
+
+version_part=$SET_VERSION
+if [ -z "$version_part" ]; then
+ version_part=$HBASE_VERSION
+fi
+
+tar -C $EXTRACT_DIR --strip-components=1 -xzf $MVN_TARGET_DIR/hbase-$version_part-bin.tar.gz
+
+install -d -m 0755 $PREFIX/$LIB_DIR
+install -d -m 0755 $PREFIX/$LIB_DIR/lib
+install -d -m 0755 $PREFIX/$DOC_DIR
+install -d -m 0755 $PREFIX/$BIN_DIR
+install -d -m 0755 $PREFIX/$ETC_DIR
+install -d -m 0755 $PREFIX/$MAN_DIR
+install -d -m 0755 $PREFIX/$THRIFT_DIR
+
+cp -ra $EXTRACT_DIR/lib/* ${PREFIX}/${LIB_DIR}/lib/
+cp $EXTRACT_DIR/lib/hbase*.jar $PREFIX/$LIB_DIR
+
+# We do not currently run "mvn site", so do not have a docs dir.
+# Only copy contents if dir exists
+if [ -n "$(ls -A $EXTRACT_DIR/docs 2>/dev/null)" ]; then
+ cp -a $EXTRACT_DIR/docs/* $PREFIX/$DOC_DIR
+ cp $EXTRACT_DIR/*.txt $PREFIX/$DOC_DIR/
+else
+ echo "Doc generation is currently disabled in our RPM build. If this is an issue, it should be possible to enable them with some work. See https://git.hubteam.com/HubSpot/apache-hbase/blob/hubspot-2/rpm/sources/do-component-build#L17-L24 for details." > $PREFIX/$DOC_DIR/README.txt
+fi
+
+#cp -a $EXTRACT_DIR/hbase-webapps $PREFIX/$LIB_DIR
+
+cp -a $EXTRACT_DIR/conf $PREFIX/$CONF_DIR
+cp -a $EXTRACT_DIR/bin/* $PREFIX/$BIN_DIR
+# Purge scripts that don't work with packages
+for file in rolling-restart.sh graceful_stop.sh local-regionservers.sh \
+ master-backup.sh regionservers.sh zookeepers.sh hbase-daemons.sh \
+ start-hbase.sh stop-hbase.sh local-master-backup.sh ; do
+ rm -f $PREFIX/$BIN_DIR/$file
+done
+
+cp $EXTRACT_DIR/../hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift $PREFIX/$THRIFT_DIR/hbase1.thrift
+cp $EXTRACT_DIR/../hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift2/hbase.thrift $PREFIX/$THRIFT_DIR/hbase2.thrift
+
+ln -s $ETC_DIR/conf $PREFIX/$LIB_DIR/conf
+
+# Make a symlink of hbase.jar to hbase-version.jar
+pushd `pwd`
+cd $PREFIX/$LIB_DIR
+for i in `ls hbase*jar | grep -v tests.jar`
+do
+ ln -s $i `echo $i | sed -n 's/\(.*\)\(-[0-9].*\)\(.jar\)/\1\3/p'`
+done
+popd
+
+wrapper=$PREFIX/usr/bin/hbase
+mkdir -p `dirname $wrapper`
+cat > $wrapper <<EOF
+#!/bin/bash
+
+DEFAULTS_DIR=\${DEFAULTS_DIR-/etc/default}
+[ -n "\${DEFAULTS_DIR}" -a -r \${DEFAULTS_DIR}/hbase ] && . \${DEFAULTS_DIR}/hbase
+[ -n "\${DEFAULTS_DIR}" -a -r \${DEFAULTS_DIR}/hadoop ] && . \${DEFAULTS_DIR}/hadoop
+
+export HADOOP_CONF_DIR=\${HADOOP_CONF_DIR:-/etc/hadoop/conf}
+export HBASE_CLASSPATH=\$HADOOP_CONF_DIR:\$HBASE_CLASSPATH
+
+exec /usr/lib/hbase/bin/hbase "\$@"
+EOF
+chmod 755 $wrapper
+
+install -d -m 0755 $PREFIX/usr/bin
+
+rm -f $PREFIX/$CONF_DIR/*.cmd
+rm -f $PREFIX/$BIN_DIR/*.cmd
+
diff --git a/hbase-assembly/rpm-build/sources/regionserver-init.d.tpl b/hbase-assembly/rpm-build/sources/regionserver-init.d.tpl
new file mode 100644
index 00000000000..dedfa526c51
--- /dev/null
+++ b/hbase-assembly/rpm-build/sources/regionserver-init.d.tpl
@@ -0,0 +1,446 @@
+#! /bin/bash
+#
+# 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.
+
+# This file is used to run multiple instances of certain HBase daemons using init scripts.
+# It replaces the local-regionserver.sh and local-master.sh scripts for Bigtop packages.
+# By default, this script runs a single daemon normally. If offsets are provided, additional
+# daemons are run, identified by the offset in log and pid files, and listening on the default
+# port + the offset. Offsets can be provided as arguments when invoking init scripts directly:
+#
+# /etc/init.d/hbase-@HBASE_DAEMON@ start 1 2 3 4
+#
+# or you can list the offsets to run in /etc/init.d/@HBASE_DAEMON@_offsets:
+#
+# echo "@HBASE_DAEMON@_OFFSETS='1 2 3 4' >> /etc/default/hbase"
+# sudo service hbase-$HBASE_DAEMON@ start
+#
+# Offsets specified on the command-line always override the offsets file. If no offsets are
+# specified on the command-line when stopping or restarting daemons, all running instances of the
+# daemon are stopped (regardless of the contents of the offsets file).
+
+# chkconfig: @CHKCONFIG@
+# description: Summary: HBase is the Hadoop database. Use it when you need random, realtime read/write access to your Big Data. This project's goal is the hosting of very large tables -- billions of rows X millions of columns -- atop clusters of commodity hardware.
+# processname: HBase
+#
+### BEGIN INIT INFO
+# Provides: hbase-@HBASE_DAEMON@
+# Required-Start: $network $local_fs $remote_fs
+# Required-Stop: $remote_fs
+# Should-Start: $named
+# Should-Stop:
+# Default-Start: @INIT_DEFAULT_START@
+# Default-Stop: @INIT_DEFAULT_STOP@
+# Short-Description: Hadoop HBase @HBASE_DAEMON@ daemon
+### END INIT INFO
+
+DEFAULTS_DIR=${DEFAULTS_DIR-/etc/default}
+[ -n "${DEFAULTS_DIR}" -a -r ${DEFAULTS_DIR}/hadoop ] && . ${DEFAULTS_DIR}/hadoop
+[ -n "${DEFAULTS_DIR}" -a -r ${DEFAULTS_DIR}/hbase ] && . ${DEFAULTS_DIR}/hbase
+
+# Our default HBASE_HOME, HBASE_PID_DIR and HBASE_CONF_DIR
+export HBASE_HOME=${HBASE_HOME:-/usr/lib/hbase}
+export HBASE_PID_DIR=${HBASE_PID_DIR:-/var/run/hbase}
+export HBASE_LOG_DIR=${HBASE_LOG_DIR:-/var/log/hbase}
+
+install -d -m 0755 -o hbase -g hbase ${HBASE_PID_DIR}
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON_SCRIPT=$HBASE_HOME/bin/hbase-daemon.sh
+NAME=hbase-@HBASE_DAEMON@
+DESC="Hadoop HBase @HBASE_DAEMON@ daemon"
+PID_FILE=$HBASE_PID_DIR/hbase-hbase-@HBASE_DAEMON@.pid
+CONF_DIR=/etc/hbase/conf
+
+DODTIME=3 # Time to wait for the server to die, in seconds
+ # If this value is set too low you might not
+ # let some servers to die gracefully and
+ # 'restart' will not work
+
+UPPERCASE_HBASE_DAEMON=$(echo @HBASE_DAEMON@ | tr '[:lower:]' '[:upper:]')
+
+ALL_DAEMONS_RUNNING=0
+NO_DAEMONS_RUNNING=1
+SOME_OFFSET_DAEMONS_FAILING=2
+INVALID_OFFSETS_PROVIDED=3
+
+# These limits are not easily configurable - they are enforced by HBase
+if [ "@HBASE_DAEMON@" == "master" ] ; then
+ FIRST_PORT=60000
+ FIRST_INFO_PORT=60010
+ OFFSET_LIMIT=10
+elif [ "@HBASE_DAEMON@" == "regionserver" ] ; then
+ FIRST_PORT=60200
+ FIRST_INFO_PORT=60300
+ OFFSET_LIMIT=100
+fi
+
+validate_offsets() {
+ for OFFSET in $1; do
+ if [[ ! $OFFSET =~ ^((0)|([1-9][0-9]{0,2}))$ ]]; then
+ echo "ERROR: All offsets must be positive integers (no leading zeros, max $OFFSET_LIMIT)"
+ exit $INVALID_OFFSETS_PROVIDED
+ fi
+ if [ ${OFFSET} -lt 0 ] ; then
+ echo "ERROR: Cannot start @HBASE_DAEMON@ with negative offset" >&2
+ exit $INVALID_OFFSETS_PROVIDED
+ fi
+ if [ ${OFFSET} -ge ${OFFSET_LIMIT} ] ; then
+ echo "ERROR: Cannot start @HBASE_DAEMON@ with offset higher than $OFFSET_LIMIT" >&2
+ exit $INVALID_OFFSETS_PROVIDED
+ fi
+ done
+}
+
+offset_pidfile() {
+ echo $HBASE_PID_DIR/hbase-hbase-$1-@HBASE_DAEMON@.pid
+}
+
+OFFSETS_FROM_CLI="${*:2}"
+validate_offsets "$OFFSETS_FROM_CLI"
+if [ -n "$(eval echo \${${UPPERCASE_HBASE_DAEMON}_OFFSETS})" ] ; then
+ OFFSETS_FROM_DEFAULT="$(eval echo \${${UPPERCASE_HBASE_DAEMON}_OFFSETS})"
+ validate_offsets "$OFFSETS_FROM_DEFAULT"
+fi
+OFFSET_PID_FILES="`ls $HBASE_PID_DIR/hbase-hbase-*-@HBASE_DAEMON@.pid 2>/dev/null`"
+if [ -n "$OFFSET_PID_FILES" ] ; then
+ OFFSETS_FROM_PIDS=`echo "$OFFSET_PID_FILES" | sed "s#$HBASE_PID_DIR/hbase-hbase-##" | sed "s#-.*##" | tr '\n' ' '`
+fi
+
+multi_hbase_daemon_check_pidfiles() {
+ if [ -z "$OFFSETS_FROM_PIDS" ] ; then
+ return $NO_DAEMONS_RUNNING
+ fi
+ if [ -n "$OFFSETS_FROM_CLI" ] ; then
+ OFFSETS="$OFFSETS_FROM_CLI"
+ else
+ OFFSETS="$OFFSETS_FROM_PIDS"
+ fi
+
+ RESULT=$ALL_DAEMONS_RUNNING
+ for OFFSET in $OFFSETS; do
+ echo -n "HBase @HBASE_DAEMON@ $OFFSET: "
+ if hbase_check_pidfile `offset_pidfile $OFFSET` ; then
+ echo "running"
+ else
+ echo "not running"
+ RESULT=$SOME_OFFSET_DAEMONS_FAILING
+ fi
+ done
+ return $RESULT
+}
+
+multi_hbase_daemon_stop_pidfiles() {
+ if [ -z "$OFFSETS_FROM_PIDS" ] ; then
+ return $NO_DAEMONS_RUNNING
+ fi
+ if [ -n "$OFFSETS_FROM_CLI" ] ; then
+ OFFSETS="$OFFSETS_FROM_CLI"
+ else
+ OFFSETS="$OFFSETS_FROM_PIDS"
+ fi
+
+ RESULT=$NO_DAEMONS_RUNNING
+ for OFFSET in $OFFSETS; do
+ echo -n "Forcefully stopping HBase @HBASE_DAEMON@ $OFFSET: "
+ PID_FILE=`offset_pidfile $OFFSET`
+ hbase_stop_pidfile $PID_FILE
+ if hbase_check_pidfile $PID_FILE ; then
+ echo "ERROR."
+ else
+ echo "OK."
+ rm -f $PID_FILE
+ fi
+ done
+ return $RESULT
+}
+
+# Starts and stops multiple instances of HBase daemons
+multi_hbase_daemon() {
+ COMMAND=$1
+ OFFSETS="$OFFSETS_FROM_CLI"
+ if [ "$COMMAND" == "start" ] ; then
+ ACTION="Starting"
+ RUNNING="OK"
+ STOPPED="ERROR"
+ if [ -z "$OFFSETS_FROM_CLI" ] ; then
+ OFFSETS="$OFFSETS_FROM_DEFAULT"
+ fi
+ elif [ "$COMMAND" == "stop" ] ; then
+ ACTION="Stopping"
+ RUNNING="ERROR"
+ STOPPED="OK"
+ if [ -z "$OFFSETS_FROM_CLI" ] ; then
+ OFFSETS="$OFFSETS_FROM_PIDS"
+ fi
+ else
+ echo "ERROR: Illegal command: $COMMAND"
+ exit 1
+ fi
+
+ for OFFSET in ${OFFSETS} ; do
+
+ export HBASE_${UPPERCASE_HBASE_DAEMON}_OPTS=" "
+
+ echo -n "$ACTION @HBASE_DAEMON@ daemon $OFFSET: "
+ export HBASE_IDENT_STRING="hbase-${OFFSET}"
+ LOG_FILE="$HBASE_LOG_DIR/hbase-$HBASE_IDENT_STRING-@HBASE_DAEMON@-$HOSTNAME.pid"
+ PID_FILE="$HBASE_PID_DIR/hbase-$HBASE_IDENT_STRING-@HBASE_DAEMON@.pid"
+ HBASE_MULTI_ARGS="-D hbase.regionserver.port=`expr ${FIRST_PORT} + $OFFSET` \
+ -D hbase.regionserver.info.port=`expr ${FIRST_INFO_PORT} + ${OFFSET}`"
+
+ if [ "x$JAVA_TMP_DIR" == "x" ] ; then
+ JAVA_TMP_DIR="/tmp/java_tmp_dir"
+ fi
+ HBASE_TMP_DIR=" -Djava.io.tmpdir=${JAVA_TMP_DIR}/${OFFSET}"
+
+ if [ "x$JMXPORT" != "x" ] ; then
+ HBASE_JMX_PORT=" -Dcom.sun.management.jmxremote.port=`expr ${JMXPORT} + ${OFFSET}`"
+ fi
+ export HBASE_${UPPERCASE_HBASE_DAEMON}_OPTS="`eval '$'HBASE_${UPPERCASE_HBASE_DAEMON}_OPTS`$HBASE_TMP_DIR$HBASE_JMX_PORT"
+
+ hbase_check_pidfile $PID_FILE
+ STATUS=$?
+ if [[ "$STATUS" == "0" && "$COMMAND" == "start" ]] ; then
+ echo "Already running"
+ continue
+ elif [[ "$STATUS" != "0" && "$COMMAND" == "stop" ]] ; then
+ rm -f $PID_FILE
+ echo "Already stopped"
+ continue
+ fi
+ runuser -s /bin/bash hbase -c "${DAEMON_SCRIPT} ${COMMAND} regionserver ${HBASE_MULTI_ARGS} >> ${LOG_FILE}"
+ if [[ "$COMMAND" == "stop" ]] ; then
+ rm -f $PID_FILE
+ fi
+ if hbase_check_pidfile $PID_FILE ; then
+ echo "$RUNNING"
+ else
+ echo "$STOPPED"
+ fi
+ done
+ return 0
+}
+
+# Checks if the given pid represents a live process.
+# Returns 0 if the pid is a live process, 1 otherwise
+hbase_is_process_alive() {
+ local pid="$1"
+ ps -fp $pid | grep $pid | grep @HBASE_DAEMON@ > /dev/null 2>&1
+}
+
+# Check if the process associated to a pidfile is running.
+# Return 0 if the pidfile exists and the process is running, 1 otherwise
+hbase_check_pidfile() {
+ local pidfile="$1" # IN
+ local pid
+
+ pid=`cat "$pidfile" 2>/dev/null`
+ if [ "$pid" = '' ]; then
+ # The file probably does not exist or is empty.
+ return 1
+ fi
+
+ set -- $pid
+ pid="$1"
+
+ hbase_is_process_alive $pid
+}
+
+# Kill the process associated to a pidfile
+hbase_stop_pidfile() {
+ local pidfile="$1" # IN
+ local pid
+
+ pid=`cat "$pidfile" 2>/dev/null`
+ if [ "$pid" = '' ]; then
+ # The file probably does not exist or is empty. Success
+ return 0
+ fi
+
+ set -- $pid
+ pid="$1"
+
+ # First try the easy way
+ if hbase_process_kill "$pid" 15; then
+ rm $pidfile
+ return 0
+ fi
+
+ # Otherwise try the hard way
+ if hbase_process_kill "$pid" 9; then
+ rm $pidfile
+ return 0
+ fi
+
+ return 1
+}
+
+hbase_process_kill() {
+ local pid="$1" # IN
+ local signal="$2" # IN
+ local second
+
+ kill -$signal $pid 2>/dev/null
+
+ # Wait a bit to see if the dirty job has really been done
+ for second in 0 1 2 3 4 5 6 7 8 9 10; do
+ if hbase_is_process_alive "$pid"; then
+ # Success
+ return 0
+ fi
+
+ sleep 1
+ done
+
+ # Timeout
+ return 1
+}
+
+start() {
+ if [ -n "${OFFSETS_FROM_CLI}${OFFSETS_FROM_DEFAULT}" ] ; then
+ if hbase_check_pidfile $PID_FILE ; then
+ echo "$NAME has already been started - cannot start other @HBASE_DAEMON@ daemons."
+ return 1
+ fi
+ multi_hbase_daemon "start"
+ return $?
+ fi
+ multi_hbase_daemon_check_pidfiles > /dev/null
+ if [ "$?" != "$NO_DAEMONS_RUNNING" ] ; then
+ echo "Cannot start $NAME - other @HBASE_DAEMON@ daemons have already been started."
+ return 1
+ fi
+ echo -n "Starting $DESC: "
+ runuser -s /bin/bash hbase -c "$DAEMON_SCRIPT start @HBASE_DAEMON@"
+ if hbase_check_pidfile $PID_FILE ; then
+ echo "$NAME."
+ return $ALL_DAEMONS_RUNNING
+ else
+ echo "ERROR."
+ return $NO_DAEMONS_RUNNING
+ fi
+}
+stop() {
+ if [ -n "${OFFSETS_FROM_CLI}${OFFSETS_FROM_PIDS}" ] ; then
+ multi_hbase_daemon "stop"
+ return "$?"
+ fi
+
+ echo -n "Stopping $DESC: "
+ runuser -s /bin/bash hbase -c "$DAEMON_SCRIPT stop @HBASE_DAEMON@"
+ if hbase_check_pidfile $PID_FILE ; then
+ echo "ERROR."
+ return 1
+ else
+ echo "$NAME."
+ return 0
+ fi
+}
+
+force_stop() {
+ MULTI_HBASE_DAEMON_STATUS_TEXT=`multi_hbase_daemon_check_pidfiles`
+ MULTI_HBASE_DAEMON_STATUS=$?
+ if [ "$MULTI_HBASE_DAEMON_STATUS" == "$NO_DAEMONS_RUNNING" ] ; then
+ echo -n "Forcefully stopping $DESC: "
+ hbase_stop_pidfile $PID_FILE
+ if hbase_check_pidfile $PID_FILE ; then
+ echo " ERROR."
+ else
+ echo "$NAME."
+ fi
+ else
+ multi_hbase_daemon_stop_pidfiles
+ fi
+}
+
+force_reload() {
+ # check wether $DAEMON is running. If so, restart
+ hbase_check_pidfile $PID_FILE && $0 restart $OFFSETS_FROM_CLI
+}
+
+restart() {
+ echo -n "Restarting $DESC: "
+ $0 stop
+ [ -n "$DODTIME" ] && sleep $DODTIME
+ $0 start $OFFSETS_FROM_CLI
+}
+
+status() {
+ MULTI_HBASE_DAEMON_STATUS_TEXT=`multi_hbase_daemon_check_pidfiles`
+ MULTI_HBASE_DAEMON_STATUS=$?
+ if [ "$MULTI_HBASE_DAEMON_STATUS" == "$NO_DAEMONS_RUNNING" ] ; then
+ echo -n "$NAME is "
+ if hbase_check_pidfile $PID_FILE ; then
+ echo "running"
+ else
+ echo "not running."
+ return $NO_DAEMONS_RUNNING
+ fi
+ else
+ IFS=''
+ echo $MULTI_HBASE_DAEMON_STATUS_TEXT
+ return $MULTI_HBASE_DAEMON_STATUS
+ fi
+}
+
+condrestart(){
+ status $@ >/dev/null 2>/dev/null
+ DAEMON_STATUS=$?
+ if [ "$DAEMON_STATUS" == "$ALL_DAEMONS_RUNNING" -o "$DAEMON_STATUS" == "$SOME_OFFSET_DAEMONS_FAILING" ] ; then
+ restart $@
+ fi
+}
+
+RETVAL=0
+
+case "$1" in
+ start)
+ start
+ RETVAL=$?
+ ;;
+ stop)
+ stop
+ RETVAL=$?
+ ;;
+ force-stop)
+ force_stop
+ RETVAL=$?
+ ;;
+ force-reload)
+ force_reload
+ RETVAL=$?
+ ;;
+ restart)
+ restart
+ RETVAL=$?
+ ;;
+ condrestart)
+ condrestart
+ RETVAL=$?
+ ;;
+ status)
+ status
+ RETVAL=$?
+ ;;
+ *)
+ N=/etc/init.d/$NAME
+ echo "Usage: $N {start|stop|restart|force-reload|status|force-stop|condrestart}" >&2
+ RETVAL=1
+ ;;
+esac
+
+exit ${RETVAL}
diff --git a/hbase-assembly/src/main/assembly/hadoop-three-compat.xml b/hbase-assembly/src/main/assembly/hadoop-three-compat.xml
index e5422f39e5f..959c0046ca5 100644
--- a/hbase-assembly/src/main/assembly/hadoop-three-compat.xml
+++ b/hbase-assembly/src/main/assembly/hadoop-three-compat.xml
@@ -28,118 +28,7 @@
<componentDescriptors>
<componentDescriptor>src/main/assembly/components.xml</componentDescriptor>
</componentDescriptors>
- <moduleSets>
- <moduleSet>
- <useAllReactorProjects>true</useAllReactorProjects>
- <includes>
- <!-- Keep this list sorted by name -->
- <include>org.apache.hbase:hbase-annotations</include>
- <include>org.apache.hbase:hbase-asyncfs</include>
- <include>org.apache.hbase:hbase-client</include>
- <include>org.apache.hbase:hbase-common</include>
- <include>org.apache.hbase:hbase-endpoint</include>
- <include>org.apache.hbase:hbase-examples</include>
- <include>org.apache.hbase:hbase-external-blockcache</include>
- <include>org.apache.hbase:hbase-hadoop-compat</include>
- <include>org.apache.hbase:hbase-hadoop2-compat</include>
- <include>org.apache.hbase:hbase-http</include>
- <include>org.apache.hbase:hbase-it</include>
- <include>org.apache.hbase:hbase-logging</include>
- <include>org.apache.hbase:hbase-mapreduce</include>
- <include>org.apache.hbase:hbase-metrics</include>
- <include>org.apache.hbase:hbase-metrics-api</include>
- <include>org.apache.hbase:hbase-procedure</include>
- <include>org.apache.hbase:hbase-protocol</include>
- <include>org.apache.hbase:hbase-protocol-shaded</include>
- <include>org.apache.hbase:hbase-replication</include>
- <include>org.apache.hbase:hbase-rest</include>
- <include>org.apache.hbase:hbase-rsgroup</include>
- <include>org.apache.hbase:hbase-server</include>
- <include>org.apache.hbase:hbase-shell</include>
- <include>org.apache.hbase:hbase-testing-util</include>
- <include>org.apache.hbase:hbase-thrift</include>
- <include>org.apache.hbase:hbase-zookeeper</include>
- </includes>
- <!-- Binaries for the dependencies also go in the hbase-jars directory -->
- <binaries>
- <outputDirectory>lib</outputDirectory>
- <unpack>false</unpack>
- <dependencySets>
- <dependencySet>
- <excludes>
- <!-- Exclude J2EE libraries that get pulled in when building on JDK11 -->
- <exclude>com.sun.activation:javax.activation</exclude>
- <!-- The following artifacts are transitive dependencies of com.sun.xml.ws:jaxws-ri:pom
- They are needed to be included in lib/jdk11 to be added to classpath during
- Java 11 runtime hence excluding from main lib.
- -->
- <exclude>com.sun.xml.ws:*</exclude>
- <exclude>jakarta.annotation:jakarta.annotation-api</exclude>
- <exclude>org.glassfish.jaxb:*</exclude>
- <exclude>com.sun.istack:istack-commons-runtime</exclude>
- <exclude>org.glassfish.gmbal:gmbal</exclude>
- <exclude>org.glassfish.external:management-api</exclude>
- <exclude>org.glassfish.pfl:*</exclude>
- <exclude>org.jvnet.staxex:stax-ex</exclude>
- <exclude>com.sun.xml.stream.buffer:streambuffer</exclude>
- <exclude>org.jvnet.mimepull:mimepull</exclude>
- <exclude>com.sun.xml.fastinfoset:FastInfoset</exclude>
- <exclude>org.glassfish.ha:ha-api</exclude>
- <exclude>com.sun.xml.messaging.saaj:saaj-impl</exclude>
- <exclude>jakarta.activation:jakarta.activation-api</exclude>
- <exclude>com.sun.xml.bind:jaxb-xjc</exclude>
- <exclude>com.sun.xml.bind:jaxb-jxc</exclude>
- <exclude>jakarta.mail:jakarta.mail-api</exclude>
- <exclude>jakarta.persistence:jakarta.persistence-api</exclude>
- <exclude>org.eclipse.persistence:*</exclude>
- <exclude>jakarta.xml.ws:jakarta.xml.ws-api</exclude>
- <exclude>jakarta.xml.bind:jakarta.xml.bind-api</exclude>
- <exclude>jakarta.xml.soap:jakarta.xml.soap-api</exclude>
- <exclude>jakarta.jws:jakarta.jws-api</exclude>
- <!-- Exclude libraries that we put in their own dirs under lib/ -->
- <exclude>org.jruby:jruby-complete</exclude>
- <exclude>com.sun.jersey:*</exclude>
- <exclude>com.sun.jersey.contribs:*</exclude>
- <exclude>jline:jline</exclude>
- <exclude>org.apache.hbase:hbase-shaded-client</exclude>
- <exclude>org.apache.hbase:hbase-shaded-client-byo-hadoop</exclude>
- <exclude>org.apache.hbase:hbase-shaded-mapreduce</exclude>
- <exclude>com.github.stephenc.findbugs:findbugs-annotations</exclude>
- <exclude>commons-logging:commons-logging</exclude>
- <exclude>log4j:log4j</exclude>
- <exclude>org.apache.htrace:htrace-core4</exclude>
- <exclude>org.apache.htrace:htrace-core</exclude>
- <exclude>org.apache.yetus:audience-annotations</exclude>
- <exclude>org.slf4j:slf4j-api</exclude>
- <exclude>org.slf4j:slf4j-log4j12</exclude>
- </excludes>
- </dependencySet>
- </dependencySets>
- </binaries>
- </moduleSet>
- <!-- Include shaded clients in their own directory -->
- <moduleSet>
- <useAllReactorProjects>true</useAllReactorProjects>
- <includes>
- <include>org.apache.hbase:hbase-shaded-client</include>
- <include>org.apache.hbase:hbase-shaded-mapreduce</include>
- <include>org.apache.hbase:hbase-shaded-client-byo-hadoop</include>
- </includes>
- <binaries>
- <outputDirectory>lib/shaded-clients</outputDirectory>
- <unpack>false</unpack>
- <dependencySets>
- <dependencySet>
- <includes>
- <include>org.apache.hbase:hbase-shaded-client</include>
- <include>org.apache.hbase:hbase-shaded-mapreduce</include>
- <include>org.apache.hbase:hbase-shaded-client-byo-hadoop</include>
- </includes>
- </dependencySet>
- </dependencySets>
- </binaries>
- </moduleSet>
- </moduleSets>
+
<!-- Include the generated LICENSE and NOTICE files -->
<files>
<file>
@@ -163,6 +52,71 @@
</files>
<dependencySets>
+ <!--
+ The following 2 dependencySet's are converted from the moduleSets in the original upstream implementation .
+ ModuleSets do not work in non-reactor builds, like we use in Blazar. This produces the same result as long as
+ we add all of the desired modules (previously indicated as <includes>) as dependencies in the hbase-assembly pom.xml.
+ -->
+ <dependencySet>
+ <outputDirectory>lib</outputDirectory>
+ <excludes>
+ <!-- exclude these because we will explicitly put them in a subdir next. these 3 excludes are custom to our impl -->
+ <exclude>org.apache.hbase:hbase-shaded-client</exclude>
+ <exclude>org.apache.hbase:hbase-shaded-mapreduce</exclude>
+ <exclude>org.apache.hbase:hbase-shaded-client-byo-hadoop</exclude>
+
+ <!-- the remaining excludes should stay in sync with hadoop-three-compat.xml -->
+ <exclude>com.sun.activation:javax.activation</exclude>
+ <exclude>com.sun.xml.ws:*</exclude>
+ <exclude>jakarta.annotation:jakarta.annotation-api</exclude>
+ <exclude>org.glassfish.jaxb:*</exclude>
+ <exclude>com.sun.istack:istack-commons-runtime</exclude>
+ <exclude>org.glassfish.gmbal:gmbal</exclude>
+ <exclude>org.glassfish.external:management-api</exclude>
+ <exclude>org.glassfish.pfl:*</exclude>
+ <exclude>org.jvnet.staxex:stax-ex</exclude>
+ <exclude>com.sun.xml.stream.buffer:streambuffer</exclude>
+ <exclude>org.jvnet.mimepull:mimepull</exclude>
+ <exclude>com.sun.xml.fastinfoset:FastInfoset</exclude>
+ <exclude>org.glassfish.ha:ha-api</exclude>
+ <exclude>com.sun.xml.messaging.saaj:saaj-impl</exclude>
+ <exclude>jakarta.activation:jakarta.activation-api</exclude>
+ <exclude>com.sun.xml.bind:jaxb-xjc</exclude>
+ <exclude>com.sun.xml.bind:jaxb-jxc</exclude>
+ <exclude>jakarta.mail:jakarta.mail-api</exclude>
+ <exclude>jakarta.persistence:jakarta.persistence-api</exclude>
+ <exclude>org.eclipse.persistence:*</exclude>
+ <exclude>jakarta.xml.ws:jakarta.xml.ws-api</exclude>
+ <exclude>jakarta.xml.bind:jakarta.xml.bind-api</exclude>
+ <exclude>jakarta.xml.soap:jakarta.xml.soap-api</exclude>
+ <exclude>jakarta.jws:jakarta.jws-api</exclude>
+ <exclude>org.jruby:jruby-complete</exclude>
+ <exclude>com.sun.jersey:*</exclude>
+ <exclude>com.sun.jersey.contribs:*</exclude>
+ <exclude>jline:jline</exclude>
+ <exclude>org.apache.hbase:hbase-shaded-client</exclude>
+ <exclude>org.apache.hbase:hbase-shaded-client-byo-hadoop</exclude>
+ <exclude>org.apache.hbase:hbase-shaded-mapreduce</exclude>
+ <exclude>com.github.stephenc.findbugs:findbugs-annotations</exclude>
+ <exclude>commons-logging:commons-logging</exclude>
+ <exclude>log4j:log4j</exclude>
+ <exclude>org.apache.htrace:htrace-core4</exclude>
+ <exclude>org.apache.htrace:htrace-core</exclude>
+ <exclude>org.apache.yetus:audience-annotations</exclude>
+ <exclude>org.slf4j:slf4j-api</exclude>
+ <exclude>org.slf4j:slf4j-log4j12</exclude>
+ </excludes>
+ </dependencySet>
+
+ <dependencySet>
+ <outputDirectory>lib/shaded-clients</outputDirectory>
+ <includes>
+ <include>org.apache.hbase:hbase-shaded-client</include>
+ <include>org.apache.hbase:hbase-shaded-mapreduce</include>
+ <include>org.apache.hbase:hbase-shaded-client-byo-hadoop</include>
+ </includes>
+ </dependencySet>
+
<!-- Add jruby-complete to hbase_home/lib/ruby.
Update JRUBY_PACKAGED_WITH_HBASE in bin/hbase and hbase.cmd if you would like to update outputDirectory below -->
<dependencySet>
diff --git a/hbase-asyncfs/.blazar.yaml b/hbase-asyncfs/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-asyncfs/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-build-configuration/.blazar.yaml b/hbase-build-configuration/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-build-configuration/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-checkstyle/.blazar.yaml b/hbase-checkstyle/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-checkstyle/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-client/.blazar.yaml b/hbase-client/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-client/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-common/.blazar.yaml b/hbase-common/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-common/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-common/pom.xml b/hbase-common/pom.xml
index 5a099f3b913..3f29afdec8a 100644
--- a/hbase-common/pom.xml
+++ b/hbase-common/pom.xml
@@ -31,6 +31,10 @@
<name>Apache HBase - Common</name>
<description>Common functionality for HBase</description>
+ <properties>
+ <hubspot.build.version>${project.version}</hubspot.build.version>
+ </properties>
+
<build>
<resources>
<resource>
@@ -76,7 +80,7 @@
<configuration>
<target>
<replace file="${project.build.outputDirectory}/hbase-default.xml"
- token="@@@VERSION@@@" value="${project.version}" />
+ token="@@@VERSION@@@" value="${hubspot.build.version}" />
</target>
</configuration>
<goals>
@@ -92,7 +96,7 @@
<property name="generated.sources" location="${project.build.directory}/generated-sources"/>
<exec executable="bash" failonerror="true">
- <arg line="${basedir}/src/saveVersion.sh ${project.version} ${generated.sources}/java"/>
+ <arg line="${basedir}/src/saveVersion.sh ${hubspot.build.version} ${generated.sources}/java"/>
</exec>
</target>
</configuration>
diff --git a/hbase-endpoint/.blazar.yaml b/hbase-endpoint/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-endpoint/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-examples/.blazar.yaml b/hbase-examples/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-examples/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-external-blockcache/.blazar.yaml b/hbase-external-blockcache/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-external-blockcache/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-hadoop-compat/.blazar.yaml b/hbase-hadoop-compat/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-hadoop-compat/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-hadoop2-compat/.blazar.yaml b/hbase-hadoop2-compat/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-hadoop2-compat/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-hbtop/.blazar.yaml b/hbase-hbtop/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-hbtop/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-http/.blazar.yaml b/hbase-http/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-http/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-it/.blazar.yaml b/hbase-it/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-it/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-logging/.blazar.yaml b/hbase-logging/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-logging/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-mapreduce/.blazar.yaml b/hbase-mapreduce/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-mapreduce/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-metrics-api/.blazar.yaml b/hbase-metrics-api/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-metrics-api/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-metrics/.blazar.yaml b/hbase-metrics/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-metrics/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-procedure/.blazar.yaml b/hbase-procedure/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-procedure/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-protocol-shaded/.blazar.yaml b/hbase-protocol-shaded/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-protocol-shaded/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-protocol/.blazar.yaml b/hbase-protocol/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-protocol/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-replication/.blazar.yaml b/hbase-replication/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-replication/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-resource-bundle/.blazar.yaml b/hbase-resource-bundle/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-resource-bundle/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-rest/.blazar.yaml b/hbase-rest/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-rest/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-rsgroup/.blazar.yaml b/hbase-rsgroup/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-rsgroup/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-server/.blazar.yaml b/hbase-server/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-server/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-shaded/.blazar.yaml b/hbase-shaded/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-shaded/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-shaded/hbase-shaded-check-invariants/.blazar.yaml b/hbase-shaded/hbase-shaded-check-invariants/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-shaded/hbase-shaded-check-invariants/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-shaded/hbase-shaded-client-byo-hadoop/.blazar.yaml b/hbase-shaded/hbase-shaded-client-byo-hadoop/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-shaded/hbase-shaded-client-byo-hadoop/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-shaded/hbase-shaded-client/.blazar.yaml b/hbase-shaded/hbase-shaded-client/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-shaded/hbase-shaded-client/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-shaded/hbase-shaded-mapreduce/.blazar.yaml b/hbase-shaded/hbase-shaded-mapreduce/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-shaded/hbase-shaded-mapreduce/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-shaded/hbase-shaded-testing-util-tester/.blazar.yaml b/hbase-shaded/hbase-shaded-testing-util-tester/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-shaded/hbase-shaded-testing-util-tester/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-shaded/hbase-shaded-testing-util/.blazar.yaml b/hbase-shaded/hbase-shaded-testing-util/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-shaded/hbase-shaded-testing-util/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-shaded/hbase-shaded-with-hadoop-check-invariants/.blazar.yaml b/hbase-shaded/hbase-shaded-with-hadoop-check-invariants/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-shaded/hbase-shaded-with-hadoop-check-invariants/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-shell/.blazar.yaml b/hbase-shell/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-shell/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-testing-util/.blazar.yaml b/hbase-testing-util/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-testing-util/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-thrift/.blazar.yaml b/hbase-thrift/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-thrift/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/hbase-zookeeper/.blazar.yaml b/hbase-zookeeper/.blazar.yaml
new file mode 100644
index 00000000000..770a30af8e8
--- /dev/null
+++ b/hbase-zookeeper/.blazar.yaml
@@ -0,0 +1,18 @@
+# Note: this blazar yaml has been copied to all of the maven submodules (EXCEPT hbase-assembly) so
+# that they can be properly configured. If you make changes to this, you will need to make sure all
+# submodules are also updated accordingly. If you added a new submodule, you'll need to make sure
+# it gets a copy of this .blazar.yaml. In either case, use copy_blazar_yaml.sh to copy to all
+# subdirs containing a pom.xml.
+# Make sure to also check hbase-assembly/.blazar.yaml to see if any changes should be added there as well.
+# Prefer making changes to prepare_environment.sh instead, if possible.
+
+buildpack:
+ host: git.hubteam.com
+ organization: HubSpotProtected
+ repository: Blazar-Buildpack-Java
+ branch: v2
+
+before:
+ - description: "Prepare build environment"
+ commands:
+ - $WORKSPACE/build-scripts/prepare_environment.sh
diff --git a/pom.xml b/pom.xml
index 40f29de5c3d..84b5d4ff1d2 100755
--- a/pom.xml
+++ b/pom.xml
@@ -1605,6 +1605,11 @@
<type>test-jar</type>
<!--Was test scope only but if we want to run hbase-it tests, need the annotations test jar-->
</dependency>
+ <dependency>
+ <groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-annotations</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-common</artifactId>