xvik / dropwizard-guicey

Dropwizard guice integration
http://xvik.github.io/dropwizard-guicey/
MIT License
232 stars 49 forks source link
dropwizard guice java

Dropwizard guice integration

License CI Appveyor build status codecov

DOCUMENTATION: http://xvik.github.io/dropwizard-guicey/

Support: discussions | gitter chat

About

Dropwizard 4.0.7 guice 7.0.0 integration.

Features:

Sponsors

    Channel Talk

If guicey makes your life easier, you can support its development.

Supported versions

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 (EOL January 31 2024)
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.

Setup

Maven Central

Maven:

<dependency>
  <groupId>ru.vyarus</groupId>
  <artifactId>dropwizard-guicey</artifactId>
  <version>7.1.3</version>
</dependency>

Gradle:

implementation 'ru.vyarus:dropwizard-guicey:7.1.3'
Dropwizard Guicey
4.0 7.1.3
3.0 6.2.3
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

GRADLE 6 users: You might face Could not resolve com.google.guava:guava:32.1.2-jre. problem. This caused by guava packaging issue (affected many people). Either upgrade to gradle 7-8 or apply workaround

BOM

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.1.3')
    // uncomment to override dropwizard and its dependencies versions    
    //implementation platform('io.dropwizard:dropwizard-dependencies:4.0.7')

    // 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>7.1.3</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.7</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

Snapshots may be used through JitPack Add [JitPack](https://jitpack.io/#ru.vyarus/dropwizard-guicey) repository: ```groovy repositories { maven { url 'https://jitpack.io' } } ``` For spring dependencies plugin (when guicey pom used as BOM): ```groovy dependencyManagement { resolutionStrategy { cacheChangingModulesFor 0, 'seconds' } imports { mavenBom "ru.vyarus:dropwizard-guicey:master-SNAPSHOT" } } ``` For direct guicey dependency: ```groovy 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](https://jitpack.io/#ru.vyarus/dropwizard-guicey) * Select `Commits` section and click `Get it` on commit you want to use and use commit hash as version: `ru.vyarus:dropwizard-guicey:56537f7d23` Maven: ```xml jitpack.io https://jitpack.io ru.vyarus dropwizard-guicey master-SNAPSHOT pom import ru.vyarus dropwizard-guicey ``` Or simply change version if used as direct dependency (repository must be also added): ```xml ru.vyarus dropwizard-guicey master-SNAPSHOT ```

Usage

Read documentation

Might also like


java lib generator