OSGi kötegleírófájl-fejlécek

3.1 verzió - Utolsó felülvizsgálat: 2005. június 20.

A köteg saját magával kapcsolatos leíró információkat tárolhat a META-INF/MANIFEST.MF nevű leírófájlban. Az OSGi R4 keretrendszer-specifikáció megad egy leírófájl-fejléc halmazt, mint például az Export-Package és Bundle-Classpath, amelyeket a kötegfejlesztők használnak a köteggel kapcsolatos leíróinformációk biztosításához. Az Eclipse OSGi keretrendszer a teljes OSGi R4 keretrendszer-specifikációt valamint az összes Központi keretrendszer szolgáltatást megvalósítja. Az OSGi R4 Központi keretrendszer szolgáltatások az alábbiak:

Az OSGi R4 specifikációban számos választható szolgáltatás meg van adva. A választható szolgáltatásokat az Eclipse OSGi keretrendszer megvalósítás nem tartalmazza. Az OSGi leírófájl-fejlécekkel és szolgáltatásokkal kapcsolatos információkat az OSGi specifications specifikáció tartalmaz.

Eclipse kötegleíró fejlécek

Az Eclipse OSGi keretrendszer számos kiegészítő kötegleíró-fejlécet és direktívát támogat. A kötegfejlesztő ezen kiegészítő fejlécek és direktívák segítségével kihasználhatja az Eclipse OSGi keretrendszer néhány kiegészítő szolgáltatásának előnyét, amelyek nem a szabványos OSGi R4 keretrendszer részei.

Kiegészítő Export-Package direktívák

Az Eclipse OSGi keretrendszer további direktívákat is támogat az Export-Package fejlécen. Ezek a direktívák megadják az exportált csomag hozzáférés-korlátozási szabályait. Tekintse meg az osgi.resolverMode fájlt annak megismeréséhez, hogy az Eclipse OSGi keretrendszer hogyan állítható be úgy, hogy futáskor kikényszerítse a hozzáférés-korlátozási szabályokat.

Az x-internal direktíva

Az x-internal direktíva Export-Package fejlécben használható annak megadásához, hogy a csomag belső csomag-e. A Bedolgozó fejlesztői környezet megakadályozza, hogy más kötegek belső csomagot használjanak. Ha az x-internal direktíva nincs megadva, akkor az alapértelmezett 'false' érték kerül alkalmazásra. Az x-internal direktívának az alábbi szintaxist kell használnia:

x-internal ::= ( 'true' | 'false' )

Az alábbi egy példa x-internal direktívára:

Export-Package: org.eclipse.foo.internal; x-internal:=true

Az x-friends direktíva

Az x-friends direktíva Export-Package fejlécben használható a kötegek listájának megadásához, amelyek hozzáférhetnek a csomaghoz. A Bedolgozó fejlesztői környezet megakadályozza, hogy más köteg használja a csomagot. Az x-friends direktíva szintaxisa az alábbi:

x-friends ::= '"' ( target-bundle ) ( ',' target-bundle ) * '"'
target-bundle ::= egy szimbolikus kötegnév

Az alábbi egy x-friends direktívára példa:

Export-Package: org.eclipse.foo.formyfriends; x-friends:="org.eclispe.foo.friend1, org.eclipse.foo.friend2"

A példa megadja, hogy csak az org.eclispe.foo.friend1 és org.eclipse.foo.friend2 köteg használhatja az org.eclipse.foo.formyfriends csomagot. Az x-internal csomagnak az x-friends direktívával szemben prioritása van. Ha az x-internal direktíva 'true' értéket ad meg, akkor a Bedolgozó fejlesztői környezet megakadályozza, hogy bármely köteg elérje a csomagot még abban esetben is, ha "friend"-ként meg vannak adva.

Az Eclipse-AutoStart fejléc

Az Eclipse-AutoStart fejléc megadja, hogy egy köteget automatikusan el kell-e indítani, mielőtt a köteg hozzáfér az első osztályhoz vagy csomaghoz. Ez a szolgáltatás lehetővé teszi, hogy az Eclipse a köteget igény szerint aktiválja, amikor először szükség van rájuk. Ezen modellel az Eclipse a lehető legkevesebb aktív köteggel indulhat el. Az Eclipse-AutoStart fejléc szintaxisa:

