Goobi workflow
Documentation homeGoobi workflow PluginsGoobi workflow Digests
English
English
  • Overview
    • Goobi workflow Handbook
    • Overview of documentation
    • What is Goobi?
  • Users
    • Goobi for Users
    • The basics
      • Logging in
      • Menu
      • Logging out
      • Switch between available languages
      • Help function
      • Personal settings
      • Changing your password
      • My tasks
      • Processes
      • How to find a process
      • How to create a new process
      • Edit task details
    • How different user groups work with Goobi
      • Scanning
      • Quality control
      • Manual script steps and plugin steps
      • Automatic script-run steps
      • Metadata processing
      • Export to the DMS
    • Metadata Editor
      • User interface
        • Structure tree
        • Page display
        • Menu options
      • Metadata indexing
        • Pagination
        • Structuring
          • Create new structure element
          • Moving structure elements
          • Copying structure elements from other processes
      • Modifying and verifying data
        • Subsequent changes to pagination
        • Uploading files
        • Downloading files
        • Server-based exports
        • Server-based imports
      • Edit OCR results
      • Overview of the keyboard combinations
  • Management
    • Goobi Management
    • Structure of the extended user interface
    • Rulesets
    • LDAP groups
    • Users
    • User groups
    • Processes
      • Searching processes
      • Activity
      • Activities for hit lists
      • GoobiScript
    • Variables
    • Harvester
  • Administration
    • Goobi Administration
    • File system
      • Global directory structure
        • ‘config’ sub-directory
        • ‘import’ sub-directory
        • ‘metadata’ sub-directory
        • ‘plugins’ sub-directory
        • ‘rulesets’ sub-directory
        • ‘scripts’ sub-directory
        • ‘xslt’ sub-directory
      • Directory structure of the application
      • Integrating external storage
      • Integration of S3 as storage
    • Services
      • MySQL database
      • Apache Tomcat servlet container
      • User authentication using LDAP
      • File system access using Samba
    • Exporting to digital libraries
      • Technical data
      • Mets parameters
      • Mets file groups
      • Export configuration in the Goobi configuration file
    • Working with the intranda Task Manager
    • Automatic workflow steps
      • Example combination for an automatic script task
      • Migration of technical data to METS files
      • Automatic image deletion
    • Configuration files
      • goobi_activemq.xml
      • goobi_config.properties
      • goobi_digitalCollections.xml
      • goobi_exportXml.xml
      • goobi_mail.xml
      • goobi_metadataDisplayRules.xml
      • goobi_normdata.xml
      • goobi_opac.xml
      • goobi_opacUmlaut.txt
      • goobi_processProperties.xml
      • goobi_projects.xml
      • goobi_rest.xml
      • goobi_webapi.xml
      • messages_xx.properties
      • config_contentServer.xml
    • Installation guide
      • Installation guide - Ubuntu 20.04
    • Update guide
      • Preparation of an update
      • Update steps
        • 2020
        • 2021
        • 2022
        • 2023
        • 2024
        • 2025
    • Authentication options
      • Authentication via the database
      • Authentication via HTTP header
      • Authentication via OpenID Connect
    • Use cases
      • Create thumbnails for accelerated image display
      • Handling of 3D Objects
      • Export of 3D-Objects into the Goobi viewer
  • Developer
    • Setting up a development environment
      • Preparatory work
      • Setting up Eclipse
      • Resetting the data
      • Best practice for developing Goobi and working with Eclipse
    • Using the REST API
    • Snippets for the development on Goobi workflow
      • HTML
      • JavaScript
Bereitgestellt von GitBook
Auf dieser Seite
  • 1.4.1 Useful software packages
  • Linux
  • Mac
  • 1.4.2 Avoid Timeout for Tomcat
  • 1.4.3 Stop Tomcat from persistence or serialisation
  • 1.4.4 HotSwap Agent (JRebel replacement)
  • General
  • Installation
  • Configuration
  • Special feature for plugins
Als PDF exportieren
  1. Developer
  2. Setting up a development environment

Best practice for developing Goobi and working with Eclipse

VorherigeResetting the dataNächsteUsing the REST API

Zuletzt aktualisiert vor 5 Monaten

