Übersicht
Alle Komponenten-Typen in FirstSpirit lassen sich untereinander kombinieren, so dass ein komponentenbasierter Informationsfluss möglich ist. Unter bestimmten Anforderungen ist diese Kombination auch zwingend erforderlich.
Soll beispielsweise eine Editor-Komponente auf einen entfernten Web-Service zugreifen, wird dieses durch die clientseitige FirstSpirit-Security-Policy verhindert. Die Implementierung eines solchen Zugriffs muss über einen serverseitigen Service umgesetzt werden, d.h. die Eingabekomponente (Editor-Komponente) kommuniziert mit dem Service über das FirstSpirit-Protokoll bzw. über das ServerEnvironment besteht die Möglichkeit, Verbindungsinformationen zu beziehen und so über die aktuelle Verbindung (getConnection()) mit dem spezialisierten Service zu kommunizieren. Der Service stellt die benötigte Verbindung mit dem entfernten Web-Service her und delegiert alle Daten weiter an den Web-Service bzw. zurück an die Editoren-Komponente. |
Listing: ServerEnvironment – Service
// a) Get the service implementation by class
MyService myService = _environment.getConnection().getService(MyService.class);
// b) Get the service implementation by descriptor name
MyService myService = (MyService) _environment.getConnection().getService("MyService");
- Die erste Variante nutzt hier die konkrete Klasse und sollte aus Gründen der Typensicherheit bevorzugt genutzt werden.
- Der String „MyService“ entspricht hier dem definierten Namen im Modul-Deskriptor.
<name>MyService</name>
Das Connection-Objekt - eingeholt über _environment.getConnection() – bietet außerdem grundlegende Methoden zur Beschaffung von serverseitigen Daten, beispielsweise
Listing, zu finden in der FirstSpirit-Access-API
_environment.getConnection().getProjects()
_environment.getConnection().getProjectById(long id)
_environment.getConnection().getProjectByName(String name)