Note: This is a re-start of a thread by Villo, which most people probably haven't seen, because Gmail has flagged it as spam.
Hi, Omid still uses Protobuf 2.5 for its internal communications with the TSO, which we obviously want to fix. The problem is that protobuf has become much like Guava, and protoc compiled code is incompatible with the protobuf java versions across major versions (i.e. protobuf 3/4/5). There is also the problem of shaded protobuf breaking some Netty protobuf classes, but those can probably be just copied into Omid. We could in theory keep using unshaded protobuf, but then we would be super likely to conflict with a lot of libraries which do the same thing, without shading protobuf, so I don't think that's a good solution. We could use hbase's thirdparty-protobuf, but then we are tied to the the hbase thirdparty protobuf's major version, which can change without notice (as it's an Hbase implementation detail (though I suspect there may be problems with custom HBase endpoints) We could add our own thirdparty protobuf to phoenix-thirdparty, which would only be used for Phoenix. We could create a separate Omid thirdparty repo, and put protobuf there. Or we could somehow shade protobuf into the appropriate Omid JAR. I am leaning towards adding a thirdparty protobuf to Phoenix-thirdparty, as that doesn't require setting up a new repo, while avoiding another uberjar in the ecosystem. Last time I checked, creating and using pre-shaded jars in the same maven repo was not possible. WDYT ? best regards Istvan