Dropwizard guice integration
DOCUMENTATION: http://xvik.github.io/dropwizard-guicey/
Additional repositories:
Support:
About
Dropwizard 2.0.2 guice 4.2.2 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
Sponsors
If guicey makes your life easier, you can support its development.
Thanks to
- SĂ©bastien Boulet (intactile design) for very useful feedback
- Nicholas Pace for governator integration
Setup
Releases are published to bintray jcenter (package appear immediately after release) and then to maven central (require few days after release to be published).
May be used through extensions project BOM or directly.
Maven:
<dependency>
<groupId>ru.vyarus</groupId>
<artifactId>dropwizard-guicey</artifactId>
<version>5.0.1</version>
</dependency>
Gradle:
implementation 'ru.vyarus:dropwizard-guicey:5.0.1'
Dropwizard | Guicey |
---|---|
2.0 | 5.0.1 |
1.3 | 4.2.2 |
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 |
BOM
Guicey pom may be also used as maven BOM.
NOTE: If you use guicey extensions then use extensions BOM instead (it already includes guicey BOM).
BOM usage is highly recommended as it allows you to correctly update dropwizard dependencies.
Gradle:
plugins {
id "io.spring.dependency-management" version "1.0.9.RELEASE"
}
dependencyManagement {
imports {
mavenBom 'ru.vyarus:dropwizard-guicey:5.0.1'
// uncomment to override dropwizard and its dependencies versions
// mavenBom 'io.dropwizard:dropwizard-dependencies:2.0.2'
}
}
dependencies {
// no need to specify versions
implementation 'ru.vyarus:dropwizard-guicey'
implementation 'io.dropwizard:dropwizard-auth'
implementation 'com.google.inject:guice-assistedinject'
testImplementation 'io.dropwizard:dropwizard-test'
testImplementation 'org.spockframework:spock-core'
}
Maven:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>ru.vyarus</groupId>
<artifactId>dropwizard-guicey</artifactId>
<version>5.0.1</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.0.2</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 itself | ru.vyarus:dropwizard-guicey |
Dropwizard BOM | io.dropwizard:dropwizard-bom |
Guice BOM | com.google.inject:guice-bom |
HK2 bridge | org.glassfish.hk2:guice-bridge |
System rules (required for StartupErrorRule) | com.github.stefanbirkner:system-rules |
Spock | org.spockframework:spock-core |
Snapshots
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>
Usage
Read documentation
Might also like
- 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