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)