Commit Graph

763 Commits

Author SHA1 Message Date
Chia-Ping Tsai d59ed234ef HBASE-19014 surefire fails; When writing xml report stdout/stderr ... No such file or directory 2017-10-21 01:29:38 +08:00
Mike Drob 5facaded90 HBASE-16338 Remove Jackson1 deps
* Change imports from org.codehaus to com.fasterxml
* Exclude transitive jackson1 from hadoop and others
* Minor test cleanup to add assert messages, fix some parameter order
* Add anti-pattern check for using jackson 1 imports
* Add explicit non-null serialization directive to ScannerModel
2017-10-20 09:20:12 -05:00
zhangduo d653c0bc7f HBASE-18747 Introduce new example and helper classes to tell CP users how to do filtering on scanners 2017-10-14 08:48:09 +08:00
Sean Busbey 54da4405d7 HBASE-18867 update maven enforcer plugin.
Signed-off-by: Mike Drob <mdrob@apache.org>
2017-10-09 20:32:24 -05:00
Sean Busbey 6302dfaf2b HBASE-18973 Clean up warnings about pom well-formedness from mvn validate.
Signed-off-by: Michael Stack <stack@apache.org>
Signed-off-by: Mike Drob <mdrob@apache.org>
2017-10-09 11:28:34 -05:00
Misty Stanley-Jones b0e1a15092 Update Misty's timezone
Signed-off-by: Misty Stanley-Jones <misty@apache.org>
2017-09-29 10:37:45 -07:00
Mike Drob 4136ab338d HBASE-18883 Update Curator to 4.0
Signed-off-by: zhangduo <zhangduo@apache.org>
2017-09-29 10:39:57 -05:00
Michael Stack 5c12e424e6 HBASE-18831 Add explicit dependency on javax.el
Signed-off-by: Michael Stack <stack@apache.org>
2017-09-16 10:37:27 -07:00
zhangduo f7a986cb67 HBASE-18821 addendum use versionRange instead of version to fix m2e error 2017-09-15 16:54:16 +08:00
Michael Stack fb3c8bf608
HBASE-17351 Enforcer plugin fails with NullPointerException 2017-09-14 17:22:41 -07:00
Peter Somogyi 778f507ada HBASE-18683 Upgrade hbase to commons-math 3
Upgrade commons-math:2.2 to commons-math3:3.6.1
Remove commons-math 2 specific content from LICENSE.vm
Add missing jersey-client dependency to hbase-it module

Signed-off-by: Michael Stack <stack@apache.org>
2017-09-14 08:34:28 -07:00
Sean Busbey 4b124913f0 HBASE-17823 Migrate to Apache Yetus Audience Annotations
Signed-off-by: Michael Stack <stack@apache.org>
Signed-off-by: Misty Stanley-Jones <misty@apache.org>
2017-09-12 20:53:30 -05:00
Yi Liang d83af698eb HBASE-18791: HBASE_HOME/lib does not contain hbase-mapreduce-test.jar 2017-09-12 07:51:57 -07:00
Peter Somogyi 137b105c67 HBASE-18704 Upgrade hbase to commons-collections 4
Upgrade commons-collections:3.2.2 to commons-collections4:4.1
Add missing dependency for hbase-procedure, hbase-thrift
Replace CircularFifoBuffer with CircularFifoQueue in WALProcedureStore and TaskMonitor

Signed-off-by: Sean Busbey <busbey@apache.org>
Signed-off-by: Chia-Ping Tsai <chia7712@gmail.com>
2017-09-07 10:30:01 -05:00
Umesh Agashe 5d60123f3e HBASE-18674 upgrading to commons-lang3
Signed-off-by: Michael Stack <stack@apache.org>
2017-09-05 09:46:10 -07:00
Michael Stack 52d4b25754 HBASE-18723 [pom cleanup] Do a pass with dependency:analyze; remove unused and explicity list the dependencies we exploit; ADDENDUM2
Plug more holes. REST can't find JspC when it runs its antrun task.
hbase-it didn't include reference to hbase-protocol-shaded
2017-09-04 21:13:36 -07:00
Jerry He 2305510b7a HBASE-18740 Upgrade Zookeeper version to 3.4.10 2017-09-03 21:47:54 -07:00
Michael Stack 0e95a8a0ae HBASE-18723 [pom cleanup] Do a pass with dependency:analyze; remove unused and explicity list the dependencies we exploit; ADDENDUM
Addendum addresses holes found running HBASE-18674 against hadoopqa.
2017-09-03 15:42:59 -07:00
Michael Stack fb537fe736 HBASE-18723 [pom cleanup] Do a pass with dependency:analyze; remove unused and explicity list the dependencies we exploit
Do a pass with dependency:analyze; remove unused and
explicity list the dependencies we exploit.
Remove the parent dependencies set which had junit, mockito,
log4j, and findbugs annotations (had to put junit back
temporarily in subsequent version of this patch TODO). Listing in
parent set meant these libs were dependencies for all modules
which in practice was not the case. Edited all modules so
those that need any from this parent set now do explicit listing.

