[
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)