1.4.1 Useful software packages

In order to work with the repositories and source code in a meaningful way, additional packages should be installed. These have proven to be useful:

Linux

sudo apt install git
sudo apt install maven

Mac

brew install git
brew install maven

1.4.2 Avoid Timeout for Tomcat

Under certain circumstances, the start of the Tomcat takes longer than the timeout set by default. Therefore it can be useful to adjust this timeout. This can be done within the 'Server View'. To do this, the settings must be opened by double-clicking on the generated server goobi, so that a different value for the start of the Tomcat server can then be specified in the upper right area of the configuration in the Timeouts section.

1.4.3 Stop Tomcat from persistence or serialisation

To suppress the error messages from Tomcat when the serialisation of the sessions does not work, you can proceed as follows:

  • Open the project Servers in Eclipse.

  • open the file context.xml for the correct Tomcat.

  • change the following block within the file and save it:

<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<Manager pathname="" />

1.4.4 HotSwap Agent (JRebel replacement)

The HotSwap Agent allows files to be edited and updated automatically on the fly. This works especially for java and xhtml code in Goobi Workflow and related plugins.

With a successfully set up HotSwap Agent, files only need to be changed and saved later in their local repository and the changes are directly present when a page is reloaded in the web browser.

General

  • Tomcat MUST be started in DEBUG mode, otherwise class-reloading will not work. In Eclipse this is the icon with the bug instead of the normal run button.

  • If Tomcat only starts up partially and then stops, it is possible that breakpoints are set somewhere. These can be skipped in Eclipse with Run -> Skip All Breakpoints or removed with Run -> Remove All Breakpoints.

Installation

  • Unpack the downloaded HotSwap JDK and make it known as JRE in the preferences of Eclipse.

  • Configure details of the WTP Tomcat, by double-clicking on the server in the server view

    • Click on 'Runtime Environment' to select the announced HotSwap JDK as 'JRE'.

    • Click on Open launch configuration to add this VM argument: -XX:HotswapAgent=fatjar.

    • Under Publishing select the option Never publish automatically.

    • On the Modules tab, set the auto-reload parameter to false (or set it in the server.xml in the correct section like this: reloadable="false") Note: the tab is at the bottom of the server edit view.

Configuration

  • Before commissioning, a configuration file named hotswap-agent.properties must be located inside the Goobi source folder:

nano ~/git/goobi-workflow/Goobi/src/hotswap-agent.properties
  • It must contain content like the following (Important: complete paths, no tilde for home directory):

extraClasspath=/home/PETER/git/goobi-workflow/Goobi/webapp/WEB-INF/classes/; \
/home/PETER/git/goobi-plugin-administration-snippet-creator/plugin/target/classes; \
/home/PETER/git/goobi-plugin-opac-json/goobi-plugin-opac-json/target/classes; \
/home/PETER/git/goobi-plugin-workflow-aeon-process-creation/plugin/target/classes;

webappDir=/home/PETER/git/goobi-workflow/Goobi/webapp; \
/home/PETER/git/goobi-plugin-administration-snippet-creator/plugin/src/main/resources/GUI/META-INF/resources; \
/home/PETER/git/goobi-plugin-opac-json/goobi-plugin-opac-json/src/main/resources/GUI/META-INF/resources; \
/home/PETER/git/goobi-plugin-workflow-aeon-process-creation/plugin/src/main/resources/GUI/META-INF/resources;

Special feature for plugins

  • If plugins are to be included, they must be explicitly named within the configuration file (as visible here in the example configuration).

  • Plugins must be copied in compiled form to the typical plugin folders (e.g. /opt/digiverso/goobi/plugins/workflow/ and /opt/digiverso/goobi/plugins/GUI/) before starting Goobi

  • the plugins are read and executed from the Eclipse repository.

  • The xhtml files of the plugins no longer have to be in the Goobi-uii folder.

The official website of the HotSwap Agent is here:

Download the appropriate HotSwap JVM (Java 11) from here:

​ Detailed information on the configuration can be found here:

http://hotswapagent.org/
https://github.com/TravaOpenJDK/trava-jdk-11-dcevm/releases
http://hotswapagent.org/mydoc_configuration.html
Timeout