Ran the dependency:analyze over the project. Acted on most
suggested removals and requests for explicit listing. Some
grey areas remain around transitives that come in with
hadoop -needs better excludes, another project- and that
the dependency:analyze tool is not always accurate in its
reporting.
2017-08-31 12:41:31 -07:00
Sean Busbey bc5478f947 HBASE-18577 test well-formed-ness of our client jars.
* Removes transitive hadoop deps from hbase-client that we don't use
* removes curator-recipes dep from hbase-client that we don't use
* removes jetty-util transitive from hbase-client that we don't use
* moves junit from compile to test scope for hbase-client
* adds an IT that checks the contents of jars
* excludes our server side web apps and related deps (jaxb, jersey, jetty) from shaded jars
* excludes proto source files from shaded jars
* relocates codahale metrics, commons-crypto, and curator
* finishes relocating jets3t
* moves logging backends to optional in shaded artifacts
* updates maven dependency plugin

Signed-off-by: Michael Stack <stack@apache.org>
2017-08-29 11:58:33 -05:00
Michael Stack 47a5614edd Revert "HBASE-18674 upgrading to commons-lang3"
Premature push

This reverts commit 5dacc85122.
2017-08-28 16:41:34 -07:00
Michael Stack ea1620ff42 HBASE-18710 Move on to hbase-thirdparty 1.0.1 (it was just released). 2017-08-28 16:39:50 -07:00
Umesh Agashe 5dacc85122 HBASE-18674 upgrading to commons-lang3 2017-08-28 15:57:12 -07:00
Apekshit Sharma f386a9a375 HBASE-18688 Upgrade commons-codec to 1.10
Change-Id: I764495e969c99c39b77e2e7541612ee828257126
2017-08-26 02:00:21 -07:00
Apekshit Sharma 664b6be0ef HBASE-18640 Move mapreduce out of hbase-server into separate module.
- Moves out o.a.h.h.{mapred, mapreduce} to new hbase-mapreduce module which depends
  on hbase-server because of classes like *Snapshot{Input,Output}Format.java, WALs, replication, etc
- hbase-backup depends on it for WALPlayer and MR job stuff
- A bunch of tools needed to be pulled into hbase-mapreduce becuase of their dependencies on MR.
  These are: CompactionTool, LoadTestTool, PerformanceEvaluation, ExportSnapshot
  This is better place of them than hbase-server. But ideal place would be in separate hbase-tools module.
- There were some tests in hbase-server which were digging into these tools for static util funtions or
  confs. Moved these to better/easily shared place. For eg. security related stuff to HBaseKerberosUtils.
- Note that hbase-mapreduce has secondPartExecution tests. On my machine they took like 20 min, so maybe
  more on apache jenkins. That's basically equal reduction of runtime of hbase-server tests, which is a
  big win!

Change-Id: Ieeb7235014717ca83ee5cb13b2a27fddfa6838e8
2017-08-25 18:38:48 -07:00
Michael Stack 3b444a066c HBASE-18224 Upgrade Jetty 2017-08-23 23:12:59 -07:00
Huaxiang Sun 1b8509cca9 Add Huaxaing Sun to pom.xml 2017-08-23 15:13:05 -07:00
Apekshit Sharma 26e6c2ceb4 HBASE-17442 Move most of the replication related classes from hbase-client to new hbase-replication package. (Guanghao Zhang).
Change-Id: Ie0e24cc617ab4bf56de8b1747062d1b78a5d4669
2017-08-23 14:41:58 -07:00
Vladimir Rodionov 2dda371209 HBASE-17614: Move Backup/Restore into separate module (Vladimir Rodionov)
Signed-off-by: Josh Elser <elserj@apache.org>
2017-08-23 12:40:57 -04:00
Mike Drob 51d458872d HBASE-12349 Add custom error-prone module 2017-08-22 16:38:17 -05:00
Michael Stack c90a4e8c63 HBASE-18630 Prune dependencies; as is branch-2 has duplicates
Signed-off-by: Michael Stack <stack@apache.org>
2017-08-22 09:18:27 -07:00
Michael Stack c6ac04ab39 HBASE-18271 Shade netty Purge mention of netty-all.
Add in hbase-thirdparty hbase-shaded-netty instead.
s/io.netty/org.apache.hadoop.hbase.shaded.io.netty/ everywhere in hbase.

