John Todd wrote:
Things are fuzzy to me now.
I have basic and primitive idea about OSGi but what is OSGi Enterprise Specs? what is a blueprint?
The term OSGi is ambiguous since it can refer to the technology, the specs, or the organization (OSGi Alliance).
To be very precise, the OSGi Alliance defines the OSGi Service Platform specification.
The Service Platform specification is actually divided into two specifications: core and compendium. The core spec defines framework-related functionality. The compendium spec (generally) defines reusable services (i.e., standard API).
The core and compendium specifications themselves are not actually monolithic specs, but are actually further divided into (sub-)specifications that address specific areas (e.g., UPnP, JPA, JMX, etc.).
Some of the compendium specifications are related to specific domains (e.g., enterprise or mobile telephony). To signify which specs are related to which domains, the OSGi Alliance effectively defines spec "profiles". The Enterprise Spec is just a profile of the compendium specs related to enterprise applications. The main reason for doing this is that it allows the OSGi Alliance to highlight the use cases for its specs, but it also allows the specs to have different release cycles, since it is not necessary to release the entire compendium to release a new enterprise spec. You can release the enterprise spec first and then just roll the changes into the next compendium spec. Overall, it is a little confusing, but in the end it really is just the core and compendium specs which combine to form the Service Platform spec.
Blueprint is one of the enterprise-related compendium specs, which is an OSGi-standardized version of Spring DM.