Releases: xvik/dropwizard-guicey
Releases · xvik/dropwizard-guicey
6.0.0-beta.1
- 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
5.7.1
5.7.0
- 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).
- Custom installers could participate in report by overriding FeatureInstaller.getRecognizableSigns()
- 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
- 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
- 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
- In contrast to guicey hooks, setup objects used only in tests to replace the need of writing
- 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)
- Add new interface TestEnvironmentSetup to simplify test environment setup
- 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
- Application might be started per-test-method now (when extension registered in non-static field)
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
- 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 GuiceyTestSupport to simplify guice-only manual application runs
- 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
5.4.1
5.4.0
- 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)
- Add ability for direct static lookup during startup (from main thread):
- 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)
- Will show all root lambda modules bindings below to com.google.inject.Module
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
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