hbase/hbase-protocol-shaded
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
..
src/main HBASE-16952 Replace hadoop-maven-plugins with protobuf-maven-plugin for building protos 2016-10-27 10:11:58 -07:00
README.txt HBASE-16952 Replace hadoop-maven-plugins with protobuf-maven-plugin for building protos 2016-10-27 10:11:58 -07:00
pom.xml HBASE-16952 Replace hadoop-maven-plugins with protobuf-maven-plugin for building protos 2016-10-27 10:11:58 -07:00

README.txt

Please read carefully as the 'menu options' have changed.
What you do in here is not what you do elsewhere to generate
proto java files.

This module has proto files used by core. These protos
overlap with protos that are used by coprocessor endpoints
(CPEP) in the module hbase-protocol. So the core versions have
a different name, the generated classes are relocated
-- i.e. shaded -- to a new location; they are moved from
org.apache.hadoop.hbase.* to org.apache.hadoop.hbase.shaded.

This module also includes the protobuf that hbase core depends
on again relocated to live at an offset of
org.apache.hadoop.hbase.shaded so as to avoid clashes with other
versions of protobuf resident on our CLASSPATH included,
transitively or otherwise, by dependencies: i.e. the shaded
protobuf Message class is at
org.apache.hadoop.hbase.shaded.com.google.protobuf.Message
rather than at com.google.protobuf.Message.

Finally, this module also includes patches applied on top of
protobuf to add functionality not yet in protobuf that we
need now.

If you make changes to protos, to the protobuf version or to
the patches you want to apply to protobuf, you must rerun the
below step and then check in what it generated:

 $ mvn install -Dcompile-protobuf

or

 $ mvn install -Pcompille-protobuf

When finished, the content of src/main/java/org/apache/hadoop/hbase/shaded
will have been updated. Make sure all builds and then carefully
check in the changes. Files may have been added or removed
by the steps above.

The protobuf version used internally by hbase differs from what
is used over in the CPEP hbase-protocol module but in here, the
mvn takes care of ensuring we have the right protobuf in place so
you don't have to.

If you have patches for the protobuf, add them to
src/main/patches directory. They will be applied after
protobuf is shaded and unbundled into src/main/java.

See the pom.xml under the generate-shaded-classes profile
for more info on how this step works; it is a little involved
and a bit messy but all in the name of saving you pain.