Skip to content

Releases: xvik/dropwizard-guicey

6.0.0-beta.1

28 Mar 04:53
Compare
Choose a tag to compare
6.0.0-beta.1 Pre-release
Pre-release
  • Update to dropwizard 3
    • (breaking) Drop java 8 support
  • Merged with guicey-ext modules repository:
    • Ext modules version would be the same as guicey
    • dropwizard-guicey POM would not be a BOM anymore (everything moved to guicey-bom)
    • Exclusions not applied in BOM anymore, instead they applied directly in POM

DW migration guide

Release discussion

5.7.1

09 Mar 15:27
Compare
Choose a tag to compare
  • Update to dropwizard 2.1.5
  • Revert changing reports log level: now INFO used instead of WARN (#276)

5.7.0

29 Dec 10:53
Compare
Choose a tag to compare
  • Update to dropwizard 2.1.4
  • Fix NoClassDefFoundError(AbstractCollectionJaxbProvider) appeared for some jersey provider registrations (#240)
  • Jersey extensions might omit @Provider on known extension types (ExceptionMapper, MessageBodyReader, etc.).
    Unifies usage with pure dropwizard (no additional @Provider annotation required). (#265)
    • New option InstallerOptions.JerseyExtensionsRecognizedByType could disable new behaviour
  • Support ModelProcessor jersey extension installation (#186)
  • Add extensions help: .printExtensionsHelp() showing extension signs recognized by installers (in recognition order)
    • Custom installers could participate in report by overriding FeatureInstaller.getRecognizableSigns()
      (default interface method).
  • Change reports log level from INFO to WARN to comply with default dropwizard level
  • Support application reuse between tests (#269)
    • new reuseApplication parameter in extensions enables reuse
    • reusable application must be declared in base test class: all tests derived
      from this base class would use the same application instance
  • Add SBOM (json and xml with cyclonedx classifier)
  • Add .enableAutoConfig() no-args shortcut for enabling classpath scan in application package

5.6.1

02 Jul 14:31
Compare
Choose a tag to compare
  • Update dropwizard to 2.1.1 (fixes java 8 issue by allowing afterburner usage)
  • Fix classpath scan recognition of inner static classes inside jars (#231)
  • Junit 5 extensions:
    • Fix parallel test methods support (configuration overrides were applied incorrectly)
    • Add "debug" option: when enabled, prints registered setup objects, hooks and
      applied configuration overrides
      • Setup objects and hooks not printed by default as before, only when debug enabled
      • Debug could be also enabled with system property -Dguicey.extensions.debug=true
        or with alias TestSupport.debugExtensions()

5.6.0

07 Jun 11:55
Compare
Choose a tag to compare
  • Update dropwizard to 2.1.0
  • Test support objects changes:
    • Add new interface TestEnvironmentSetup to simplify test environment setup
      • In contrast to guicey hooks, setup objects used only in tests to replace the need of writing
        additional junit extensions (for example, to setup test db). It provides a simple way to
        override application configuration (e.g. to specify credentials to just started db)
      • Registration is the same as with hooks: annotation or inside extension builder and with
        field using new annotation @EnableSetup
    • Hooks and setup objects configured in test are logged now in execution order and
      with registration source hint
    • @EnableHook fields might be declared with custom classes (not only raw hook interface)
  • Junit 5 extensions field registration (@RegisterExtension) changes
    • Application might be started per-test-method now (when extension registered in non-static field)
      • In this case support objects might also be registered in non-static fields
    • Add configOverrideByExtension method to read configuration override value
      registered by 3rd party junit 5 extension (from junit extension store).
    • hooks(Class) method accepts multiple classes
    • configOverrides(String...) now aggregates multiple calls

Known issue:

  • Dropwizard replaced jackson afterburner with blackbird. On java 8 this
    leads to a warning on startup that looks like exception. Everything works,
    just a very confusing stacktrace on startup (#226)

5.5.0

29 Mar 19:12
Compare
Choose a tag to compare
  • Test framework-agnostic utilities:
    • Add GuiceyTestSupport to simplify guice-only manual application runs
      (by analogy to DropwizardTestSupport class)
    • Add TestSupport class as a root for test framework-agnostic utilities.
      Suitable for application startup errors testing and integration within not supported test runner.
  • Add Spock 2 support: there is no custom extensions, instead existing junit 5 extensions would be used
    through a special library spock-junit5 (developed specifically for this integration)
  • Change "hooks in base test class" behaviour: hooks from static fields from base classes applied before hooks in test itself.
    Such behaviour is more natural - "base classes declarations go first"
    (before all field hooks were applied after annotation hooks)
  • Extract Spock 1 and Junit 4 extensions from core into ext modules:
    • packages remain the same, so there should be no issues with it (just add new dependency)
    • removed deprecation markers from Junit 4 rules (entire module assumed to be deprecated; fewer warnings on build)
  • BOM changes:
    • spock version removed in order to avoid problems downgrading spock version for spock1 module
    • system-rules removed because it targets junit4 (ext module provides it)
    • groovy libraries removed (newer groovy 2.x was required for spock1 to run on java 11)
    • add spock-junit5 version

5.4.2

26 Jan 12:43
Compare
Choose a tag to compare
  • Update dropwizard to 2.0.28
  • Update guice to 5.1.0 (java 17 support)

5.4.1

19 Dec 15:08
Compare
Choose a tag to compare
  • Fix inner guice class usage in always executable code (#187, OSGi issue)
  • Update dropwizard to 2.0.27 (many dependency updates in the latest versions fixing java 17 support)

5.4.0

21 Oct 14:56
Compare
Choose a tag to compare
  • Use direct dependency versions in pom to simplify resolution (dependencyManagement section remains but for usage as BOM only)
  • Fix lambda modules support (modules declared with lambda expression) (#160)
  • Exclude "sun.*" objects from configuration analysis (#170, #180)
  • Fix junit5 extensions support for @testinstance(TestInstance.Lifecycle.PER_CLASS)
    (class instance injections now processed in beforeEach hook instead of instancePostProcessor)
  • Add error message when junit5 extensions incorrectly registered with non-static fields (to avoid confusion)
  • SharedConfigurationState:
    • Add ability for direct static lookup during startup (from main thread):
      SharedConfigurationState.getStartupInstance()
      (option required for places where neither application not environment object accessible
      (e.g. binding installer, bundle lookup, etc.); and could be used for common objects resolution where otherwise
      they are not directly accessible)
    • Add shortcut methods on state instance producing providers (lazy) for common objects:
      getBootstrap, getApplication, getEnvironment, getConfiguration, getConfigurationTree
      (example usage during startup: SharedConfigurationState.getStartupInstance().getApplication() returns Provider)
  • Unify shared state access methods in GuiceyBootstrap, GuiceyEnvironment and DropwizardAwareModule
    (removes implicit limitation that shared state must be initialized only in init phase)

Lambda modules reporting:

  • Root lambda module class will be shown in the diagnostic report (in a list of root modules)
  • Guice bindings report:
    • Will show all root lambda modules bindings below to com.google.inject.Module
      (code links at the end of each binding would lead to correct declaration line)
    • Bindings of lambda modules installed by root (or deeper modules) would be shown
      directly under root module, as if it was declared directly in that module (logically it's correct)

IMPORTANT: since dropwizard 2.0.22 jdk8 compatibility is broken for jdbi3.
To bring back jdk8 compatibility caffeine version must be downgraded.
There is now a special package guicey-jdbi3-jdk8 for easy compatibility fixing.

4.2.3

27 Mar 15:39
Compare
Choose a tag to compare

Maintenance release for dropwizard 1.3

  • Unify GuiceyAppRule (junit4) behavior with DropwizardAppRule: config overrides should initialize just
    before test and not in the constructor. The issue was causing early evaluation of lazy (deferred) overrides (from #151)
  • Update to dropwizard 1.3.29
  • Update to guice 4.2.3 (java 14 compatible)
  • Java 11 compatibility. Add automatic module name
  • BOM changes:
    • spock 1.3
    • groovy 2.5.14 (java 11 compatible)
    • system-rules 1.19.0
    • add guicey itself to bom