# Fragmente für Bibliotheken



## dzim (16. Dez 2009)

Hi zusammen,

bereits vor einer Weile hatte ich eine Anwendung gebastelt, die JFreeChart zum Darstellen von Statistiken verwendet.
Ich bin dazu über den Wizard, der aus Jars ein Plugin erstellt, gegangen. Dieses Plugin habe ich dann als Dependency in meine eigentliche Anwendung eingebunden.
Das funktioniert alles auch ganz gut, allerdings überlege ich, ob es nicht besser wäre "Binärdaten" in Fragmente auszulagern, da ich an anderer Stelle ein ähnliches Problem mit echten Binärdateien hab (eine eingekaufte API, die in einem Binärformat vorliegt).

Ist es möglich solche Daten in Fragmente auszulagern, so dass man dieses austauschen kann, ohne die Dependecies in der eigentlichen Anwendung, die diese Binärdaten nutzt, anpassen zu müssen?

Vielen Dank schon mal!


----------



## Wildcard (16. Dez 2009)

Wenn du mit import/export Package arbeitest statt require-bundle ist das kein Problem. Bei Require Bundle hast du ein Tooling Problem, kein Runtime Problem. Fragmente können zur Laufzeit immer den Classpath des Host Bundles erweitern, aber PDE versteckt die Klassen von Fragmenten zur Compilezeit per Default. Um das zu ändern musst du die eclipse extensible api Policy im Manifest des Host Bundles eintragen (das hat wie gesagt nur bedeutung für das Tooling, nicht die Runtime).


----------



## dzim (17. Dez 2009)

Ich hab das auch schon mal irgendwann irgendwo gelesen, das einige empfehlen, wenn es denn geht, weniger plugin-dependencies aufzubauen und anstatt mehr mit import/export package zu arbeiten.
Kann man das so einfach in solchen Fällen sagen?


----------



## Wildcard (17. Dez 2009)

Bin nicht ganz sicher ob ich die Frage verstehe. import package ist flexibler, allerdings auch weniger gut Tooling Supported, weil die Dependency Chain nicht so eindeutig ist. In der Eclipse Welt wird (auch aus historischen Gründen) eher Require Bundle verwendet während echte OSGi Bundles auf import package setzen. Entwickelst du ein Bundle für Eclipse und plain OSGi Frameworks, würde ich in jedem Fall import package verwenden. 
Anonsten nimm was besser zu deiner Anwendung passt oder misch beides durcheinander


----------

