Release Notes
1 Allgemeines
1.1 FirstSpirit Launcher: Neue Parameter zur Konfiguration über die Datei FSLauncher.vmoptions
Es wurden drei neue Parameter eingeführt, mit denen der Launcher konfiguriert werden kann. Diese drei Parameter können im Installationsverzeichnis des Launchers über die Datei {FS-Launcher-Installationspfad}/FSLauncher.vmoptions definiert werden.
-DlauncherDir: Über diesen Parameter kann ein anderes Verzeichnis definiert werden, in das der Launcher die heruntergeladenen und temporären Dateien ablegen soll.
Beispiel: -DlauncherDir=c:/temp/FSLauncher/
Standardwert: ~Userhome/.firstspirit/FSLauncher
Hinweis: Dieser Parameter ersetzt den Parameter -Duser.home
-DuseLocalJre: Über diesen Parameter kann definiert werden, dass das zum Start der FirstSpirit-Desktop-Anwendungen benutzte JRE nicht vom FirstSpirit-Server heruntergeladen werden soll, sondern stattdessen ein lokales JRE genutzt werden soll.
Beispiel: -DuseLocalJre=true
Standardwert: false
Hinweis: Das zu verwendende JRE wird automatisch ermittelt. In dem meisten Fällen wird dies das JRE sein, welches der Launcher selber verwendet.
-DlocalJre: Über diesen Parameter kann definiert werden, welches lokale JRE verwendet werden soll. Als Wert muss der Pfad zum Installationsverzeichnis der entsprechenden Java-Version angegeben werden.
Beispiel: -DlocalJre=c:/Program Files/Java/jdk-11/
WICHTIG: Dieser Parameter wird nur berücksichtigt, wenn zusätzlich -DuseLocalJre=true gesetzt wurde.
1.2 Java: Unterstützung für OpenJDK 16
e-Spirit unterstützt für das Produkt FirstSpirit:
- OpenJDK: die aktuelle freigegebene Java-Version sowie die letzte LTS-Variante (Long-Term-Support).
- Oracle Java: nur die letzte LTS-Variante.
Dies gilt sowohl für den FirstSpirit-Server als auch für die FirstSpirit-Desktop-Anwendungen.
Mit FirstSpirit 2021-04 wird OpenJDK 16 (non-LTS; Release Date 2021-03) für die Verwendung mit FirstSpirit (für den FirstSpirit-Server und die FirstSpirit-Desktop-Anwendungen) freigegeben.
AdoptOpenJDK 16 ist im Modul „FirstSpirit Launcher JRE“ enthalten. Die FirstSpirit-Desktop-Anwendungen können nach der entsprechenden Konfiguration über das Modul „FirstSpirit Launcher JRE“ mithilfe des FirstSpirit Launchers mit AdoptOpenJDK 16 gestartet werden.
(Dokumentation zum Modul „FirstSpirit Launcher JRE“ siehe entsprechende Dokumentation).
Mit der Freigabe der Unterstützung von OpenJDK 16 erlischt gleichzeitig die Unterstützung für OpenJDK 15 (non-LTS; Release Date 2020-09).
FirstSpirit wird mit OpenJDK 15 voraussichtlich weiter funktionsfähig bleiben. Es werden aber seitens der e-Spirit AG weder Tests mit OpenJDK 15 ausgeführt noch FirstSpirit-Probleme behoben, die ausschließlich im Zusammenhang mit der Verwendung von OpenJDK 15 auftreten.
Aktueller Status: Für FirstSpirit 2021-04 sind damit die folgenden JDKs kompatibel:
- OpenJDK 16 (in der aktuellen Version) (non-LTS) (*)
- OpenJDK 11 (in der aktuellen Version) (LTS) (*)
- Oracle Java 11 (in der aktuellen Version) (LTS)
(*) Empfohlen: Verwendung der OpenJDK-Distribution AdoptOpenJDK (HotSpot JVM)
Weiterführende Dokumentation siehe FirstSpirit: Technische Voraussetzungen und Empfehlungen.
2 ContentCreator
Medien-Verwaltung: Download von Medien
Mit dem aktuellen Release können Medien jetzt auch aus der Medien-Verwaltung heruntergeladen werden. Dazu steht bei Mouse-over auf Medien in der Medien-Verwaltung folgendes Icon zur Verfügung:
Handelt es sich um ein Medium, für das Dateien für unterschiedliche Sprachen zur Verfügung stehen, wird ein Kontextmenü eingeblendet:

