Static Cover deprecation (2.7)

Status Quo

Sakai has historically used a coding pattern called a 'static cover' that masks the internals of dependency injection. This can make things easier for new developers, but - without rehashing all the arguments - it is also fair to say it is controversial. In particular, it can complicate the writing of unit tests, and so it has a bearing on the maintainability of the code.

Even if there were consensus on whether static covers are a bad thing (in case it's not clear: there isn't), refactoring to remove them would place a burden on a great many tools, core and contrib.

Proposal

Static covers that already exist will be retained indefinitely, but deprecated, and core code (ie. trunk) will gradually be refactored not to use them.

Proposal B: As above, but without deprecating static covers, and continuing to develop them.

Who would be affected

Developers.