[ 
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

        

Reply via email to