Search the FirstSpirit Knowledge Base
Hi,
Ich habe ein Problem mit einem Modul mit eigener Eingabekomponente, genauer mit dem Laden von eingebetteten Icons.
In der Version 4.1 arbeitete es noch korrekt, unter 4.2 leider nicht mehr (die Grafiken werden offenbar nicht mehr gefunden) - ich vermute
ein ClassLoader-Problem ?
Wir haben die Grafiken in der FSM-Datei in einem eigenen Folder (ico) abgelegt und ihn als Resource in der module.xml eingelegt.
Auf das Icon wird dann per
InputStream is = ModuleResources.class.getResourceAsStream("/ico/maximize.png");
zugegriffen; in 4.1 kommt noch etwas sinnvolles zurück, in 4.2 (genauer 4.2.432) leider nur null..
Jemand eine Idee, was ich stattdessen machen muß, um mein Inputstream zu bekommen
Danke für eine Info & Grüße,
Michael Baginski
Hi,
der Modul-ClassLoader beinhaltet von den Resourcen nur die dort angegebenen Jars, nicht jedoch die anderen Resourcen. Die einfachste Möglichkeit die Icons im ClassLoader verfügbar zu machen wäre diese in das Jar der Editor-Klasse zu integrieren.
Grüße,
Stephan
Klingt plausibel - ich teste das mal aus
Danke & Gruß,
Michael
Hi nochmal,
eventuell scheint es hier tatsächlich noch ein Problem mit dem ClassLoader zu geben.
In einigen unserer Beispiel wird genau das Pattern wie in diesem Fall verwendet. Resource-Definition mit separaten Dateien, sowie das Laden über den lokalen ClassLoader.
Nach einem kurzen Blick in den Code werden wohl alle nicht-Jar Resourcen zu einem Resource-Jar zusammengepackt und im Anschluss ebenfalls dem Modul-ClassLoader hinzugefügt, so die Theorie.
Wie sieht denn die Konfiguration in diesem Fall aus?
<module>
<!-- ... -->
<components>
<public>
<name>Editor</name>
<class>de.espirit.firstspirit.module.GadgetSpecification</class>
<configuration>
<gom><!-- GomClass --></gom>
<factory><!-- SwingGadget Factory --></factory>
<value><!-- ValueEngineerFactory --></value>
<scope unrestricted="yes" />
</configuration>
<resources>
<resource>ico/</resource>
<resource>lib/editor.jar</resource>
</resources>
</public></components>
</module>
Grüße,
Stephan