Sollen zu einem späteren Zeitpunkt noch einmal die Daten in Goobi zurückgesetzt werden, so kann dies sehr einfach erfolgen. Dazu einfach die folgende URL öffnen und aus der Beschreibung die Liste der Befehle kopieren und anschließend lokal ausführen:
Eine Voraussetzung für die Entwicklung von Goobi workflow und auch für die Entwicklungsumgebung ist ein erfolgreich installiertes Java 11. Dieses kann je nach Betriebssystem unterschiedlich installiert werden.
Die Installation unter Ubuntu Linux erfolgt per Kommandozeile wie folgt:
Die Installation unter Mac erfolgt am besten unter Nutzung von Homebrew aus dem Terminal:
Für die Installation unter Windows kann man von hier geeignete Installer herunterladen: https://adoptopenjdk.net/releases.html
Nach der erfolreichen Installation sollte auf dem Terminal mit dem Befehl java -version
eine Ausgabe wie die folgende erscheinen:
Für die Verwaltung der Daten verwendet Goobi workflow MariaDB. Dieses muss auf dem System entsprechend installiert werden.
Die Installation unter Ubuntu Linux erfolgt per Kommandozeile wie folgt:
Der Start und Stop der Datenbank kann so erfolgen:
Die Installation unter Mac erfolgt am besten unter Nutzung von Homebrew aus dem Terminal:
Der Start und Stop der Datenbank kann so erfolgen:
Die Installation unter Windows erfolgt analog.
Damit Goobi worklow über Daten verfügen kann, muss eine Datenbank angelegt werden. Dies kann mit den folgenden Kommandos erfolgen:
Wir arbeiten üblicherweise in dem Verzeichnis /opt/digiverso/
für die Entwicklung von Goobi und auch für den Betrieb auf den Servern. Daher müssen die benötigten Ordner zunächst erzeugt werden, wenn sie nicht bereits existieren. Dies erfolgt unter Linux und Mac wie folgt:
Eclipse muss als Entwicklungsumgebung heruntergeladen und installiert werden. Dies erfolgt von dieser Webseite: https://www.eclipse.org/downloads/packages/
Von dort wählt man das jeweils aktuelle Paket der Eclipse IDE for Enterprise Java and Web Developers
für das eigene Betriebssystem und lädt es herunter. Anschließend kann dieses entspackt und in dem zuvor erzeugten Verzeichnis /opt/digiverso/dev
gespeichert werden.
Das Verzeichnis sieht entsprechend so aus:
Für den Betrieb von Goobi workflow nutzen wir den Apache Tomcat in Version 9.x. Dieser kann von folgener Seite einfach als zip-Datei heruntergeladen werden, indem man aus dem Bereich Core
der Binary Distributions
der aktuellen Fassung die zip-Datei herunterlädt: https://tomcat.apache.org/download-90.cgi
Diese heruntergeladene zip-Datei kann anschließend entpackt und zusätzlich in das gleiche Verzeichnis wie Eclipse gespeichert werden:
Entsprechend sieht das Verzeichnis nun so aus:
Um den Betrieb von Goobi workflow beginnen zu können, werden Konfigurationen, Daten, ein Datenbankdump sowie die benötigten Plugins in den richtigen Verzeichnissen benötigt. Ein vollständiger Datenbankdump findet sich auf GitHub. Der einfachste Weg ist es, wenn die dort bereitgestellten Skriptaufrufe kopiert und lokal ausgeführt werden:
https://github.com/intranda/goobi-workflow-dev-data
Nach der Ausführung der Skripte sollte das Verzeichnis nun so aussehen:
Der folgende Befehl sollte dann die eingespielten Datenbanktabellen auflisten:
Für die Entwicklung von Goobi workflow arbeiten wir üblicherweise mit der Entwicklungsumgebung Eclipse. Auf den folgenden Seiten wird das Aufsetzen einer Entwicklungsumgebung sowie das Einspielen von einem gut geigneten Datenbestand für die Entwicklung an Goobi.
Um mit den Repositories und dem Quellcode sinnvoll arbeiten zu können, sollten weitere Pakete installiert werden. Diese haben sich als sinnvoll erwiesen:
Unter Umständen dauert der Start des Tomcat länger als der per default gesetzte Timeout. Daher kann es sinnvoll sein, diesen anzupassen. Dies kann innerhalb des Servers View
erfolgen. Dazu müssen die Einstellungen per Doppelklick auf den erzeugen Server goobi
geöffnet werden, so dass dann im obereren rechten Bereich der Konfiguration im Bereich Timeouts
ein anderer Wert für den Start des Tomcat Servers angegeben werden kann.
Um die Fehlermeldungen von Tomcat zu Unterbinden, wenn die Serialisierung der Sessions nicht funktioniert, kann man folgendermaßen vorgehen:
in Eclipse das Projekt Servers
öffnen
darin für den richtigen Tomcat die Datei context.xml
öffnen
innerhalb der Datei den folgenden Block so ändern und speichern:
Der HotSwap Agent ermöglicht es, dass Dateien bearbeitet und im laufenden Betrieb automatisiert aktualisiert werden können. Dies funktioniert insbesondere für java- und xhtml-Code in Goobi Workflow und zugehörigen Plugins.
Mit einem erfolgreich eingerichteten HotSwap Agent müssen Dateien später nur noch in ihrem lokalen Repository geändert und gespeichert werden und die Änderungen sind direkt beim Neuladen einer Seite im Webbrowser präsent.
Die offizielle Webseite des HotSwap Agenten ist hier: http://hotswapagent.org/
Tomcat MUSS im DEBUG
Modus gestartet werden, sonst funktioniert das class-reloading nicht. In Eclipse ist dies das Icon mit dem Käfer statt dem normalen Run-Button.
Falls Tomcat nur zum Teil hochfährt und dann stehen bleibt, kann es sein, dass irgendwo Breakpoints gesetzt sind. Diese können in Eclipse mit Run
-> Skip All Breakpoints
übersprungen oder mit Run
-> Remove All Breakpoints
entfernt werden.
Herunterladen der passenden HotSwap-JVM (Java 11) von hier: https://github.com/TravaOpenJDK/trava-jdk-11-dcevm/releases
Heruntergeladenes HotSwap-JDK entpacken und in Eclipse in den Preferences als JRE bekannt machen
Details des WTP-Tomcat konfigurieren, durch Doppelklick auf den Server im Server-View
Klick auf Runtime Environment
, um dort das bekannt gemachte HotSwap JDK als JRE
auszuwählen
Klick auf Open launch configuration
, um dort dieses VM-Argument hinzufügen: -XX:HotswapAgent=fatjar
Unter Publishing
die Option Never publish automatically
auswählen
Auf dem Reiter Modules
den Parameter auto-reload
auf false
setzen (bzw. in der server.xml im richtigen Bereich so setzen: reloadable="false"
) Hinweis: der Reiter befindet sich am unteren Rand des Server-Bearbeitungs-Views.
Vor der Inbetriebnahme muss noch eine Konfigurationsdatei mit dem Namen hotswap-agent.properties
innerhalb des Goobi Source Ordners liegen:
Detailierte Informationen zur Konfiguration befinden sich hier: http://hotswapagent.org/mydoc_configuration.html
Darin muss sich ein Inhalt wie der folgende befinden (Wichtig: komplette Pfade, keine Tilde für Home-Verzeichnis):
Wenn Plugins mit berücksichtigt werden sollen, müssen diese innerhalb der Konfigurationsdatei explizit benannt sein (so wie hier in der Beispielkonfiguration sichtbar)
Plugins müssen vor dem Goobi-Start in kompilierter Form in die typischen Plugin-Ordner kopiert werden (also z.B. nach /opt/digiverso/goobi/plugins/workflow/
und /opt/digiverso/goobi/plugins/GUI/
)
gelesen und ausgeführt werden die Plugins dann aus dem Eclipse-Repository
Es müssen keine xhtml-Dateien der Plugins mehr im Goobi-uii-Ordner liegen
Nach dem Herunterladen der benötigten Komponenten kann der Start von Eclipse erfolgen. Die ist je nach Betriebssystem üblicherweise per Doppelklick möglich. Bei der Frage nach dem Speicherort des Workspaces kann hier nun z.B. der folgende Pfad angegeben werden:
Damit sieht das Installationsverzeichnis nun so aus:
Innerhalb von Eclipse sollte der eigene SSH-Key konfiguriert werden, um sich darüber mit den Git-Repositories zu authentifizieren. Dies erfolgt innerhalb der Eclipse Einstellungen in dem Dialogbereich General
- Network Connections
- SSH2
. Dort kann ein privater SSH-Key hinzugefügt werden:
Ausserdem sollten für die Nutzung von Git die folgenden beiden Eigenschaften email
und user
korrekt konfiguriert sein. Dies kann innerhalb der Eclipse Einstellungen in dem Bereich Version Control (Team)
- Git
- Configuration
erfolgen. Dort sollte die beiden Parameter user.name
und user.email
gesetzt werden.
Innerhalb der Eigenschaften von Eclipse kann der bereits entpackte Apache Tomcat eingerichtet werden unter Server
- Runtime Environments
. Dort wird der installierte Tomcat ausgewählt.
Zu beachten ist, dass auch das richtige JRE ausgewählt wird:
Wir verwenden innerhalb von Goobi workflow die Programmbibliothek Lombok
. Diese muss zu Eclipse zusätzlich installiert werden. Hierfür gibt es zwei mögliche Wege:
Die Installation aus Eclipse heraus ist am einfachsten. Hierfür muss zunächst über das Menü Help
- Install New Software
der folgende Dialog geöffnet werden:
Hier muss nun bei dem Eingabefeld Work with
die Installations-URL angegeben werden, von der das Plugin bezogen werden soll. Dafür wird die folgende URL verwendet:
Anschließend muss nur noch im unteren Bereich des Dialogfensters das Plugin Lombok
ausgewählt werden. Auf den folgenden Seiten des Dialogs folgt noch einmal eine Sicherheitsabfrage bezüglich des Zertifikats, die bestätigt werden muss. Nach einem Neustart von Eclipse ist danach die Installation abgeschlossen.
Für die manuelle Installation muss Lobok zunächst von dieser URL heruntergeladen werden: https://projectlombok.org/download
Nach dem Download kann Lombok per Doppelklick gestartet werden. Sollte der Start über einen Doppelklick nicht möglich sein, ist auch ein Start über die Kommandozeile möglich:
Nach dem Start kann nun das bereits installierte Eclipse dort hinzufügt werden, um anschließend Lobok in die Eclipse-Installation ergänzen zu lassen.
Nach der Einrichtung von Eclipse, kann nun Goobi als Projekt ausgecheckt werden. Dazu kann einfach über den Menüpunkt File
und dann Import
der folgende Dialog geöffnet werden:
In den folgenden Dialogseiten wird Git als Quelle für den Import angegeben
Dort wird der Punkt Clone URI
ausgewählt.
Anschließend kann die URL des Goobi workflow Git-Repositories angegeben werden. Für GitHub lautet die URL:
Für die Nutzung des intranda Gitea Systemes lautet die URL:
In beiden Fällen sollte die die URL so gewählt werden, dass eine Authentifizierung über einen SSH-Key erfolgen kann, der zuvor eingerichtet wurde. Natürlich müssen die jeweiligen Git-Systeme (GitHub bzw. Gitea) über den passenden öffentlichen SSH-Key verfügen. In dem zwischenzeitlichen Dialog muss die Verwendung des SSH-Keys beim ersten Auschecken noch einmal bestätigt werden. Anschließend kommt man zu den weiteren Dialogfenstern.
Auf dem vorletzten Dialogfenster kann nun ausgewählt werden, dass es sich um ein bestehendes Eclipse-Projekt handelt.
Nach dem letzen Dialogfenster ist das Projekt ausgecheckt und im Workspace von Eclipse sichtbar. Zunächst einmal wird das Projekt durch Eclipse noch kompiliert und eventuelle Abhängigkeiten geladen.
Sollten wie auf dem vorherigen Screenshot noch Abhängigkeiten fehlen, kann dies mittels Rechtsklick auf das Projekt behoben werden, indem dort auf die Menüpunkte Maven
- Update Project
geklickt wird.
Um Goobi workflow nun aus Eclipse zum ersten Mal zu starten, kann man im Kontextmenü des Projektes auf die Punkte Run As
und Run on Server
klicken.
Anschließend muss der richtige Server ausgewählt werden. Hier nehmen wir den zuvor bereits installierten Apache Tomcat und benennen ihn goobi
Auf der folgenden Seite wird die Anzeige lediglich bestätigt.
Goobi workflow startet nun automatisch und öffnet ein Browserfenster. Die Anbindung der Datenbank ist allerdings noch nicht korrekt. Daher erscheinen in der Console in Eclipse noch einige Fehlermeldungen.
Ein Wechsel auf den Servers View
im unteren Bereich erlaubt es uns, den Server wieder zu stoppen (Rotes Icon).
Um die Datenbank-Anbindung noch richtig zu konfigurieren, wird nun im linken Bereich das Projekt Servers
geöffnet und die Datei servers.xml
betreten. Dort ist im unteren Bereich das automatisch hinzugefügte Element Context
innerhalb von Host
zu sehen:
Dieses Element ersetzen wir nun mit folgendem Inhalt:
Zu beachten ist, dass das schließende Tag von Host
üblicherweise in der gleichen Zeile wie das vorherige Element Context
stand (siehe vorherigen Screenshot). Dieses darf nicht versehentlich überschrieben werden. Anschließend sollte die Datei wie folgt aussehen.
Alle Komponenten von Goobi workflow sind nun richtig eingerichtet. Innerhalb des Servers View
kann der Tomcat Server nun neu gestartet werden (Grünes Icon). In der Konsole ist kein Fehler mehr ersichtlich. Der Webbrowser kann nun aufgerufen werden mit dieser URL:
Ein Login ist nun auf der Startseite von Goobi workflow möglich mit dem Login goobi
und dem Passwort goobi
.