By syntactic sugar, Peter meant that Export-Package: foo; bar;version=1.0.0
is equivalent to Export-Package: foor;version=1.0.0, bar;version=1.0.0 The attributes and directives apply to all the package names separated by the semicolon. You can also repeat them if you separate the package names with a comma. -- BJ Hargrave Senior Technical Staff Member, IBM OSGi Fellow and CTO of the OSGi Alliance [EMAIL PROTECTED] office: +1 386 848 1781 mobile: +1 386 848 3788 From: "Fei Wang" <[EMAIL PROTECTED]> To: "Peter Kriens" <[EMAIL PROTECTED]>, "OSGi Developer Mail List" <[email protected]> Date: 2008/08/13 06:56 AM Subject: RE: [osgi-dev] The Import-package/Export-package syntax Thanks Peter! But what did you mean when you said “The shortcut to specify multiple definitions with the same set of attributes is just syntactic sugar”? The spec says ” Multiple export definitions for the same package are allowed for example, when different attributes are needed for different importers”, but I think if I want to specify different attributes for different importers, one export is sufficient: Export-Package: foo; attr4importer1=val1; attr4importer2=val2; attr4importer3=val3 Only if I want to specify multiple definitions with the same attribute(s), this multi-export feature is useful, like this: Export-Package: weblogic.util;provider=oracle;version=11.0.0, weblogic.util;provider=bea;version=10.3.0 That is to say, the multiple-export-definitions provides a bundle the ability to specify multiple values to a single attribute. Am I missing something? Best Regards Fei From: Peter Kriens [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 13, 2008 5:40 PM To: [EMAIL PROTECTED]; OSGi Developer Mail List Subject: Re: [osgi-dev] The Import-package/Export-package syntax In case 1 you have 2 export definitions and in case 2 there are 3. The spec says that an export definition describes an export for a SINGLE package. The shortcut to specify multiple definitions with the same set of attributes is just syntactic sugar ... So you were right :-) Kind regards, Peter Kriens On 13 aug 2008, at 09:51, Fei Wang wrote: Hi, I’m confused by the R4 core spec. section 3.5.5, Export-Package Header (and also the import-package header), it says: Export-Package ::= export ( ’,’ export )* export ::= package-names ( ’;’ parameter )* package-names ::= package-name // See 1.4.2 ( ';' package-name )* The header allows many packages to be exported. An export definition is the description of a single package export for a bundle. Multiple export definitions for the same package are allowed for example, when different attributes are needed for different importers. So what does an ”export definition” really mean? According to the syntax, I can write this: 1) Export-Package: foo, bar;version=1.0.0 and 2) Export-Package: foo; bar;version=1.0.0, bar;version=1.0.1 As we know in case 1 the version attribute is only applied to package bar, and in case 2, it applied to both foo and bar, right? OK, the question is: how many export definitions are there in case 1 and 2? My thought is that in case 1, there are two export definitions: foo with default version 0.0.0 and bar with version 1.0.0; in case 2, there are three export definitions, foo with version1.0.0, bar with version 1.0.0, and bar with version 1.0.1. Am I right? Thanks! Fei _______________________________________________ OSGi Developer Mail List [email protected] https://mail.osgi.org/mailman/listinfo/osgi-dev _______________________________________________ OSGi Developer Mail List [email protected] https://mail.osgi.org/mailman/listinfo/osgi-dev
_______________________________________________ OSGi Developer Mail List [email protected] https://mail.osgi.org/mailman/listinfo/osgi-dev
