Welcome to dropwizard-guicey¶
Guice integration for dropwizard.
Release notes - Support - License
Main features¶
- Auto configuration: use classpath scan to find and install extensions automatically without manual configurations (of course, manual mode is also possible)
- Configuration values bindings by path or unique sub objects.
- Web (servlets, filters):
- supports both contexts (main and admin)
- guice ServletModule support is enabled by default (could be disabled)
- jee web annotations (@WebServlet, @WebFilter) support (could be enabled)
- Dropwizard style reporting: detected (and installed) extensions are printed to console to remove uncertainty
- Admin context rest emulation
- Test support: custom junit and spock extensions
- Developer friendly:
- core integrations may be replaced (to better fit needs)
- rich api for developing custom integrations, custom behaviours and configuration modification
- out of the box support for plug-n-play plugins (auto discoverable)
- self diagnostic tools (configuration diagnostic report, bindable configuration paths, lifecycle stages)
How to use docs¶
Introduction¶
If you are migrating from dropwizard-guice read migration guide first
- Getting started guide describes installation and shows core usage examples
- Concepts overview guide introduce core guicey concepts and explains differences with pure dropwizard usage
Reference¶
- User guide section contain detailed features descriptions. Good to read, but if no time, read as you need it.
- Installers section describes all guicey installers. Use it as a extensions hand book.
Examples and integrations¶
- Examples section contains common example cases. Look also examples repository for additinoal examples.
- Extras section covers extra modules: admin rest, 3rd party integrations (event bus, jdbi) provided by guicey itself or extensions project.
Sources structure¶
The main repository contains library itself and this documentation sources.
Guicey stays as feature complete library with commonly used core integrations and rich api for building custom integrations (for specific needs). It's very close to guice philosophy of being simple and stable.
Examples repository holds examples of main features usage, dropwizard bundles integrations and extensions samples.
Extensions repository contains guicey external integrations.
Extensions project shows what is possible to achieve based on guicey. Besides, provided integrations itself might be quite useful.
BOM module unifies dependencies management for extensions, dropwizard and guice (as it includes boms for them). Overall, extensions project is more like spring: growing set of solutions for everything (more "enterprisy").