54 lines
2.2 KiB
Plaintext
54 lines
2.2 KiB
Plaintext
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 -Pcompile-protobuf
|
|
|
|
NOTE: 'install' above whereas other proto generation only needs 'compile'
|
|
NOTE: Unlike elsehwere the above command does NOT install this modules jar
|
|
into the repo., intentionally. The jar made by the above is a scratch jar
|
|
that is part of the process that gets us to a set of files to check in;
|
|
it is not for consumption. Run mvn install without the '-Pcompile-protobuf'
|
|
option to get this modules' artifact installed in your repo!
|
|
|
|
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 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.
|