I prefer #1, since it decouples Spring 3 from Spring 4. For example, Spring 4.1 is bringing many improvements on Cache [1], which I'm not sure if it will available on 3.2.x maintenance branch. [1] http://spring.io/blog/2014/06/16/further-cache-improvements-in-spring-4-1 <slaskawi@redhat.com> wrote:1. Create copy of Spring 3 module and put everything into newly created Spring 4, then update versions and implement new methods in Cache interface. Pros: - 1 OSGi bundle - transparent upgrade - just replace spring bundle - Easy to maintain Spring 4 only fixes Cons: - Code duplication