# Eclipse - Externe OSGi bundles adden



## _cui23 (18. Nov 2008)

Hallo.

Ich arbeite an einem OSGi Bundle und nutze dazu eclipse.

Nun benötigt mein Bundle einige externe Bundles, die ich mir nun heruntergeladen habe und mit somit als .jar Dateien vorliegen.

Damit das ganze läuft möchte ich nun in meiner Manifest Datei die entsprechenden Pakete importieren. Wenn ich dort auf Add klicke bekomme ich eine lange Liste mit importierbaren Paketen.

Meine Frage ist jetz, wie ich es schaffen kann, dass die Pakete aus dem externen Bundle dort auch zur Auswahl stehen.

lg,
cui.


----------



## Wildcard (18. Nov 2008)

Du musst sie als required bundles eintragen.


----------



## cui23 (1. Dez 2008)

Hmm.. das Thema is natürlich jetz schon etwas älter, tut mir leid das ichs jetzt erst wieder ausgrab, hatte in letzter zeit viel anderes zu tun.

Also folgendes nochmal zu meinem Problem:

Meine Ausgangslage:
Ich benutze Eclipse 3.2.2
Ich habe ein Projekt dort, und zwar ein OSGi-Bundle-Projekt.
Nun habe ich mir von hier ein Bundle für Hibernate support runtergeladen (samt dependencies u.s.w.). Ich habe also einige bundle .jars lokal rumliegen, eins davon eben das com.springsource.org.hibernate-3.1.1.GA.jar.

Jetzt zum Problem:
Wie kriege ich eben dieses externe Bundle zu meinem OSGi-Bundle-Projekt hinzugefügt. Eigentlich würd ich einfach nur gerne wenn ich auf den Add-Knopf bei den Paket-Importen vom Manifest Editor u.a. halt auch "org.hibernate" angezeigt kriegen. Krieg ich natürlich aber nicht ohne Eclipse zu sagen, wo meine Bundles rumliegen.
Wie sag ich das Eclipse jetzt?
Was ich versucht hab ist via Context-Menü -> "Import" die Bundles als Binary Projects zu importieren. Wenn ich dann die Projekte als Abhängigkeit von meinem Projekt hinzufüge kann ich das Paket tatsächlich auswählen, jedoch bekomme ich nun die folgende Meldung:

```
Bundle 'com.springsource.org.hibernate' exporting package 'org.hibernate' is unresolved
```
Das versteh ich jetzt wieder nicht, das Projekt existiert doch?

Außerdem: Gibt es denn keine andere Möglichkeit Eclipse zu sagen das da noch mehr Bundles sin, deren exportierte Pakete auch angezeigt werden als da lauter Projekte zu erstellen?

Also nochmal zum Verständnis: Ich möchte nicht wissen, wie ich meinem Bundle beibring, dass es die sachen importieren soll.
Ich will nur wissen, wie ich es Eclipse beibring, dasses mir überhaupt erst erlaubt die Pakete zu importieren!

lg und nochma sorry fürs nix schreiben,
cui.


----------



## Wildcard (1. Dez 2008)

import -> plugins and fragments -> bundle auswählen
Danach dein Manifest.MF öffnen und bei dependencies das Bundle eintragen.


----------



## cui23 (1. Dez 2008)

Das ist ja was ich bereits propbiert habe.

Wie gesagt, ich habe es Importiert und dadurch son Projekt namens com.springsource.org.hibernate erstellt.
Dann konnte ich (wie ich auch schon geschildert habe) das Plugin bei Dependencies im Manifest.MF adden und auch mein Paket bei "Imported Packages" hinzufügen.
Im Manifest erzeugt die Zeile

```
org.hibernate;version="3.3.1.GA"
```
jedoch folgenden Fehler:

```
Bundle 'com.springsource.org.hibernate' exporting package 'org.hibernate' is unresolved
```


----------



## Wildcard (1. Dez 2008)

Im Manifest muss das stehen:

```
Require-Bundle:  com.springsource.org.hibernate;bundle-version="3.3.1"
```


----------



## cui23 (1. Dez 2008)

Wieso muss ich das Bundle requiren? Dabei geht mir doch ne menge flexibilität verloren!

Aber ich habe etwas herausgefunden:
Ich habe grade mal spaßeshalber Eclipse 3.4 runtergeladen und siehe da: Alles geht ohne das ich was ändere.

Wie auch immer, ich werde wohl eclipse 3.4 in Zukunft nutzen.. lg,
cui.


----------



## Wildcard (1. Dez 2008)

Ach so... du wolltest die Packages einzeln importieren?
Hmm ich habe jetzt kein Eclipse 3.3 zur Hand, aber eigentlich hätte das auch funktionieren müssen  ???:L


----------

