DOCUMENTATION: http://xvik.github.io/dropwizard-guicey/
Support: discussions | gitter chat
Dropwizard 5.0.0 guice 7.0.0 integration.
Features:
- Auto configuration from classpath scan and guice bindings.
- Yaml config values bindings by path or unique sub objects.
- Advanced Web support
- Dropwizard style console reporting: detected (and installed) extensions are printed to console to remove uncertainty
- Test support: custom junit and spock extensions
- Advanced test abilities to disable or override application logic
- Developer friendly:
- core integrations may be replaced (to better fit needs)
- rich api for developing custom integrations, and hooking into lifecycle)
- out of the box support for plug-n-play plugins (auto discoverable)
- diagnostic tools (reports), support for custom diagnostic tools
If guicey makes your life easier, you can support its development.
All active (not EOL) dropwizard versions supported.
| Dropwizard | Guicey | Reason |
|---|---|---|
| 2.1.x | 5.x | Last java 8 compatible version (EOL January 31 2024) |
| 3.x | 6.x | Changed core dropwizard packages - old 3rd paty bundles would be incompatible; Java 11 required |
| 4.x | 7.x | Jakarta namespace migration - 3rd party guice modules might be incompatible |
| 5.x | 8.x | Java 17 required |
Upcoming guicey changes would be ported in all active branches.
Maven:
<dependency> <groupId>ru.vyarus</groupId> <artifactId>dropwizard-guicey</artifactId> <version>8.0.0</version> </dependency>Gradle:
implementation 'ru.vyarus:dropwizard-guicey:8.0.0'| Dropwizard | Guicey |
|---|---|
| 5.0 | 8.0.0 |
| 4.0 | 7.3.0 |
| 3.0 | 6.4.0 |
| 2.1 | 5.10.2 |
| 2.0 | 5.5.0 |
| 1.3 | 4.2.3 |
| 1.1, 1.2 | 4.1.0 |
| 1.0 | 4.0.1 |
| 0.9 | 3.3.0 |
| 0.8 | 3.1.0 |
| 0.7 | 1.1.0 |
Use BOM for guice, dropwizard and guicey modules dependency management. BOM usage is highly recommended as it allows you to correctly update dropwizard dependencies.
Gradle:
dependencies { implementation platform('ru.vyarus.guicey:guicey-bom:8.0.0') // uncomment to override dropwizard and its dependencies versions //implementation platform('io.dropwizard:dropwizard-dependencies:5.0.0') // no need to specify versions implementation 'ru.vyarus:dropwizard-guicey' implementation 'ru.vyarus.guicey:guicey-eventbus' implementation 'io.dropwizard:dropwizard-auth' implementation 'com.google.inject:guice-assistedinject' testImplementation 'io.dropwizard:dropwizard-testing' }Maven:
<dependencyManagement> <dependencies> <dependency> <groupId>ru.vyarus.guicey</groupId> <artifactId>guicey-bom</artifactId> <version>8.0.0</version> <type>pom</type> <scope>import</scope> </dependency> <!-- uncomment to override dropwizard and its dependencies versions <dependency> <groupId>io.dropwizard/groupId> <artifactId>dropwizard-dependencies</artifactId> <version>5.0.0</version> <type>pom</type> <scope>import</scope> </dependency> --> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>ru.vyarus</groupId> <artifactId>dropwizard-guicey</artifactId> </dependency> </dependencies>BOM includes:
| BOM | Artifact |
|---|---|
| Guicey modules | ru.vyarus.guicey:guicey-[module] |
| Dropwizard BOM | io.dropwizard:dropwizard-bom |
| Guice BOM | com.google.inject:guice-bom |
| HK2 bridge | org.glassfish.hk2:guice-bridge |
| Spock-junit5 | ru.vyarus:spock-junit5 |
You can also use sample gradle project for a new project bootstrap
Snapshots published into Maven Central
Add maven snapshots repository:
repositories { mavenLocal() mavenCentral() maven { name = 'Central Portal Snapshots' url = 'https://central.sonatype.com/repository/maven-snapshots/' mavenContent { snapshotsOnly() includeGroupAndSubgroups('ru.vyarus') } } }Use snapshot version:
dependencies { implementation 'ru.vyarus:dropwizard-guicey:8.0.1-SNAPSHOT' }To avoid caching you may use:
configurations.all { resolutionStrategy.cacheChangingModulesFor 0, 'seconds' }Maven:
<repositories> <repository> <name>Central Portal Snapshots</name> <id>central-portal-snapshots</id> <url>https://central.sonatype.com/repository/maven-snapshots/</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>Use shapshot version:
<dependency> <groupId>ru.vyarus</groupId> <artifactId>dropwizard-guicey</artifactId> <version>8.0.1-SNAPSHOT</version> </dependency>Read documentation
- yaml-updater - yaml configuration update tool, preserving comments and whitespaces (has dropwizard module)
- generics-resolver - runtime generics resolution
- guice-validator - hibernate validator integration for guice (objects validation, method arguments and return type runtime validation)
- guice-ext-annotations - @Log, @PostConstruct, @PreDestroy and utilities for adding new annotations support
- guice-persist-orient - guice integration for orientdb
- dropwizard-orient-server - embedded orientdb server for dropwizard
