peholmst/vaadin4spring — pull request #105 by nfrankel (2014-12-20 19:58:07+00:00)
Title: Initial commit for the explicit wiring MVP module

Some features of the current Vaadin Spring MVP implementation are very opinionated and IMHO have definite disadvantages:

* It relies on auto-wiring, which makes it extremely hard to **unit test** *Presenter* classes. As a proof, the provided test class is not a unit test, but an **integration test**
* It relies on component scanning, which prevents **explicit** dependency injection
* It takes responsibility of creating the *View*
* It enforces the implementation of the `View` interface, whether required or not
* It couples the *Presenter* and the *View*, whereas one can have a single *Presenter* for different *View* implementation
* It requires to explicitly call the `init()` method of the *Presenter*, as the `@PostConstruct` annotation on a super class is not called when the subclass has one

This module aims to provide the same capabilities but in a different way, so that the above cons are removed. As there's no such thing as a free lunch, the trade-off is that it makes things more verbose.

However, auto-wiring can still be used, albeit with constructor injection instead of field injection.