The headers are incorrect because they violate the syntax for Import-Service and Export-Service. From the OSGi 3 specification:
----------------------------------------------------------------------------------------- 4.14 Importing and Exporting Services The Export-Service manifest header declares the interfaces that a bundle may register. It provides advisory information that is not used by the Framework. This header is intended for use by server-side management tools. The Export-Service manifest header must conform to the following syntax: Export-Service ::= class-name ( ’,’ class-name )* class-name ::= <fully qualified class name> The Import-Service manifest header declares the interfaces the bundle may use. It provides advisory information that is not used by the Framework. This header is also intended for use by server-side management tools. The Import-Service manifest header must conform to the following syntax: Import-Service ::= class-name ( ’,’ class-name )* class-name ::= <fully qualified class name> ------------------------------------------------------------------------------------------ According to the specification it is not valid to supply any attributes or directives, this means that anyone using this header may fail to process any bundle which does. It also means that there's no standard way for anyone to indicate service properties, filters or optionality. The fact that the bundle plugin is doing this is actually causing bugs which we are having to work around. If the bundle plugin needs to implement some custom function to support some special use-cases in Felix then it should be using a custom manifest header, and preferrably it should only add that header when configured to do so. Right now anyone who uses the bundle plugin is, without their knowledge, generating bundles that use an OSGi reserved header with syntax that violates the core spec. Regards, Tim ---------------------------------------- > Date: Thu, 23 Sep 2010 15:41:11 +0200 > Subject: Re: Auto-generation of Import-Service and Export-Service > From: [email protected] > To: [email protected] > > The maven bundle plugin actaully check if the service is mandatory or > not and should add that into the Import-Service manifest header. > What exactly is not right with those headers ? > > On Thu, Sep 23, 2010 at 12:29, Timothy Ward wrote: >> >> Hi, >> >> There are some problems with the way in which Aries models bundles for >> resolution in OBR. Currently we look at the blueprint for imported and >> exported services, but also fall back to the Import-Service and >> Export-Service headers in case there are any legacy bundles. >> >> Unfortunately it seems as though all of our bundles have Import-Service and >> Export-Service headers generated (using non-standard directives and >> attributes to boot). This means that we duplicate service imports and >> exports in our OBR model, which is a major performance concern, but worse, >> the headers are interpreted differently. >> >> ARIES-425 was caused by the fact that the duplicate Import-Service header >> caused an optional blueprint service to also be found as a mandatory >> Import-Service. Where are these non-standard, deprecated headers coming from >> and how can we turn them off? >> >> Regards, >> >> Tim >> > > > > -- > Cheers, > Guillaume Nodet > ------------------------ > Blog: http://gnodet.blogspot.com/ > ------------------------ > Open Source SOA > http://fusesource.com
