[ https://issues.apache.org/jira/browse/HBASE-19207?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16254244#comment-16254244 ]
Rick Kellogg edited comment on HBASE-19207 at 11/15/17 9:36 PM: ---------------------------------------------------------------- Another option would be to publish a reduced version of the Table interface. Only the following methods are implemented in the RemoteHTable: {code:java} TableName getName(); TableDescriptor getDescriptor() throws IOException; boolean exists(Get paramGet) throws IOException; boolean[] exists(List<Get> paramList) throws IOException; Result get(Get paramGet) throws IOException; Result[] get(List<Get> paramList) throws IOException; ResultScanner getScanner(Scan paramScan) throws IOException; ResultScanner getScanner(byte[] paramArrayOfByte) throws IOException; ResultScanner getScanner(byte[] paramArrayOfByte1, byte[] paramArrayOfByte2) throws IOException; void put(Put paramPut) throws IOException; void put(List<Put> paramList) throws IOException; boolean checkAndPut(byte[] paramArrayOfByte1, byte[] paramArrayOfByte2, byte[] paramArrayOfByte3, byte[] paramArrayOfByte4, Put paramPut) throws IOException; boolean checkAndPut(byte[] paramArrayOfByte1, byte[] paramArrayOfByte2, byte[] paramArrayOfByte3, CompareOperator paramCompareOperator, byte[] paramArrayOfByte4, Put paramPut) throws IOException; void delete(Delete paramDelete) throws IOException; void delete(List<Delete> paramList) throws IOException; boolean checkAndDelete(byte[] paramArrayOfByte1, byte[] paramArrayOfByte2, byte[] paramArrayOfByte3, byte[] paramArrayOfByte4, Delete paramDelete) throws IOException; boolean checkAndDelete(byte[] paramArrayOfByte1, byte[] paramArrayOfByte2, byte[] paramArrayOfByte3, CompareOperator paramCompareOperator, byte[] paramArrayOfByte4, Delete paramDelete) throws IOException; void close() throws IOException; {code} I took a quick stab at cutting down the current implementation of RemoteHTable. It looks very simple to refactor this class. By doing this we could reduce a number of the third party dependencies in the API. was (Author: rkellogg): Another option would be to publish a reduced version of the Table interface. Only the following methods are implemented in the RemoteHTable: {code:java} TableName getName(); TableDescriptor getDescriptor() throws IOException; boolean exists(Get paramGet) throws IOException; boolean[] exists(List<Get> paramList) throws IOException; Result get(Get paramGet) throws IOException; Result[] get(List<Get> paramList) throws IOException; ResultScanner getScanner(Scan paramScan) throws IOException; ResultScanner getScanner(byte[] paramArrayOfByte) throws IOException; ResultScanner getScanner(byte[] paramArrayOfByte1, byte[] paramArrayOfByte2) throws IOException; void put(Put paramPut) throws IOException; void put(List<Put> paramList) throws IOException; boolean checkAndPut(byte[] paramArrayOfByte1, byte[] paramArrayOfByte2, byte[] paramArrayOfByte3, byte[] paramArrayOfByte4, Put paramPut) throws IOException; boolean checkAndPut(byte[] paramArrayOfByte1, byte[] paramArrayOfByte2, byte[] paramArrayOfByte3, CompareOperator paramCompareOperator, byte[] paramArrayOfByte4, Put paramPut) throws IOException; void delete(Delete paramDelete) throws IOException; void delete(List<Delete> paramList) throws IOException; boolean checkAndDelete(byte[] paramArrayOfByte1, byte[] paramArrayOfByte2, byte[] paramArrayOfByte3, byte[] paramArrayOfByte4, Delete paramDelete) throws IOException; boolean checkAndDelete(byte[] paramArrayOfByte1, byte[] paramArrayOfByte2, byte[] paramArrayOfByte3, CompareOperator paramCompareOperator, byte[] paramArrayOfByte4, Delete paramDelete) throws IOException; void close() throws IOException; {code} I took a quick stab at cutting down the current implementation of RemoteHTable. It looks very simple to refactor this class. > 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)