Also set a system property when running tests and when starting
hbase; required by netty so can find the relocation files in the
bundled .so.
2017-08-13 12:46:21 -07:00
Michael Stack 043ec9b37e HBASE-18558 clean up duplicate dependency management entries for hbase-shaded-miscellaneous 2017-08-11 07:24:17 -07:00
Misty Stanley-Jones 6114824b53 HBASE-18548 Move sources of website gen and check jobs into source control 2017-08-10 14:48:14 -07:00
Umesh Agashe 67eddf5874 HBASE-18525 [AMv2] Fixed test TestAssignmentManager#testSocketTimeout on master branch 2017-08-09 10:15:37 -07:00
Jan Hentschel 7da47509d2 HBASE-15042 Moved site materials to standard Maven place
Signed-off-by: Michael Stack <stack@apache.org>
2017-08-05 15:22:46 +08:00
Mike Drob 6266bb352b Add Mike Drob to pom.xml 2017-08-03 15:51:34 -05:00
Michael Stack 7a6de1bd42 HBASE-17056 Remove checked in PB generated files
Selective add of dependency on hbase-thirdparty jars.
Update to READMEs on how protobuf is done (and update to refguide).
Removed all checked in generated protobuf files. They are generated
on the fly now as part of mainline build.
2017-08-02 09:33:20 -07:00
Mike Drob a649afebba HBASE-18445 exclude guava from hadoop-auth
Signed-off-by: Sean Busbey <busbey@apache.org>
2017-07-26 12:30:12 -07:00
Abhishek Singh Chouhan d9ea8ee2fb Add Abhishek Singh Chouhan to pom 2017-07-26 17:44:36 +05:30
Vikas Vishwakarma c4b802b1c2 add vikasv to pom.xml 2017-07-26 17:39:47 +05:30
Michael Stack 890d92a90c HBASE-17908 Upgrade guava
Pull in guava 22.0 by using the shaded version up in new hbase-thirdparty project.

In poms, exclude guava everywhere except on hadoop-common. Do this so
we minimize transitive includes. hadoop-common is needed because hadoop
Configuration uses guava doing preconditions.

Everywhere we used guava, instead use shaded so fix a load of imports.

Stopwatch API changed as did hashing and toStringHelper which is now
in MoreObjects class. Otherwise, minimal changes to come up on 22.0
2017-07-21 15:28:08 +01:00
Peter Somogyi c423dc7950 HBASE-18332 Upgrade asciidoctor-maven-plugin
Update asciidoctor-maven-plugin to 1.5.5 and asciidoctorj-pdf to 1.5.0-alpha.15
asciidoctor's pdfmark generation is turned off
Modify title-logo tag to title-logo-image

Signed-off-by: Misty Stanley-Jones <misty@apache.org>
2017-07-17 19:05:53 -07:00
Yi Liang 79a702d112 HBASE-18175 Add hbase-spark integration test into hbase-spark-it
* adds module hbase-spark-it
* adds test IntegrationTestSparkBulkLoad
* adds resultant jar to bin assembly

Signed-off-by: Mike Drob <mdrob@apache.org>
Signed-off-by: Sean Busbey <busbey@apache.org>
2017-07-14 10:53:40 -05:00
Mike Drob 500592dfd0 HBASE-18339 Update to hadoop3-alpha4
Signed-off-by: Sean Busbey <busbey@apache.org>
2017-07-13 10:03:03 -05:00
Josh Elser 1800580a8a HBASE-18364 Downgrade surefire to 2.19.1 because it broke package wildcards 2017-07-12 11:34:34 -04:00
Michael Stack 6786b2b63e Revert "HBASE-17056 Remove checked in PB generated files Selective add of dependency on"
Revert for now. Build unstable and some interesting issues around
CLASSPATH

