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

Reply via email to