This is a Maven project. You can use any mvn commands.
-
Mongodb
(1) Install
-
Hbase
(1) Install
(2) Follow instruction 2.1 and 2.2. The standalone version is sufficient for now.
(3) Copy
hbase-site.xmlinto${projectDir}/conf/ -
Geomesa
(1) Necessary packages will be installed via Maven.
-
Virtuoso
(1) Install
-
Redis
(1) Install
mvn eclipse:eclipse
mvn test
mvn clean package
- MainVerticle contains all the verticles to be deployed (currently only one.)
- model package contains data model we will use. It will be shared across different packages.
- timeseries package is not used for now.
- Best practice is to use different verticles for different services and then do port-forwarding to 80. Currently all APIs should be collected in RestApi Verticle.
- Citadel is based on Vert.x. You can add your microservice in any langauge based on JVM easily. The module would be a verticle and communicate with the others through EventBus. Please refer the structure of metadata pacakge.
- RestApi.java routes all functions in the modules in 1. to appropriate URLs. (This is not the best practice but it seems to be a way only with a verticle. Suggestion?)
- Please follow Google Java Style Guide. There is an eclipse format file.
- DO NOT just print and pass inside
catchclauses. Properly handle exceptions. A normal way of handling them is passing as a failed result.
- Eclipse may say it includes errors in models package. It complains about the code that should be generated during compile time.
- Reference implementation: https://github.com/cescoffier/vertx-microservices-workshop
- Reference documentation: http://escoffier.me/vertx-hol/ and http://vertx.io/.