Release Notes
1 Administration
1.1 FirstSpirit ist aktuell nicht kompatibel mit Tomcat 10
Apache Tomcat kann als externer Webserver mit FirstSpirit verwendet werden, und entweder auf demselben Host wie der FirstSpirit-Server oder auf einem eigenen, dedizierten Host (Standalone / Remote) betrieben werden.
FirstSpirit ist aktuell kompatibel mit den folgenden Tomcat-Versionen:
- Apache Tomcat 9.0.31 oder höher
- Apache Tomcat 8.5.51 oder höher
Mit der Veröffentlichung der Milestone-1-Version von Tomcat 10 am 20.02.2020 erfolgte ein Wechsel von Java EE zu Jakarta EE (siehe http://tomcat.apache.org/).
Damit änderte sich der Namensraum (Package) für alle implementierten APIs von javax.* zu jakarta.*. Diese Umstellung erfordert umfangreiche Anpassungen der FirstSpirit-Webapplikationen (FirstSpirit-Startseite, ContentCreator, etc.), um eine Migration von Tomcat 9.0 und niedriger auf Tomcat 10 und höher zu ermöglichen.
Zum aktuellen Zeitpunkt ist FirstSpirit inkompatibel zu Tomcat 10. Die Verwendung einer Tomcat-Version höher 9.0 wird ebenfalls nicht empfohlen.
1.2 ServerManager: Vorlagensätze löschen
Aus den Präsentationskanälen (z. B. „json“, „html“) des FirstSpirit-Servers werden Vorlagensätze (z. B. „Intranet“, „RSS-Feed“) für die Projekte definiert. Vorlagensätze werden über „FirstSpirit ServerManager / Projekt-Eigenschaften / Vorlagensätze“ für ein Projekt angelegt und bearbeitet.
Vorlagensätze können nun über „FirstSpirit ServerManager / Projekt-Eigenschaften / Vorlagensätze / Löschen“ aus dem Projekt entfernt werden (bisher konnten sie nur deaktiviert werden). Um ein versehentliches Löschen zu verhindern, wird vor dem Löschen ein zusätzliches Dialogfenster eingeblendet („Wollen Sie den Vorlagensatz wirklich löschen?“).
Das Löschen eines Vorlagensatzes kann nicht rückgängig gemacht werden!Sollte ein Vorlagensatz versehentlich aus einem Projekt entfernt worden sein, wenden Sie sich bitte umgehend an unseren Technical Support, um diesen Vorlagensatz wieder herzustellen.
Weiterführende Dokumentation zu Vorlagensätzen siehe Dokumentation für Administratoren.
2 ContentCreator
2.1 Neuer ContentCreator: Rollout für alle Kunden
Design und technische Basis des FirstSpirit ContentCreator wurden überarbeitet:
- Mit FirstSpirit 2020-01 wurde die Verwendung des überarbeiteten ContentCreator offiziell freigegeben. Seitdem konnten alle Kunden den ContentCreator im überarbeiteten Design nutzen, soweit dies in den Server-/Projekteinstellungen entsprechend konfiguriert wurde.
- Mit FirstSpirit 2020-02 wurde der „neue“ ContentCreator automatisch an alle Cloud-Kunden ausgerollt.
Mit dem aktuellen Release wird der „neue“ ContentCreator jetzt automatisch für alle Projekte verwendet, die mit dem ContentCreator gestartet werden (für Cloud- und On-Premises-Kunden).
Bei Bedarf kann projektweise zum „klassischen“ ContentCreator zurückgewechselt werden, und zwar durch Deaktivieren der Checkbox „Neues Design verwenden“ auf dem Register „ContentCreator“ im FirstSpirit ServerManager unter „Server-Eigenschaften / Web-Applikationen“ bzw. „Projekt-Eigenschaften / Web-Komponenten“. Siehe dazu FirstSpirit Dokumentation für Administratoren, FirstSpirit ServerManager / Server-Eigenschaften / Web-Applikationen bzw. FirstSpirit ServerManager / Projekteigenschaften / Web-Komponenten.
Mit FirstSpirit 2020-07 wird der ContentCreator im „alten“ Design jedoch planmäßig entfallen, daher lautet die Empfehlung, möglichst früh den „neuen“ ContentCreator für alle Projekte einzusetzen.
Warum wurde der ContentCreator überhaupt überarbeitet und wie? – Einen Blick hinter die Kulissen der Designentwicklung für den neuen ContentCreator gewährt Ihnen unser Blog-Beitrag: www.e-spirit.com/de/blog/contentcreator_redesign.html.
Interaktive Hilfen und Dokumentation
Im Rahmen des Redesigns werden jetzt standardmäßig vermehrt Hinweise im ContentCreator angezeigt, die dem Nutzer die Änderungen nahebringen. Sie können in einem Hinweis ausgeschaltet werden („Alle Hinweise deaktivieren“).
Die Benutzerdokumentation für den ContentCreator sowie die Dokumentation für Entwickler („FirstSpirit Online Dokumentation“ (ODFS)) wurde großflächig überarbeitet und an das neue Design angepasst, andere Dokumentationen folgen. Die Darstellung in der Dokumentation entspricht daher stellenweise noch nicht der Oberfläche im neuen Design und kann sich von dem ContentCreator unterscheiden, den Sie im Einsatz haben.
Hinweise zum Betrieb des neuen FirstSpirit ContentCreator
- Bis FirstSpirit 2020-01 einschließlich musste für eine uneingeschränkte Verwendung des neuen FirstSpirit ContentCreator die Option Pluggability auf „Aktiv“ gestellt werden. Seit FirstSpirit 2020-02 wird für den neuen FirstSpirit ContentCreator die Pluggability erzwungen. Das bedeutet: Wird der neue FirstSpirit ContentCreator verwendet, wird der Pluggability-Modus automatisch systemseitig aktiviert (Log-Eintrag:
WARN 03.02.2020 15:58:20.902 (de.espirit.firstspirit.server.module.WebServerManagerImpl): Force enabled pluggability for 'fs5webedit' in project '-1'.). In der Oberfläche wirkt sich dies nicht aus, sodass die Option „Pluggability“ ggf. auf „Inaktiv“ steht, obwohl die Option aktiviert ist.
Zu weiteren Informationen zur Option „Pluggability“ siehe auch FirstSpirit Dokumentation für Administratoren, Seite Web-Applikationen bzw. Web-Komponenten. - Der Technologiewechsel des ContentCreator („MicroApp Framework“) führt zu einem erhöhten Ressourcenbedarf und erhöhten Systemanforderungen. Dies macht sich speziell während der aktuellen Übergangszeit bemerkbar, in der der „neue“ und der „alte“ ContentCreator parallel betrieben werden können.
- Daher sollten die Ressourcen speziell im Bereich des eingesetzten Applikations-Servers (z. B. Apache Tomcat) geprüft und ggf. aufgestockt werden, speziell der Festplattenplatz und der Java-Heap.
- Der ContentCreator sollte, soweit möglich, als globale Web-Applikation verwendet werden. Als eigene Projektinstanz („projektlokal“) sollte der ContentCreator nur betrieben werden, wenn dies unbedingt nötig ist.
- Beim Einsatz von Apache Tomcat als Application-Server wird grundsätzlich nach jeder Aktualisierung von FirstSpirit ein Neustart des Apache Tomcat empfohlen.
- Wenn als Webserver „Jetty Web Server“ eingesetzt werden soll, muss FirstSpirit mindestens in Version 2019-12 verwendet werden.
2.2 Projektauswahl
Mit dem aktuellen Release wurde das Handling der Projektauswahl verbessert:
Steht dem Redakteur nur ein Projekt auf einem Server zur Verfügung, wird beim Starten des ContentCreator über die FirstSpirit Startseite über folgendes Icon

dieses Projekt direkt gestartet. Es wird nicht mehr der Projektauswahldialog angezeigt.
Stehen dem Redakteur mehrere Projekte auf einem Server zur Vefügung, kann er darüber hinaus jetzt einfach zwischen den Projekten wechseln, und zwar über die neue Funktion „Projekt wechseln“ im Menü „Weitere Funktionen“ (3 Punkte):

Mit dieser Funktion wird der Benutzer abgemeldet, und es öffnet sich der Projektauswahldialog, aus dem der Benutzer das gewünschte Projekt zur Bearbeitung (per ContentCreator) auswählen kannn:

3 FirstSpirit Content Experience Tools (CXT)
3.1 Aktuelle Modul-Versionen
Folgende Modul-Versionen für „FirstSpirit Content Experience Tools“ werden von FirstSpirit 2020-03 unterstützt:
| Modul- / Dateiname | Versionsnummer |
FirstSpirit CXT DAP Bridgedataservice-[version].fsm | 1.26 |
FirstSpirit CXT FragmentCreatorfragment-creator-[version].fsm | 2.1 |
FirstSpirit Fragment DAPfragmentdap-[version].fsm | 1.22 |
FirstSpirit Media DAPmediadap-[version].fsm | 1.22* |
FirstSpirit Markdown Editormarkdown-editor-[version].fsm | 1.19* |
FirstSpirit Tagging Editortagging-editor-[version].fsm | 1.19 |
FirstSpirit CXT FragmentCreator - CaaS Integrationcaas-integration-[version].fsm | 1.18 |
* Diese Module benötigen ab dieser Version FirstSpirit 2020-03 oder höher.
3.2 Markdown: Verlinkungen per "DataAccessPlugin"
Die Eingabe von formatierten Texten im FragmentCreator erfolgt über die Eingabekomponente FS_MARKDOWN.
Beispiel-Syntax:
<FS_MARKDOWN name="text" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="Content"/>
<LANGINFO lang="DE" label="Inhalt"/>
</LANGINFOS>
</FS_MARKDOWN>Bisher war bei Verwendung des Markdown-Editor „Quill“ (siehe dazu Datei web.xml, Parameter markdownEditorType, Wert: quill oder leer) neben Formatierungen eine Verlinkung von Text möglich, und zwar über das Icon
Mit dem aktuellen Release können über dieses Icon weitere Referenzierungsmöglichkeiten zur Verfügung gestellt werden. Dazu muss ein entsprechendes DataAccessPlugin (DAP) spezifiziert werden, über das die Referenzen im Projekt bereitgestellt werden. Dieses DataAccessPlugin muss das Interface UrlSupporting implementieren (FirstSpirit Developer-API, Package de.espirit.firstspirit.client.plugin.dataaccess.aspects, ebenfalls neu mit FirstSpirit 2020-03, siehe Kapitel 5.2: „DAP: Neuer Aspekt 'UrlSupporting' für die URL-Erzeugung“).
Aktuell kann beispielsweise das „Media Data Access Plugin“ angebunden werden, das im Standard-Lieferumfang des MicroApp Framework / FirstSpirit Content Experience Tools enthalten ist. Über dieses Plugin können Bilder und Dateien anderer Formate im Markdown-Editor referenziert werden.
Beispiel-Syntax FS_MARKDOWN
<FS_MARKDOWN name="text" useLanguages="no">
<DATALINKSOURCES>
<DATALINKSOURCE name="files" mode="file"
plugin="FirstSpiritMediaAccess/Connector">
<LANGINFOS>
<LANGINFO lang="*" label="Files"/>
<LANGINFO lang="DE" label="Dateien"/>
</LANGINFOS>
</DATALINKSOURCE>
<DATALINKSOURCE name="pictures" mode="picture"
plugin="FirstSpiritMediaAccess/Connector">
<LANGINFOS>
<LANGINFO lang="*" label="Pictures"/>
<LANGINFO lang="DE" label="Bilder"/>
</LANGINFOS>
</DATALINKSOURCE>
</DATALINKSOURCES>
<LANGINFOS>
<LANGINFO lang="*" label="Content"/>
<LANGINFO lang="DE" label="Inhalt"/>
</LANGINFOS>
</FS_MARKDOWN>Die Referenzierung im Markdown-Editor wird über die Angabe des Tag
DATALINKSOURCESermöglicht.
Definition des zu verwendenden DataAccessPlugin
Welches DataAccessPlugin in der jeweiligen Markdown-Komponente zur Referenzierung Verfügung stehen soll, wird über das Pflicht-Tag
DATALINKSOURCEdefiniert. Dazu sind folgende Pflicht-Attribute erforderlich:
name
pluginDabei ist name ein komponentenweit eindeutiger Bezeichner für den Referenztyp. Über diesen Bezeichner kann in der Ausgabe / in JSON auf den für den Referenztyp gespeicherten Wert zugegriffen werden.
Über das Attribut plugin muss das gewünschte DataAccessPlugin angegeben werden, für das „Media Data Access Plugin“ beispielsweise
plugin="FirstSpiritMediaAccess/Connector"Es können auch mehrere unterschiedliche DataAccessPlugins angegeben werden.
Über das Attribut label kann eine sprachabhängige Beschriftung des DataAccessPlugin in der Liste der auszuwählenden Referenzierungstypen im Markdown-Editor realisiert werden.
Konfiguration der Auswahl (über „Media Data Access Plugin“)
Über das optionale Attribut
modekann bei Verwendung des „Media Data Access Plugin“ eingeschränkt werden (analog zur Definition in FS_INDEX mit „Media Data Access Plugin“), ob nur Bilder (mode="picture") oder nur Dateien anderen Formats (mode="file") auswählbar sein sollen. Standardmäßig (ohne Angabe von mode) können alle Elementtypen als Referenz ausgewählt werden.
Standardmäßig erfolgt bei Verwendung des „Media Data Access Plugin“ eine Auswahl der Referenzen aus der gesamten Medien-Verwaltung des lokalen Projekts.
Die Auswahl kann auf spezielle Ordner beschränkt werden, und zwar über die Angabe der Tags PROJECT und FOLDER. Der Referenzname des gewünschten Ordners wird über das Attribut uid angegeben, z. B.
<PROJECT>
<FOLDER uid="contact"/>
</PROJECT>Soll eine Auswahl von Medien aus einem Remote-Projekt möglich sein, kann dies ebenfalls über das Tag PROJECT definiert werden. Über den Pflichtparameter remote muss dabei der symbolische Projektname des Remote-Projekts angegeben werden, z. B.
<PROJECT remote="media">Beispiel-Syntax:
...
<DATALINKSOURCES>
<DATALINKSOURCE name="pictures" mode="picture"
plugin="FirstSpiritMediaAccess/Connector">
<LANGINFOS>
<LANGINFO lang="*" label="Pictures"/>
<LANGINFO lang="DE" label="Bilder"/>
</LANGINFOS>
<PROJECT>
<FOLDER uid="contact"/>
</PROJECT>
</DATALINKSOURCE>
</DATALINKSOURCES>
...Ansicht im FragmentCreator

Einfügen einer Verlinkung

Inline-Ansicht einer Bild-Referenzierung
Ausgabe / JSON
Die JSON-Ausgabe des Markdown-Editors wurde entsprechend erweitert:
Attribut dataLinks: Dieses Attribut ist in der JSON-Ausgabe vorhanden, sobald eine Referenz per DataAccessPlugin in der Markdown-Komponente enthalten ist.
Die Verlinkung / die Referenz wird dabei über ein spezielles, intern verwendetes Link-Schema abgebildet:
dap://{linkSource}/{objectId}dap://: URI-Schema/Protokoll{linkSource}: Bezeichner der DAP-Konfiguration in der Markdown-Komponente (Attributnameim TagDATALINKSOURCE){objectId}: Bezeichner des vom Redakteur gewählten DAP-Objekts
Die hier über geschweifte Klammern angegebenen Werte sind URL-encoded. Aufgelöst könnte ein Beispiel folgendermaßen aussehen:
[link text](dap://pictures/id1234)Dabei ist [link text] der Text in der Markdown-Komponente, der verlinkt ist.
Attribute identifier, url, value: Diese Attribute im dap-Objekt stammen aus der Implementierung des verwendeten DataAccessPlugin:
identifier: Bezeichner des durch den Redakteur gewählten DAP-Objektsurl: aufgelöste URL des durch den Redakteur gewählten DAP-Objektsvalue: JSON-Ausgabe, die das DataAccessPlugin für das durch den Redakteur gewählten DAP-Objekts liefert
Attribute htmlExt, markdownExt, textExt: Kann eine der im Markdown-Editor enthaltenen DAP-Verlinkungen aufgrund der Implementierung des verwendeten DataAccessPlugin in eine externe URL umgewandelt werden, werden diese Attribute zusätzlich zu den für die interne Abbildung verwendeten Attribute ohne Suffix Ext erzeugt. Im Falle von Medien kann eine externe URL dann beispielsweise eine URL sein, unter der das Bild betrachtet und / oder heruntergeladen werden kann.
Beispiel JSON-Ausgabe einer Markdown-Komponente:
{
"html": "<p><a href=\"dap:\/\/linkSource\/id1234\">link text<\/a><\/p>\n",
"markdown": "[link text](dap:\/\/linkSource\/id1234)",
"text": "\"link text\" (dap:\/\/linkSource\/id1234)",
"htmlExt": "<p><a href=\"#1234\">link text<\/a><\/p>\n",
"markdownExt": "[link text](#1234)",
"textExt": "\"link text\" (#1234)",
"dataLinks": {
"dap:\/\/linkSource\/id1234": {
"identifier": "id1234",
"url": "#1234",
"value": {
"store": "mediastore",
"id": 1234
}
}
}
}Zugriff in der Vorlage
Der Zugriff auf Inhalte mit aufgelösten Referenzierungen kann zum Beispiel über das erzeugte JSON erfolgen:
$CMS_VALUE(json(#this).get("markdown").get("value").get("htmlExt"))$Für den Markdown-Editor „SimpleMDE“ wird aktuell keine Referenzierung per DataAccessPlugin unterstützt.Weiterführende Informationen
- Modul Markdown-Editor
- Konfiguration der Eingabekomponente FS_MARKDOWN
- Allgemeines zur JSON-Ausgabe
4 Modul-Entwicklung, Skripte, API
4.1 DAP: Neuer Aspekt "UrlSupporting" für die URL-Erzeugung
Mithilfe der Eingabekomponente FS_INDEX ist es möglich, externe Komponenten oder Module anzubinden, die der Eingabekomponente Daten zur Verfügung stellen sollen. Die Daten werden über sogenannte „DataAccessPlugins“ zur Verfügung gestellt. Diese Daten können dann über FS_INDEX ausgewählt, d.h. referenziert werden. Funktion und Aussehen sind dabei stark von der individuellen Implementierung des Plug-ins abhängig. Die Implementierung eines „DataAccessPlugin“ erfolgt u.a. über die Packages de.espirit.firstspirit.client.plugin.dataaccess und de.espirit.firstspirit.client.plugin.dataaccess.aspects der FirstSpirit Developer-API.
Mit dem aktuellen Release wurde das Package de.espirit.firstspirit.client.plugin.dataaccess.aspects um den Aspekt UrlSupporting erweitert.
Mittels diesem kann ein URL-String für ein Objekt, das aus einem „DataAccessPlugin“ stammt, ermittelt werden. Dazu wird ein UrlGenerationContext übergeben (gleichnamiges neues Interface im selben Package). Dieser gewährt u.a. Zugriff auf den zu verwendenden URL-Creator (Provider), die Sprache und den Bearbeitungsstand des Objekts (freigegeben bzw. nicht freigegeben).
Die JSON-Erzeugung der FS_INDEX Eingabekomponente und dessen Einträge wurde (falls ein DAP diesen Aspekt implementiert) um ein Attribut url erweitert:
{
"identifier": "...",
"fsType": "...",
"value": {...},
"valueSchema": {...},
"url": "..."
}Für ein Medium aus dem „Media Data Access Plugin“ (Media DAP) kann der Wert beispielsweise lauten
"/media/Solar_panel.png"Eine beispielhafte Verwendung des neuen Aspekts könnte so aussehen:
final UrlSupporting<T> urlSupporting = dapSession.getAspect(UrlSupporting.TYPE);
if (urlSupporting != null) {
UrlGenerationContext context = UrlGenerationContext.builder().from
(jsonOrGenerationContext).create();
Optional<String> dapObjectUrl = urlSupporting.getUrl(context, dapObject);
}Hinweis: Tritt bei der Generierung der URL im DAP ein Fehler auf (z. B. java.lang.NullPointerException), wird dies lediglich als Warnung im Log festgehalten, und es erfolgt keine JSON-Ausgabe.
Beispiel „Media Data Access Plugin“ (Media DAP)
Der neue Aspekt wurde mit FirstSpirit 2020-03 in das Modul „Media Data Access Plugin“ (Media DAP), das im Standard-Lieferumfang des MicroApp Framework / FirstSpirit Content Experience Tools enthalten ist, aufgenommen. Über dieses Plugin können Bilder und Dateien anderer Formate im Markdown-Editor referenziert werden. Siehe dazu auch Kapitel 3.2: „Markdown: Verlinkungen per 'DataAccessPlugin'“.
4.2 Neuer Aspekt "FormReferenceContaining" (Model-Referenzen eines Formularelements bereitstellen)
Die (gepflegten) Werte von FirstSpirit Eingabekomponente können Referenzen auf andere Objekte beinhalten (sogenannte „Werte-Referenzen“).
So hält eine Eingabekomponente vom Typ FS_INDEX (mit DatasetDataAccessPlugin) bspw. Referenzen auf alle Datensätze, die über diese Eingabekomponente referenziert werden.
Neben diesen Werte-Referenzen kann eine Eingabekomponente weitere Referenzen besitzen, die die GOM-Repräsentation (FirstSpirit GUI Object Model (GOM)) der Eingabekomponente betreffen (sogenannte „Model-Referenzen“).
Bei einer Eingabekomponente vom Typ FS_INDEX (mit DatasetDataAccessPlugin) ist das bspw. die Referenz zur gewünschten Tabellenvorlage (die im Tag TEMPLATE im Formularbereich der Vorlage definiert wird).
Die Model-Referenzen eines Formular-Elements (z. B. einer Eingabekomponente) können mit dem aktuellen FirstSpirit-Release durch den Entwickler einer Eingabekomponente über den Aspekt FormReferenceContaining mithilfe der Methode List<Reference> collectFormReferences(F formElement) bereitgestellt werden (FirstSpirit Developer-API, Package de.espirit.firstspirit.client.access.editor).
Die Werte-Referenzen eines Formular-Elements können, wie bisher auch, weiterhin über den Aspekt ReferenceContaining<T> bereitgestellt werden (FirstSpirit Developer-API, Package de.espirit.firstspirit.client.access.editor).
5 Sicherheit
Apache Tomcat AJP: Sicherheitslücke (Ghostcat)
Eine chinesische Sicherheitsfirma hat eine Schwachstelle im vom Tomcat genutzten binären Kommunikationsprotokoll Apache JServ Protocol (AJP) aufgezeigt. Diese Schwachstelle wurde auf den Namen „Ghostcat“ getauft und wird unter der CVE-Nummer CVE-2020-1938 geführt.
Nachweislich betroffen sind auch folgende, von e-Spirit bisher empfohlene, Tomcat-Versionsreihen:
- Apache Tomcat 8.x vor Version 8.5.51 und
- Apache Tomcat 9.x vor Version 9.0.31
Weiterhin empfehlen wir, in jeder Installation die AJP-Connector-Konfiguration zu prüfen und ggfs. anzupassen, da in der Konfigurationsdatei
server.xml der AJP-Connector vor den o.g. Versionen standardmäßig aktiviert war.Zwischenzeitlich wurden die Apache Tomcat Versionen 8.5.51 und 9.0.31 veröffentlicht, die als abgesichert gelten und das zugrundeliegende Konfigurationsproblem in der Standardkonfiguration beheben.
Mit diesen Versionen wurde das Standardverhalten des AJP-Connectors geändert:
- Der AJP-Connector hört in der Standardeinstellung nur noch auf die Loopback-Adresse (vorher alle).
- Zusätzlich muss nun ein Secret für die Verbindung angegeben werden. (Bei Bedarf kann die Secret-Pflicht auch durch den Parameter
secretRequiredgeändert werden.)
Für die notwendigen Anpassungen konsultieren Sie bitte den Migrationsleitfaden des Apache Tomcats:
- für die Version 8.5 bzw.
- für die Version 9.0
Weitere Informationen können auch den Ghostcat-Hinweisen der einzelnen Linux-Distributionen entnommen werden, z. B. für RHEL: access.redhat.com/solutions/4851251
6 System
6.1 Aktualisierung von integrierter Fremdsoftware
Mit dem aktuellen FirstSpirit-Release wurde folgende intern verwendete Software aktualisiert:
Java
Das JRE, das standardmäßig zum Betrieb von FirstSpirit SiteArchitect und ServerManager verwendet wird, wurde von Version 11.0.5 auf Version 11.0.6 aktualisiert.
Dabei handelt es sich um die von e-Spirit empfohlene Java-Version. Bei Verwendung des Moduls „FirstSpirit Launcher JRE“ entspricht dies dem Konfigurationspunkt „Default“.
Es wurden im Modul „FirstSpirit Launcher JRE“ enthaltene Java-Versionen aktualisiert: AdoptOpenJDK 13.0.1 auf Version 13.0.2, AdoptOpenJDK 8u232 auf Version 8u242 („Outdated“).
Install4j (Verwendung für den FirstSpirit Launcher)
Aktualisierung von Version 8.0.2 auf Version 8.0.4.
ASM (Bibliothek für die Analyse und Modifikation von Java-Bytecode)
Aktualisierung von Version 7.2 auf Version 7.3.1.
Apache FOP (Formatting Objects Processor)
Über das Modul fs-fop.fsm (für die Ausgabe von FirstSpirit-Inhalten im PDF-Format).
Aktualisierung von Version 2.2 auf Version 2.4.
Pack200 entfällt (Jar Packing Tool)
Die Pack200-Komprimierung der jar-Dateien, die beim Ausführen der FirstSpirit-Desktop-Anwendungen vom Server zum Anwender-Rechner übertragen werden, wurde als Vorbereitung auf die kommende Java14-Unterstützung ausgebaut. Sofern die FirstSpirit-Desktop-Anwendungen noch über Java Web Start gestartet werden, werden nun die unkomprimierten jars übertragen. (Die Java Web Start-Funktionalität ist in Oracle Java 8 noch enthalten, mit Oracle Java 11 jedoch entfallen. OpenJDK bietet keine vergleichbare Technologie).
Java Service Wrapper (Konfiguration und Überwachung der FirstSpirit Java VM)
Aktualisierung von Version 3.5.39 auf Version 3.5.42.
Hinweis: Bei einer Aktualisierung des FirstSpirit-Servers (Auto-Update, Inplace-Upgrade) werden die Dateien des Java Service Wrappers nicht automatisch aktualisiert. Der Java Service Wrapper kann gemäß FirstSpirit Installationsanleitung über das Tar-Gzip-Aktualisierungsarchiv (Datei fs-update-5.2.*.tar.gz) aktualisiert werden.
Weiterführende Dokumentation:
6.2 FirstSpirit-Server: Neue Steuerungsdateien für Windows und Linux
Voraussetzungen für den Betrieb eines FirstSpirit-Servers sind Java und der Java Service Wrapper. Der Java Service Wrapper und zugehörige Steuerungsdateien werden von e-Spirit über:
- das Installationsarchiv (für Neuinstallationen) bzw.
- das Aktualisierungsarchiv (für bestehende Installationen) bereitgestellt.
Beide Archive sind per Download erhältlich (für Zugangsdaten wenden Sie sich bitte an den Technical Support).
Die Steuerungsdateien für Windows- und Linux-Betriebssysteme, die in beiden Archiven enthalten sind, wurden mit dem aktuellen FirstSpirit-Release, um zwei neue Steuerungsdateien ergänzt.
Die neuen Steuerungsdateien unterstützen eine Reihe von Funktionen, die durch die bisherigen Steuerungsdateien nicht abgedeckt wurden (u.a. install unter Linux). Der Funktionsumfang der neuen Steuerungsdateien kann in der Kommandozeile über die integrierte Hilfe (Usage, Command syntax, Commands) aufgerufen werden, beispielsweise über den Aufruf fs-server (unter Linux):
test@fs_example:~$ fs-server
Usage: /home/fs_example/firstspirit/bin/fs-server [ console | start | stop | restart |
condrestart | status | install | installstart | remove | dump ]
Commands:
console Launch in the current console.
start Start in the background as a daemon process.
stop Stop if running as a daemon or in another console.
restart Stop if running and then start.
condrestart Restart only if already running.
status Query the current status.
install Install to start automatically when system boots.
installstart Install and start running as a daemon process.
remove Uninstall.
dump Request a Java thread dump if running.Das Ergebnis dieser Neuentwicklung kann ab FirstSpirit 2020-03 im Rahmen eines Early Access-Programms (EAP) ausprobiert werden. Ein frühes, konstruktives Feedback hilft uns, Probleme schneller und einfacher zu identifizieren und fehlende Funktionalität zu ergänzen. Bitte wenden Sie sich für Feedback an unseren Technical Support (für Partner) oder an Ihren zuständigen Account-Manager (für Kunden).
Da sich die neuen Steuerungsdateien (fs-server) noch in der EAP-Phase befinden, wird ein Einsatz in produktiven Umgebungen noch nicht empfohlenSteuerungsdateien im Installations- bzw. Aktualisierungsarchiv:
- Neu: fs-server (für Linux)
- Neu: fs-server.bat (für Windows)
- fs5 (für Linux)
- fs5.cmd (für Windows)
Voraussetzung für die Verwendung der neuen Steuerungsdateien:
Es ist ein Update des Tanuki Java Service Wrappers auf Version 3.5.42 notwendig.
Weiterführende Dokumentation:
7 Vorlagenentwicklung
Erweiterte Ausgabemöglichkeiten für Schnipsel
An vielen Stellen in den FirstSpirit-Clients kann die Darstellung von Objekten (Seiten, Absätze, Datensätze, Medien usw.) beeinflusst werden, und zwar beispielsweise in Suchergebnislisten, Reports, Auswahldialogen usw. Dazu werden die so genannten „Schnipsel“ verwendet. Die Konfiguration erfolgt auf dem Register „Schnipsel“ der betreffenden Vorlage, für Medien auf dem Register „Schnipsel“ der für das Projekt gewählten Metadaten-Vorlage.
Mit dem aktuellen Release wurden die Ausgabemöglichkeiten für Schnipsel erweitert. So können beispielsweise der Anzeigename oder die UID des gewünschten Elements ausgegeben werden. Dazu stehen auf dem Register „Schnipsel“ in den Feldern „Kennsatz“ und „Ausriss“ jetzt die Variable
#itemzur Verfügung.
Sie gibt das jeweilige Baumelement zurück. Auf diesem können wiederum objektspezifische Methoden aus dem Interface IDProvider (FirstSpirit Access-API, Package de.espirit.firstspirit.access.store) angewendet werden.
Beispiele
#item.getDisplayName(#language)Gibt den Anzeigename des betreffenden Objekts in der jeweiligen Sprache aus.
#item.UidGibt die UID des betreffenden Objekts aus.
Beispiel
#item.getDisplayName(#language)
"[UID:" + " " +italic(#item.getUid) + "]"Für Datensätze ist die Verwendung von #item.getDisplayName() nicht zulässig, da dies den Schnipsel an sich ausgibt. Stattdessen wird der Standardwert für den Schnipsel angezeigt (Name der Datenquelle und ID des Datensatzes, getrennt durch ein #-Zeichen). Die GID eines Datensatzes lässt sich beispielsweise über
#item.getEntity().getGid()ausgeben.
Darüber hinaus steht #item nicht im Datentyp Card zur Verfügung.
Für Medien (Schnipsel der Metadaten-Vorlage) stehen darüber hinaus folgende Variablen zur Verfügung:
- #medium: ermittelt Informationen zum Medium im Format XML (PICTURE oder FILE)
- #mediumtype: ermittelt, ob es sich um ein Bild oder eine Datei handelt (PICTURE oder FILE)
- #extension: ermittelt die Dateiendung
- #filename: ermittelt den Dateinamen
- #filesize: ermittelt die Dateigröße in Byte
- #mimetype: ermittelt den MIME-Typ
- #resolution: ermittelt die Abmessungen des Bildes in Pixeln (nur für
PICTURE)
Beispiel
Kennsatz:
#filename + "." + #extension + if(#mediumtype == "Picture", " (" + #resolution
+ "px)", "")Ausriss:
#item.displayName(#item.project.masterLanguage) + " (" + #mimetype + ")"Gibt als Titel den Dateinamen mit Dateiendung sowie die Auflösung des jeweils gewählten Mediums, als Textausschnitt den Anzeigenamen sowie den MIME-Typ an.

#item nicht zur Verfügung, und es wird eine Warning vom Typ java.lang.UnsupportedOperationException bzw. java.lang.RuntimeException geloggt („Expression failed“). Dies sollte bei der Vorlagenentwicklung berücksichtigt werden. Zu weiterführenden Informationen zu Schnipseln siehe auch FirstSpirit Online Dokumentation, https://docs.e-spirit.com/odfs/vorlagenentwick/schnipsel/index.html
Übersicht
| ID | Beschreibung | Kategorien |
|---|---|---|
| CORE-3312 | Über „FirstSpirit ServerManager / Projekt-Eigenschaften / Vorlagensätze / Löschen“ können Vorlagensätze eines Projekts jetzt gelöscht werden. Diese Aktion kann nicht rückgängig gemacht werden. |
FirstSpirit-Administrator, ServerManager, Vorlagen-Verwaltung |
| CORE-10498 | Die Ausgabemöglichkeiten für Schnipsel wurden erweitert ( |
Entwickler, FirstSpirit-API, Redakteur, Schnipsel |
| CORE-11516 | Beim Kopieren von Elementen per Methode |
Entwickler, FirstSpirit-API |
| CORE-11522 | Es wurde ein Fehler behoben, der bei der Verwendung des Assistenten zur Medienübernahme dazu führen konnte, dass Ordnerstrukturen aus dem Dateisystem nicht in die FirstSpirit-Medienverwaltung übernommen wurden. |
Medien-Verwaltung, SiteArchitect |
| CORE-11772 | Mit dem aktuellen FirstSpirit-Release wurde intern verwendete Software aktualisiert. |
FirstSpirit-Administrator, Integrierte Software, Java, Launcher, Module |
| CORE-11808 | Neues Interface |
Data Access Plugin, Entwickler, FirstSpirit Content Experience Tools (CXT), FragmentCreator, Medien, Redakteur |
| CORE-11857 | Die Model-Referenzen eines Formular-Elements (z. B. einer Eingabekomponente) können mit dem aktuellen FirstSpirit-Release durch den Entwickler einer Eingabekomponente über den Aspekt |
Entwickler, FirstSpirit-API, Vorlagenentwicklung |
| CORE-11859 | Beim Start eines FirstSpirit-Servers stehen Informationen über den aktuellen Runlevel zur Verfügung. Es wurde ein Fehler behoben, der dazu führte, dass bei der Nutzung eines externen Webservers der Runlevel des FirstSpirit-Servers (nach einem Neustart) nicht korrekt war, wenn der externe Webserver nicht ebenfalls neu gestartet wurde. Dieser Fehler hatte keine Auswirkungen auf die Funktionalität der Webanwendungen. Nun wird der korrekte Runlevel spätestens 15 Minuten nach dem Start des FirstSpirit-Servers erreicht. |
Server-Administrator, Webserver |
| CORE-11878 | Es wurde ein mögliches Memory leak im ContentCreator beseitigt. |
ContentCreator, FirstSpirit-Administrator |
| CORE-11919 | Die Steuerungsdateien für Windows- und Linux-Betriebssysteme wurden mit dem aktuellen FirstSpirit-Release ergänzt. Die neuen Steuerungsdateien unterstützen eine Reihe von Funktionen, die durch die bisherigen Steuerungsdateien nicht abgedeckt wurden (u.a. |
Launcher, Server-Administrator |
| CORE-11932 | Rollout des neuen ContentCreator für alle Kunden |
ContentCreator, FirstSpirit-Administrator, Module, Redakteur, ServerManager |
| CORE-11992 | Es wurde eine Schwachstelle im vom Tomcat genutzten binären Kommunikationsprotokoll Apache JServ Protocol (AJP) entdeckt (Ghostcat CVE-2020-1938). Die Sicherheitslücke wird als kritisch eingestuft. e-Spirit empfiehlt daher eine zeitnahe Aktualisierung auf eine abgesicherte Tomcat-Version (8.5.51 oder 9.0.31). Weiterhin empfehlen wir, in jeder Installation die AJP-Connector-Konfiguration zu prüfen und ggfs. anzupassen, da in der Konfigurationsdatei |
FirstSpirit-Administrator, Server-Administrator, Sicherheit, Webserver |
| CORE-11993 | Durch den Wechsel von Java EE zu Jakarta EE und der damit verbundenen Änderung des Namensraums (Package) im Tomcat 10, ist FirstSpirit zum aktuellen Zeitpunkt nicht kompatibel mit Tomcat 10. |
FirstSpirit-Administrator, Server-Administrator, Webserver |
| CXT-652 | Mit dem aktuellen Release können im Markdown-Editor Quill projektspezifische Referenzierungsmöglichkeiten zur Verfügung gestellt werden. |
Data Access Plugin, Entwickler, FirstSpirit Content Experience Tools (CXT), FragmentCreator, Medien, Redakteur |
| CXT-742 | Inhalte aus dem FragmentCreator können bei entsprechender Konfiguration auch im ContentCreator bearbeitet werden. Änderungen werden jetzt direkt bei Schließen des entsprechenden Formulars in der Vorschau sichtbar, nicht erst nach einer manuellen Aktualisierung der Vorschauseite. |
ContentCreator, FirstSpirit Content Experience Tools (CXT), FragmentCreator, Redakteur |
| CXT-1224 | Mit dem aktuellen Release können die Informationen zum aktuellen Projekt, zur eingesetzten FirstSpirit-Version und zur FirstSpirit-Lizenz im neuen ContentCreator wieder über das Icon „In die Zwischenablage kopieren“ kopiert werden. Zuvor konnte es bei Verwendung von Google Chrome zu einer Fehlermeldung vom Typ |
ContentCreator, Entwickler, Redakteur |
| CXT-1245 | Mit dem aktuellen Release wurde das Handling der Projektauswahl verbessert. Weitere Informationen können dem Kapitel „ContentCreator: Projektauswahl“ entnommen werden. |
ContentCreator, FirstSpirit Startseite, Projektwechsel, Redakteur |
| CXT-1290 | Die Sicherheit des MicroApp Framework und des FragmentCreator wurde erhöht, vor allem im Hinblick auf Cross-Site-Request-Forgery-Angriffe. |
FirstSpirit Content Experience Tools (CXT), FirstSpirit-Administrator, FragmentCreator, Redakteur, Sicherheit |
| CXT-1296 | In seltenen Fällen wurden Seiten, die im ContentCreator neu angelegt wurden, nicht direkt in der Vorschau angezeigt. |
ContentCreator, Redakteur |
| CXT-1300 |
|
ContentCreator, Entwickler, Sprachen |
| CXT-1301 | Die sprachliche Darstellung im neuen ContentCreator wurde korrigiert (Oberflächensprache). |
Arbeitsablauf, ContentCreator, Entwickler, Redakteur |
| CXT-1302 | Die Eingabekomponente CMS_INPUT_DATE dient der Erfassung von Datum und / oder Uhrzeit. |
Eingabekomponenten, Entwickler, FirstSpirit Content Experience Tools (CXT), FragmentCreator, Redakteur |
| CXT-1308 | Verhaltensverbesserung des neuen ContentCreator bei Verwendung von Modulen mit inkompatiblen Bibliotheken. |
ContentCreator, Entwickler, FirstSpirit-API, Modul-Entwicklung |
| CXT-1334 | FirstSpirit Content Experience Tools: Aktuelle Modul-Versionen |
Entwickler, FirstSpirit Content Experience Tools (CXT), FirstSpirit-Administrator, FragmentCreator, Module |
| CXT-1359 | Ein Fehler im Browser „Chromium“ konnte in Kombination mit FirstSpirit Omnichannel Manager dazu führen, dass Drag-and-drop im neuen ContentCreator nicht möglich war (z. B. beim Verschieben von Menüebenen über „AKTIONEN / Navigation bearbeiten“). |
ContentCreator, FirstSpirit Omnichannel Manager, Redakteur |
Deprecations
| Funktion | Abgekündigt mit | Entfällt / Entfallen mit |
|---|---|---|
| Eingabekomponente FS_LIST | 5.2R3 | 2020-07 |
| 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 | |
| Windows-Installer | 2018-06 | 2020-06 |
| 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 | |
| Java 8 Support für FirstSpirit | 2019-05 | 2020-06 |
| WebSphere Application Server Support für FirstSpirit | 2019-05 | |
| Legacy mode für den FirstSpirit-Server | 2019-06 | 2022-03 |
| Support von Java Web Start für FirstSpirit | 2019-10 | 2020-06 |
| FirstSpirit ContentCreator (altes Design / alte Technik) | 2019-11 | 2020-07 |
| Demo-Projekt Mithras Energy | 2020-02 | 2020-06 |