On Mon, Dec 4, 2017 at 9:00 AM, Chris Thunes <[email protected]> wrote:

>
> I'm looking at options for moving some applications that currently depend
> on protobuf-java 2.5.0 to a more recent version. This is made complicated
> by the fact that we have a mixure of internal and external dependencies
> (Hadoop & HBase) which depend on protobuf-java. My understanding is that
> this will require these dependencies to move to a 3.x release sychronously
> (i.e. regenerate using a 3.x protoc and update protobuf-java to a
> corresponding release).
>
> However, looking through release notes and protobuf source code it seems
> like some attempts have been made to address the source and binary
> compatibility issues between 2.5/2.6.1 and 3.x. Specifically,
>
>    - The 3.0.0-beta-4 release notes
>    <https://github.com/google/protobuf/blob/v3.0.0-beta-4/CHANGES.txt>
>    mention runtime updates "to be compatible with 2.5.0/2.6.1 generated
>    protos".
>    - A number of classes have "V3" variants where the non-V3 variants
>    appear to exist solely in an attempt to maintain binary compatibility with
>    pre-3.x generated code.
>
> Running the compatibility tests in java/compatibility_tests/v2.5.0 it
> appears that source and binary incompatibilities still exist.
>
>
> I'm curious if anyone can shed some light on this effort and its status or
> provide suggestions for migrating to a recent protobuf release under these
> circumstances.
>
Protobuf 2.5.0/2.6.1 should be compatible with 3.0.0-beta-4 if you only
uses protobuf public APIs. That's unfortunately not the case with Hadoop &
HBase though. They introduced a class into com.google.protobuf package with
the sole purpose to access protobuf package private classes
<https://github.com/apache/hbase/blob/master/hbase-protocol/src/main/java/com/google/protobuf/HBaseZeroCopyByteString.java>.
As
such there is no way you can upgrade to protobuf 3.x if the version of
Hadoop & HBase you use still depends on protobuf 2.5/2.6 private symbols.


> Thanks,
>
> Chris
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Protocol Buffers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/protobuf.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to