Release Notes
1 Administration
MBean 'HealthManager' wurde um weitere Informationen ergänzt
Das MBean HealthManager übermittelt jetzt auch Informationen zu den Web-Applikationen, die standardmäßig von FirstSpirit mitgeliefert werden.
Die Datei server-incidents.log (herunterladbar im FirstSpirit ServerMonitoring unter „FirstSpirit / Monitoring / Kennzahlen“ über das Umschlag-Icon) beinhaltet jetzt auch folgende Informationen:
- Anmeldungen der Standard-Web-Applikationen
- vollständiger Ausfall einer oder mehrerer der Standard-Web-Applikationen
Beispiel-Logmeldungen:
WEBAPP INFO 15.09.2021 14:43:59.037 (de.espirit.firstspirit.server.ServerManagerImpl)
Web application started: fs5root
RUN_LEVEL INFO 27.09.2021 09:09:44.091 (de.espirit.firstspirit.server.RunLevelHolder)
Reached run level: CORE_WEBAPPS_STARTED(080)Darüber hinaus berücksichtigt das MBean HealthManager nun auch den freien Festplatten-Speicherplatz bei der Berechnung des Server-Status.
Für alle schreibbaren und am FirstSpirit-Server beteiligten Dateisystem gibt es dazu jetzt eigene MBeans, die unterhalb des HealthManager MBeans dargestellt werden. Als Name wird der relative Pfad im Serververzeichnis verwendet.
Fällt in einem der beteiligten Dateisysteme der freie Speicher unter 5% der Dateisystemgröße oder 640 MB (je nach dem, welcher Wert kleiner ist), gilt der Server als degraded, und für das betroffene Dateisystem wird eine Warnung ausgegeben.
Ist im FirstSpirit ServerManager eine Warnungs-E-Mail bei zu geringem zur Verfügung stehenden Festplattenplatz konfiguriert (unter Server-Eigenschaften / Globale Server-Eigenschaften / „Warnung bei“), wird stattdessen die Prozentzahl als Warnungs-Limit für die MBeans verwendet.
Unzureichender Festplattenplatz wird ebenfalls in der Datei server-incidents.log festgehalten, z. B.
Insufficient free space on '/home/fsserver/Daten/CMSServer4/work
(name=tmpfs, type=tmpfs)' detected, 185.801 MB left on file store.Zusätzlich prüft das MBean HealthManager jetzt auch die Last auf dem Server: Ist diese zu hoch (z. B. solange mehr als 5 % der Prozessorzeit für Garbage Collections genutzt werden), wird der Server ebenfalls als degraded angesehen. Das Über- und danach das Unterschreiten der Grenze wird in der Datei server-incidents.log festgehalten, z. B.
High Java VM garbage collection overhead detected: 5.30 %Der Status des MBean HealthManager des Servers wird jetzt auch im FirstSpirit Health Center visualisiert (im FirstSpirit ServerMonitoring). Dort kann im Bereich „FirstSpirit Landschaft“ direkt in der Statusleiste oberhalb des betreffenden Servernamens abgelesen werden, ob sich der Server in einem problematischen Zustand befindet.
Die Farb- und Symbolcodierung ist jetzt wie folgt:
Der Haken auf grünem Hintergrund bedeutet, dass der Server keine aktuellen Probleme meldet.
Das Ausrufungszeichen auf gelbem Hintergrund bedeutet, dass der Server keine aktuellen Probleme meldet. Allerdings wird die Lizenz innerhalb der nächsten 30 Tage ablaufen und sollte erneuert werden.
Das Ausrufungszeichen auf rotem Hintergrund bedeutet, dass sich der Server im Zustand degraded befindet.
2 Allgemeines
Java-Support: Eclipse Temurin und Java 17
Um unabhängiger von der Java-Entwicklung durch Oracle zu werden und auch im Sinne seiner Kunden langfristiger planen zu können, setzt e-Spirit bereits seit geraumer Zeit auf die Verwendung von OpenJDK, speziell vom Hersteller AdoptOpenJDK. Alle AdoptOpenJDK Binaries and Skripte sind Open Source lizensiert und kostenlos verfügbar.
Ca. im April 2021 ist das Projekt „AdoptOpenJDK“ zur „Eclipse Foundation“ gewechselt und heißt jetzt Eclipse Adoptium. Das JDK trägt den Namen „Temurin“.
Die neuesten Releases können unter https://adoptium.net heruntergeladen werden.
Siehe dazu auch AdoptOpenJDK-Blog.
Darüber hinaus wurde Mitte September Java 17 veröffentlicht. JDK 17 wird von den meisten Anbietern als Long-Term-Support (LTS)-Version herausgegeben. Sie folgt auf Java 11, das aktuell LTS-Status innehat.
Intern wurden die ersten Vorbereitungen für die Testphase zum Einsatz von Java 17 (Temurin) mit FirstSpirit vorgenommen. Ziel ist es, Java 17 in einem zukünftigen FirstSpirit-Release für die Verwendung mit FirstSpirit freizugeben.
3 ContentCreator
3.1 "FirstSpirit Image Recognition" unterstützt jetzt Bilder vom Format "WebP"
Das Modul „FirstSpirit Image Recognition“ unterstützt jetzt neben den Formaten „JPEG“ und „PNG“ Bilder vom Format „WebP“:
Beim Upload werden die Bilder jetzt analysiert, es werden (soweit konfiguriert) die entsprechenden Metadaten gesetzt und der Fokus gesetzt bzw. der automatische Zuschnitt vorgenommen.
3.2 Funktion "editorId": Formulare in bestimmter Sprache öffnen
Bei Verwendung der Funktion editorId werden im ContentCreator Formulare standardmäßig in der aktuellen Sprache geöffnet (#global.language).
Mit dem neuen Parameter
languagekann eine Sprache vorgegeben werden, in der ein Formular geöffnet werden soll.
Der Parameter erwartet das Kürzel der Sprache oder das Language-Objekt, z. B.
<div$CMS_VALUE(editorId(editorName:"st_text", language:"FR"))$>
<div$CMS_VALUE(editorId(editorName:"st_text", language:#global.getLanguage("FR")))$>Zu weiteren Informationen zur Funktion editorId siehe
3.3 Verbesserungen in der Datenquellen-Verwaltung im ContentCreator (BETA)
Aktuell befindet sich die Funktionalität der „Datenquellen-Verwaltung“ im ContentCreator weiterhin in der Beta-Phase.
Folgende Verbesserungen wurden aufgrund von Kunden-Feedback mit dem aktuellen Release vorgenommen:
- In der Tabellenansicht werden jetzt auch Spalten dargestellt, die die Eingabekomponente CMS_INPUT_DATE enthalten.
Beim Mapping auf die Datentypen Date oder Long ist auch eine Sortierung möglich. - In der Tabellenansicht für Medien vom Typ „Datei“ wird jetzt der Name angezeigt (statt einem Typ-Icon wie zuvor).
„Broken references“ (ungültige Referenzen) werden mit roter Schrift visualisiert.
Zu allgemeinen Informationen zur Beta-Phase der „Datenquellen-Verwaltung“ im ContentCreator siehe Release Notes zu FirstSpirit 2021-08 (https://docs.e-spirit.com/odfs/releasenotes/2021-08/FirstSpirit_Releasenotes_DE.pdf).
4 FirstSpirit Content Experience Tools (CXT)
4.1 Aktuelle Modul-Versionen
Folgende Modul-Versionen für „FirstSpirit Content Experience Tools“ werden von FirstSpirit 2021-10 unterstützt.
| Modul- / Dateiname | Versionsnummer |
FirstSpirit CXT Plattformplatform-[version].fsm | 2.5.0 |
FirstSpirit CXT DAP Bridgedataservice-[version].fsm | 1.44.1 |
FirstSpirit CXT FragmentCreatorfragment-creator-[version].fsm | 3.4.2 |
FirstSpirit Fragment DAPfragmentdap-[version].fsm | 1.40.2 |
FirstSpirit Media DAPmediadap-[version].fsm | 1.31.2* |
FirstSpirit PageRef DAPpageref-[version].fsm | 1.9.2 |
FirstSpirit Markdown Editormarkdown-editor-[version].fsm | 1.29.1* |
FirstSpirit Tagging Editortagging-editor-[version].fsm | 1.29.1 |
FirstSpirit CXT FragmentCreator - CaaS Integrationcaas-integration-[version].fsm | 1.31.2 |
* Diese Module benötigen ab dieser Version FirstSpirit 2020-03 oder höher.
4.2 Statusseiten prüfen "allowedRedirectHosts"
Über den Parameter
allowedRedirectHostskönnen URLs definiert werden, zu denen eine Weiterleitung erlaubt sein soll.
Die Statusseiten, die für die CXT-Plattform und den FragmentCreator eingerichtet werden können (jeweils unter ~/status), prüfen jetzt auch die Konfiguration dieses Parameters.
Der Parameter kann in FirstSpirit konfiguriert werden, z. B. in der Datei fs-server.conf.
Ist die Konfiguration nicht korrekt (d.h. ist der aktuelle Host nicht über den Parameter allowedRedirectHosts konfiguriert), wird eine Fehlermeldung im Log festgehalten sowie eine entsprechende Fehlermeldung in der Browserkonsole ausgegeben.
Hinweis auf der Statusseite im Fehlerfall:
External hostname is not allowed as a redirect host in the FirstSpirit server configuration.4.3 Zeitlimit für Verbindungen zu FirstSpirit konfigurieren
Mithilfe des neuen Parameters cxt.platform.firstspirit.connection-timeout kann für den FragmentCreator ein Zeitlimit (in Sekunden) definiert werden, nach dem FirstSpirit-Verbindungen automatisch geschlossen werden, wenn sie nicht mehr verwendet werden.
Der Parameter kann in der Datei web.xml der WebApp-Komponente „FragmentCreator“, die in der passenden globalen WebApp für den FragmentCreator konfiguriert ist, definiert werden („FirstSpirit ServerManager / Server-Eigenschaften / Web-Applikationen“):

oder per Properties-Datei cxt-fragment-creator.properties.
Ein zu niedriger Wert kann dazu führen, dass Benutzer unerwartet abgemeldet werden. Ein hoher Wert hingegen hält viele Verbindungen aufrecht, wenn Benutzer ihren Browser schließen, ohne sich abzumelden.
Die Standardeinstellung sieht vor, dass Verbindungen nach 12 Stunden automatisch beendet werden, wenn sie nicht mehr verwendet werden.
Ausschnitt aus der Standard-web.xml:
<context-param>
<param-name>cxt.platform.firstspirit.connection-timeout</param-name>
<param-value>43200</param-value>
</context-param>5 Kompatibilität
Module und Erweiterungen für FirstSpirit 2021-10
Folgende Module und Erweiterungen sind kompatibel mit FirstSpirit 2021-10:
| Modul- / Dateiname | Versionsnummer | Kompatibel |
FirstSpirit Aktualisierungsarchivfs-update-[version].tar.gz | 2.1.0 | - |
FirstSpirit Installationsarchiv fs-install-[version].tar.gz | 2.1.0 | - |
FirstSpirit LauncherFSLauncher.exe | 1.0.41 | ab FirstSpirit 2018-08 |
FirstSpirit Launcher JRE Modulfs-launcher-jre-[version].fsm | 1.19 | ab FirstSpirit 2020-11 |
FirstSpirit SAML Login Modulfs-saml-login-[version].fsm | 1.3 | ab FirstSpirit 2019-02 |
FSDevToolsfs-cli-[version].tar.gzfs-cli-[version].zip | 3.0.2 | ab FirstSpirit 2021-07 |
FirstSpirit Module Gradle Pluginfirstspirit-module-gradle-plugin-[version].jar | 2.3.2 | ab FirstSpirit 2019-06 |
6 Modul-Entwicklung, Skripte, API
6.1 Arbeitsabläufe: Ermitteln von Rechten per 'isTransitionAllowed'
Das Interface WorkflowAgent (FirstSpirit Developer-API, Package de.espirit.firstspirit.workflow) wurde um die Methode
isTransitionAllowederweitert.
Die Methode ermittelt, ob eine Transition von einem bestimmten User auf einem bestimmten Store-Element ausgeführt werden darf.
Die Methode getTransitionPermission (Transition transition) im Interface WorkflowPermission (FirstSpirit Access-API, Package de.espirit.firstspirit.access.store.templatestore) hingegen ermittelt zwar die Berechtigungen einer Transition, modifiziert aber potenziell das Rechtemodell und erzeugt eine neue WorkflowTransitionPermission, wenn für die betreffende Transition noch keine Rechte definiert sind. Die API-Dokumentation wurde an dieser Stelle mit dem aktuellen Release jetzt klarifiziert.
Stattdessen sollte die neue Methode isTransitionAllowed verwendet werden.
Die Methode
isWorkflowAlloweddes Interface StoreElement (FirstSpirit Access-API, Package de.espirit.firstspirit.access.store) kann vor dem Starten eines Arbeitsablaufs genutzt werden, um zu testen, ob das Starten für den betreffenden Arbeitsablauf und das betreffende Store-Element grundsätzlich erlaubt ist.
6.2 getPageRefs(): Seitenreferenzen einer Seite ermitteln
Per API können jetzt die Seitenreferenzen einer Seite mit der Convenience-Methode
<page>.getPageRefs()ermittelt werden.
(FirstSpirit Access-API, Package de.espirit.firstspirit.access.store.pagestore, Interface Page)
7 System
Aktualisierung von integrierter Fremdsoftware
Mit dem aktuellen FirstSpirit-Release wurde folgende intern verwendete Software aktualisiert:
- Spring Boot (für das MicroApp Framework)
Aktualisierung auf Version 2.5.4
8 Vorlagenentwicklung
8.1 "Dataset" statt "Entity" erhalten
Mit dem aktuellen Release gibt es nun eine neue Methode, um in einer Vorlage aus einer Entity (die beispielsweise von der „contentSelect“-Funktion erzeugt wird) ein Dataset zu erhalten:
getDatasetDie Methode erwartet die Angabe des Referenznamens der betreffenden Tabellenvorlage in Anführungszeichen, z. B.
getDataset("products.product")Kann das Dataset nicht ermittelt werden, wird null zurückgeliefert.
Beispiel:
$CMS_FOR(_entity, cs_press_releases)$
$CMS_SET(_dataset, _entity.getDataset("products.product"))$
$-- ... --$
$CMS_END_FOR$Dabei ist cs_press_releases die Variable / der Bezeichner der contentSelect-Funktion, products.product der Referenzname der Tabellenvorlage.
Alternativ kann folgende Schreibweise verwendet werden. Bei dieser erfolgt die Umwandlung bereits beim Aufruf der FOR-Schleife.
$CMS_FOR(_dataset, cs_press_releases.map(entity->entity.getDataset("products.product")))$
$-- ... --$
$CMS_END_FOR$Zu weiteren Informationen siehe:
8.2 JSON: Gültigkeitszeitraum von Absätzen (Attribut 'lifespan')
Mit dem aktuellen Release enthält die JSON-Ausgabe jetzt auch Informationen zu Gültigkeitszeiträumen von Absätzen, soweit vorhanden.
Dazu wurde das neue Attribut
lifespaneingeführt.
Ist ein entsprechender Gültigkeitszeitraum gesetzt, wird beim Absatz das zusätzliche Attribut lifespan mit ausgegeben.
Dieses Attribut hat immer für den Startzeitpunkt einen Wert (Attribut start):
...
"lifespan": {
"start": "2021-10-15T14:00:00Z",
}Bei zeitlich unbegrenzten Gültigkeitszeiträumen wird kein Endzeitpunkt ausgegeben.
Bei zeitlich begrenzten Gültigkeitszeiträumen wird zusätzlich der Endzeitpunkt mit ausgegeben (Attribut end):
...
"lifespan": {
"start": "2021-10-15T14:00:00Z",
"end": "2021-12-31T23:59:59Z",
}Beispiel-Ausgabe eines Absatzes:
{
"fsType": "Section",
"name": "cms_input_text",
"displayName": "CMS_INPUT_TEXT",
"identifier": "1df5eccf-c5ac-40ab-805a-6411c8dc3b69",
"lifespan": {
"start": "2021-10-02T11:46:06Z",
"end": "2021-10-03T11:46:09Z"
}Übersicht
| ID | Beschreibung | Kategorien |
|---|---|---|
| CORE-12664 | Mit der neuen Methode |
Datenbank, Datenquellen-Verwaltung, Entwickler, FirstSpirit-API, Vorlagenentwicklung |
| CORE-12673 | Mit dem neuen Parameter |
ContentCreator, Eingabekomponenten, Entwickler, Sprachen, Vorlagenentwicklung |
| CORE-13127 | Per API können jetzt die Seitenreferenzen einer Seite per Convenience-Methode ermittelt werden. |
Entwickler, Modul-Entwicklung |
| CORE-13657 | Dank eines Workarounds, der ein Problem in den aktuellen Microsoft SQL Server JDBC-Treibern umgeht, können diese nun auch mit FirstSpirit eingesetzt werden. |
Datenbank, Datenquellen-Verwaltung, Entwickler, FirstSpirit-Administrator |
| CORE-13759 | In der Projekt-Komponente „FirstSpirit AdvancedUrlFactory Configuration“ wird jetzt die projektspezifische Konvertierungsregel -CUSTOM- persisiert: Das Ändern der Regel von -CUSTOM- auf eine andere setzt die Regel -CUSTOM- jetzt nicht mehr zurück. |
Advanced URL, Entwickler, FirstSpirit-Administrator, Generierung |
| CORE-13784 | Es wurde ein Fehler behoben, der in sehr seltenen Fällen dazu führen konnte, dass beim Zugriff auf eine Entity eine |
Datenbank, Entwickler |
| CORE-13837 | Es wurde ein Fehler behoben, der dazu führen konnte, dass der Auftrag zum Erstellen eines Content Transport-Features nicht erfolgreich war, wenn in dem Projekt die Archivierungsfunktion verwendet wurde. |
Archivierung, Aufträge, Content Transport, FirstSpirit-Administrator |
| CORE-13860 | Texte der Oberfläche des |
ContentCreator, Redakteur |
| CORE-13870 | Verweise aus der FirstSpirit Online-Dokumentation in die API-Dokumentation (FirstSpirit Access-API, FirstSpirit Developer-API, Java SE Core-API) funktionieren nach der Umstellung des Designs der API-Dokumentation von Oracle, Version 11+, jetzt wieder. |
Dokumentation, Entwickler, FirstSpirit-API |
| CORE-13877 | Die neue Methode |
Arbeitsablauf, Entwickler, FirstSpirit-API |
| CORE-13880 | Das MBean |
Debugging, FirstSpirit-Administrator, Monitoring, Performance, ServerMonitoring |
| CORE-13901 | FirstSpirit Content Experience Tools: Aktuelle Modul-Versionen |
Entwickler, FirstSpirit Content Experience Tools (CXT), FirstSpirit-Administrator, FragmentCreator, Module |
| CORE-13910 | Mit dem aktuellen FirstSpirit-Release wurde intern verwendete Software aktualisiert. |
Entwickler, FirstSpirit Content Experience Tools (CXT), FirstSpirit-Administrator |
| CORE-13916 | Die Suche der Online-Hilfe im FirstSpirit ContentCreator liefert jetzt wieder Suchergebnisse. |
ContentCreator, Dokumentation, Redakteur, Suche |
| CORE-13932 | AdoptOpenJDK heißt jetzt „Temurin“ und Java 17 wurde veröffentlicht |
Entwickler, FirstSpirit-Administrator, Java |
| CORE-13946 | Mit dem aktuellen Release enthält die JSON-Ausgabe jetzt auch Informationen zu Gültigkeitszeiträumen von Absätzen, soweit vorhanden. |
Entwickler, Inhalte-Verwaltung, JSON-Unterstützung |
| CORE-13966 | Diese Module und Erweiterungen sind kompatibel mit FirstSpirit 2021-10. |
Entwickler, FSDevTools, Launcher, Module |
| CXT-1935 | Das Verschieben eines Absatzes in der Navigationsleiste in einen Inhaltsbereich, für den der Absatztyp nicht zugelassen ist, ist nicht möglich. Jetzt wird eine entsprechende Information angezeigt. Zuvor wurde in diesem Fall lediglich ein Fehler in der Konsole ausgegeben. |
ContentCreator, Redakteur |
| CXT-2096 | Das Modul „FirstSpirit Image Recognition“ unterstützt jetzt auch Bilder vom Format „WebP“. |
ContentCreator, Medien, Redakteur |
| CXT-2295 | Die Statusseiten der CXT-Plattform und des FragmentCreator prüfen jetzt auch die Konfiguration von |
Debugging, Entwickler, FirstSpirit Content Experience Tools (CXT), FirstSpirit-Administrator, FragmentCreator |
| CXT-2341 | Mithilfe des neuen Parameters |
Entwickler, FirstSpirit Content Experience Tools (CXT), FirstSpirit-Administrator |
| CXT-2409 | In seltenen Fällen gab es beim Anlegen von Absätzen im ContentCreator ein Anzeigeproblem: Es wurde nur eine weiße Seite dargestellt. Erst nach einem Reload wurde die Seite wieder korrekt dargestellt. |
ContentCreator, Redakteur |
| CXT-2417 | Verbesserungen in der Datenquellen-Verwaltung im ContentCreator (BETA) |
ContentCreator, Datenquellen-Verwaltung, Eingabekomponenten, Medien, Redakteur |
| CXT-2422 | Aufzählungen in der Eingabekomponente FS_MARKDOWN (Typ „Quill“) im FragmentCreator wurden nicht immer korrekt gespeichert. |
FirstSpirit Content Experience Tools (CXT), FragmentCreator, Redakteur |
Deprecations
| Funktion | Abgekündigt mit | Entfällt / Entfallen mit |
|---|---|---|
| Eingabekomponente CMS_INPUT_CONTENTAREALIST | 5.2R3 | |
| Eingabekomponente CMS_INPUT_CONTENTLIST | 5.2R3 | |
| Eingabekomponente CMS_INPUT_FILE | 5.2R3 | |
| Eingabekomponente CMS_INPUT_LINKLIST | 5.2R3 | |
| Eingabekomponente CMS_INPUT_OBJECTCHOOSER | 5.2R3 | |
| Eingabekomponente CMS_INPUT_PAGEREF | 5.2R3 | |
| Eingabekomponente CMS_INPUT_PICTURE | 5.2R3 | |
| Eingabekomponente CMS_INPUT_TABLIST | 5.2R3 | |
| FirstSpirit Access-API: de.espirit.firstspirit.agency.GroupsAgent | 5.2R15 | |
| FirstSpirit Access-API: delete (de.espirit.firstspirit.access.AccessUtil) | 5.2R18 | |
| FirstSpirit Access-API: release (de.espirit.firstspirit.access.AccessUtil) | 2018-06 | |
| FirstSpirit Access-API: getLastLoginAsDate (de.espirit.firstspirit.agency.UserStatisticsAgent) | 2018-07 | |
| FirstSpirit Access-API: remainingDurationOfCurrentStageInMillis (de.espirit.firstspirit.server.MaintenanceModeInfo) | 2018-07 | 2025-13 |
| FirstSpirit Access-API: getStartingTimeOfStageAsDate (de.espirit.firstspirit.server.MaintenanceModeInfo) | 2018-07 | 2025-13 |
| FirstSpirit Access-API: getSelectedWebserverConfiguration (de.espirit.firstspirit.access.serverConfiguration) | 2018-10 | 2025-13 |
| FirstSpirit Access-API: setSelectedWebserverConfiguration (de.espirit.firstspirit.access.serverConfiguration) | 2018-10 | 2025-13 |
| FirstSpirit Access-API: getSelectedWebServer (de.espirit.firstspirit.access.project.Project) | 2018-10 | 2025-13 |
| FirstSpirit Access-API: setSelectedWebServer (de.espirit.firstspirit.access.project.Project) | 2018-10 | 2025-13 |
| FirstSpirit Access-API: getLostAndFoundStoreNodes(); (de.espirit.firstspirit.feature.FeatureInstallResult) | 2018-10 | |
| FirstSpirit Access-API: getDeletedStoreNodes(); (de.espirit.firstspirit.feature.FeatureInstallResult) | 2018-10 | |
| FirstSpirit Access-API: de.espirit.firstspirit.access.store.Previewable | 2019-01 | |
| WebSphere Application Server Support für FirstSpirit | 2019-05 | |
| Legacy mode für den FirstSpirit-Server | 2019-06 | 2022-03 |
| Datenbank-Layer Oracle Database 11g/12c | 2020-12 | 2025-05 |
| FirstSpirit Access-API: redirectTemplateLogToDefaultLog() (Interface RenderingAgent.Renderer) | 2021-05 |