[ 
https://issues.apache.org/jira/browse/CASSANDRA-6881?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philip Thompson resolved CASSANDRA-6881.
----------------------------------------
    Resolution: Duplicate

> Replace static singletons potentially using 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. It will *also* provide us better isolation for things like 
> triggers/ udfs/ as they wont be able to acquire references to things they 
> should not be able to.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to