Skip to content

xvik/dropwizard-guicey

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dropwizard guice integration

License CI Appveyor build status codecov

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

Support: discussions | gitter chat

About

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

Sponsors

    Channel

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

Setup

Maven Central

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)

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: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

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 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>

Usage

Read documentation

Might also like


java lib generator