Aus diesem kann die gewünschte Sprache ausgewählt werden.
Wohin das Medium auf dem Arbeitsplatzrechner gespeichert wird, hängt vom jeweiligen Browser und den nutzerspezifischen Download-Einstellungen ab.
Bilder werden dabei immer in der Originalauflösung heruntergeladen.
3 Eingabekomponenten
3.1 JSON-Funktion: JSON-Ausgabe vererbter Metadaten konfigurieren
Mit dem aktuellen FirstSpirit-Release unterstützt die JSON-Funktion die Ausgabe von vererbten Metadaten.
Für diese Änderung wird keine neue Version des JSON-Ausgabeformats veröffentlicht, die Änderungen fließen in die aktuelle Formatversion 1.1. ein.
Übersicht der Änderungen in Formatversion 1.1
Unterstützung für die Ausgabe von vererbten Metadaten
Metadaten sind zusätzliche Informationen, die für ein Objekt in FirstSpirit zur Verfügung stehen. Neben den systemspezifischen Metadaten (wie z. B. „letztes Änderungsdatum“) können auch projektspezifische Metadaten gepflegt werden. Projektspezifische Metadaten werden über eine Metadaten-Vorlage für das Projekt definiert und können anschließend auf den entsprechenden FirstSpirit-Objekten (z.B. auf einer Seite oder Seitenreferenz) im Register „Metadaten“ über ein Formular gepflegt werden. Teilweise werden diese projektspezifischen Metadaten hierarchisch gepflegt. Das heißt, die Metadaten werden einmal auf dem Wurzelknoten der Verwaltung oder einem Teilbaum gepflegt und dann automatisch an alle hierarchisch untergeordneten FirstSpirit-Objekte vererbt (z. B. bei der Definition von Benutzerrechten über die Eingabekomponente CMS_INPUT_PERMISSION).
Metadaten können in eine JSON-Objektstruktur überführt werden. Das JSON-Ausgabeformat berücksichtigt dabei, die auf dem jeweiligen FirstSpirit-Objekt (Seiten, Seitenreferenzen, Medien) persistierten Metadaten zum Zeitpunkt der Generierung. Bei der Ausgabe einer Seite bzw. einer Seitenreferenz im JSON-Ausgabeformat werden die Metadaten des entsprechenden Objekts mit ausgegeben. Die Ausgabe im Format 1.1 enthält dann das Attribut metaFormData (siehe Beispiel).
Die JSON-Ausgabe der Metadaten kann über die JSON-Funktion konfiguriert werden. Neu ist die Möglichkeit, mit dem aktuellen FirstSpirit-Release auch Metadaten auszugeben, die nicht auf dem Objekt selbst definiert, sondern von einem hierarchisch übergeordneten Objekt geerbt wurden. Geerbte Metadaten wurden bislang nicht berücksichtigt.
Konfigurationsmöglichkeiten für die Ausgabe von Metadaten:
- Schalter
$CMS_SET(#global.json.metaDataRendering, <BOOLEAN>)$(Standardeinstellungtrue):
Die Metadaten aller Objekte werden ausgegeben, sofern die Ausgabe nicht über den Schalter$CMS_SET(#global.json.metaDataRendering, false)$explizit ausgeschaltet wird. - Neu: Schalter
$CMS_SET(#global.json.metaInheritanceRendering, <BOOLEAN>)$(Standardeinstellungfalse):- In der Einstellung
$CMS_SET(#global.json.metaInheritanceRendering, true)$werden Metadaten ausgegeben, die nicht auf dem FirstSpirit-Objekt selbst definiert wurden, sondern auf einem hierarchisch übergeordneten Objekt. Die geerbten Metadaten werden in eine JSON-Objektstruktur überführt. Dabei werden immer die Werte des nächsthöheren Objektes verwendet, für das Metadaten definiert wurden (bis hin zum Wurzelknoten des Verwaltungsbereichs). - In der Standard-Einstellung
$CMS_SET(#global.json.metaInheritanceRendering, false)$werden nur Metadaten ausgegeben, die auf dem Objekt selbst definiert wurden. Sind auf dem Objekt selber keine Metadaten definiert, wird über das AttributmetaFormDataein leerer Wert ausgegeben, auch dann, wenn das Objekt über geerbte Metadaten verfügt.
- In der Einstellung
Besonderheiten
$CMS_SET(#global.json.metaInheritanceRendering, true)$: Bei der Ausgabe von vererbten Metadaten werden die Metadaten der hierarchisch übergeordneten FirstSpirit-Objekte ausgewertet. Ausgehend vom Ursprungsobjekt wird nach und nach die gesamte Elternkette durchlaufen, solange bis ein Objekt gefunden wurde, für das Metadaten definiert wurden. Die Auswertung endet beim Wurzelknoten der Verwaltung (einschließlich).
Dabei gilt: Ist auf einem FirstSpirit-Objekt im Metadaten-Formular die Eingabekomponente, die die Metadaten enthält, nicht gesetzt, so wird der Wert des nächsthöheren FirstSpirit-Objekts ausgewertet. Eine Eingabekomponente gilt als „nicht gesetzt“, wenn die Anweisung isSet() den Wert false zurückliefert, ein Objekt also im aktuellen Kontext nicht verfügbar ist. Dieser Zustand ist erreicht, wenn eine Eingabekomponente nie gesetzt wurde oder eine einmal gesetzte Eingabekomponente mit NULL überschrieben wird, z. B. über ein Skript (siehe „Beispiel: Eingabekomponente auf „nicht gesetzt“ schalten“).
Das einfache Löschen eines Wertes in der Eingabekomponente genügt nicht (in diesem Fall ist die Eingabekomponente zwar leer (isEmpty() == true), aber weiterhin gesetzt (isSet() == true) (vgl. API-Dokumentation Interface: FormField - Methode: isEmpty()).
Beispiel - $CMS_SET(#global.json.metaInheritanceRendering, true)$
{
"fsType": "PageRef",
"name": "pt_metadata_selective_1",
"displayName": "pt_metadata_selective",
"identifier": "15ff7b8d-9059-4721-b92b-e697e153fc85",
"uid": "pt_metadata_selective_1",
"uidType": "SITESTORE_LEAF",
"metaDataIsInherited": true,
"metaFormData": {
"meta_field1": {
"fsType": "CMS_INPUT_TEXT",
"name": "meta_field1",
"identifier": "meta_field1",
"value": null,
"valueSchema": {
"type": "null"
}
},
"meta_field2": {
"fsType": "CMS_INPUT_TEXT",
"name": "meta_field2",
"identifier": "meta_field2",
"value": "value_field2_set",
"valueSchema": {
"type": "string"
}
},
"meta_field3": {
"fsType": "CMS_INPUT_DATE",
"name": "meta_field3",
"identifier": "meta_field3",
"value": null,
"valueSchema": {
"type": "null"
}
}
},
(...)Beispiel: Eingabekomponente auf „nicht gesetzt“ schalten:
Eingabekomponente FS_BUTTON:
<FS_BUTTON name="meta_field1" noBreak="yes" onClick="script:delete_meta_data">
<LANGINFOS>
<LANGINFO lang="*" label="Delete meta data"/>
<LANGINFO lang="DE" label="Metadaten entfernen"/>
</LANGINFOS>
<PARAMS>
<PARAM name="meta_data">#field.meta_field1</PARAM>
</PARAMS>
</FS_BUTTON>Skript (delete_meta_data):
import de.espirit.firstspirit.forms.FormField;
if (meta_data instanceof FormField) {
meta_data.set(null);
}Weiterführende Dokumentation:
3.2 JSON-Funktion: Unterstützung für CMS_INPUT_PERMISSION
Mit dem aktuellen FirstSpirit-Release unterstützt die JSON-Funktion die Eingabekomponente CMS_INPUT_PERMISSION.
Für diese Änderung wird keine neue Version des JSON-Ausgabeformats veröffentlicht, die Änderungen fließen in die aktuelle Formatversion 1.1. ein.
Übersicht der Änderungen in Formatversion 1.1
Unterstützung für CMS_INPUT_PERMISSION (Metadaten/Benutzerrechte)
Spezielle Zugriffs- und Ausführungsrechte („Benutzerrechte“) für generierte und veröffentlichte FirstSpirit-Objekte (Seiten, Seitenreferenzen und Medien) werden über die Eingabekomponente CMS_INPUT_PERMISSION definiert. Die Eingabekomponente CMS_INPUT_PERMISSION wird vom Vorlagenentwickler über eine projektspezifische Metadaten-Vorlage vorgegeben. Die Benutzerrechte für einzelne Benutzer und Gruppen können anschließend im Metadaten-Register der FirstSpirit-Objekte definiert werden. Die Eingabekomponente CMS_INPUT_PERMISSION berücksichtigt dabei auch die Vererbung dieser Rechte, das heißt, es werden von der Eingabekomponente auch Rechte ausgelesen, die von einem übergeordneten Knoten geerbt wurden.

Eingabekomponente CMS_INPUT_PERMISSION (mit Aktivitäten)
Über die JSON-Funktion können ab der aktuellen FirstSpirit-Version die Benutzerrechte, die auf einem FirstSpirit-Objekt mithilfe der Eingabekomponente CMS_INPUT_PERMISSION definiert wurden, in eine JSON-Objektstruktur überführt werden. Das JSON-Ausgabeformat berücksichtigt dabei die auf dem jeweiligen FirstSpirit-Objekt (Seiten, Seitenreferenzen, Medien) persistierten Metadaten zum Zeitpunkt der Generierung (Aktivität, Gruppen, Rechte).
Bei der Ausgabe einer Seite bzw. einer Seitenreferenz im JSON-Ausgabeformat werden die Metadaten des entsprechenden Objekts mit ausgegeben. Die Ausgabe im Format 1.1 enthält dann:
- die Aktivitäten („activities“) der Eingabekomponente CMS_INPUT_PERMISSION
- sind Aktivitäten definiert, werden die Metadaten für jede Aktivität einzeln ausgegeben (siehe Beispiel 1 für
"activity":"allow"und"activity":"deny") - sind keine Aktivitäten definiert, so werden die Metadaten nur einmal für
"activity":nullausgegeben (siehe Beispiel 2, "activity":null)
- sind Aktivitäten definiert, werden die Metadaten für jede Aktivität einzeln ausgegeben (siehe Beispiel 1 für
- die Gruppen der Eingabekomponente CMS_INPUT_PERMISSION
- die Rechte „allowed“ bzw. „forbidden“, die für die jeweiligen Gruppen auf dem Objekt definiert sind
- aber (in der Standardeinstellung) keine geerbten Rechte (siehe Einschränkung)
Einschränkung: Sind keine Rechte innerhalb der Eingabekomponente definiert (Option „Rechte definieren“ der Eingabekomponente ist deaktiviert), so werden die sichtbaren, geerbten Rechte nur ausgegeben, wenn im JSON die Vererbung der Metadaten aktiviert ist (über die Option $CMS_SET(#global.json.metaInheritanceRendering, true)$ - siehe „Vererbung der Metadaten konfigurieren (JSON-Ausgabe)“ unten)
Beispiele (JSON-Format für CMS_INPUT_PERMISSION):
Beispiel 1) Ausgabe der Benutzerrechte, wenn für die Eingabekomponente CMS_INPUT_PERMISSION Aktivitäten definiert wurden (hier: „allow“ und „deny“):
{
"formData":{
"permission_with_act":{
"fsType":"CMS_INPUT_PERMISSION",
"name":"permission_with_act",
"metadataIsInherited": false,
"value":[
{
"activity":"allow",
"forbidden":[
{
"groupId":"4",
"groupName":"Kunden"
}
],
"allowed":[
{
"groupId":"2",
"groupName":"Anonyme Besucher"
},
{
"groupId":"3",
"groupName":"Registrierte Mitglieder"
}
]
},
{
"activity":"deny",
"forbidden":[
{
"groupId":"2",
"groupName":"Anonyme Besucher"
},
{
"groupId":"3",
"groupName":"Registrierte Mitglieder"
}
],
"allowed":[
{
"groupId":"4",
"groupName":"Kunden"
}
]
}
]
}Beispiel 2) Ausgabe der Benutzerrechte, wenn für die Eingabekomponente CMS_INPUT_PERMISSION keine Aktivitäten definiert wurden:
"permission_without_act":{
"fsType":"CMS_INPUT_PERMISSION",
"name":"permission_without_act",
"metaDataIsInherited": false,
"value":[
{
"activity":null,
"forbidden":[
{
"groupId":"3",
"groupName":"Registrierte Mitglieder"
},
{
"groupId":"4",
"groupName":"Kunden"
}
],
"allowed":[
{
"groupId":"2",
"groupName":"Anonyme Besucher"
}
]
}
]
}
}
Vererbung der Metadaten konfigurieren (JSON-Ausgabe)
Über den Schalter $CMS_SET(#global.json.metaInheritanceRendering, <BOOLEAN>)$ kann die Vererbung der Metadaten bei der JSON-Ausgabe konfiguriert werden.
(Standard-)Einstellung: $CMS_SET(#global.json.metaInheritanceRendering, false)$:
Berücksichtigt nur direkt auf dem Objekt definierte Benutzerrechte.
- Ausgangssituation - Rechte definiert: Es sind Rechte in der Eingabekomponente CMS_INPUT_PERMISSION definiert (Option „Rechte definieren“ der Eingabekomponente ist aktiviert):
- JSON-Ausgabe: Mit dieser Einstellung werden Benutzerrechte, die auf einem FirstSpirit-Objekt mithilfe der Eingabekomponente CMS_INPUT_PERMISSION definiert wurden, in eine JSON-Objektstruktur überführt.
- Ausgangssituation - Rechte geerbt: Es sind keine Rechte innerhalb der Eingabekomponente CMS_INPUT_PERMISSION definiert (Option „Rechte definieren“ der Eingabekomponente ist deaktiviert), aber Benutzerrechte auf einem hierarchisch übergeordneten Objekt definiert, die geerbt wurden:
- JSON-Ausgabe: Es wird ein leerer Wert ausgegeben, auch dann, wenn der Knoten über geerbte Rechte verfügt.
- Ausgangssituation - Keine Rechte vorhanden: Es sind auf dem FirstSpirit-Objekt keine Rechte innerhalb der Eingabekomponente CMS_INPUT_PERMISSION definiert (Option „Rechte definieren“ der Eingabekomponente ist deaktiviert), und es wurden auch keine Benutzerrechte auf einem hierarchisch übergeordneten Objekt definiert (bis hin zum Wurzelknoten des Verwaltungsbereichs).
- JSON-Ausgabe: Es wird ein leerer Wert ausgegeben.
Einstellung: $CMS_SET(#global.json.metaInheritanceRendering, true)$:
Berücksichtigt direkt auf dem Objekt definierte Benutzerrechte und geerbte Benutzerrechte eines hierarchisch übergeordneten Objektes.
- Ausgangssituation - Rechte definiert: Es sind Rechte in der Eingabekomponente CMS_INPUT_PERMISSION definiert (Option „Rechte definieren“ der Eingabekomponente ist aktiviert):
- JSON-Ausgabe: Mit dieser Einstellung werden Benutzerrechte, die auf einem FirstSpirit-Objekt mithilfe der Eingabekomponente CMS_INPUT_PERMISSION definiert wurden, in eine JSON-Objektstruktur überführt. Bei der Ausgabe wird außerdem der Wert des Attributs
metadataIsInheritedmitfalseausgegeben, um anzuzeigen, dass die Benutzerrechte nicht geerbt sind.
- JSON-Ausgabe: Mit dieser Einstellung werden Benutzerrechte, die auf einem FirstSpirit-Objekt mithilfe der Eingabekomponente CMS_INPUT_PERMISSION definiert wurden, in eine JSON-Objektstruktur überführt. Bei der Ausgabe wird außerdem der Wert des Attributs
- Ausgangssituation - Rechte geerbt: Es sind keine Rechte innerhalb der Eingabekomponente CMS_INPUT_PERMISSION definiert (Option „Rechte definieren“ der Eingabekomponente ist deaktiviert), aber Benutzerrechte auf einem hierarchisch übergeordneten Objekt definiert, die geerbt wurden:
- JSON-Ausgabe: Die geerbten Benutzerrechte werden in eine JSON-Objektstruktur überführt. Dabei werden immer die Werte des nächsthöheren Objektes verwendet, für das Benutzerrechte über die Eingabekomponente CMS_INPUT_PERMISSION definiert wurden. Bei der Ausgabe wird außerdem der Wert des Attributs
metadataIsInheritedmittrueausgegeben, um anzuzeigen, dass die Benutzerrechte geerbt sind.
- JSON-Ausgabe: Die geerbten Benutzerrechte werden in eine JSON-Objektstruktur überführt. Dabei werden immer die Werte des nächsthöheren Objektes verwendet, für das Benutzerrechte über die Eingabekomponente CMS_INPUT_PERMISSION definiert wurden. Bei der Ausgabe wird außerdem der Wert des Attributs
- Ausgangssituation - Keine Rechte vorhanden: Es sind auf dem FirstSpirit-Objekt keine Rechte innerhalb der Eingabekomponente CMS_INPUT_PERMISSION definiert (Option „Rechte definieren“ der Eingabekomponente ist deaktiviert), und es wurden auch keine Benutzerrechte auf einem hierarchisch übergeordneten Objekt definiert (bis hin zum Wurzelknoten des Verwaltungsbereichs):
- JSON-Ausgabe: Es wird ein leerer Wert ausgegeben.
Bisheriges Verhalten:
Die Eingabekomponente CMS_INPUT_PERMISSION wurde bisher nicht unterstützt. Bei der Ausgabe der Benutzerrechte über den JSON-Kanal wurde auf die fehlende Unterstützung hingewiesen:
"permission_not_supported": {
"fsType": "CMS_INPUT_PERMISSION",
"name": "permission_not_supported",
"value": {
"error":
"Type 'de.espirit.firstspirit.access.editor.value.PermissionsImpl'
is not supported by the FirstSpirit json engine"
}
}Weiterführende Dokumentation:
4 FirstSpirit Content Experience Tools (CXT)
4.1 Aktuelle Modul-Versionen
Folgende Modul-Versionen für „FirstSpirit Content Experience Tools“ werden von FirstSpirit 2021-04 unterstützt:
| Modul- / Dateiname | Versionsnummer |
FirstSpirit CXT DAP Bridgedataservice-[version].fsm | 1.40 |
FirstSpirit CXT FragmentCreatorfragment-creator-[version].fsm | 2.21 |
FirstSpirit Fragment DAPfragmentdap-[version].fsm | 1.36 |
FirstSpirit Media DAPmediadap-[version].fsm | 1.28* |
FirstSpirit PageRef DAPpageref-[version].fsm | 1.6 |
FirstSpirit Markdown Editormarkdown-editor-[version].fsm | 1.26* |
FirstSpirit Tagging Editortagging-editor-[version].fsm | 1.26 |
FirstSpirit CXT FragmentCreator - CaaS Integrationcaas-integration-[version].fsm | 1.27 |
* Diese Module benötigen ab dieser Version FirstSpirit 2020-03 oder höher.
4.2 Ankündigung: Trennung von CXT-Plattform und FragmentCreator
FirstSpirit Content Experience Tools ist von Beginn an als Microservice-Architektur konzipiert. Ziel des modularen Aufbaus und unabhängiger Prozesse sind u.a. verbesserte Verfügbarkeit, Skalierbarkeit und Wartbarkeit.
Aktuell ist die CXT-Plattform in den FragmentCreator integriert und wird mit diesem ausgeliefert. Dienste, die für die Plattform erforderlich sind, werden bei jedem Starten einer FragmentCreator-Instanz hochgefahren und verwaltet, auch wenn sie nicht benötigt werden (z. B. OAuth, MicroService-Controller, Eureka usw.).
Um die Performanz und Steuerbarkeit zu verbessern, arbeitet e-Spirit aktuell daran, CXT-Plattform und FragmentCreator voneinander zu trennen. Ziel ist es, die CXT-Plattform und FragmentCreator jeweils als eigenständige Webanwendungen zu betreiben. Damit wird auch der Microservice-Gedanke weiter verfolgt.
Nach der technischen Umstellung wird die Plattform als eigenständiges Modul installiert und in einer separaten globalen WebApp ausgerollt. Die Konfiguration erfolgt im Dateisystem über eine eigene Properties-Datei.
Mit Freigabe der Trennung werden folgende Versionen der betroffenen Module unterstützt:
- „Platform“-Modul: Version 2.x
- „FragmentCreator“-Modul: Version 3.x
Voraussetzungen für die Verwendung der neuen Technologie:
- FragmentCreator und Plattform benötigen jeweils eine SOCKET-Verbindung zum FirstSpirit-Server.
- Beide Webanwendungen müssen über denselben externen Host erreichbar sein („same-origin“).
Für bestehende Installationen müssen wenige Anpassungen vorgenommen werden, um die neue Technologie nutzen zu können, z. B.:
- Installation des neuen „Platform“-Moduls
- Installation und Anpassung der Konfiguration des „FragmentCreator“-Moduls (per
web.xmloder Properties-Datei) - Änderung von API-URLs (z. B. im Modul „Fragment DAP“)
Eine detaillierte Anleitung über die vorzunehmenden Schritte wird mit Freigabe dieser technologischen Umstellung zur Verfügung gestellt.
Die Freigabe der Trennung und der neuen Module ist geplant für das Release 2021-05.Alternativ kann für eine Übergangszeit das „FragmentCreator“-Modul weiterhin in einer Version < 3.0 verwendet werden.
Cloud-Kunden müssen in diesem Kontext keine Maßnahmen ergreifen: e-Spirit übernimmt alle erforderlichen Konfigurationsänderungen.
4.3 FragmentDAP: Variantenauswahl einschränken
Das „Varianten“-Prinzip von FirstSpirit Content Experience Tools ermöglicht unterschiedliche Ausprägungen eines Fragments und damit eine ökonomische Wiederverwendung von Content. Eine typische Variantendimension eines Fragments kann beispielsweise die Sprache sein. Weitere denkbare Dimensionen unterscheiden Fragmente bspw. hinsichtlich Detailgrad, Sprachform (einfach vs. komplex), Zielgruppe usw.
Technisch umgesetzt werden Variantendimensionen innerhalb des <CMS_GROUP>-Formulars mit dem Bezeichner editions in der Metadaten-Vorlage.
Im FragmentCreator kann eine Auswahl der Varianten eines Fragments über den Variantenmanager erfolgen, in FirstSpirit ContentCreator und SiteArchitect ist eine Auswahl über das FragmentDAP oder im „Fragmente“-Report möglich.
Standardmäßig werden dem Redakteur alle zur Verfügung stehenden Varianten zur Auswahl angezeigt.
Mit dem aktuellen Release kann konfiguriert werden, welche Variantendimension/en per FragmentDAP ausgewählt werden können soll/en.
In einem ersten Schritt wird diese Funktionalität jetzt im FirstSpirit ContentCreator und im FirstSpirit SiteArchitect unterstützt. Eine entsprechende Umsetzung für den FragmentCreator erfolgt mit einem späteren Release.
Beispielhafte Syntax:
<FS_INDEX name="fragments" useLanguages="no" viewMode="details">
<LANGINFOS>
<LANGINFO lang="*" label="Select text fragments"/>
<LANGINFO lang="DE" label="Text-Fragmente auswählen"/>
</LANGINFOS>
<SOURCE name="FirstSpiritFragmentAccess/FSFAConnector">
<PROJECT remote="fragments">
<VARIANT name="language" value="EN"/>
<VARIANT name="language" value="DE"/>
<VARIANT name="device" value="Mobile"/>
</PROJECT>
</SOURCE>
</FS_INDEX>Tags / Attribute:
VARIANT: Mithilfe dieses Tags kann die Auswahl von Variantendimensionen per FS_INDEX mit FragmentDAP konfiguriert werden.
Für jede Variantendimension, die der Redakteur auswählen können soll, muss eineVARIANT-Definition vorhanden sein.
Wird das Tag nicht angegeben, stehen alle Variantendimensionen zur Auswahl bereit.
JedeVARIANT-Definition erfordert die Angabe der Attributenameundvalue:name: Über dieses Attribut muss der Bezeichner der Variantendimension, die zur Auswahl zur Verfügung stehen soll, angegeben werden.
Dabei handelt es sich um den Wert desname-Attributs der gewünschten Komponente in der Metadaten-Vorlage des Fragment-Projekts, aus dem die Auswahl per FragmentDAP erfolgt.
Für jede Variantendimension, die der Redakteur auswählen können soll, muss eineVARIANT-Definition mit passendemname-Attribut vorhanden sein.
Sind mehrere Variantendimensionen definiert, werden nur die Varianten angezeigt, die alle Bedingungen erfüllen (AND-Verknüpfung).value: Über dieses Attribut kann die Auswahl auf bestimmte Typen einer Variantendimension eingeschränkt werden.
Dabei handelt es sich um den Wert desvalue-Attributs innerhalb vonENTRIES/ENTRYder gewünschten Komponente in der Metadaten-Vorlage des Fragment-Projekts, aus dem die Auswahl per FragmentDAP erfolgt.
Für jeden Typ einer Variantendimension, die der Redakteur auswählen können soll, muss eineVARIANT-Definition mit passendemname- undvalue-Attribut vorhanden sein.
Sind mehrere Typen einer Variantendimension definiert, werden alle Varianten angezeigt, die zu diesen Typen passen (OR-Verknüpfung).
Die Reihenfolge der VARIANT-Definitionen wirkt sich dabei auf die Reihenfolge aus, in der die Varianten im Auswahldialog angezeigt werden. Im obigen Beispiel werden immer Varianten der Dimension language vom Typ EN angezeigt (also englischsprachige Varianten).
Varianten (und damit das zugehörige Fragment), auf die die Varianteneinschränkungen nicht zutreffen, werden nicht angezeigt.

Eine zusätzliche Einschränkung von auswählbaren Fragmenten / Varianten Ist weiterhin über das Tag CATEGORY möglich.
Diese neue Filterungsmöglichkeit per VARIANT-Tag kommt nur in einer entsprechend konfigurierten FS_INDEX-Komponente zum Tragen, nicht jedoch im „Fragment“-Report. Allerdings berücksichtigt die Anzeige im Report jetzt die Reihenfolge der VARIANT-Definitionen.
Hinweis: Die Funktionalität ist aktuell noch nicht für den FragmentCreator freigegeben und sollte dort speziell nicht in Kombination mit dem Anlegen von Fragmenten verwendet werden.
Zu weiteren Informationen zu Konfiguration und Verwendung des FragmentDAP siehe https://docs.e-spirit.com/odfs/edocs/cxt/vorlagen/fragmente-verwe/index.html.
5 Kompatibilität
Module und Erweiterungen für FirstSpirit 2021-04
Folgende Module und Erweiterungen sind kompatibel mit FirstSpirit 2021-04:
| Modul- / Dateiname | Versionsnummer | Kompatibel |
FirstSpirit Aktualisierungsarchivfs-update-[version].tar.gz | 1.0.12 | - |
FirstSpirit Installationsarchiv fs-install-[version].tar.gz | 1.0.12 | - |
FirstSpirit LauncherFSLauncher.exe | 1.0.39 | ab FirstSpirit 2018-08 |
FirstSpirit Launcher JRE Modulfs-launcher-jre-[version].fsm | 1.17 | ab FirstSpirit 2020-11 |
FirstSpirit SAML Login Modulfs-saml-login-[version].fsm | 1.1 | ab FirstSpirit 2019-02 |
FSDevToolsfs-cli-[version].tar.gzfs-cli-[version].zip | 2.6.9 | ab FirstSpirit 2020-08 |
FirstSpirit Module Gradle Pluginfirstspirit-module-gradle-plugin-[version].jar | 1.0.2 | ab FirstSpirit 2019-06 |
6 SiteArchitect / ServerManager
Aufträge werden erst nach vollständigem Serverstart ausgeführt
Mit der aktuellen FirstSpirit-Version wird sichergestellt, dass Aufträge erst starten, nachdem der Server vollständig hochgefahren ist.
Hierdurch werden Probleme in Bezug auf Abhängigkeiten zwischen Aufträgen und den erforderlichen Ressourcen (wie z. B. Dienste) behoben.
7 System
Aktualisierung von integrierter Fremdsoftware
Mit dem aktuellen FirstSpirit-Release wurde folgende intern verwendete Software aktualisiert:
- Java (JRE, mit dem der FirstSpirit-Launcher betrieben wird)
Aktuell sind folgende Java-Varianten verfügbar:- In FirstSpirit integriert (Standard): 11.0.10+9 64bit AdoptOpenJDK
- Neu: Im FirstSpirit Launcher JRE Modul: 16+36 64bit AdoptOpenJDK
- Entfernt: Aus dem FirstSpirit Launcher JRE Modul: 15.0.2+7 64bit AdoptOpenJDK
- Spring Boot (für das MicroApp Framework)
Aktualisierung von Version 2.3.5 auf Version 2.4
8 Vorlagenentwicklung
Arbeitsabläufe: Weitere Konfigurationsmöglichkeit für kontextbezogene Informationen in E-Mails
In E-Mails, die durch Arbeitsabläufe versendet werden, können spezielle Platzhalter verwendet werden, die vom System automatisch kontextbezogen, ersetzt werden. Auf diese Weise kann beispielsweise ein Link zur Vorschau der Seite, auf der der Arbeitsablauf aktiv ist, und viele weitere Informationen in der E-Mail ausgegeben werden.
Die Platzhalter können auf den Eigenschaften einer Aktivität oder einer Transition im Register „E-Mail“ konfiguriert werden („Vorlagenverwaltung“ / „Arbeitsabläufe“ / „Zustandsdiagramm“). Beim Schalten einer Transition oder Aktivität werden dann automatisch die E-Mails mit den entsprechenden Informationen versendet.
Die Platzhalter werden, mit dem aktuellen FirstSpirit-Release, um folgende Möglichkeiten erweitert:
%CREATOR_FULLNAME% = Name der Person, die den Arbeitsablauf erzeugt hat. Es wird der volle Name ausgegeben (ist dieser nicht bekannt, wird der Anmeldename ausgegeben).
Weiterführende Dokumentation:
Arbeitsabläufe / Eigenschaften einer Aktivität / Register E-Mail
Arbeitsabläufe / Eigenschaften einer Transition / Register E-Mail
Übersicht
| ID | Beschreibung | Kategorien |
|---|---|---|
| CORE-11681 | Über die JSON-Funktion können ab der aktuellen FirstSpirit-Version die Benutzerrechte, die auf einem FirstSpirit-Objekt mithilfe der Eingabekomponente CMS_INPUT_PERMISSION definiert wurden, in eine JSON-Objektstruktur überführt werden. Das JSON-Ausgabeformat berücksichtigt dabei, die auf dem jeweiligen FirstSpirit-Objekt (Seiten, Seitenreferenzen, Medien) persistierten Metadaten zum Zeitpunkt der Generierung (Aktivität, Gruppen, Rechte). |
Eingabekomponenten, Entwickler, JSON-Unterstützung, Metadaten, Rechte |
| CORE-12631 | Es wurde ein Fehler behoben, der in seltenen Fällen dazu führen konnte, dass es zu Darstellungsfehler beim Bearbeiten eines Formulars im SiteArchitect kommen konnte. |
Redakteur, SiteArchitect |
| CORE-13260 | Metadaten können in eine JSON-Objektstruktur überführt werden. Neu ist die Möglichkeit, mit dem aktuellen FirstSpirit-Release auch Metadaten auszugeben, die nicht auf dem Objekt selbst definiert, sondern von einem hierarchisch übergeordneten Objekt geerbt wurden. Geerbte Metadaten wurden bislang nicht berücksichtigt. |
Eingabekomponenten, Entwickler, JSON-Unterstützung, Metadaten |
| CORE-13278 | Für die Konfiguration des FirstSpirit Launcher über die Datei |
Launcher |
| CORE-13375 | Über das Interface |
ContentCreator, Entwickler, FirstSpirit Omnichannel Manager, FirstSpirit-API, Remote-Zugriff |
| CORE-13382 | Aufträge werden erst gestartet, nachdem der Server vollständig hochgefahren ist. |
ServerManager |
| CORE-13388 | In E-Mails, die durch Arbeitsabläufe versendet werden, können spezielle Platzhalter verwendet werden, die vom System automatisch kontextbezogen, ersetzt werden. Diese Platzhalter werden, mit dem aktuellen FirstSpirit-Release, um eine weitere Konfigurationsmöglichkeit erweitert. |
Arbeitsablauf, Entwickler, Vorlagenentwicklung |
| CORE-13485 | Unterstützung OpenJDK 16: Mit FirstSpirit 2021-04 wird OpenJDK 16 (non-LTS; Release Date 2021-03) für die Verwendung mit FirstSpirit (für den FirstSpirit-Server und die FirstSpirit-Desktop-Anwendungen) freigegeben. Mit der Freigabe der Unterstützung von OpenJDK 16 erlischt gleichzeitig die Unterstützung für OpenJDK 15 (non-LTS; Release Date 2020-09). |
Entwickler, FirstSpirit-Administrator, Java, Server-Administrator |
| CORE-13489 | Mit dem aktuellen FirstSpirit-Release wurde intern verwendete Software aktualisiert. |
Entwickler, FirstSpirit Content Experience Tools (CXT), Integrierte Software, Java, Launcher |
| CORE-13511 | Diese Module und Erweiterungen sind kompatibel mit FirstSpirit 2021-04. |
Entwickler, FirstSpirit-Administrator, Module, Server-Administrator |
| CORE-13514 | Mit der aktuellen FirstSpirit-Version wurde ein Ressourcen-Problem aufgrund nicht beendeter Threads in FirstSpirit-Webanwendungen behoben. |
FirstSpirit-Administrator, Performance, Webserver |
| CORE-13524 | Es wurde ein Fehler beseitigt, der in FirstSpirit 2021-03 dazu führen konnte, dass URLs nicht korrekt erzeugt wurden und es bei der Generierung zu einer |
Entwickler, Generierung |
| CXT-1779 | Medien können jetzt auch aus der Medien-Verwaltung heruntergeladen werden. |
ContentCreator, Medien, Medien-Verwaltung, Redakteur |
| CXT-2069 | Die Inhalte von FS_CATALOG-Komponenten werden jetzt in der Übersetzungshilfe rekursiv in die Zielsprache übernommen (Funktionen „Alle Inhalte aus der Quell-Sprache übernehmen“ und „Inhalte für diesen Eintrag aus der Quell-Sprache übernehmen“), und damit um die Unterstützung von polymorphen Strukturen erweitert (z. B. sprachabhängige in sprachunabhängiger in sprachabhängiger Komponente). |
ContentCreator, Eingabekomponenten, Redakteur, Sprachen |
| CXT-2094 | Mit dem aktuellen Release kann in FirstSpirit ContentCreator und SiteArchitect jetzt die Auswahl von Variantendimensionen per FragmentDAP beeinflusst werden. |
ContentCreator, Eingabekomponenten, Entwickler, Redakteur, SiteArchitect, Vorlagenentwicklung |
| CXT-2100 | Optimierungen bei WebSocket-Event-basierten Aktualisierungen. |
ContentCreator, Performance, Sitzungen |
| CXT-2139 | Lange Menünamen werden jetzt geeignet gekürzt, falls erforderlich, und sind somit besser lesbar. |
ContentCreator, Redakteur |
| CXT-2240 | Ankündigung: CXT-Platform und FragmentCreator werden getrennt. Bei bestehenden Installationen sind für Nicht-Cloud-Kunden minimale Anpassungen erforderlich. |
Entwickler, FirstSpirit Content Experience Tools (CXT), FirstSpirit-API, FirstSpirit-Administrator, FragmentCreator, Migration, Modul-Entwicklung, Module |
| CXT-2257 | FirstSpirit Content Experience Tools: Aktuelle Modul-Versionen |
Entwickler, FirstSpirit Content Experience Tools (CXT), FirstSpirit-Administrator, FragmentCreator, Module |
| CXT-2258 | Die Anzeige von sprachabhängigen Medien im Auswahldialog von FS_INDEX mit Media DAP im FragmentCreator wurde optimiert. |
FirstSpirit Content Experience Tools (CXT), FragmentCreator, Medien, Medien-Verwaltung, Redakteur, Remote-Zugriff |
| CXT-2263 | Zeitweilig stand die Eingabekomponente CMS_INPUT_SECTIONLIST im FirstSpirit ContentCreator nicht zur Verfügung (Fehlermeldung: „Der Editor 'xyz' vom Typ 'CMS_INPUT_SECTIONLIST' wird nicht unterstützt.“) |
ContentCreator, Eingabekomponenten, Entwickler, Redakteur, Vorlagenentwicklung |
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 |