Coder Social home page Coder Social logo

liyueshining / dropwizard-guicey Goto Github PK

View Code? Open in Web Editor NEW

This project forked from xvik/dropwizard-guicey

0.0 2.0 0.0 2.64 MB

Dropwizard guice integration

Home Page: http://xvik.github.io/dropwizard-guicey/

License: MIT License

Java 54.90% Groovy 45.10%

dropwizard-guicey's Introduction

Dropwizard guice integration

License Build Status Appveyor build status codecov

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

Additional repositories:

Support:

About

Dropwizard 1.1.0 guice (4.1.0, 4.2.0) integration. Compatible with dropwizard 1.3.0 (declare dropwizard manually in your project to override transitive version).

Ext jdbi module is not yet compatible with guice 4.2.0. Dropwizard 1.3.0 compatibility for ext modules will be checked soon. New release should be near April (approx.).

Originally inspired by dropwizard-guice and dropwizardy-guice (which was derived from first one).

Features:

  • Guice injector created on run phase
  • Compatible with guice restrictive options: disableCircularProxies, requireExactBindingAnnotations and requireExplicitBindings
  • Flexible HK2 integration
  • No base classes for application or guice module (only bundle registration required)
  • Configurable installers mechanism: each supported feature (task install, health check install, etc) has it's own installer and may be disabled
  • Custom feature installers could be added
  • Optional classpath scan to search features: resources, tasks, commands, health checks etc (without dependency on reflections library)
  • Injections works in commands (environment commands)
  • Support injection of Bootstrap, Environment and Configuration objects into guice modules before injector creation
  • Guice ServletModule can be used to bind servlets and filters for main context (may be disabled)
  • Dropwizard style reporting of installed extensions
  • Admin context rest emulation
  • Custom junit rule for lightweight integration testing
  • Spock extensions

Thanks to

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

JCenter Maven Central

May be used through extensions project BOM or directly.

Maven:

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

Gradle:

compile 'ru.vyarus:dropwizard-guicey:4.1.0'
Dropwizard Guicey
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:

plugins {
    id "io.spring.dependency-management" version "1.0.2.RELEASE"
}
dependencyManagement {
    imports {
        mavenBom 'ru.vyarus.guicey:guicey:4.1.0'
    }
}

dependencies {
    compile 'ru.vyarus.guicey:guicey:4.1.0'
   
    // no need to specify versions
    compile 'io.dropwizard:dropwizard-auth'
    compile 'com.google.inject:guice-assistedinject'   
     
    testCompile 'io.dropwizard:dropwizard-test'
    testCompile 'org.spockframework:spock-core'
}

Bom includes:

  • Dropwizard BOM (io.dropwizard:dropwizard-bom)
  • Guice BOM (com.google.inject:guice-bom)
  • Hk bridge (org.glassfish.hk2:guice-bridge)
  • System rules, required for StartupErrorRule (com.github.stefanbirkner:system-rules)
  • Spock (org.spockframework:spock-core)

Guicey extensions project provide extended BOM with guicey and all guicey modules included. See extensions project BOM section for more details of BOM usage.

Snapshots

You can use snapshot versions through JitPack:

  • Go to JitPack project page
  • Select Commits section and click Get it on commit you want to use (top one - the most recent)
  • Follow displayed instruction: add repository and change dependency (NOTE: due to JitPack convention artifact group will be different)

Usage

Read documentation

Might also like


java lib generator

dropwizard-guicey's People

Contributors

xvik avatar segfly avatar benlongo avatar zaidos avatar chunyang avatar ayakushev99 avatar

Watchers

James Cloos avatar Moon Li avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.