[ 
https://issues.apache.org/jira/browse/HBASE-16264?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15438171#comment-15438171
 ] 

stack commented on HBASE-16264:
-------------------------------

Interesting. For true exterior endpoints, the are packaged in an endpoint jar. 
When we load the endpoint, it triggers the coprocessor classloader. If the 
endpoint makes use of hbase internal classes -- i.e. if the endpoint overrides 
hbase classes that it wants the classloader prefer over what is in hbase (e.g. 
the generated protobuf classes for HRegionInfo or Cell, in this case, versions 
of these classes that used unshaded protobuf) -- then there is also a mechanism 
for forcing the classloader to prefer the classes in the endpoint jar rather 
than defer to the parent classloader by passing a list of classes keyed by 
HConstants.CP_HTD_ATTR_INCLUSION_KEY as coprocessor attributes. Nice.

None of this works though for the bundled endpoints; MultiRowMutationEndpoint 
or AccessController. These are intermixed with other hbase code in the 
hbase-server module. I can't break them out of the module because they depend 
on hbase classes to do their work. So, because they are intermixed, I can't 
selectively do classloading based off origin jar/module.

> 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
>            Priority: Critical
>             Fix For: 2.0.0
>
>         Attachments: HBASE-16264.master.001.patch, 
> HBASE-16264.master.002.patch, HBASE-16264.master.003.patch, 
> HBASE-16264.master.004.patch, HBASE-16264.master.005.patch, 
> HBASE-16264.master.006.patch, HBASE-16264.master.007.patch
>
>
> 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