Leaky Cauldron contains a collection of libraries used for building kotlin services.
It's where [drop]wizards get their guice!
Release version are of the form X.Y.Z
where:
X
: Major version, incremented when a subjectively "major" change happensY
: Minor version, incremented when a breaking, backwards incompatible change happensZ
: Build version, incremented for every build
To uptake all new features and bugfixes without breaking changes, downstream projects can depend on a version range of
the form [X.Y.1,X.W-SNAPSHOT)
, where W = Y + 1
(eg. [1.7.1,1.8-SNAPSHOT)
for 1.7.*
).
- Install openjdk 17 or newer
- Install maven 3.9.2 or newer (or use included ./mvnw script instead of mvn)
- Building with maven will run tests
mvn clean install
-
View test coverage reports for each module at ${module}/target/site/jacoco/index.html
-
To use the Leaky Cauldron in a service of your own, see this example for a recommended project skeleton
Note that most modules make use of Guice for dependency injection of configured instances.
This contains resources for use during a maven build. If depended upon, it should only be brought into test scope.
This contains the parent pom to be used for all maven projects at Tribe.
This contains classes and Guice modules for configuring Jackson objects to work with Tribe codebases.
This contains classes that enhance writing unit tests.
This contains classes for parsing HOCON application.conf files with support for environmental overrides and AWS KMS-based encrypted values.
This contains classes for injecting configured jOOQ DSLContext
s and JDBC DataSource
s into
application data access code.
This contains classes for setting up a configurable Dropwizard based application.
This contains classes for adding GraphQL support to an application.