Hop Server

Hop Server

Hop Server is a lightweight server to run workflows and pipelines with the Remote pipeline or Remote workflow run configurations.

Starting and Stopping Hop Server

General Use

Hop Server is available as a script in your Hop installation directory.

Run Hop Server without any parameters to display its usage options. On Windows, this is hop-server.bat, on Mac and Linux, run ./hop-server.sh.

Usage

Usage: <main class> [-k] [-gs] [-e=<environmentOption>] [-id=<id>]
                    [-j=<projectOption>] [-l=<level>] [-n=<serverName>]
                    [-p=<password>] [-ps=<pipelineName>] [-u=<username>]
                    [-ws=<workflowName>] [-s=<systemProperties>[,
                    <systemProperties>...]]... [<parameters>...]
      [<parameters>...]   One XML configuration file or a hostname and port
  -e, --environment=<environmentOption>
                          The name of the lifecycle environment to use
  -gs, --general-status
                          List the general status of the server
      -id=<id>            Specify the ID of the pipeline or workflow to query
  -j, --project=<projectOption>
                          The name of the project to use
  -l, --level=<level>     The debug level, one of NOTHING, ERROR, MINIMAL,
                            BASIC, DETAILED, DEBUG, ROWLEVEL
  -n, --server-name=<serverName>
                          The name of the server to start as defined in the
                            metadata.
  -p, --password=<password>
                          The server password.  Required for administrative
                            operations only, not for starting the server.
  -ps, --pipeline-status=<pipelineName>
                          List the status of the pipeline with this name (also
                            specify the -id option)
  -s, --system-properties=<systemProperties>[,<systemProperties>...]
                          A comma separated list of KEY=VALUE pairs
  -u, --userName=<username>
                          The server user name.  Required for administrative
                            operations only, not for starting the server.
  -ws, --workflow-status=<workflowName>
                          List the status of the workflow with this name (also
                            specify the -id option)

The available Hop Server options are:

Short
Extended
Description

-h

--help

This help text

-p

--password

The server password. Required for administrative operations only, not for starting the server.

-u

--userName

The server password. Required for administrative operations only, not for starting the server.

-s

--system-properties

Manually set system environment variables. Specify a comma separated list of KEY=VALUE pairs.

-e

--environment

The name of the project lifecycle environment to enable before startup. This is provided for by the 'projects' plugin.

-n

--server-name

Name of the server metadata object to start, has to be used in combination with -e to know which environment to load it from

-j

--project

The name of the project to enable before startup. This is provided for by the 'projects' plugin.

-gs

--general-status

List the general status of the server.

-ps

--pipeline-status

List the status of the pipeline with this name (also specify the -id option)

-ws

--workflow-status

List the status of the workflow with this name (also specify the -id option)

-id

Specify the ID of the pipeline or workflow to query

Start Hop Server with command line parameters

Hop Server can be started with hostname or ip address and port number as unnamed arguments:

Example: ./hop-server.sh 0.0.0.0 8080

Example: hop-server.bat 192.168.1.221 8081

Example: ./hop-server.sh -e aura-gcp gs://apachehop/hop-server-config.xml

Example: hop-server.bat 127.0.0.1 8080 --userName cluster --password cluster

Example startup commands are:

  • Windows

  • Linux, macOS

    Listen to all interfaces on the server:

Start Hop Server with a configuration file

Specify the xml configuration file as the only argument:

The syntax of this configuration file is straightforward. Hostname and port are required, other configuration options are optional.

Example startup commands with a configuration file are:

  • Windows

    Or with a remote configuration file:

    You can also enable a project lifecyfle environment for the Hop server:

  • Linux, macOS

    Or with a remote configuration file:

    You can also enable a project lifecyfle environment for the Hop server:

In the sample above the environment contains configuration files with variables which are loaded. With the environment the server also knows the project home folder. The server configuration file is found in the home folder automatically with the implicit relative path.

SSL configuration

To protect traffic between a Hop Server and its clients (Hop Run, Hop GUI, a browser, Hop Server command line querying, …​) it’s possible to use encrypt data using a secure socket layer (SSL) connection on top of the regular web traffic with a hyper treading transfer protocol (HTTP). The combination of both is called HTTPS. To run a Hop server using this https:// protocol you can add an sslConfig section in the hop-server-config/hop-server path.

The 3 main options are:

  • keyStore : the path to the java keystore file, created with keytool

  • keyStorePassword : the password to the keystore file

  • keyPassword : the key password. If this is the same as the keystore password you can omit this option.

The HTTP protocol used is version 1.1 or HTTP/1.1. The type of keystore read is a Java Keystore or type: JKS. Let’s take a look at how we can generate a sample keystore:

Here is an example of the information to include in your server XML:

Enable detailed server logging

Hop Server provides the -l or --level option to set a logging level for workflows and pipelines that run on the server.

There are scenarios where you may want to see more detailed logging about the server itself. Since Hop Server runs on a Jetty server, you can increase the Jetty server logging by extending the HOP_OPTIONS variable near the end of hop-server.sh or hop-server.bat.

Original:

With DEBUG logging:

If applied correctly, your Hop Server starts producing a lot of logging information similar to the lines below:

Start Hop Server with docker

It’s often very convenient to run a Hop docker container since it has all the required software automatically delivered. For a complete description of the standard Hop docker container see the full reference in the technical documentation. Here is an example of how you would start a "long-lived" docker container:

Stopping Hop Server

In a testing setup where Hop Server was started from a terminal, the process can be terminated through CTRL-C.

In headless environments, the same hop-server command used to start the server can be used to stop it: A default listener on shutdown port is configured on port number 8079 when not specifying this in the command it will be used.

  • Windows

  • Linux, macOS

You can also trigger the command on a specific shutdown port

  • Windows

  • Linux, macOS

Verify startup

Starting a Hop Server on the local machine e.g. on port 8081 will only take 1 or 2 seconds.

The console output will look similar to what is listed below:

Query a server from the command line

You can query the new server with another hop-server command:

  • Windows

    Expected output:

  • Linux, macOS

    Expected output:

Query a pipeline from the command line

Query a workflow from the command line

Connect to the Hop Server UI

To connect to the previously started server, point your browser to http://localhost:8081.

You’ll be prompted for your username and password. The default is cluster for both the username and password. The defaults obviously should be changed in any environment that goes beyond a simple local developer setup.

Tip

on startup, the pipeline and workflow lists shown below will be empty. Run a workflow or pipeline through the Hop Remote pipeline engine run configuration or through the REST api. When pipelines or workflows are executed on the server, you’ll be able to follow the logging output either from the terminal or a log file (e.g. piped from the startup command).

Hop Server Status

For each of the options in the pipeline and workflow dialogs described below, select a pipeline and workflow from the list and select the desired option.

The header bar for workflows and pipelines is almost identical (from left to right).

Run

Stop the running pipeline/workflow

Cleanup pipeline

Cleanup a pipeline: close remote sockets etc

View pipeline/workflow details

Remove pipeline/workflow from list

Hop Server web Services

A Hop Server can also be accessed directly through a number of web services and in combination with the Web Service and Asynchronous Web Service metadata types.

Last updated 2025-09-04 18:20:52 +0200

Last updated