Skip to content

Releases: xvik/dropwizard-guicey

3.3.0

01 Aug 22:13
Compare
Choose a tag to compare
  • Update to guice 4.1.0
  • Update to dropwizard 0.9.3
  • Grant compatibility with guice options: disableCircularProxies, requireExactBindingAnnotations and requireExplicitBindings
  • ResourceInstaller looks for @path on directly implemented interface (#10)
  • Fix bundles lookup reporting (correct multiline)
  • Fix duplicate extensions installation when registered both manually and by auto scan
  • Restrict extension installation to one installer (first matching, according to installers order)
  • Improve dropwizard configuration class binding:
    • Complete configuration hierarchy bound (root, all classes between root and Configuration and Configuration itself)
    • (optional) Bind interfaces directly implemented by classes in configuration hierarchy except interfaces from java and groovy packages
      (it's common to use HasSomeConfig interface convention and now interface may be directly used for binding (when bindConfigurationInterfaces()))
  • Add GuiceyBootstrap methods (extend GuiceyBundle abilities):
    • bundles(): add transitive guicey bundles support (to install other guicey bundles from bundle). Duplicate bundles are detected by type.
    • application(): returns current application instance
  • Rewrite internal configuration mechanism (bundles, installers etc) to generalize it and introduce complete configuration tracking: store registration sources, disabling, used installers and other specific information for each item
    • Add GuiceyConfigurationInfo service to access tracked guicey configuration information (may be used for configuration diagnostic purposes, performing post configuration checks, printing complete configuration tree etc)
    • Add DiagnosticBundle to log configuration items diagnostic information. Log format is configurable. Rendering is externalized and may be re-used (e.g. for web page).
  • Add GuiceBundle builder configuration options:
    • bindConfigurationInterfaces() to enable configuration interface bindings
    • strictScopeControl() is shortcut to enable HK2DebugBundle (to control beans creation scope during development and tests)
    • printDiagnosticInfo() is shortcut to enable DiagnosticBundle with default preset (enable diagnostic logs)
    • shortcut methods for disabled boolean options: searchCommands(), configureFromDropwizardBundles() and bindConfigurationInterfaces()

NOTE: if used FeaturesHolder (internal api bean), now it's renamed to ExtensionsHolder to force upgrade: use new GuiceyConfigurationInfo bean instead (public api)

3.2.0

23 Jan 12:44
Compare
Choose a tag to compare
  • Clear possible duplicate guicey bundle instances
  • Add GuiceyBundleLookup to automatically resolve and install guicey bundles from various sources.
    • Default: check 'guicey.bundles' system property and install bundles described there. May be useful for tests to enable debug bundles.
    • Default: use ServiceLoader mechanism to load declared GuiceyBundle services. Useful for automatic loading of third party extensions.
    • Add builder bundleLookup method to register custom lookup implementation
    • Add builder disableBundleLookup to disable default lookups
    • Default lookup implementation logs all resolved bundles
  • Fix JerseyProviderInstaller: prevent hk beans duplicate instantiations; fix DynamicFeature support.
  • Add HK2DebugBundle. When enabled, checks that beans are instantiated by guice only and annotated with @HK2Managed
    are managed by HK2 only. May be used in tests as extra validation.
  • Add JerseyFeatureInstaller (included in code bundle) which installs javax.ws.rs.core.Feature. Useful for low level configuration.
  • Update to dropwizard 0.9
  • Revert system exit on guice injector creation error (added in 3.1.1)

3.1.1

24 Nov 05:58
Compare
Choose a tag to compare
  • Exit on guice injector creation error. Contributed by Adam Dougal
  • Add classpath scan packages validation for intersection (to prevent duplicate instances)

3.1.0

06 Sep 11:06
Compare
Choose a tag to compare
  • JerseyProviderInstaller:
    • add support for: ParamConverterProvider, ContextResolver, MessageBodyReader, MessageBodyWriter, ReaderInterceptor, WriterInterceptor,
      ContainerRequestFilter, ContainerResponseFilter, DynamicFeature, ApplicationEventListener
    • support multiple extension interfaces on the same bean
  • Introduce bundles (GuiceyBundle) to simplify extensions:
    • core installers now registered with CoreInstallersBundle and classpath scan on core installers package is removed
    • builder bundles() method to add guicey bundles
    • builder configureFromDropwizardBundles method enables all registered dropwizard bundles lookup if they implement GuiceyBundle (unified extension mechanism)
  • Add admin context rest support (AdminRestBundle)
  • Add request scoped beans support in admin context

3.0.1

04 Jul 13:49
Compare
Choose a tag to compare
  • Add DropwizardAwareModule abstract module to remove boilerplate of using all aware interfaces

3.0.0

27 Apr 09:08
Compare
Choose a tag to compare
  • Fix HealthCheckInstaller: now installs only NamedHealthCheck classes and ignore other HealthCheck types (which it can't install properly)
  • (breaking) Remove static state from GuiceBundle:
    • GuiceBundle.getInjector method remain, but its now instance specific (instead of static)
    • Injector could be referenced statically using application instance: InjectorLookup.getInjector(app).get()
    • JerseyInstaller interface signature changed: now install method receives injector instance

2.2.0

17 Apr 11:06
Compare
Choose a tag to compare
  • Fix ExceptionMapper registration
  • Add installers ordering support with @order annotation. Default installers are ordered now with indexes from 10 to 100 with gap 10
    (to simplify custom installers injection between them)

2.1.2

02 Mar 20:50
Compare
Choose a tag to compare
  • Spock 1.0 compatibility

2.1.1

25 Jan 09:21
Compare
Choose a tag to compare
  • Dropwizard 0.8-rc2 compatibility

2.1.0

03 Jan 20:05
Compare
Choose a tag to compare
  • Add ability to customize injector creation (required by some guice third party modules, like governator). Contributed by Nicholas Pace
  • Add spock extensions to use injections directly in specification (like spock-guice do)