OSGi consists of the the Core specification, that defines the framework, and the compendium specification, which is the aggregate of _all_ current OSGi _service_ specifications. Each service specification has a unique chapter number.
The Enterprise, Residential, and IoT specifications are a subset of the Compendium and use the same chapter numbers. The purpose of these aggregates is to select the specifications that are useful for a specific audience. However, the same chapter number and version in different aggregate specifications is exactly the same service specification. Each specification has a PDF that contains the textual specification, a test suite, a designated reference implementation and a JAR containing all the Java APIs in that specification. The aggregate JARs, compendium, enterprise, etc, are not a severe problem to compile against but turned out to be problematic in the runtime assembly. Because they combine a set of service specification versions it becomes very hard to use an older, or newer version of a specific service. You're basically locked into that set of versions. This can severely restrict your choice in the set of bundles in your runtime. There you'd like to pick and choose and not be artificially constrained. Therefore, a few years ago, the OSGi started to publish a JAR per service specification as well. This will allow you to compile against any version of a service and it will allow the runtime assembly a lot of freedom in mixing and matching version. Hope this helps, kind regards, Peter Kriens > On 6 May 2020, at 09:35, CHINCHOLE, SHANTESHWAR ASHOKRAO via osgi-dev > <osgi-dev@mail.osgi.org> wrote: > > Hi, > > What exactly is the difference between compendium and enterprise > specification of OSGi. What was the intent of introducing these 2 different > specifications? > > I came across a note on the forum saying – “The compendium jar was never > meant to be used at runtime but people abused it anyway”. Does it mean that, > we can drop usage of compendium jar going forward? > > Thanks & Regards, > Shanteshwar C > > _______________________________________________ > OSGi Developer Mail List > osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org> > https://mail.osgi.org/mailman/listinfo/osgi-dev > <https://mail.osgi.org/mailman/listinfo/osgi-dev>
_______________________________________________ OSGi Developer Mail List osgi-dev@mail.osgi.org https://mail.osgi.org/mailman/listinfo/osgi-dev