Dropwizard guice integration
DOCUMENTATION: http://xvik.github.io/dropwizard-guicey/
Support: discussions | gitter chat
Dropwizard 4.0.1 guice 7.0.0 integration.
Features:
If guicey makes your life easier, you can support its development.
Due to 3 major changes in dropwizard recently, 3 guicey versions supported:
Dropwizard | Guicey | Reason |
---|---|---|
2.1.x | 5.x | Last java 8 compatible version |
3.x | 6.x | Changed core dropwizard packages - old 3rd paty bundles would be incompatible |
4.x | 7.x | Jakarta namespace migration - 3rd party guice modules might be incompatible |
All branches use the same project structure: core guicey merged with extension modules. It greatly simplifies releases and keeps actual examples in one branch.
Upcoming guicey changes would be ported in all 3 branches.
Maven:
<dependency>
<groupId>ru.vyarus</groupId>
<artifactId>dropwizard-guicey</artifactId>
<version>7.0.1</version>
</dependency>
Gradle:
implementation 'ru.vyarus:dropwizard-guicey:7.0.1'
Dropwizard | Guicey |
---|---|
4.0 | 7.0.1 |
3.0 | 6.1.1 |
2.1 | 5.9.1 |
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:7.0.1')
// uncomment to override dropwizard and its dependencies versions
//implementation platform('io.dropwizard:dropwizard-dependencies:4.0.1')
// 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>7.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>4.0.1</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 |
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:
Commits
section and click Get 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