This reverts commit df93c13fd2.
2017-07-06 21:58:32 -07:00
Michael Stack df93c13fd2 HBASE-17056 Remove checked in PB generated files Selective add of dependency on
hbase-thirdparty jars. Update to READMEs on how protobuf is done (and update to
refguide) Removed all checked in generated protobuf files. They are generatedon
the fly now as part of mainline build.
2017-07-05 20:57:11 -07:00
Jan Hentschel 24435f65a5 HBASE-16730 Excluded junit as a transitive dependency from hadoop-common
Signed-off-by: Michael Stack <stack@apache.org>
2017-07-05 12:48:39 -07:00
Peter Somogyi 25de5d29b1 HBASE-18320 Address maven-site-plugin upgrade steps
Go back to maven-site-plugin:3.4, asciidoctor-maven-plugin:1.5.2.1 and
asciidoctorj-pdf 1.5.0-alpha.6

Change-Id: I68110459d2dba93256770e3b77d7faa2d49e982a

Signed-off-by: Michael Stack <stack@apache.org>
2017-07-04 08:25:00 -07:00
Peter Somogyi f2731fc241 HBASE-18264 Update pom plugins
Update plugins in main and subprojects
Unified versions to use variable instead of direct values

Affected plugins:
- apache-rat-plugin 0.11 -> 0.12
- asciidoctor-maven-plugin 1.5.2.1 -> 1.5.5
- asciidoctorj-pdf 1.5.0-alpha.6 -> 1.5.0-alpha.15
- build-helper-maven-plugin 1.9.1 -> 3.0.0
- buildnumber-maven-plugin 1.3 -> 1.4
- exec-maven-plugin 1.2.1/1.4.0 -> 1.6.0
- extra-enforcer-rules 1.0-beta-3 -> 1.0-beta-6
- findbugs-maven-plugin 3.0.0 -> 3.0.4
- jamon-maven-plugin 2.4.1 -> 2.4.2
- maven-bundle-plugin 2.5.3 -> 3.3.0
- maven-compiler-plugin 3.2/3.5.1 -> 3.6.1
- maven-eclipse-plugin 2.9 -> 2.10
- maven-shade-plugin 2.4.1 -> 3.0.0
- maven-surefire-plugin 2.18.1 -> 2.20
- maven-surefire-report-plugin 2.7.2 -> 2.20
- scala-maven-plugin 3.2.0 -> 3.2.2
- spotbugs 3.1.0-RC1 -> 3.1.0-RC3
- wagon-ssh 2.2 -> 2.12
- xml-maven-plugin 1.0 -> 1.0.1

- maven-assembly-plugin 2.4 -> 2.6(inherited)
- maven-dependency-plugin 2.4 -> 2.10 (inherited)
- maven-enforcer-plugin 1.3.1 -> 1.4.1 (inherited)
- maven-javadoc-plugin 2.10.3 -> 2.10.4 (inherited)
- maven-resources-plugin 2.7 (inherited)
- maven-site-plugin 3.4 -> 3.5.1 (inherited)

Change-Id: I84539f555be498dff18caed1e3eea1e1aeb2143a

Signed-off-by: Michael Stack <stack@apache.org>
2017-07-03 19:42:46 -07:00
Chia-Ping Tsai 0d4245c99e HBASE-18293 Only add the spotbugs dependency when jdk8 is active
Signed-off-by: Sean Busbey <busbey@apache.org>
2017-06-30 09:43:02 -05:00
Sean Busbey 74c5742024 HBASE-18288 Declared dependency on specific javax.ws.rs.
Signed-off-by: Huaxiang Sun <huaxiangsun@apache.org>
2017-06-30 08:41:50 -05:00
Mike Drob d8e0163fac HBASE-16351 Improve error reporting for license failures
Signed-off-by: Sean Busbey <busbey@apache.org>
2017-06-21 14:12:53 -05:00
Jan Hentschel 298454e8a7 HBASE-17954 Switched findbugs implementation to spotbugs
Signed-off-by: Sean Busbey <busbey@apache.org>
2017-06-20 01:06:47 -05:00
Mike Drob 270f317727 HBASE-18176 Enforce no scala outside hbase-spark
Signed-off-by: Sean Busbey <busbey@apache.org>
2017-06-19 16:36:42 -05:00
Sean Busbey 2263190361 HBASE-16242 Manually resolve transitive Apache Avro dependency to consistently be ver 1.7.7.
Signed-off-by: Jerry He <jerryjch@apache.org>
2017-06-19 15:50:14 -05:00
Ashu Pachauri cd478d1564 Add Ashu Pachauri to pom.xml 2017-06-16 16:25:30 -07:00
Balazs Meszaros 479f3edc5c HBASE-17898 Update dependencies
Signed-off-by: Michael Stack <stack@apache.org>
2017-06-15 13:32:42 -07:00
Allan Yang abc0afb4dc Added Allan Yang to the pom.xml 2017-06-08 15:18:03 +08:00
Michael Stack 929c9dab14 HBASE-18181 Move master branch to version 3.0.0-SNAPSHOT post creation of branch-2 2017-06-06 22:04:39 -07:00
Mike Drob 140ce1453e HBASE-16196 Update to JRuby 9.1.9.0
* Get hbase-shell to use latest current JRuby release.
* Update license information to reflect the changes to jruby-complete.jar
* Update shell scripts for Ruby 1.8->2.x incompatabilities
* Update joni and jcodings to compatible versions

