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

Reply via email to