Bartosz Kowalewski is an internal technology consultant and a developer at Sabre Holdings. He is mainly concentrating on distributed systems, SOA, EDA, system integration, and open-source projects. His main programming language has been Java for last 5 years. Bartosz is a commiter for Apache Aries and a contributor for several other OSGi and non-OSGi related open source projects.
Is OSGi ready for wide adoption?
OSGi, being a dynamic module system for Java, definitely provides lots of benefits to its adopters. It not only helps to properly componentize applications, but also promotes reusability and service based interactions inside a single JVM. With maturation of OSGi containers (like Equinox, Felix) and OSGi based servers (i.e. Apache ServiceMix 4.x) OSGi is getting more and more popular. Unfortunately, adoption of OSGi does not come without cost. The cost might actually outweigh the short-term benefits. One of main OSGi promises is better dependency management and class space consistency. While conceptually OSGi handles all the needed cases, the complexity of configuration required to properly handle class loading may be extremely high. The ‘uses’ directive and thread context classloaders play a major role here. In this session, I will also cover some of widely used technologies that are built upon OSGi. A closer look will be taken at Spring DM Extender and the limitations it introduces to other libraries, including Apache Camel. Amongst other topics, Java’s Service Provider Interface (SPI) mechanism and approaches to testing OSGi applications will be mentioned. OSGi Enterprise specification and Apache Aries will also be covered. Bottomline: Remember! OSGi is a useful piece of technology, but you will not get away with not knowing OSGi internals & details. No tooling will hide all the problems and you will still need to learn all the tricks and tips. … and the learning curve is definitely not flat.