Signed-off-by: Sean Busbey <busbey@apache.org>
2017-05-31 11:09:07 -05:00
zhangduo 0953c14470 HBASE-17940 HMaster can not start due to Jasper related classes conflict 2017-04-20 16:06:50 +08:00
Jonathan M Hsieh 719a30b11a HBASE-17925 mvn assembly:single fails against hadoop3-alpha2 2017-04-18 16:40:07 -07:00
anastas 04fc455037 Added Anastasia Braginsky to the pom.xml 2017-03-27 15:21:54 +03:00
eshcar b299c1388c Add Eshcar Hillel to pom file 2017-03-19 09:58:51 +02:00
Chia-Ping Tsai 154e58ef32 add chia7712 to pom.xml 2017-03-18 03:15:17 +08:00
Apekshit Sharma 41be3bc2cc HBASE-17593 Update hadoop 3 version to 3.0.0-alpha2.
Change-Id: Ic5411229aaab3d645dc6751ecfbbda1b2d93a4b9
2017-02-06 12:18:21 -08:00
Michael Stack ffe7dac53d Revert "Revert "HBASE-12894 Upgrade to Jetty 9 for REST / Info Server / Thrift Http Server""
This reverts commit 0ac5d4a717.
This is a revert of a revert; i.e. a reapplication!
Fixes for breakage that comes in with this patch is in a follow-on.
2017-01-30 11:54:54 -08:00
Michael Stack 0ac5d4a717 Revert "HBASE-12894 Upgrade to Jetty 9 for REST / Info Server / Thrift Http Server"
This reverts commit 59fd6eb7f6.
2017-01-25 22:55:18 -08:00
Enis Soztutar c64a1d1994 HBASE-9774 HBase native metrics and metric collection for coprocessors 2017-01-25 11:47:35 -08:00
Yang Guang 59fd6eb7f6 HBASE-12894 Upgrade to Jetty 9 for REST / Info Server / Thrift Http Server 2017-01-24 23:37:12 -08:00
Michael Stack 4fdd6ff9ae HBASE-16831 Procedure V2 - Remove org.apache.hadoop.hbase.zookeeper.lock
(Appy)
2017-01-19 16:51:44 -08:00
Esteban Gutierrez 910e885a75 HBASE-17351 Unable to generate tar ball for master branch 2017-01-06 08:42:20 -08:00
Guanghao Zhang 0cf1642926 Add Guanghao Zhang to pom.xml 2016-12-20 10:43:17 +08:00
Josh Elser c24a055db8 +elserj as developer 2016-12-11 15:17:54 -05:00
Sean Busbey e5dad24a9c HBASE-17192 remove use of scala-tools.org as repo.
Signed-off-by: zhangduo <zhangduo@apache.org>
2016-11-29 08:50:12 -06:00
Phil Yang 8204337b5d add yangzhe1991 to pom.xml 2016-11-27 12:01:59 +08:00
Michael Stack a6f3057dbf HBASE-14198 Eclipse project generation is broken in master
Small fix. Not enough to clean up all complaints in eclipse but fixes
one error.
2016-11-23 10:13:56 -08:00
binlijin 5f7cf0bb73 Add binlijin to pom.xml 2016-11-21 10:44:12 +08:00
Michael Stack be519ca1a5 HBASE-17121 Undo the building of xref as part of site build; Remove links to xref 2016-11-18 13:45:57 -08:00
Jan Hentschel 046d1a56b2 HBASE-16335 Update to latest Apache parent pom
Signed-off-by: Michael Stack <stack@apache.org>
2016-11-17 13:50:43 -08:00
Enis Soztutar 07757501d7 HBASE-17052 compile-protobuf profile does not compile protobufs in some modules anymore 2016-11-10 11:37:26 -08:00
zhangduo 3b629d632a HBASE-17021 Use RingBuffer to reduce the contention in AsyncFSWAL 2016-11-09 09:24:12 +08:00
Apekshit Sharma 5e361b87f2 HBASE-17050 Upgrade Apache CLI version from 1.2 to 1.3.1
Change-Id: I137f3fcfa8954c8d9993d4551ca25ac246269b10
2016-11-08 12:04:23 -08:00
Michael Stack d4256aa6f3 HBASE-16974 Update os-maven-plugin to 1.4.1.final+ for building shade file on RHEL/CentOS (ChiaPing Tsai) 2016-10-31 12:30:19 -07:00
Michael Stack ad0e862f78 "HBASE-16952 Replace hadoop-maven-plugins with protobuf-maven-plugin for building protos""
Rely on the new plugin to do all proto generation. No need of an
external protoc setup anymore. Mvn will do it all for you.

