This document describes conventions for developers that create distributed services using Rio and Maven. Using conventions for the development of services makes it easier to deploy and use services. The following conventions are discussed:
In a nutshell, a service development project should be built as multi-module Maven project, that reflects the basic architectural elements of a distributed service. Given a service artifactId name of hello, the service project is composed of the following modules:
In it's simplest form, the module hierarchy structure is as follows:
Adding a smart proxy to the mix, the module hierarchy structure is as follows:
Following this pattern, you can add additional modules outlined above.
The directory and file layout for the multi-module Maven project is as you would expect. Using the example hello service from above, we would have
hello
|-- pom.xml
`-- src
|-- main
| `-- opstring
| `-- hello.groovy
|
|-- hello-api
| |-- pom.xml
| `-- src
| `-- main
| `-- java
|
`-- hello-service
|-- pom.xml
`-- src
|-- main
| |-- java
| `-- resources
|
`-- test
|-- conf
`-- java
Notes: