On 19/05/2010, at 3:15 PM, Ryan Rawson wrote:

> One option to handle the client issue would be to publish a minimal
> dependency set.... is it possible to publish 2 dependency sets?  One
> for clients, one for extension authors?
> 

You might be able to do this, but I wonder if it's just not worth it at this 
stage.  Another workaround would be to publish Hbase as is, with all the 
dependencies needed by the server, and then post some example on the Hbase 
wiki, or in some documentation somewhere on "how to depend on hbase, but only 
use the dependencies you need for client access" by just specifying an example 
pom dependency that shows the dependency exclusion list you guys recommend a 
project can get away with.

This still makes the hbase jar a bit 'fat' from a client usage perspective with 
non-client access code embedded, but honestly the only people these days that 
have a legitimate case for whinging on having slimmer jars are those that need 
to embed them in an applet and what to make the load time faster.  I can't see 
HBase really being in used in this scenario, so I say "let the jar be fat".  

one of the other rationales for splitting into modules is to keep layer 
separations, but that can also be done by using some dependency analysis 
plugins and defining rules like "the 'client' package should only ever use code 
from the 'service' and 'spi' packages" and then making that a 'build breakage' 
event.  There's good reasons for this because it'll keep your design nice and 
clean, and evil cyclic dependencies can get there and can cause future havoc 
(incidentally I ran across a great IntelliJ plugin here called 'Code Navigator' 
I highly recommend, it can highlight these sorts of things nicely inside IJ).  
But you guys are good designers, so I'm not sure that's really a risk worth 
putting in huge layers of defense against.

Now you have the contribs out, the real need for multi-modules is vanishing 
quickly. Go with simple, I don't personally see why 0.21 really should have a 
client access module as a release goal, they value really isn't there I think, 
I can think of more important things for you guys to do, and I'm sure you can 
think of even more. :)

if you need help with the shuffling, let me know, but it should be straight 
forward now hopefully. ?

cheers,

Paul


Reply via email to