Wie funktioniert die OSGi-Anwendung auf Java 9?

8

Ich versuche zu verstehen, wie die OSGi-Anwendung in Java 9 funktioniert, wenn man davon ausgeht, dass das OSGi-Paket kein JPMS-Modul ist (soweit ich weiß, gibt es noch keine Lösung, dass das OSGi-Paket gleichzeitig JPMS-Modul für die Produktion sein könnte). Und ich habe mehrere Fragen:

  1. Verstehe ich richtig, dass alle OSGi-Anwendungen ein unbenanntes Modul sein werden?
  2. Wenn # 1 ja, wie funktioniert Bundle.update() ? Wird das Paket auf ein unbenanntes Modul geladen?

Wenn ich alles falsch verstehe, bitte erklären Sie die wichtigsten Prinzipien.

    
Pavel_K 17.09.2017, 11:17
quelle

2 Antworten

14

Java SE 9 garantiert die fortwährende Kompatibilität für alle Anwendungen und Bibliotheken, die sich an die standardmäßigen Java SE-Bibliotheken halten.

OSGi verwendet nur veröffentlichte Java-SE-APIs und wird daher weiterhin unverändert auf Java 9 arbeiten. Es interagiert derzeit nicht mit JPMS-Modulen, was bei all Ihrer anderen Java-Software der Fall sein wird. Irgendwann werden die OSGi-Expertengruppen wahrscheinlich eine Spezifikation für die Interoperabilität zwischen JPMS-Modulen und OSGi-Bundles erstellen, aber das ist für die Zukunft.

Um Ihre spezifischen Fragen zu beantworten:

  1. Ja, OSGi-Bundles werden nach JPMS-Begriffen einem oder mehreren "unbenannten" Modulen zugeordnet. Auch hier gilt, dass Java 9 die Abwärtskompatibilität für alle anderen Java-Anwendungen beibehält.

  2. Das Bundle-Update funktioniert genauso wie es 18 Jahre lang funktioniert hat. Der für das Bundle vorgesehene Klassenlader wird entsorgt und ein neuer Klassenlader erstellt, um die Aktualisierungsklassen zu laden.

Neil Bartlett 17.09.2017, 12:42
quelle
5

OSGi verwendet Klassenladeprogramme zum Isolieren von Bundles und setzt dies auch unter Java 9 fort. Da jedes JAR von einem separaten Klassenladeprogramm geladen wird, endet jedes in seinem eigenen unbenannten Modul. Das bedeutet, dass OSGi das JPMS effektiv ignoriert und weiterhin wie zuvor Java 9 arbeitet.

    
Nicolai 17.09.2017 12:23
quelle

Tags und Links