Eclipse-AutoStart ::= ( 'true' | 'false' ) ( ';' 'exceptions' '=' '"' exceptions-list '"' ) ?
exceptions-list ::= csomagok vesszővel ',' elválasztott listája

Az 'exceptions' attribútum megadja a csomagok listáját, amelyek nem aktiválhatják a köteget az osztályok vagy erőforrások betöltésekor. Ha az Eclipse-AutoStart fejléc a kötegleíróban nincs megadva, akkor az alapértelmezett 'false' érték kerül alkalmazásra. Az alábbi az Eclipse-AutoStart fejlécre példa:

Eclipse-AutoStart: true; exceptions="org.eclipse.foo1, org.eclipse.foo2"

A példa megadja, hogy ezt a köteget aktiválni kell minden osztályhoz vagy erőforráshoz, amely ebből a kötegből kerül betöltésre, az 'org.eclipse.foo1' és 'org.eclipse.foo2' csomagban lévő osztályokat és erőforrásokat kivéve.

Az Eclipse-PlatformFilter fejléc

Az Eclipse-PlatformFilter megadja egy köteg platformszűrőjét. A platformszűrőt egy futó platformon true értékre kell kiértékelni ahhoz, hogy a köteg feloldható legyen. Az Eclipse-PlatformFilter fejléc szintaxisa:

Eclipse-PlatformFilter ::= egy érvényes LDAP szűrő karaktersorozat

A keretrendszer az alábbi rendszertulajdonságok szűrését támogatja:

Az alábbi Eclipse-PlatformFilter fejlécre példa:

Eclipse-PlatformFilter: (& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=x86))

A példa megadja, hogy ez a köteg csak akkor oldható fel, ha a platformtulajdonságok a következők: osgi.ws=win32, osgi.os=win32 és osgi.arch=x86. Más szavakkal: x86 architektúrán futó platform, amely win32 operációs rendszer és win32 ablakkezelő rendszert használ.

Az Eclipse-BuddyPolicy fejléc

Az Eclipse-BuddyPolicy fejléc a köteg buddy osztálybetöltési stratégiáit adja meg. Az Eclipse-BuddyPolicy fejléc szintaxisa:

Eclipse-BuddyPolicy ::= ( policy-name ) ( ',' policy-name ) *
policy-name ::= ( 'dependent' | 'global' | 'registered' | 
                  'app' | 'ext' | 'boot' | 'parent' )

Az alábbi az Eclipse-BuddyPolicy fejlécre példa:

Eclipse-BuddyPolicy: dependent

Az Eclipse-RegisterBuddy fejléc

Az Eclipse-RegisterBuddy fejléc egy köteglistát ad meg, amelyhez ez a köteg bejegyzett "buddy". Az Eclipse-RegisterBuddy fejléc szintaxisa:

Eclipse-RegisterBuddy ::= ( target-bundle ) ( ',' target-bundle ) *
target-bundle ::= egy szimbolikus kötegnév

A következő az Eclipse-RegisterBuddy fejlécre példa:

Eclipse-RegisterBuddy: org.eclipse.foo.bundle1, org.eclipse.foo.bundle2

Az Eclipse-ExtensibleAPI fejléc

Az Eclipse-ExtensibleAPI megadja, hogy a hosztköteg lehetővé teszi-e, hogy a töredékkötegek további alkalmazás programozási felületet adhassanak a hoszthoz. A fejlécet akkor kell használni, ha a hosztköteg lehetővé kívánja tenni, hogy a töredékek további csomagokat adhassanak a hoszt alkalmazás programozási felületéhez. Ha a fejléc nincs megadva, akkor az alapértelmezett 'false' érték kerül alkalmazásra. Az Eclipse-ExtensibleAPI fejléc szintaxisa:

Eclipse-ExtensibleAPI ::= ( 'true' | 'false' )

Az alábbi az Eclipse-ExtensibleAPI fejlécre példa:

Eclipse-ExtensibleAPI: true

A Plugin-Class fejléc

A Plugin-Class fejléc támogatja az Eclipse 2.1 platformhoz fejlesztett bedolgozókat. A fejléc megad egy osztálynevet, amely a régi Eclipse 2.1 aktiválási modellel aktiválja a bedolgozót. Az Eclipse 3.0 vagy újabb platformhoz fejlesztett kötegeknek nem kell használniuk ezt a fejlécet. Az alábbi az Plugin-Class fejlécre példa:

Plugin-Class: org.eclipse.foo.FooPlugin