• C
    Fix issues with bindings and handling extensions · 5712b29c
    cheddar 提交于
    The way the Guice bindings were setup previously, each process only had bindings
    for the things it cared about.  This became problematic when adding extension modules
    that bound everything that they could possibly need expecting that the processes would
    only instantiate what they actually do need.  Guice tries to fail-fast and verifies that all
     bindings exist before it does anything, which is a problem because the extension bind
     some objects that don't necessarily have all of their dependencies bound in all processes.
    
    The fix for this is to build a single Injector with all bindings in it and let each of the
     processes only load the things that they care about.  This also requires the use of
     Module overrides and other such interesting things, which are node done.
    
     In doing the fix, I also swapped out the way that the DataSegmentPusher/Puller stuff is bound, as well as made the Cassandra stuff fail if its settings are not provided.  This all of a sudden made all of the things require Cassandra's settings, so I migrated the Cassandra deep storage stuff into its own module.
    
     In doing these changes, I also discovered that some properties weren't properly converting for the ConvertProperties command (specifically, the properties related to data segment loading and pushing), so I fixed that.
    5712b29c
pom.xml 9.6 KB