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

Rick Kellogg edited comment on HBASE-19207 at 11/16/17 2:56 PM:
----------------------------------------------------------------

Attempted break out client code from hbase-rest project.  Required contents:

org.apache.hadoop.hbase.rest:
*    Constants - Only need MIMETYPE_PROTOBUF constant
*    ProtobufMessageHandler
org.apache.hadoop.hbase.rest.client:
*     Entire package needed - no changes
org.apache.hadoop.hbase.rest.model:
*     Entire package needed
*     VersionModel - move logic in constructor using ServletContext into 
calling method to break dependency on Servlet API
+ Protocol buffers

The ScannerModel class includes references to many HBase Client APIs such as 
Scan.  This is not really problematic since it is used by the Table interface 
and both are declared InterfaceAudience.Public.  

It would be nice to dump the Client API dependency on Google Protocol Buffers 
but the Table coprocessor methods use them as part of their public API as well. 
 As such they cannot really be shaded and maintain the same package names to 
the client consumer.



was (Author: rkellogg):
Attempted break out client code from hbase-rest project.  Required contents:

org.apache.hadoop.hbase.rest:
    Constants - Only need MIMETYPE_PROTOBUF constant
    ProtobufMessageHandler
org.apache.hadoop.hbase.rest.client:
     Entire package needed - no changes
org.apache.hadoop.hbase.rest.model:
     Entire package needed
     VersionModel - move logic in constructor using ServletContext into calling 
method to break dependency on Servlet API
+ Protocol buffers

The ScannerModel class includes references to many HBase Client APIs such as 
Scan.  This is not really problematic since it is used by the Table interface 
and both are declared InterfaceAudience.Public.  

It would be nice to dump the Client API dependency on Google Protocol Buffers 
but the Table coprocessor methods use them as part of their public API as well. 
 As such they cannot really be shaded and maintain the same package names to 
the client consumer.


> Create Minimal HBase REST Client
> --------------------------------
>
>                 Key: HBASE-19207
>                 URL: https://issues.apache.org/jira/browse/HBASE-19207
>             Project: HBase
>          Issue Type: New Feature
>          Components: Client, REST
>            Reporter: Rick Kellogg
>
> Create a minimal REST client with only contents of 
> org.apache.hadoop.hbase.rest.client and 
> org.apache.hadoop.hbase.rest.client.models packages in the hbase-rest 
> project.  
> Attempt to reduce the number of third party dependencies and allow user to 
> bring their own Apache HttpClient/Core.  The HttpClient is frequently updated 
> and therefore should not be shaded to allow for upgrades.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to