Updated all READMEs appropriately.

Signed-off-by: Michael Stack <stack@apache.org>
2016-10-28 16:49:35 -07:00
zhangduo 3283bc7c91 HBASE-16835 Revisit the zookeeper usage at client side 2016-10-28 13:27:41 +08:00
Michael Stack 738ff821dd Revert "HBASE-16952 Replace hadoop-maven-plugins with protobuf-maven-plugin for building protos"
Revert premature commit

This reverts commit d0e61b0e9a.
2016-10-27 13:17:07 -07:00
Michael Stack d0e61b0e9a HBASE-16952 Replace hadoop-maven-plugins with protobuf-maven-plugin for building protos
This patch changes poms to use protobuf-maven-plugin instaed of
hadoop-maven-plugins generating protos. Adds a few missing READMEs too
as well as purge of unused protos turned up by the new plugin.
2016-10-27 10:11:58 -07:00
Michael Stack c776b3144d HBASE-16949 Fix RAT License complaint about the hbase-protocol-shaded/src/main/patches content 2016-10-26 14:52:47 -07:00
Ramkrishna 0ae211eb39 HBASE-16414 Improve performance for RPC encryption with Apache Common
Crypto (Colin Ma)
2016-10-21 16:02:39 +05:30
Jonathan M Hsieh 8e100628a4 HBASE-16712 fix mvn hadoop-3.0 profile for mvn install
- Handles licenses for transitive dependencies introduced by Hadoop 3
- Forces dependency on hadoop  3.0.0-alpha1 instead of 3.0.0-SNAPSHOT
2016-10-17 14:58:52 -07:00
zhangduo d9f18c7f03 HBASE-16793 Exclude shaded protobuf files from rat check 2016-10-11 14:00:36 +08:00
Dima Spivak 3c35a722d9 Revert "HBASE-16750 hbase compilation failed on power system (Saravanan Krishnamoorthy)"
This reverts commit d1e40bf0bd.
2016-10-10 10:08:41 -05:00
tedyu d1e40bf0bd HBASE-16750 hbase compilation failed on power system (Saravanan Krishnamoorthy) 2016-10-06 06:48:40 -07:00
tedyu 34ad9652ae HBASE-16750 hbase compilation failed on power system - revert due to failure in mvn site 2016-10-04 09:24:47 -07:00
tedyu b952e64751 HBASE-15560 TinyLFU-based BlockCache - revert pending performance verification 2016-10-04 08:37:29 -07:00
tedyu 9e0c2562a9 HBASE-15560 TinyLFU-based BlockCache (Ben Manes) 2016-10-04 05:15:51 -07:00
stack 95c1dc93fb HBASE-15638 Shade protobuf
Which includes

    HBASE-16742 Add chapter for devs on how we do protobufs going forward

    HBASE-16741 Amend the generate protobufs out-of-band build step
    to include shade, pulling in protobuf source and a hook for patching protobuf

    Removed ByteStringer from hbase-protocol-shaded. Use the protobuf-3.1.0
    trick directly instead. Makes stuff cleaner. All under 'shaded' dir is
    now generated.

    HBASE-16567 Upgrade to protobuf-3.1.x
    Regenerate all protos in this module with protoc3.
    Redo ByteStringer to use new pb3.1.0 unsafebytesutil
    instead of HBaseZeroCopyByteString

    HBASE-16264 Figure how to deal with endpoints and shaded pb Shade our protobufs.
    Do it in a manner that makes it so we can still have in our API references to
    com.google.protobuf (and in REST). The c.g.p in API is for Coprocessor Endpoints (CPEP)

            This patch is Tactic #4 from Shading Doc attached to the referenced issue.
            Figuring an appoach took a while because we have Coprocessor Endpoints
            mixed in with the core of HBase that are tough to untangle (FIX).

            Tactic #4 (the fourth attempt at addressing this issue) is COPY all but
            the CPEP .proto files currently in hbase-protocol to a new module named
            hbase-protocol-shaded. Generate .protos again in the new location and
            then relocate/shade the generated files. Let CPEPs keep on with the
            old references at com.google.protobuf.* and
            org.apache.hadoop.hbase.protobuf.* but change the hbase core so all
            instead refer to the relocated files in their new location at
            org.apache.hadoop.hbase.shaded.com.google.protobuf.*.

            Let the new module also shade protobufs themselves and change hbase
            core to pick up this shaded protobuf rather than directly reference
            com.google.protobuf.

            This approach allows us to explicitly refer to either the shaded or
            non-shaded version of a protobuf class in any particular context (though
            usually context dictates one or the other). Core runs on shaded protobuf.
            CPEPs continue to use whatever is on the classpath with
            com.google.protobuf.* which is pb2.5.0 for the near future at least.

            See above cited doc for follow-ons and downsides. In short, IDEs will complain
            about not being able to find the shaded protobufs since shading happens at package
            time; will fix by checking in all generated classes and relocated protobuf in
            a follow-on. Also, CPEPs currently suffer an extra-copy as marshalled from
            non-shaded to shaded. To fix. Finally, our .protos are duplicated; once
            shaded, and once not. Pain, but how else to reveal our protos to CPEPs or
            C++ client that wants to talk with HBase AND shade protobuf.

            Details:

            Add a new hbase-protocol-shaded module. It is a copy of hbase-protocol
    i       with all relocated offset from o.a.h.h. to o.a.h.h.shaded. The new module
            also includes the relocated pb. It does not include CPEPs. They stay in
            their old location.

            Add another module hbase-endpoint which has in it all the endpoints
            that ship as part of hbase -- at least the ones that are not
            entangled with core such as AccessControl and Auth. Move all protos
            for these CPEPs here as well as their unit tests (mostly moving a
            bunch of stuff out of hbase-server module)

            Much of the change looks like this:

                 -import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
                 -import org.apache.hadoop.hbase.protobuf.generated.ClusterIdProtos;
                 +import org.apache.hadoop.hbase.protobuf.shaded.ProtobufUtil;
                 +import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterIdProtos;

            In HTable and in HBaseAdmin, regularize the way Callables are used and also hide
            protobuf usage as much as possible moving it up into Callable super classes or out
            to utility classes. Still TODO is adding in of retries, etc., but can wait on
            procedure which will redo all this.

            Also in HTable and HBaseAdmin as well as in HRegionServer and Server, be explicit
            when using non-shaded protobuf. Do the full-path so it is clear. This is around
            endpoint coprocessors registration of services and execution of CPEP methods.

            Shrunk ProtobufUtil by moving methods used by one CPEP only back to the CPEP either
            into Client class or as new Util class; e.g. AccessControlUtil.

            There are actually two versions of ProtobufUtil now; a shaded one and a subset
            that is used by CPEPs doing non-shaded work.

            Made it so hbase-common no longer depends on hbase-protocol (with Matteo's help)

            R*Converter classes got moved down under shaded package -- they are for internal
            use only. There are no non-shaded versions of these classes.

            D hbase-client/src/main/java/org/apache/hadoop/hbase/client/AbstractRegionServerCallable
            D RetryingCallableBase
             Not used anymore and we have too many tiers of Callables so removed/cleaned-up.

            A ClientServicecallable
             Had to add this one. RegionServerCallable was made generic so it could be used
             for a few Interfaces (Client and Admin). Then added ClientServiceCallable to
             implement RegionServerCallable with the Client Interface.
2016-10-03 21:37:32 -07:00