People were asking of us, of those classes meant for testing only, to do all the things that a well maintained and feature-full http client should. Apache HttpClient already exists and has years of development, hundreds of man hours of value. Even if we wanted to duplicate that effort we don’t have those resources. So please let the current rest client remain test only code.
Speaking of HttpClient, if a contributor here does wish to put something forward for user use, consider building something that can be supportable by basing it on HttpClient and designing it so we stay out of the way of users taking advantage of all that HttpClient had to offer. > On Jun 12, 2024, at 10:16 PM, Ankit Singhal <ankitsingha...@gmail.com> wrote: > > Hello, > > *Context for discussion*: > > These classes were recently relocated from "src/main" to "src/test" under > HBASE-24115, aligning with the original contributor's initial intention of > using them only for testing. Therefore, I'm raising this in an email to > initiate discussion with the updated information. > > At Cloudera, we've noticed a growing adoption of HBase in cloud > environments. This shift has highlighted concerns regarding network > connectivity requirements between clients and HBase regionservers, > particularly for remote clients. To address these concerns, we are looking > to utilize standard web protocols such as HTTP. These protocols enable > easier integration with various cloud services by providing a single > endpoint for access and simplifying networking needs. As a result, more > users are interested in using REST servers to meet their requirements. > Istvan has put considerable effort into testing and improving the > performance of REST servers, as seen in JIRAs like HBASE-28646, > HBASE-28613, HBASE-28626, and HBASE-28556 to achieve this target. > > *Issue*: > > However, Users with applications currently using the Java client are > encountering challenges in transitioning to REST due to the significant > code rewriting required. By implementing the Admin and Table interfaces, we > can enable these users to migrate to REST with minimal adjustments. > > *Other Protocol Implementations with Java Public APIs: * > Similar interfaces have recently been developed for Thrift under > HBASE-21661. > > *Proposed Changes:* Currently, Istvan focuses on addressing the performance > and security aspects of these implementations, with efforts like > HBASE-28540 and rewriting Rest Client to support different authentication > options, etc. via HBASE-28501,HBASE-28649, and HBASE-28500, which > significantly strengthened the implementation. Hence, we want to go ahead > and move this implementation back to "src/main". > > Please inform us of any concerns you may have, otherwise, we would like to > proceed with the PR. > > > Regards, > > Ankit Singhal