Einführung
Einführung

Einführung / Konfiguration der FirstSpirit Webanwendungen / Individualisierung der Webanwendungen

Individualisierung der FirstSpirit Webanwendungen

FirstSpirit baut auf dem Konzept der modularen Erweiterbarkeit durch Kunden und Partner auf. Das bedeutet, die FirstSpirit Standardfunktionen können relativ einfach über individuelle Projektspezifische Erweiterungen (wie Eingabekomponenten, Dienste, Anwendungen) an die konkreten Erfordernisse der jeweiligen Projekte angepasst werden.

Musste für diese individuellen Erweiterungen bislang projektlokale, konfigurierbare Instanzen der FirstSpirit Webanwendungen erstellt werden (dies ist auch weiterhin möglich), können ab FirstSpirit-Version 5.2R4 die globalen Webanwendungen von FirstSpirit (fs5root, fs5preview, fs5webedit,…) direkt angepasst werden. Mit erheblichen Performancegewinnen insbesondere in einem Unternehmensumfeld mit vielen Projekten.

Die Vorteile der neuen Strategie soll der folgende Anwendungsfall verdeutlichen:
Der ContentCreator soll um einen individuellen Report (und / oder eine EasyEdit-Action, JSP-Tag-Lib, Executable, etc.) erweitert werden. Die dazu erforderlichen Klassen werden in einer Webapp-Komponente in einem Modul hinterlegt und das Modul wird auf dem FirstSpirit-Server installiert.

  • ContentCreator als projektlokale Instanz: Für jedes Projekt, das die neue Funktionalität (Report, JSP-Tags,…) verwenden soll, muss eine projektlokale ContentCreator-Instanz erstellt und die Anwendung mit der Webapp-Komponente (aus dem Modul) konfiguriert werden (Hinzufügen, Konfigurieren, Deployen).          
    Vom reinen Arbeitsaufwand abgesehen bedeutet eine ContentCreator-Instanz für n-Projekte auch, das n-Instanzen der Anwendung auf der Front-End-Seite abgelegt werden, und damit potentiell viel Speicher auf dem Front-End-Server belegt wird.
  • ContentCreator als globale, individualisierte Web-Anwendung (ab FirstSpirit-Version 5.2R4): Im Gegensatz dazu kann über die neue Funktionalität die globale Webanwendung direkt um individuelle Webapp-Komponenten erweitert werden. Dazu wird über den ServerManager im Bereich Server-Eigenschaften / Web-Applikationen einfach die gewünschte Webapp-Komponente hinzugefügt und deployed. Die hinzugefügten Erweiterungen stehen jetzt allen Projekten auf dem Server zur Verfügung (für die keine projektlokale ContentCreator-Instanz konfiguriert wurde). Wurde über die Webapp-Komponente beispielsweise eine JSP-Tag-Lib bereitgestellt, können die entsprechenden Tags anschließend in allen Projekten verwendet werden. Das Anlegen projektlokaler Instanzen ist nicht mehr notwendig. Statt n-Instanzen muss nur noch eine Instanz auf der Front-End-Seite abgelegt werden. 

Weitere Voraussetzungen: 
Gültigkeitsbereich: Mit Einführung der neuen Funktionalität ändert sich auch der Gültigkeitsbereich der Komponenten. Bisher galt: Web-Applikationen sind ausschließlich „web-lokal“ sichtbar, d.h. sie müssen nach der Installation des Moduls den gewünschten Web-Bereichen in den Projekten hinzugefügt werden und sind anschließend im jeweiligen Projekt verfügbar.

Dieser Gültigkeitsbereich wurde um einen zweiten, serverweiten Gültigkeitsbereich erweitert. Dazu wurde das Attribut scopes eingefügt, das innerhalb der Moduldeklaration verwendet werden kann. Mögliche Werte:    

<web-app scopes="global"> 

<web-app scopes="project">

<web-app scopes="global, project">  

Siehe dazu auch Moduldefinition (→Online Dokumentation FirstSpirit).

Wird über den ServerManager im Bereich Server-Eigenschaften / Web-Applikationen eine neue Web-Applikation hinzugefügt, können dieser Applikation nur Komponenten zugewiesen werden, die den Scope global besitzen. Umgekehrt können einem Projekt (im Bereich Projekteigenschaften / Web-Komponenten) nur Web-Komponenten zugewiesen werden, die den Scope project besitzen.

Für Entwickler unterscheiden sich WebApp-Komponenten abhängig von ihrem Scope hinsichtlich der Informationen, die über den SpecialistsBroker verfügbar sind. Projektlokale Web-Applikationen haben ein WebEnvironment, welches von ProjectEnvironment erbt und über die Methode #getBroker eine projektgebundene Instanz vom Typ SpecialistsBroker zurückliefern.

Für globale Web-Applikationen liefert das WebEnvironment beim Aufruf von #getBroker eine Instanz vom Typ SpecialistsBroker, welche nicht projektgebunden ist  und damit beim Aufruf von #getProject den Wert „null“ zurückliefert.

<module>
  ...
  <components>
   ...
     <web-app scopes="global">
     ...
     </web-app>

  </components>

</module>

Siehe dazu auch FirstSpirit Developer-API, Packages

  • de.espirit.firstspirit.agency
  • de.espirit.firstspirit.module

Konfiguration: Die Konfigurationsmöglichkeiten der Web-Komponenten unterscheiden sich abhängig vom Scope ebenfalls. Bisher war eine Konfiguration für eine Web-Applikation immer projektlokal, d.h. für jedes einzelne Projekt konnten hier gesonderte Werte in die jeweilige Konfigurations-GUI eingetragen werden. Für die Konfiguration einer globalen Webanwendung kann eine Konfiguration zunächst nur global erfolgen. Es ist aber möglich, auch für globale WebApp-Komponenten eine zusätzliche, projektlokale Konfiguration zu realisieren, z. B. über eine zusätzliche Projektanwendung, die ebenfalls Bestandteil des Moduls ist.       

<module>
  ...
  <components>
   ...
     <web-app scopes="global">               
                      ...
        <configurable> MyGlobalAppConfigPanel </configurable>        
     </web-app>

               <project-app>
                      ...
        <configurable> MyProjectAppConfigPanel </configurable>
     </project-app>
             ...
  </components>
</module>

© 2005 - 2019 e-Spirit AG | Alle Rechte vorbehalten. | FirstSpirit 2019-11 | Datenschutz | Impressum | Kontakt