We need to come up with a concept for modularisation and configuration. There is some initial discussion on the list . While we need to make sure that we are interoperable with OSGi, I don't think we should use OSGi itself for the lower granular pieces. That is, for certain subsystems of oak-jcr or oak-core for example. Still we need a way for handling dependencies between and configuration of implementation classes. In the case of oak-jcr there is the GlobalContext class. This is basically poor man's dependency injection and I'd like to get rid of it as soon as we have a better solution. What I'd like to have on that level is compile time dependency injection such that we get loose coupling between implementation classes but don't get the additional complexity from run time dependency injection (aka OSGi).