OSGi

1) nützliche, einführende Präse, Wikipedia, noch ein informativer Artikel

2) Jedes Bundle ist an sich ein JAR. Es kann also nicht ohne weiteres auf ein weiteres JAR in META-INF/lib zeigen. Nicht so wie man es von WARs oder EARs kennt.

3) JAR to OSGi Bundle kopiert quasi nur die Klassen und legt 2 Dateien META-INF/MANIFEST.MF und build.properties an. Beispiel:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: JasyptSupport
Bundle-SymbolicName: JasyptSupport
Bundle-Version: 1.0.0
Export-Package: org.jasypt.commons,
 org.jasypt.contrib.org.apache.commons.codec_1_3,
 org.jasypt.contrib.org.apache.commons.codec_1_3.binary,
 org.jasypt.digest,
 org.jasypt.digest.config,
 org.jasypt.encryption,
 org.jasypt.encryption.pbe,
 org.jasypt.encryption.pbe.config,
 org.jasypt.exceptions,
 org.jasypt.normalization,
 org.jasypt.salt
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
source.. = .
output.. = .
bin.includes = META-INF/,\
               org/

4) Wie kann ich ein JAR in META-INF/lib dem Bundle Klassenpfad hinzufügen?

– es gibt „EBA-Dateien (Enterprise Bundle Archives)“

5) JAR Problem ist gelöst.:

– JARs können mit „Bundle-Classpath“ in der Manifest.mf angegeben werden.

– Mein Problem war das Fehlen von „.“ bzw „bin/“ im Bundle-Classpath. Er hat zwar die Klassen aus dem JAR gefunden, aber dafür meine eigenen nicht mehr. Beim Fehlen von Bundle-Classpath setzt er scheinbar einen Default-Bundle-Classpath.

– Im Endeffekt habe ich das JAR auch wieder rausgenommen und das benötigte Projekt in ein Plugin umgewandelt/ergänzt. Einfach Manifest und build.props angelegt. Dafür gibt’s eine Eclipse IDE Funktion: „Configure/Convert to Plugin projects“.

– Dieses dann im Manifest unter „Require-Bundle: …“ eingetragen bzw. mit dem grafischen Editor ausgewählt.

Advertisements
Dieser Beitrag wurde unter Uncategorized veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s