Dragoman

Introduction

Querying Datasets

Subscribing To Datasets

Gotchas


Monitoring

Metrics

Logging


Technology List

Technologies

The technologies used by Dragoman are described below. These technology choices are typically hidden behind facades which (should :) allow for later substitution with little or no changes to the rest of the code base. For example:

ANTLR

To implement parsers for user supplied predicate and projection expressions. The parsed forms are translated into commands which can be applied to a dataset. So …

MongoDB

To store local datasets.

Dragoman uses The Mongo Rx Java Driver to talk to MongoDB.

Dragoman uses flapdoodle to create an embedded instance of MongoDB. This is used when running in embedded mode and for creating an in-process MongoDB instance in test cases.

Vert.x

To provide the application framework, including the web server.

Angular 1.x

To provide the UI framework.

Bootstrap

For UI style goodies.

Handlebars

To provide templating for the user interface.

Guice

For dependency injection. All Guice integration is encapsulated in classes name XXXModule.

OkHttp

To read remote datasets over HTTP.

Jackson

To transform data between serialised and non serialised representations. Dragoman expects its data sources to provide data either in the JSON format or ina format which can be easily transformed into JSON.

Constretto

To externalise application configuration to properties file. This file (application.properties) is discovered from the classpath and supports type safe property values, property value transformers and environment specific property values.

JUnit5 , Hamcrest, Mockito, Awaitility

Unit testing framework, mocking framework and test utilities.