DOCUMENTATION: http://xvik.github.io/dropwizard-guicey/
Support: discussions | gitter chat
Dropwizard 2.1.12 guice 6.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.
Maven:
<dependency>
<groupId>ru.vyarus</groupId>
<artifactId>dropwizard-guicey</artifactId>
<version>5.10.2</version>
</dependency>
Gradle:
implementation 'ru.vyarus:dropwizard-guicey:5.10.2'
Dropwizard | Guicey |
---|---|
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 |
WARNING: Since dropwizard 2.1.0 jackson blackbird used by default instead of afterburner. If you use java 8 then apply afterburner dependency in order to switch into it:
implementation 'com.fasterxml.jackson.module:jackson-module-afterburner:2.13.3'
(omit version if guicey or dropwizard BOM used). Without it, you'll always see a nasty warning on startup (afterburner is better for java 8, but for java 9+ blackbird should be used)
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:5.10.2')
// uncomment to override dropwizard and its dependencies versions
//implementation platform('io.dropwizard:dropwizard-dependencies:2.1.12')
// 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-test'
}
Maven:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>ru.vyarus.guicey</groupId>
<artifactId>guicey-bom</artifactId>
<version>5.10.2</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>2.1.12</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 |
Snapshots may be used through JitPack
Add JitPack repository:
repositories { maven { url 'https://jitpack.io' } }
For spring dependencies plugin (when guicey pom used as BOM):
dependencyManagement {
resolutionStrategy {
cacheChangingModulesFor 0, 'seconds'
}
imports {
mavenBom "ru.vyarus:dropwizard-guicey:master-SNAPSHOT"
}
}
For direct guicey dependency:
configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
dependencies {
implementation 'ru.vyarus:dropwizard-guicey:master-SNAPSHOT'
}
Note that in both cases resolutionStrategy
setting required for correct updating snapshot with recent commits
(without it you will not always have up-to-date snapshot)
OR you can depend on exact commit:
- Go to JitPack project page
- Select
Commits
section and clickGet it
on commit you want to use and use commit hash as version:ru.vyarus:dropwizard-guicey:56537f7d23
Maven:
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>ru.vyarus</groupId>
<artifactId>dropwizard-guicey</artifactId>
<version>master-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>ru.vyarus</groupId>
<artifactId>dropwizard-guicey</artifactId>
</dependency>
</dependencies>
Or simply change version if used as direct dependency (repository must be also added):
<dependency>
<groupId>ru.vyarus</groupId>
<artifactId>dropwizard-guicey</artifactId>
<version>master-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