Hello,
I am pretty new to the whole Java and OSGi world and I have trouble understanding the eco system of a OSGi web application.
To be more precise I am at the moment trying to understand how all the parts of the eco system are related to each other:
- OSGi Framework (e.g. Apache Felix, Equinox, Knoplerfish)
- OSGi Runtime (e.g. Spring DM Server, Pax Runner, Apache Karaf)
- Web Extender (e.g. Pax Web Extender, Spring Web Extender)
- Web Container (e.g. Apache Tomcat, Jetty)
To give you a visual representation of my actual understanding of their relationship check out this image:
As far as I know the OSGi Framework is a implementation of the OSGi specification. The runtime is a distribution which adds additional functionality on top of the OSGi specification like logging for instance. Since there seem to be some differences in the classpath mechanism of OSGi and web containers like Tomcat you need some kind of translator. This part is handled by the "Web Extender".
Would you please clarify this whole thing for me? Am I understanding everything correct?