Einsteiger Guide - FirstSpirit Modulentwicklung

Veröffentlicht am 01.03.2019

Sie möchten Ihre eigenen FirstSpirit Module entwickeln? Lesen Sie jetzt unseren Starter-Guide, um sofort loszulegen. Verschaffen Sie sich einen kurzen Einblick in die Implementierung eigener CMS-Erweiterungen.

Rafael Lopes das Dores

Consulting and Development

Motivation

Bereits in der Anfangsphase eines FirstSpirit-Projektes wird relativ schnell klar, dass nicht alle gewünschten Funktionalitäten als Standard-Funktionen im SiteArchitect und ContentCreator zur Verfügung stehen. Aus diesem Grund bietet e-Spirit für FirstSpirit eine mächtige javabasierte API an, die dazu genutzt werden kann, eigene FirstSpirit Module und Erweiterungen zu implementieren. Mithilfe dieser Java Interfaces können beide FirstSpirit-Clients in vielerlei Hinsicht modifiziert und durch eigene Plugins erweitert werden.

In diesem kurzen Tutorial werde ich eine kurze Einführung dazu geben, wie sich ein FirstSpirit-Modul entwickeln und wie sich Komponenten für SiteArchitect und ContentCreator in Form eines FSM (FirstSpirit module) zur Verfügung stellen lassen. Ein solches Setup bietet die Grundlage für alle komplexeren Modultypen im FirstSpirit-Umfeld und dient lediglich als einfaches Beispiel.

Der Grundstein - Das Build-Management

Um FirstSpirit Module zu bauen, können diverse Build-Tools eingesetzt werden. In der Praxis haben sich bisher Gradle und Maven bewährt, in älteren Projekten wird möglicherweise noch auf Apache Ant gesetzt. Meistens ist es der Fall, dass jedes Unternehmen sich selbst für seine Zwecke auf Basis von Maven oder Gradle einen eigenen Buildprozess aufbaut, da die Infrastruktur doch sehr variabel aufgebaut sein kann.

Für dieses Beispiel nutzen wir Apache Maven. Es existiert eine Referenz-Implementierung direkt vom Hersteller e-Spirit, die über GitHub bezogen werden kann. Als ersten Schritt lege ich Ihnen ans Herz, sich mit der sogenannten firstspirit-module-parent-pom auseinanderzusetzen. Mithilfe dieser POM-Definition und dem Einsatz des Build-Tools Maven ist es möglich, sich die komplette Ordnerstruktur eines typischen FirstSpirit Moduls automatisch zusammenstellen zu lassen.

Getting started

Fügen Sie die firstspirit-module-parent-pom inklusive ihrer Abhängigkeiten fsm-assembly und firstspirit-base-parent-pom Ihrem lokalen Maven-Repository hinzu. Idealerweise sollten diese Bestandteile in einem Repository wie JFrog Artifactory, Nexus oder Apache Archiva zentral allen Entwicklern zur Verfügung gestellt werden.

Innerhalb dieses Maven-Projekts fügen Sie nun in Ihrer pom.xml die module-parent-pom von e-Spirit als <parent>-Attribut hinzu. Ersetzen Sie [parent-pom-version] mit der Version die Sie aus dem Git-Repository bezogen haben.

<parent>
<groupId>com.espirit.ps.maven</groupId>
<artifactId>firstspirit-module-parent-pom</artifactId>
<version>[parent-pom-version]</version>
</parent>

Einbinden der FirstSpirit Java API

FirstSpirit Versionsnummer
FirstSpirit Server-Informationen inklusive der laufenden Versionsnummer

Um die FirstSpirit Java Schnittstellen nutzen zu können, muss dem Projekt eine entsprechende Library als Abhängigkeit zur Verfügung gestellt werden. Das geht entweder direkt über die IDE, im Idealfall sollte diese aber auch aus einem eigenen Repository bezogen werden. Alle benötigten Interfaces befinden sich im fs-isolated-runtime.jar. Diese Bibliothek wird in der entsprechenden Version immer im Dateisystem des FirstSpirit-Servers im Ordner /data/fslib mitgeliefert. Das Versionsschema setzt sich aus der letzten Minor-Version, gefolgt von der aktuellen Server-Version und einer Buildnummer zusammen. Das heißt bspw. für die Version Januar 2019 gilt 5.2.190105.

Die richtige Versionsnummer für Ihren Server finden Sie auf der FirstSpirit Startseite. Klicken Sie auf die Versionsnummer am unteren Rand und dann auf “Weitere Details…”.

pom.xml mit eingefügter Dependency

Binden Sie die Library dann über die pom.xml in ihr Projekt ein. Achten Sie darauf, das scope-Attribut mit dem Wert provided zu belegen. Dadurch stellen Sie sicher, dass ihr Modul diese Bibliothek später nicht selbst enthält, sondern zur Laufzeit vom Server bezieht. Das Modul bleibt somit deutlich schlanker.

Für den letzten Schritt des initialen Setups wird ein sog. Modul-Deskriptor benötigt. Dieser wird in Form einer module.xml Datei im resources-Ordner hinterlegt. Im einfachsten Fall enthält die Datei nur folgende Attribute:

<module>
<name>MySimpleModule</name>
<version>1.0</version>
<description>A simple module to show FirstSpirit module development.</description>
<components></components>
</module>

Um das Modul zu bauen, benutzen Sie nun den Maven-Lifecycle package. Dadurch wird im Ordner target eine FSM-Datei erstellt. Diese kann auf einem FirstSpirit-Server installiert werden. Mit diesem Setup sind Sie nun in der Lage Ihr erstes FirstSpirit Modul zu entwickeln.

Welche Komponenten im Block components verwendet werden können, erfahren Sie in unseren weiteren Blogposts zum Thema FirstSpirit Modulentwicklung. Wenn Sie weitere Fragen zur Entwicklung von Erweiterungen haben oder Sie unsere Unterstützung für Ihr Projekt benötigen, zögern Sie nicht und treten Sie mit uns in Kontakt! Lesen Sie hier weiter, wie Sie eine ausführbare Java-Klasse für die Verwendung mit FirstSpirit entwickeln können.

facebook icon twitter icon xing icon linkedin icon
© 2019 aboutcontent GmbH