• Klassen aus noa-2.0.jar sind für Plugins nicht sichtbar.
Replies:
4
Views:
332
Up one level
• Klassen aus noa-2.0.jar sind für Plugins nicht sichtbar.
Posted by
fnumrich
at
2006-09-13 15:27:01
Das Plugin ag.ion.bion.workbench.office.editor.core enthält die Library noa-2.0.jar. Darin ist u.a. das Interface ag.ion.bion.officelayer.desktop.IFrame enthalten.
Das Package ag.ion.bion.officelayer.desktop wird von diesem Plugin exporiert, sodass die darin enthaltenen Klassen auch für andere Plugins sichtbar sind. Seltsamerweise ist das Interface IFrame aus dem betreffenden Package jedoch nicht sichtbar. Dies fällt z.B. auf, wenn man das Beispiel aus dem Arikel zu NOA aus dem EclipseMagazin Vol.8 erstellen will (Sorcecode als Attachement). Dabei ergibt die folgende Zeile einen CompileTimeError: /*** ************ ***/ ... private OfficeEditorAdvisor officeEditorAdvicer = null; .... public void setFocus() { officeEditorAdvicer.getFrame().setFocus(); } ... /*** ************ ***/ Der Fehler lautet: "The type ag.ion.bion.officelayer.desktop.IFrame cannot be resolved. It is indirectly referenced from requiered .class files." Die Methode getFrame() der Klasse AbstractOfficeEditorAdvisor liefert eine IFrame-Instanz zurück, was aufgrund der fehlenden Sichtbarkeit zu diesem Fehler führt. Der Fehler tritt mit Eclipse 3.2.0 und 3.1.2 sowie mit noa4e Version 2.0.6 und 2.07 auf. Offensichtlich scheint es bei anderen jedoch zu funktionieren. Ist das ein bekanntes Problem? Grüsse Frank Numrich |
fnumrich
Member
Posts:
3
|
• Re: Klassen aus noa-2.0.jar sind für Plugins nicht sichtbar.
Posted by
fnumrich
at
2006-09-13 15:34:12
Natürlich betrifft das oben beschriebene Problem nicht nur das IFrame-Interface, sondern alle Packages die vom Plugin ag.ion.bion.workbench.office.editor.core exportiert werden.
|
fnumrich
Member
Posts:
3
|
• Re: Klassen aus noa-2.0.jar sind für Plugins nicht sichtbar.
Posted by
Andreas Broeker
at
2006-09-13 15:41:11
Hallo Frank,
bisher ist uns dieses Problem in dieser Art und Weise noch nicht begegnet. Ich habe gerade nochmal einen Test gemacht - alles funktioniert ohne Probleme. Befindet sich die Bibliothek für NOA auf dem Classpath Deines neuen Plugins? Gruß Andreas |
Andreas Broeker
Member
Posts:
88
|
• Re: Klassen aus noa-2.0.jar sind für Plugins nicht sichtbar.
Posted by
fnumrich
at
2006-09-14 10:57:18
Hallo,
nein ich habe die JAR-Datei nicht in den CP meines Plugins aufgenommen. Die betreffenden Packages werden von Eurem Plugin exportiert (Runtime - Exported Packages). D.h. sie sollten eigentlich sichtbar sein. Bei anderen Plugins funktioniert das. Wenn ich in meinem Testplugin einige Packages exportiere dann stehen diese in der MANIFEST-Datei unter dem Punkt 'Export-Package', in Eurem Plugin ag.ion.bion.workbench.office.editor.ui stehen die exportierten Packages unter dem Punkt 'Provide-Package'. Kann es sein, dass Euer Plugin mit einer älteren Eclipse-Version erstellt wurde? Wenn ich das JAR-File direkt in meinem Plugin in dem CP aufnehme, dann definiere ich damit eine Abhängigkeit zu einer Library in einem anderen Plugin. Das ist aus meiner Sicht nicht ganz sauber, da die Abhängigkeit auf Plugin-Ebene definiert werden sollten. So könnte ich ein Plugin erstellen, das eine Library eines anderen Packages benötigt, das Plugin aber nicht als Abhängigkeit definiert. Wenn ich das JAR-File in mein Plugin kopiere, dann habe ich das Plugin zweimal (einmal in meinem Plugin, einmal in Eurem), das kanns auch nicht sein. Aus meiner Sicht müsste das schon darüber funktionieren, dass Euer Plugin die Packages exportiert. Viele Grüsse Frank |
fnumrich
Member
Posts:
3
|
• Re: Klassen aus noa-2.0.jar sind für Plugins nicht sichtbar.
Posted by
Andreas Broeker
at
2006-09-14 12:02:13
Hallo Frank,
leider musst Du die Bibliothek auf dem Classpath hinzufügen. Das kann nicht verhindert werden, weil die Klassen von NOA in einer Bibliothek liegen - und nicht direkt Bestandteil des Bundles sind. Alternativ kann auch das Bundle ag.ion.bion.workbench.office.editor.core die notwendigen Klassen der NOA Bibliothek über die eigenen Classpath Einstellungen exportieren (Properties->Order and Export). Das funktioniert aber auch nur wenn die NOA4e Plugins als Source für die Entwicklung verwendet werden. Das in einigen NOA4e Bundles noch Provide-Package steht liegt an der Erstellung mit einer älteren Eclipse Version. Gruß Andreas |
Andreas Broeker
Member
Posts:
88
|


