[
https://issues.apache.org/jira/browse/HBASE-5600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13232813#comment-13232813
]
Ben West commented on HBASE-5600:
---------------------------------
I'm not entirely sure how to accomplish this in full generality. The most
obvious methods would involve sending java code through thrift, which is
probably a no-go. However, here is one simple coprocessor which I have that it
seems could be handled:
{code}
Batch.Call call = Batch.forMethod(IMyEndpoint.class, "getRow",
rowKey.getBytes());
Map<byte[], byte[]> results = table.coprocessorExec(IMyEndpoint.class, null,
null, call);
{code}
We could create a thrift method to take the name of the class, method, and an
array of params and then call coprocessorExec. If this sounds reasonable, I can
try to allocate some time for a patch.
Alternatively, we could just require that you write a client for your
endpoints, and then thrift calls the client.
> Make Endpoint Coprocessors Available from Thrift
> ------------------------------------------------
>
> Key: HBASE-5600
> URL: https://issues.apache.org/jira/browse/HBASE-5600
> Project: HBase
> Issue Type: Improvement
> Components: thrift
> Reporter: Ben West
> Priority: Minor
> Labels: thrift
>
> Currently, the only way to access an endpoint coprocessor via thrift is to
> modify the schema and Thrift server for every coprocessor function. This is
> annoying. It should be possible to use your coprocessors without having to
> mangle HBase core code (since that's the point of coprocessors).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira