That issue renamed a bunch of what used to be there only for hbase-hadoop-compat. HBASE-6405 is the start of the chain.
Currently though I don't see any reason for them to be in separate modules unless we think hadoop will make another breaking change to the metrics classes. On Tue, Oct 24, 2017 at 7:38 PM, Apekshit Sharma <a...@cloudera.com> wrote: > Hey Elliott, good to see you around :) > > Btw, this is new stuff added in HBASE-9774 which was committed to only 2.0. > Made it to 1.4 too later (HBASE-18060). > > -- Appy > > On Tue, Oct 24, 2017 at 4:16 PM, Elliott Clark <ecl...@apache.org> wrote: > > > The weird module dance with reflection came from needing to extend inner > > hadoop classes on multiple different versions. This was back when HBase > had > > to support hadoop < 1, hadoop 1.x, and hadoop 2.x. When we dropped older > > hadoop versions then things got easier. > > > > On Tue, Oct 24, 2017 at 3:09 PM, Apekshit Sharma <a...@cloudera.com> > > wrote: > > > > > Hi > > > > > > Am confused why do we have this weird circular dependency between the > two > > > modules: hbase-metrics-api & hbase-metrics. And since maven doesn't > allow > > > it explicitly, this was tucked and hidden by using reflection? > > > > > > MetricRegistriesImpl[hbase-metrics] implements > > > MetricRegistries[hbase-metrics-api]. > > > MetricRegistriesLoader[hbase-metrics-api] depends on this > > implementation, > > > MetricRegistriesImpl, because it instantiates it via reflection > > > <https://github.com/apache/hbase/blob/eee3b0180ead73c09b33f9583bfee9 > > > c01bc3aed2/hbase-metrics-api/src/main/java/org/apache/ > > > hadoop/hbase/metrics/MetricRegistriesLoader.java#L39> > > > [1]. > > > > > > Can we just move all interfaces and default implementation together > into > > > single module. But i like the idea of keeping implementations in > separate > > > package with "impl" explicitly in package name. > > > > > > [1] > > > https://github.com/apache/hbase/blob/eee3b0180ead73c09b33f9583bfee9 > > > c01bc3aed2/hbase-metrics-api/src/main/java/org/apache/ > > > hadoop/hbase/metrics/MetricRegistriesLoader.java#L39 > > > > > > -- Appy > > > > > > > > > -- > > -- Appy >