Hallo zusammen,
ich hatte in letzter Zeit nicht gerade viel mit RCP zu tun, nun aber gibt es wieder ein paar Aufgaben dahingehend...
Und promt stolperten wir über ein Problem:
Wie haben hier ein paar Projekte, die noch aus der Zeit vor einer Integrierung in RCP stammen, diese in Eclipse zu RCP-Projekten umzuwandeln ist kein Problem, wurde auch schon lange gemacht und lief auch soweit erfolgreich.
Die beiden verwendeten Projekte besitzen im weitesten Sinne Textdateien im Classpath, die zur Laufzeit geladen werden sollen. Beide Projekte verwenden so xml-basierte Property-Dateien um verschiedene Einstellungen vorzunehmen.
So ist in einer ein DB-Zugang definiert, in anderen spezielle String-Ersetzungen, u.s.w.
Bislang hat alles gut funktioniert, wenn er diese Konfigurationen laden sollte - so weit so gut.
Nun aber sollen OpenOffice-Templates und zugehörige XSLT-Stylesheets für die content.xml und styles.xml geladen werden, die in einem separaten source-Folder liegen, geladen werden und hier geht nix mehr.
Der Eclipse-Classloader findet sie entweder nicht, oder aber ist SO dumm, dass er versucht bei Verwendung der .getResource().getFile()-Methode absolut von der Verzeichnisstruktur zum user (Linux) loszuwandern und nicht den Classpath mit einzubeziehen.
Allmählich haben wir aufgeben - es ist zu verrückt werden: Wenn man das Plug In als das urpsrüngliche Konsolenprogramm, dass es vor der Umwandlung in ein Plug In war und als solches immer noch verwendet wird, startet, findet der Clasloader die gesuchten Templates und Stylesheets im Classpath - als Plug In nicht.
Mir ist klar, das Eclipse RCP - oder bereits Equinox - einen eigenen Classloader pro Plug In nutzt, aber das erklärt nicht, warum er die gesuchten Objekte nicht findet.
Gestern kam mir der Gedanke, ob es vielleicht daran liegt, das das Plug In keinen Aktivator hat und somit vielleicht Teile des Plug Ins einfach nicht geladen wurde - aber sicher bin ich mir da nicht.
Kennt einer das Problem und weiß, wenn ja, wie es sich beheben lässt? Oder weiß jemand ob ich prinzipiell mit dem Activator-Gedanken recht haben könnte und wie der Activator aufgebaut sein muss, damit diese Dateien angesprochen werden können? Was muss denn alles im Activator aktiviert werden, damit sich solche Probleme evtl. vermeiden lassen (bislang reichte der Standard-Activator der RCP-PlugIn-Templates von Eclipse, an die ich maximal meine Message-Console rangehängt hab)?
Grüße und Danke!
Daniel
ich hatte in letzter Zeit nicht gerade viel mit RCP zu tun, nun aber gibt es wieder ein paar Aufgaben dahingehend...
Und promt stolperten wir über ein Problem:
Wie haben hier ein paar Projekte, die noch aus der Zeit vor einer Integrierung in RCP stammen, diese in Eclipse zu RCP-Projekten umzuwandeln ist kein Problem, wurde auch schon lange gemacht und lief auch soweit erfolgreich.
Die beiden verwendeten Projekte besitzen im weitesten Sinne Textdateien im Classpath, die zur Laufzeit geladen werden sollen. Beide Projekte verwenden so xml-basierte Property-Dateien um verschiedene Einstellungen vorzunehmen.
So ist in einer ein DB-Zugang definiert, in anderen spezielle String-Ersetzungen, u.s.w.
Bislang hat alles gut funktioniert, wenn er diese Konfigurationen laden sollte - so weit so gut.
Nun aber sollen OpenOffice-Templates und zugehörige XSLT-Stylesheets für die content.xml und styles.xml geladen werden, die in einem separaten source-Folder liegen, geladen werden und hier geht nix mehr.
Der Eclipse-Classloader findet sie entweder nicht, oder aber ist SO dumm, dass er versucht bei Verwendung der .getResource().getFile()-Methode absolut von der Verzeichnisstruktur zum user (Linux) loszuwandern und nicht den Classpath mit einzubeziehen.
Allmählich haben wir aufgeben - es ist zu verrückt werden: Wenn man das Plug In als das urpsrüngliche Konsolenprogramm, dass es vor der Umwandlung in ein Plug In war und als solches immer noch verwendet wird, startet, findet der Clasloader die gesuchten Templates und Stylesheets im Classpath - als Plug In nicht.
Mir ist klar, das Eclipse RCP - oder bereits Equinox - einen eigenen Classloader pro Plug In nutzt, aber das erklärt nicht, warum er die gesuchten Objekte nicht findet.
Gestern kam mir der Gedanke, ob es vielleicht daran liegt, das das Plug In keinen Aktivator hat und somit vielleicht Teile des Plug Ins einfach nicht geladen wurde - aber sicher bin ich mir da nicht.
Kennt einer das Problem und weiß, wenn ja, wie es sich beheben lässt? Oder weiß jemand ob ich prinzipiell mit dem Activator-Gedanken recht haben könnte und wie der Activator aufgebaut sein muss, damit diese Dateien angesprochen werden können? Was muss denn alles im Activator aktiviert werden, damit sich solche Probleme evtl. vermeiden lassen (bislang reichte der Standard-Activator der RCP-PlugIn-Templates von Eclipse, an die ich maximal meine Message-Console rangehängt hab)?
Grüße und Danke!
Daniel