Note that the implementation spring modules have a different structure from other extensions.

The aim is to have the Tuscany runtime embedded in a container with the Tuscany classes hidden
from user applications and the Spring jar's packaged with the application. That means that the
Tuscany code has no visibilty of the Spring classes and visa-versa. To implement that the
implementation-spring module has no dependencies on Spring and the implementation-spring-runtime
module has no dependencies on Tuscany (other than the sca-api), and reflection is used to call
methods between the modules.

