Fork me on GitHub


This service provides essential functionality to deal with Locations, LocationGroups and TransportUnits. An example often referred to is a service to move a TransportUnit from a Location A to a Location B.


Build status License Quality Join the chat at


Build a runnable fat jar with execution of all unit and in-memory database integrations, but without a RabbitMQ server required to run:

$ mvn package

To also build and run with RabbitMQ support call:

$ mvn package,TEST

But notice that this requires a RabbitMQ server running locally with default settings.

Run the Sonar analysis:

$ mvn package -Psonar


After the binary is built it can be started from command line. By default no other infrastructure services are required to run this service.

$ java -jar target/openwms-common-service-exec.jar

In a distributed Cloud environment the service configuration is fetched from a centralized configuration service. This behavior can be enabled by activating the Spring Profile CLOUD. Additionally it makes sense to enable asynchronous communication that requires RabbitMQ as an AMQP message broker - just add another profile ASYNCHRONOUS. If the latter is not applies all asynchronous AMQP endpoints are disabled and the service does not send any events nor does it receive application events from remote services.

$ java -jar target/openwms-common-service-exec.jar,ASYNCHRONOUS

Now the configuration service is tried to be discovered at service startup. The service fails to start if no instance of the configuration service is available after retrying a configured amount of times.


$ mvn deploy -Prelease,gpg

Release Documentation

$ mvn package,TEST -Psonar
$ mvn site scm-publish:publish-scm