- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Von Service auf Konfiguration zugreifen
Hallo,
wir verwenden in unseren Modulen Services, die von allen Projekten auf dem Server verwendet werden kรถnnen. Diese Services haben eine Konfiguration, die mittels des Interfaces Configuration<ServerEnvironment> implementiert wurde. In der module.xml wird der Service dann folgendermaรen aufgerufen:
<module>
...
<components>
...
<service>
<name>NameDesService</name>
<displayname>Anzeigename des Service</displayname>
<description>Beschreibung des Service</description>
<class>voll.qualifizierter.name.der.Klasse.DesService</class>
<configurable>voll.qualifizierter.name.der.Klasse.DerServiceConfiguration</configurable>
</service>
...
</components>
</module>
Die Service-Klasse (hier: DesService) soll auf ihre Konfiguration (hier: DerServiceConfiguration) zugreifen kรถnnen, sowohl lesend als auch schreibend. Leider finden wir keine Mรถglichkeit, vom Service auf die Konfiguration zuzugreifen. Umgekehrt (Konfiguration auf Service) geht es, da die Konfiguration รผber ServerEnvironment.getConnection().getService(DesService.class) die Klasse holen kann. Wir wรผrden aber gerne die Methode Configuration.getParameter(String) zum Zugriff verwenden. Ist das nicht mรถglich oder haben wir nicht gut genug gesucht?
Viele Grรผรe
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Im Service steht das ServerEnvironment zur Verfรผgung, was Zugriff auf das Konfigurationsverzeichnis des Services bietet.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Das haben wir auch schon herausgefunden. Leider nรผtzt uns das nicht viel, da das Lesen und Schreiben der Konfigurationsdatei vom Configuration-Objekt รผbernommen wird. Dieses hรคlt ein Properties-Objekt, welches wiederum die einzelnen Konfigurationsparameter enthรคlt. รber die durch das Interface Configuration vorgegebene Methode getParameter(String) kann auf die Kofigurationsparameter zugegriffen werden. Dazu benรถtigen wir aber das Configuration-Objekt.
Viele Grรผรe
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sie mรผssen an der Stelle das Configuration Interface selbst implementieren. Also aus dem Verzeichnis die Konfigurationsdatei ermitteln und daraus ein Properties-Objekt erzeugen. Danach die getParameter(String) Methode entsprechend implementieren. Also darin ein properties.getProperty(name) aufrufen.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Haben wir gemacht. Und genau auf das Objekt wรผrden wir vom Service aus gerne zugreifen. Aber wir haben keine Mรถglichkeit gefunden, das vom Service aus zu tun.
Viele Grรผรe
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In unseren Beispielimplemtentierungen ist auch ein komplettes Beispiel enthalten. Siehe http://www.e-spirit.com/odfs50/de/dokumentation/entwickler/entwickler.html?community. Dort die Beispielimplementierung fรผr Komponenten herunterladen. MyServiceConfiguration und MyServiceImpl sind die entsprechenden Klassen.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Auf die Seite kรถnnen wir nicht zugreifen, welche Zugangsdaten sind dafรผr nรถtig?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Die Klasse MyServiceConfiguration implementiert leider nicht das Interface Configuration und lรคsst sich daher nicht auf unseren Fall รผbertragen. Im Beispiel wird die Konfiguration durch den Service einfach erzeugt. Das kรถnnten wir natรผrlich auch so machen, nur gingen wir davon aus, dass das vom Framework รผbernommen wird, wenn der gesamte Service geladen wird. Das Configuration-Objekt muss also irgendwo herumliegen. Gibt es wirklich keine Mรถglichkeit, darauf zuzugreifen? Oder wird es nach laden der Konfiguration gleich wieder verworfen? Dann fragen wir uns aber, wozu die Methode Configuration.getParameter(String) dienen soll, denn diese ist ihrer Signatur nach zu urteilen darauf ausgelegt, dass das Objekt wรคhrend des gesamten Lebenszyklus des Service vorhanden ist.
Viele Grรผรe
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Es ist richtig, dass man selbst fรผr die Instanziierung eines Configuration-Objektes sorgen muss, wenn der Service gestartet wird. Das wird nicht automatisch vom Framework erledigt.

