From 45b610f83b6ed89c7476938a18d509cc39f2f4a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Tue, 17 Mar 2026 11:41:45 +0100 Subject: [PATCH 1/6] HBASE-29878 Improve the Documentation UI (addendum) - fix author check in nightly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The author check fails in nightly build: ``` hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx:154:Also, no `@author` tags - that's a rule. hbase-website/public/book.html:40827:

Also, no @author tags - that’s a rule.

``` Ignore files under hbase-website in author checks. --- .github/workflows/yetus-general-check.yml | 2 +- .github/workflows/yetus-jdk17-hadoop3-compile-check.yml | 2 +- .github/workflows/yetus-jdk17-hadoop3-unit-check.yml | 2 +- dev-support/Jenkinsfile | 2 +- dev-support/Jenkinsfile_GitHub | 2 +- dev-support/hadoop3-backwards-compatibility-check.Jenkinsfile | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/yetus-general-check.yml b/.github/workflows/yetus-general-check.yml index 79397d6a905f..1132f61fbc74 100644 --- a/.github/workflows/yetus-general-check.yml +++ b/.github/workflows/yetus-general-check.yml @@ -82,7 +82,7 @@ jobs: SOURCEDIR: "${{ github.workspace }}/src" TESTS_FILTER: "checkstyle,javac,pylint,shellcheck,shelldocs,blanks,perlcritic,ruby-lint,rubocop" YETUSDIR: "${{ github.workspace }}/yetus" - AUTHOR_IGNORE_LIST: "src/main/asciidoc/_chapters/developer.adoc" + AUTHOR_IGNORE_LIST: "hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html" BLANKS_EOL_IGNORE_FILE: "dev-support/blanks-eol-ignore.txt" BLANKS_TABS_IGNORE_FILE: "dev-support/blanks-tabs-ignore.txt" EXCLUDE_TESTS_URL: "https://ci-hbase.apache.org/job/HBase-Find-Flaky-Tests/job/${{ github.base_ref }}/lastSuccessfulBuild/artifact/output/excludes" diff --git a/.github/workflows/yetus-jdk17-hadoop3-compile-check.yml b/.github/workflows/yetus-jdk17-hadoop3-compile-check.yml index 46d3a973d017..30de558dcbad 100644 --- a/.github/workflows/yetus-jdk17-hadoop3-compile-check.yml +++ b/.github/workflows/yetus-jdk17-hadoop3-compile-check.yml @@ -81,7 +81,7 @@ jobs: SOURCEDIR: "${{ github.workspace }}/src" TESTS_FILTER: "javac,javadoc" YETUSDIR: "${{ github.workspace }}/yetus" - AUTHOR_IGNORE_LIST: "src/main/asciidoc/_chapters/developer.adoc" + AUTHOR_IGNORE_LIST: "hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html" BLANKS_EOL_IGNORE_FILE: "dev-support/blanks-eol-ignore.txt" BLANKS_TABS_IGNORE_FILE: "dev-support/blanks-tabs-ignore.txt" BUILD_THREAD: "4" diff --git a/.github/workflows/yetus-jdk17-hadoop3-unit-check.yml b/.github/workflows/yetus-jdk17-hadoop3-unit-check.yml index 93ae44c247a3..a74f381ebacf 100644 --- a/.github/workflows/yetus-jdk17-hadoop3-unit-check.yml +++ b/.github/workflows/yetus-jdk17-hadoop3-unit-check.yml @@ -99,7 +99,7 @@ jobs: SET_JAVA_HOME: "/usr/lib/jvm/java-17" SOURCEDIR: "${{ github.workspace }}/src" YETUSDIR: "${{ github.workspace }}/yetus" - AUTHOR_IGNORE_LIST: "src/main/asciidoc/_chapters/developer.adoc" + AUTHOR_IGNORE_LIST: "hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html" BLANKS_EOL_IGNORE_FILE: "dev-support/blanks-eol-ignore.txt" BLANKS_TABS_IGNORE_FILE: "dev-support/blanks-tabs-ignore.txt" EXCLUDE_TESTS_URL: "https://ci-hbase.apache.org/job/HBase-Find-Flaky-Tests/job/${{ github.base_ref }}/lastSuccessfulBuild/artifact/output/excludes" diff --git a/dev-support/Jenkinsfile b/dev-support/Jenkinsfile index f22e67d04e83..bb4bcd4fb54b 100644 --- a/dev-support/Jenkinsfile +++ b/dev-support/Jenkinsfile @@ -43,7 +43,7 @@ pipeline { PROJECT_PERSONALITY = 'https://raw.githubusercontent.com/apache/hbase/master/dev-support/hbase-personality.sh' PERSONALITY_FILE = 'tools/personality.sh' // This section of the docs tells folks not to use the javadoc tag. older branches have our old version of the check for said tag. - AUTHOR_IGNORE_LIST = 'src/main/asciidoc/_chapters/developer.adoc' + AUTHOR_IGNORE_LIST = 'hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html' BLANKS_EOL_IGNORE_FILE = 'dev-support/blanks-eol-ignore.txt' BLANKS_TABS_IGNORE_FILE = 'dev-support/blanks-tabs-ignore.txt' // output from surefire; sadly the archive function in yetus only works on file names. diff --git a/dev-support/Jenkinsfile_GitHub b/dev-support/Jenkinsfile_GitHub index c29d4f9140ee..8cf5a7ab8715 100644 --- a/dev-support/Jenkinsfile_GitHub +++ b/dev-support/Jenkinsfile_GitHub @@ -41,7 +41,7 @@ pipeline { GENERAL_CHECK_PLUGINS = 'all,-javadoc,-jira,-shadedjars,-unit' JDK_SPECIFIC_PLUGINS = 'compile,github,htmlout,javac,javadoc,maven,mvninstall,shadedjars,unit' // This section of the docs tells folks not to use the javadoc tag. older branches have our old version of the check for said tag. - AUTHOR_IGNORE_LIST = 'src/main/asciidoc/_chapters/developer.adoc' + AUTHOR_IGNORE_LIST = 'hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html' BLANKS_EOL_IGNORE_FILE = 'dev-support/blanks-eol-ignore.txt' BLANKS_TABS_IGNORE_FILE = 'dev-support/blanks-tabs-ignore.txt' // output from surefire; sadly the archive function in yetus only works on file names. diff --git a/dev-support/hadoop3-backwards-compatibility-check.Jenkinsfile b/dev-support/hadoop3-backwards-compatibility-check.Jenkinsfile index 8e8eff8ded30..7a26647ae34c 100644 --- a/dev-support/hadoop3-backwards-compatibility-check.Jenkinsfile +++ b/dev-support/hadoop3-backwards-compatibility-check.Jenkinsfile @@ -135,7 +135,7 @@ pipeline { SKIP_ERRORPRONE = true OUTPUT_DIR_RELATIVE = "output-jdk17-hadoop3-backwards-${HADOOP3_VERSION}" OUTPUT_DIR = "${WORKSPACE}/${OUTPUT_DIR_RELATIVE}" - AUTHOR_IGNORE_LIST = 'src/main/asciidoc/_chapters/developer.adoc' + AUTHOR_IGNORE_LIST = 'hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html' BLANKS_EOL_IGNORE_FILE = 'dev-support/blanks-eol-ignore.txt' BLANKS_TABS_IGNORE_FILE = 'dev-support/blanks-tabs-ignore.txt' // output from surefire; sadly the archive function in yetus only works on file names. From b2c2a551e4d2ebc89c135e96c05caf5bee1ca42d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Fri, 27 Mar 2026 13:03:18 +0100 Subject: [PATCH 2/6] HBASE-29878 Monkey-patch YETUS-1266 fix for author_postcompile function YETUS-1266 Escape regex metacharacters in author plugin ignore list The author_postcompile function writes --author-ignore-list entries directly into a grep -E filter file without escaping. Filenames containing regex metacharacters (parentheses, brackets, etc.) are silently misinterpreted as pattern syntax, causing those files to pass through unfiltered. --- dev-support/hbase-personality.sh | 58 ++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/dev-support/hbase-personality.sh b/dev-support/hbase-personality.sh index 577f7c77deb9..3dff4bd7dbc6 100755 --- a/dev-support/hbase-personality.sh +++ b/dev-support/hbase-personality.sh @@ -290,6 +290,64 @@ function personality_modules done } +# This is a workaround to fix the author check until YETUS-1266 is released. +# TODO: Remove this when we upgraded to Yetus having YETUS-1266! +## @description Check the current directory for @author tags +## @audience private +## @stability evolving +## @replaceable no +## @return 0 on success +## @return 1 on failure +function author_postcompile +{ + # shellcheck disable=SC2155 + declare -r appname=$(basename "${BASH_SOURCE-$0}") + declare -a globalignore + + big_console_header "*** HBase Monkey-Patch: author_postcompile ***" + + yetus_debug "HBase Monkey-Patch: author_postcompile" + + if [[ "${BUILDMODE}" != full ]]; then + return + fi + + big_console_header "Checking for @author tags: ${BUILDMODE}" + + start_clock + + if [[ -f "${PATCH_DIR}/excluded.txt" ]]; then + globalignore=("${GREP}" "-v" "-f" "${PATCH_DIR}/excluded.txt") + else + globalignore=("cat") + fi + + "${GIT}" grep -n -I --extended-regexp -i -e '^[^-].*@author' \ + | "${GREP}" -v "${appname}" \ + | "${globalignore[@]}" \ + >> "${PATCH_DIR}/author-tags-git.txt" + + if [[ -z "${AUTHOR_IGNORE_LIST[0]}" ]]; then + cp -p "${PATCH_DIR}/author-tags-git.txt" "${PATCH_DIR}/${AUTHOR_LOGNAME}" + else + for i in "${AUTHOR_IGNORE_LIST[@]}"; do + printf "%s\n" "${i}" + done \ + | "${SED}" 's/[][\\.^$*+?{}()|]/\\&/g' \ + | "${SED}" 's/^/^/' \ + > "${PATCH_DIR}/author-tags-filter.txt" + + cat "${PATCH_DIR}/author-tags-filter.txt" + + "${GREP}" -v -E \ + -f "${PATCH_DIR}/author-tags-filter.txt" \ + "${PATCH_DIR}/author-tags-git.txt" \ + > "${PATCH_DIR}/${AUTHOR_LOGNAME}" + fi + + author_generic +} + ## @description places where we override the built in assumptions about what tests to run ## @audience private ## @stability evolving From b08097d9cb8135abaf6a12a5b1365ff533e1cd2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Fri, 17 Apr 2026 17:06:54 +0200 Subject: [PATCH 3/6] HBASE-29878 Monkey-patch author_patchfile for PR/patch mode --- dev-support/hbase-personality.sh | 75 +++++++++++++++++++++++++++++++- 1 file changed, 73 insertions(+), 2 deletions(-) diff --git a/dev-support/hbase-personality.sh b/dev-support/hbase-personality.sh index 3dff4bd7dbc6..12b200c3c046 100755 --- a/dev-support/hbase-personality.sh +++ b/dev-support/hbase-personality.sh @@ -291,8 +291,79 @@ function personality_modules } # This is a workaround to fix the author check until YETUS-1266 is released. -# TODO: Remove this when we upgraded to Yetus having YETUS-1266! -## @description Check the current directory for @author tags +# TODO: Remove these monkey-patches when we upgrade to a Yetus version with YETUS-1266! + +## @description Check the patchfile for @author tags (patch mode), with AUTHOR_IGNORE_LIST support +## @audience private +## @stability evolving +## @replaceable no +## @return 0 on success +## @return 1 on failure +## @param patchfile +function author_patchfile +{ + declare patchfile=$1 + # shellcheck disable=SC2155 + declare -r appname=$(basename "${BASH_SOURCE-$0}") + declare i + + big_console_header "*** HBase Monkey-Patch: author_patchfile ***" + + yetus_debug "HBase Monkey-Patch: author_patchfile" + + if [[ "${BUILDMODE}" != patch ]]; then + return + fi + + big_console_header "Checking for @author tags: ${BUILDMODE}" + + start_clock + + for i in "${CHANGED_FILES[@]}"; do + if [[ ${i} =~ ${appname} ]]; then + echo "Skipping @author checks as ${appname} has been patched." + add_vote_table_v2 0 @author "" "Skipping @author checks as ${appname} has been patched." + return 0 + fi + done + + if [[ -z "${AUTHOR_IGNORE_LIST[0]}" ]]; then + "${GREP}" -i -n '^[^-].*@author' "${patchfile}" >> "${PATCH_DIR}/${AUTHOR_LOGNAME}" + else + local ignore_csv="" + for i in "${AUTHOR_IGNORE_LIST[@]}"; do + if [[ -n "${ignore_csv}" ]]; then + ignore_csv="${ignore_csv}," + fi + ignore_csv="${ignore_csv}${i}" + done + + # Filter the patchfile: skip diff sections belonging to ignored files + "${AWK}" -v ignore_list="${ignore_csv}" ' + BEGIN { + n = split(ignore_list, files, ",") + skip = 0 + } + /^diff --git / { + skip = 0 + for (i = 1; i <= n; i++) { + if (index($0, files[i]) > 0) { + skip = 1 + break + } + } + } + !skip { print } + ' "${patchfile}" > "${PATCH_DIR}/author-filtered-patch.txt" + + "${GREP}" -i -n '^[^-].*@author' "${PATCH_DIR}/author-filtered-patch.txt" \ + >> "${PATCH_DIR}/${AUTHOR_LOGNAME}" + fi + + author_generic +} + +## @description Check the current directory for @author tags (full/nightly mode) ## @audience private ## @stability evolving ## @replaceable no From 0301b97b17339dd358ddaf989dfcacfe59aca8a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Fri, 17 Apr 2026 17:28:20 +0200 Subject: [PATCH 4/6] HBASE-29878 Also ignore hbase-personality.sh in author checks --- .github/workflows/yetus-general-check.yml | 2 +- .github/workflows/yetus-jdk17-hadoop3-compile-check.yml | 2 +- .github/workflows/yetus-jdk17-hadoop3-unit-check.yml | 2 +- dev-support/hbase-personality.sh | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/yetus-general-check.yml b/.github/workflows/yetus-general-check.yml index 1132f61fbc74..9d2ea6cf2efa 100644 --- a/.github/workflows/yetus-general-check.yml +++ b/.github/workflows/yetus-general-check.yml @@ -82,7 +82,7 @@ jobs: SOURCEDIR: "${{ github.workspace }}/src" TESTS_FILTER: "checkstyle,javac,pylint,shellcheck,shelldocs,blanks,perlcritic,ruby-lint,rubocop" YETUSDIR: "${{ github.workspace }}/yetus" - AUTHOR_IGNORE_LIST: "hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html" + AUTHOR_IGNORE_LIST: "dev-support/hbase-personality.sh,hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html" BLANKS_EOL_IGNORE_FILE: "dev-support/blanks-eol-ignore.txt" BLANKS_TABS_IGNORE_FILE: "dev-support/blanks-tabs-ignore.txt" EXCLUDE_TESTS_URL: "https://ci-hbase.apache.org/job/HBase-Find-Flaky-Tests/job/${{ github.base_ref }}/lastSuccessfulBuild/artifact/output/excludes" diff --git a/.github/workflows/yetus-jdk17-hadoop3-compile-check.yml b/.github/workflows/yetus-jdk17-hadoop3-compile-check.yml index 30de558dcbad..e711d063e783 100644 --- a/.github/workflows/yetus-jdk17-hadoop3-compile-check.yml +++ b/.github/workflows/yetus-jdk17-hadoop3-compile-check.yml @@ -81,7 +81,7 @@ jobs: SOURCEDIR: "${{ github.workspace }}/src" TESTS_FILTER: "javac,javadoc" YETUSDIR: "${{ github.workspace }}/yetus" - AUTHOR_IGNORE_LIST: "hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html" + AUTHOR_IGNORE_LIST: "dev-support/hbase-personality.sh,hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html" BLANKS_EOL_IGNORE_FILE: "dev-support/blanks-eol-ignore.txt" BLANKS_TABS_IGNORE_FILE: "dev-support/blanks-tabs-ignore.txt" BUILD_THREAD: "4" diff --git a/.github/workflows/yetus-jdk17-hadoop3-unit-check.yml b/.github/workflows/yetus-jdk17-hadoop3-unit-check.yml index a74f381ebacf..8add54823564 100644 --- a/.github/workflows/yetus-jdk17-hadoop3-unit-check.yml +++ b/.github/workflows/yetus-jdk17-hadoop3-unit-check.yml @@ -99,7 +99,7 @@ jobs: SET_JAVA_HOME: "/usr/lib/jvm/java-17" SOURCEDIR: "${{ github.workspace }}/src" YETUSDIR: "${{ github.workspace }}/yetus" - AUTHOR_IGNORE_LIST: "hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html" + AUTHOR_IGNORE_LIST: "dev-support/hbase-personality.sh,hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html" BLANKS_EOL_IGNORE_FILE: "dev-support/blanks-eol-ignore.txt" BLANKS_TABS_IGNORE_FILE: "dev-support/blanks-tabs-ignore.txt" EXCLUDE_TESTS_URL: "https://ci-hbase.apache.org/job/HBase-Find-Flaky-Tests/job/${{ github.base_ref }}/lastSuccessfulBuild/artifact/output/excludes" diff --git a/dev-support/hbase-personality.sh b/dev-support/hbase-personality.sh index 12b200c3c046..68ecbb730f8c 100755 --- a/dev-support/hbase-personality.sh +++ b/dev-support/hbase-personality.sh @@ -339,9 +339,9 @@ function author_patchfile done # Filter the patchfile: skip diff sections belonging to ignored files - "${AWK}" -v ignore_list="${ignore_csv}" ' + "${AWK}" -v ignore_list="${ignore_csv}" " BEGIN { - n = split(ignore_list, files, ",") + n = split(ignore_list, files, \",\") skip = 0 } /^diff --git / { @@ -354,7 +354,7 @@ function author_patchfile } } !skip { print } - ' "${patchfile}" > "${PATCH_DIR}/author-filtered-patch.txt" + " "${patchfile}" > "${PATCH_DIR}/author-filtered-patch.txt" "${GREP}" -i -n '^[^-].*@author' "${PATCH_DIR}/author-filtered-patch.txt" \ >> "${PATCH_DIR}/${AUTHOR_LOGNAME}" From 095eb9997b26eb58e80db803dac40904ef2a58aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Fri, 17 Apr 2026 19:27:30 +0200 Subject: [PATCH 5/6] HBASE-29878 Remove debug from hbase-personality.sh --- dev-support/hbase-personality.sh | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/dev-support/hbase-personality.sh b/dev-support/hbase-personality.sh index 68ecbb730f8c..9c8d6c9f4b48 100755 --- a/dev-support/hbase-personality.sh +++ b/dev-support/hbase-personality.sh @@ -307,10 +307,6 @@ function author_patchfile declare -r appname=$(basename "${BASH_SOURCE-$0}") declare i - big_console_header "*** HBase Monkey-Patch: author_patchfile ***" - - yetus_debug "HBase Monkey-Patch: author_patchfile" - if [[ "${BUILDMODE}" != patch ]]; then return fi @@ -375,10 +371,6 @@ function author_postcompile declare -r appname=$(basename "${BASH_SOURCE-$0}") declare -a globalignore - big_console_header "*** HBase Monkey-Patch: author_postcompile ***" - - yetus_debug "HBase Monkey-Patch: author_postcompile" - if [[ "${BUILDMODE}" != full ]]; then return fi @@ -407,9 +399,6 @@ function author_postcompile | "${SED}" 's/[][\\.^$*+?{}()|]/\\&/g' \ | "${SED}" 's/^/^/' \ > "${PATCH_DIR}/author-tags-filter.txt" - - cat "${PATCH_DIR}/author-tags-filter.txt" - "${GREP}" -v -E \ -f "${PATCH_DIR}/author-tags-filter.txt" \ "${PATCH_DIR}/author-tags-git.txt" \ From 23ba7a8bcd9d39bf26e899cc691f30e0f3a17a19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Fri, 17 Apr 2026 17:38:46 +0200 Subject: [PATCH 6/6] HBASE-29878 Add some author tags for testing the check --- .../hadoop/hbase/backup/TestIncrementalBackupWithBulkLoad.java | 1 + .../hbase/procedure2/store/region/RegionProcedureStore.java | 1 + 2 files changed, 2 insertions(+) diff --git a/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupWithBulkLoad.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupWithBulkLoad.java index 481f8d755e75..c39bb05e33db 100644 --- a/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupWithBulkLoad.java +++ b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupWithBulkLoad.java @@ -47,6 +47,7 @@ /** * This test checks whether backups properly track & manage bulk files loads. + * @author john.smith@example.com */ @Tag(LargeTests.TAG) public class TestIncrementalBackupWithBulkLoad extends TestBackupBase { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure2/store/region/RegionProcedureStore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure2/store/region/RegionProcedureStore.java index 78df4b80dbf3..44ed3bf66025 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure2/store/region/RegionProcedureStore.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure2/store/region/RegionProcedureStore.java @@ -71,6 +71,7 @@ * first fill the proc:d column with an empty byte array, and then actually delete them in the * {@link #cleanup()} method. This is because that we need to retain the max procedure id, so we can * not directly delete a procedure row as we do not know if it is the one with the max procedure id. + * @author Jane Doe */ @InterfaceAudience.Private public class RegionProcedureStore extends ProcedureStoreBase {