[
https://issues.apache.org/jira/browse/HBASE-6407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13422519#comment-13422519
]
Elliott Clark commented on HBASE-6407:
--------------------------------------
bq.It's fine if you just want to contribute a big patch, but for commit it
might make sense to put in the core of the work (POM update, HBaseGuice,
ExplicitConfModule). Then Sleeper. Then the modularization of LocalHBaseCluster
and therefore factories for HMaster, HRegionServer, etc. Then the
modularization of HadoopCompat. Then the replication modules. It looks not to
difficult to tease this apart that way (so far). What do other committers think?
I'm up for that once I've got things in a pretty good state and there are some
tests showing how to use the new injector stuff I'll think about splitting.
bq.In general, do we have to have the guice package?
Nope. That was one of the things I was unsure of about my design. And as I'm
adding more and more modules that package is getting a little crowded. I'll
work on moving those things around in a little bit.
bq.Put fundamental stuff at top-level
Hopefully there won't be much. Should just be HBaseGuice which creates the
different injector types.
bq.Seems way more scaffolding than I'd expect though I suppose its more a DI
retrofit than it is scaffolding, is that right E?
There is a lot of scaffolding. :-/ Most of that is due to the fact that we
pass around Abortable/Stopable/HRegionServer/Other things that are created
async everywhere so Guice isn't able to provide those args. Since guice can't
provide those directly a factory interface is needed for all those classes. In
my latest commit I've gotten rid of a couple factories.
I have a little bit more to do to fully guice HMaster and HRegionServer. After
those two classes are complete I have some tests and then I'll start on
splitting it as Andrew and Stack suggested. There will still be a lot more to
do to make everything fully injectable but I don't want this to get too hard to
review for comitters.
> Investigate moving to DI (guice) framework for plugin arch.
> -----------------------------------------------------------
>
> Key: HBASE-6407
> URL: https://issues.apache.org/jira/browse/HBASE-6407
> Project: HBase
> Issue Type: Sub-task
> Reporter: Elliott Clark
> Assignee: Elliott Clark
> Attachments: HBASE-6407-1.patch, HBASE-6407-2.patch
>
>
> Investigate using Guice to inject the correct compat object provided by
> compat plugins
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira