Edward Capriolo created CASSANDRA-6881:
------------------------------------------

             Summary: Replace static singletons potentiall use dependency 
injection
                 Key: CASSANDRA-6881
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6881
             Project: Cassandra
          Issue Type: Improvement
            Reporter: Edward Capriolo
            Assignee: Edward Capriolo


I have noticed several places in the cassandra codebase where unit,functional, 
and end-to-end testing is made more difficult due to the pattern of using 
singleton objects with static initialization. 

An example is  StorageProxy

{code}static final boolean OPTIMIZE_LOCAL_REQUESTS = true; // set to false to 
test messagingservice path on single node
{code}

There is no coverage for this. It turns out to be very difficult to test for a 
variety of reasons. Mostly that everything it interacts with is hidden behind 
other static singletons.

The goal here would be to remove static stuff, have have a context, (spring, 
guice, or do out own). For the majority of things stop accessing them through 
static singleton, instead pass the objects (DatabaseDescriptor, Storageproxy) 
around or get them from the context. I think this will make a clearer API and 
allow us to provide better coverage on features that cross cut the components.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to