Best Practice für die Entwicklung von Goobi und für die Arbeit mit Eclipse
Zuletzt aktualisiert
Zuletzt aktualisiert
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