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

Reply via email to