The TMS Transportation Service offers essential functionality of the Transport Order Management (TMS) in automatic warehouses. This is
often referred to as Material Flow Controller (MFC). This includes for example the ability to create and run automated TransportOrders
.
Find further Documentation on Microservice Website or on the wiki page.
Build a runnable fat jar with the execution of all unit and in-memory database integration tests, but without a required RabbitMQ server to run:
$ ./mvnw package
To also build and run with RabbitMQ support call:
$ ./mvnw package -DsurefireArgs=-Dspring.profiles.active=ASYNCHRONOUS,TEST
After the binary has been built it can be started from command line. By default no other infrastructure services are required to run this service.
Run in standalone mode:
$ java -jar target/openwms-tms-transportation-exec.jar
In a distributed environment the service configuration is fetched from the central OpenWMS.org Configuration Service.
This behavior can be enabled by activating the Spring Profile DISTRIBUTED
. Additionally, it makes sense to enable asynchronous
communication that requires a running RabbitMQ instance - just add another profile ASYNCHRONOUS
. If the latter is not applied all
asynchronous AMQP endpoints are disabled and the service does not send any events nor does it receive application events from remote
services. The AMQP protocol with the RabbitMQ is currently the only supported message broker. But switching to others, like HiveMQ (MQTT)
or Apacha Kafka, is not rocket science.
$ java -jar target/openwms-tms-transportation-exec.jar --spring.profiles.active=ASYNCHRONOUS,DISTRIBUTED
This requires a RabbitMQ server running locally with default settings.
With these profiles applied the OpenWMS.org 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 a configured amount of retries.
Instead of building the software from the sources and run it as Java program on the JVM it can also be fetched as a Docker image from Docker Hub and started as a Docker container.
$ docker run openwms/org.openwms.tms.transportation:latest