Release Notes FirstSpirit™ 2021.4

Release Notes

FirstSpirit™ 2021.4

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).

Für den Betrieb von FirstSpirit mit OpenJDK 16 ist ein FirstSpirit Launcher ab Version 1.0.38 oder höher erforderlich.

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:

UID=contentcreator_medium_download_icon

Handelt es sich um ein Medium, für das Dateien für unterschiedliche Sprachen zur Verfügung stehen, wird ein Kontextmenü eingeblendet:

UID=contentcreator_medium_download_sprachabhaengig

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>)$ (Standardeinstellung true):
    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>)$ (Standardeinstellung false):
    • 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 Attribut metaFormData ein leerer Wert ausgegeben, auch dann, wenn das Objekt über geerbte Metadaten verfügt.

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)
Eingabekomponente CMS_INPUT_PERMISSION (mit Aktivitäten)

Es handelt sich hierbei nicht um die Vergabe von Projekt- bzw. Redaktionsrechte, die in FirstSpirit fest definiert sind.

Ü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":null ausgegeben (siehe Beispiel 2, "activity":null)
  • 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 metadataIsInherited mit false ausgegeben, um anzuzeigen, dass die Benutzerrechte nicht geerbt sind.
  • 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 metadataIsInherited mit true ausgegeben, um anzuzeigen, dass die Benutzerrechte geerbt sind.
  • 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- / DateinameVersionsnummer
FirstSpirit CXT DAP Bridge
dataservice-[version].fsm
1.40
FirstSpirit CXT FragmentCreator
fragment-creator-[version].fsm
2.21
FirstSpirit Fragment DAP
fragmentdap-[version].fsm
1.36
FirstSpirit Media DAP
mediadap-[version].fsm
1.28*
FirstSpirit PageRef DAP
pageref-[version].fsm
1.6
FirstSpirit Markdown Editor
markdown-editor-[version].fsm
1.26*
FirstSpirit Tagging Editor
tagging-editor-[version].fsm
1.26
FirstSpirit CXT FragmentCreator - CaaS Integration
caas-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.xml oder 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 eine VARIANT-Definition vorhanden sein.
    Wird das Tag nicht angegeben, stehen alle Variantendimensionen zur Auswahl bereit.
    Jede VARIANT-Definition erfordert die Angabe der Attribute name und value:
  • 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 des name-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 eine VARIANT-Definition mit passendem name-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 des value-Attributs innerhalb von ENTRIES / ENTRY der 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 eine VARIANT-Definition mit passendem name- und value-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.

UID=contentcreator_fragmentdap_filter

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- / DateinameVersionsnummerKompatibel
FirstSpirit Aktualisierungsarchiv
fs-update-[version].tar.gz
1.0.12-
FirstSpirit Installationsarchiv
fs-install-[version].tar.gz
1.0.12-
FirstSpirit Launcher
FSLauncher.exe
1.0.39ab FirstSpirit 2018-08
FirstSpirit Launcher JRE Modul
fs-launcher-jre-[version].fsm
1.17ab FirstSpirit 2020-11
FirstSpirit SAML Login Modul
fs-saml-login-[version].fsm
1.1ab FirstSpirit 2019-02
FSDevTools
fs-cli-[version].tar.gz
fs-cli-[version].zip
2.6.9ab FirstSpirit 2020-08
FirstSpirit Module Gradle Plugin
firstspirit-module-gradle-plugin-[version].jar
1.0.2ab 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).

Weitere Informationen können dem Kapitel „Eingabekomponenten: JSON-Funktion: Unterstützung für CMS_INPUT_PERMISSION “ entnommen werden.

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.

Weitere Informationen können dem Kapitel „Eingabekomponenten: JSON-Funktion: JSON-Ausgabe vererbter Metadaten konfigurieren“ entnommen werden.

Eingabekomponenten, Entwickler, JSON-Unterstützung, Metadaten
CORE-13278

Für die Konfiguration des FirstSpirit Launcher über die Datei FSLauncher.vmoptions stehen neue Parameter zur Verfügung.

Weitere Informationen können dem Kapitel „Allgemeines: FirstSpirit Launcher: Neue Parameter zur Konfiguration über die Datei FSLauncher.vmoptions“ entnommen werden.

Launcher
CORE-13375

Über das Interface PreviewUrlAgent (FirstSpirit Developer-API, Package de.espirit.firstspirit.agency) können unter anderem Vorschau-URLs für Medien in Remote-Projekten erzeugt werden. In den Anwendungen ContentCreator und Omnichannel Manager konnten die damit zusammenhängenden Redirects in einigen Fällen nicht korrekt aufgelöst werden. Mit der aktuellen FirstSpirit Version wurde das Interface PreviewUrlAgent.MediaPreviewUrlBuilder für die Erzeugung von URLs für FirstSpirit-Medien vom Typ File oder Picture angepasst. Damit ist die Anzeige von Remote-Medien nun auch in den Anwendungen ContentCreator und Omnichannel Manager möglich.

ContentCreator, Entwickler, FirstSpirit Omnichannel Manager, FirstSpirit-API, Remote-Zugriff
CORE-13382

Aufträge werden erst gestartet, nachdem der Server vollständig hochgefahren ist.

Weitere Informationen können dem Kapitel „SiteArchitect / ServerManager: Aufträge werden erst nach vollständigem Serverstart ausgeführt“ entnommen werden.

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.

Weitere Informationen können dem Kapitel „Vorlagenentwicklung: Arbeitsabläufe: Weitere Konfigurationsmöglichkeit für kontextbezogene Informationen in E-Mails“ entnommen werden.

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).

Weitere Informationen können dem Kapitel „Allgemeines: Java: Unterstützung für OpenJDK 16“ entnommen werden.

Entwickler, FirstSpirit-Administrator, Java, Server-Administrator
CORE-13489

Mit dem aktuellen FirstSpirit-Release wurde intern verwendete Software aktualisiert.

Weitere Informationen können dem Kapitel „System: Aktualisierung von integrierter Fremdsoftware“ entnommen werden.

Entwickler, FirstSpirit Content Experience Tools (CXT), Integrierte Software, Java, Launcher
CORE-13511

Diese Module und Erweiterungen sind kompatibel mit FirstSpirit 2021-04.

Weitere Informationen können dem Kapitel „Kompatibilität: Module und Erweiterungen für FirstSpirit 2021-04“ entnommen werden.

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 java.lang.NullPointerException kam.

Entwickler, Generierung
CXT-1779

Medien können jetzt auch aus der Medien-Verwaltung heruntergeladen werden.

Weitere Informationen können dem Kapitel „ContentCreator: Medien-Verwaltung: Download von Medien“ entnommen 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.

Weitere Informationen können dem Kapitel „FirstSpirit Content Experience Tools (CXT): FragmentDAP: Variantenauswahl einschränken“ entnommen 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.

Weitere Informationen können dem Kapitel „FirstSpirit Content Experience Tools (CXT): Ankündigung: Trennung von CXT-Plattform und FragmentCreator “ entnommen werden.

Entwickler, FirstSpirit Content Experience Tools (CXT), FirstSpirit-API, FirstSpirit-Administrator, FragmentCreator, Migration, Modul-Entwicklung, Module
CXT-2257

FirstSpirit Content Experience Tools: Aktuelle Modul-Versionen

Weitere Informationen können dem Kapitel „FirstSpirit Content Experience Tools (CXT): Aktuelle Modul-Versionen“ entnommen werden.

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