I get an exception about backport-util-concurrent library being required. Why is that?
This exception is thrown only when running on Java 1.4 without backport-util-concurrent bundle installed. OSGi platform is a concurrent environment. Beans from different application contexts can interact with each other creating cycles between their owning contexts. This means that the backing contexts have to be able to lookup and create/retrieve bean instances, all at the same time, on multiple threads. A traditional synchronised collection allows proper locking and thread coordination and prevents race conditions, but can cause very easily deadlocks.