Bibliotheken von Drittherstellern und Laden von Klassen
Da OSGi mehrere Klassenladeprogramme verwendet, erfordert die transparente Nutzung erweiterbarer / konfigurierbarer Bibliotheken von Drittherstellern die Verwendung eines für Eclipse spezifischen Mechanismus namens 'Buddy Loading'. Dieser Mechanismus ermöglicht es einem Produktpaket, anzugeben, dass es zum Laden von Klassen oder Ressourcen Hilfe benötigt, wenn es diese nicht unter seinen Vorbedingung auffinden kann. Beachten Sie, dass mit "erweiterbaren Bibliothek" Bibliotheken gemeint sind, die Klassen oder Ressourcen einsehen können müssen, die über Benutzercode bereitgestellt werden (z.B. log4j-Protokollfunktionsmechanismus, Energiesparmodus,...).
Um die Notwendigkeit von 'Buddy Loading' anzugeben, muss ein Produktpaket sein Manifest ändern und den folgenden Header hinzufügen:
Eclipse-BuddyPolicy: <wert>
<wert> bezieht sich auf die Richtlinie, die verwendet wird, um nach den Klassen zu suchen. Bei den unterstützten Richtlinien handelt es sich um:
- registered - gibt an, dass der Buddy-Mechanismus Rückfragen an Produktpakete schickt, die mit ihm registriert wurden. Produktpakete, die bereit sind, für ein bestimmtes Produktpaket registriert zu werden, fügen folgendes zu ihrem Manifest hinzu: "Eclipse-RegisterBuddy: <bundleSymbolicName>";
- dependent - gibt an, dass die Klassen/Ressourcen transitiv in allen vom Produktpaket abhängigen Bereichen gesucht werden;
- global - gibt an, dass die Klassen/Ressourcen im globalen Pool exportierter Pakete gesucht werden;
- app - gibt an, dass eine Rückfrage an das Klassenladeprogramm der Anwendung getätigt wird;
- ext - gibt an, dass eine Rückfrage an das Klassenladeprogramm der Erweiterung getätigt wird;
- boot - gibt an, dass eine Rückfrage an das Boot-Klassenladeprogramm getätigt wird.