Content
An OpenWMS.org microservice implementation with Java technology is structured into source packages. Some generic and often used packages exist in all microservices with a common sense. In the example below the structure underneath the common
package is also applied to any other domain package like core
, tms
or wms
.
Figure 6. Java package organisation
Beside these packages exist dozens of others specific to every microservice. The Transportation service for example has also a separation into functional packages, like transports
or routes
. The packages and conventions shown here should be followed for every OpenWMS.org microservice implementation when possible.
Package | Responsibility |
---|---|
org.openwms | Top level product package |
core | All types that belong to the CORE domain |
common | All types that belong to the COMMON domain |
tms | All types that belong to the TMS domain |
wms | All types that belong to the WMS domain |
api | Types that are relevant for client applications or API consumers and that are cut off into a separate build artifact |
app | Types and configuration artifacts that are responsible for the microservice lifecyle |
commands | Contains all command types and handlers, processors of commands |
config | Contains configuration classes responsible for the microservice external configuration, most often Spring Boot managed classes mapped to properties files |
events | All event types used service internally and externally. External events must put under api.events |
impl | The internal implementation details of the microservice API |