[ https://issues.apache.org/jira/browse/HBASE-16264?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15410500#comment-15410500 ]
stack commented on HBASE-16264: ------------------------------- Learnings: # We have a few Coprocessor Endpoints (CPEP) in the codebase currently scattered about. # Currently CPEP .protos that are in the codebase have their .protos mixed in with all the rest under hbase-protocol. But when we shade, all com.google.protobuf references are relocated. It means that there is a chasm between the client coming in on com.google.protobuf and our relocated org.apache.hadoop.hbase.shaded.com.google.protobuf.* references. # I tried to move all CPEP protos and supporting classes into a new hbase-endpoint module, one that does not have shading on it. The thought was that the requests in to Table on com.google.protobuf looking to run a CPEP c.g.p.*Service could travel down through the server as com.google.protobuf.*. Classes that dealt with CPEP had their imports adjusted to NOT be shaded references to protobuf. # I got pretty far but have now run into a wall. CPEP .protos, unfortunately, are not standalone; if they were, the above tactic would 'work'. What I mean by their not being standalone is that CPEPs will reference back into base HBase .protos so they can do Mutations and Results; e.g. MultiRowMutationProcessor imports Client.proto. But the contents of Client.proto will have been shaded and MultiRowMutationProcessor classes will not have been. The latter will be trying to pass to com.google.protobuf.* Types to the former Cilent.proto classes as params, etc., but since the Client.proto classes have been relocated, they are expecting o.h.h.shaded.c.g.p.* Types. I've run into the chasm again. Not sure how to bridge it. > Figure how to deal with endpoints and shaded pb > ----------------------------------------------- > > Key: HBASE-16264 > URL: https://issues.apache.org/jira/browse/HBASE-16264 > Project: HBase > Issue Type: Sub-task > Components: Coprocessors, Protobufs > Reporter: stack > Assignee: stack > > Come up w/ a migration plan for coprocessor endpoints when our pb is shaded. > Would be sweet if could make it so all just worked. At worst, come up w/ a > prescription for how to migrate existing CPs. -- This message was sent by Atlassian JIRA (v6.3.4#6332)