Class HK2DebugBundle

java.lang.Object
ru.vyarus.dropwizard.guice.module.context.unique.item.UniqueGuiceyBundle
ru.vyarus.dropwizard.guice.module.jersey.debug.HK2DebugBundle
All Implemented Interfaces:
GuiceyBundle

public class HK2DebugBundle extends UniqueGuiceyBundle
Bundle enables debug services to check correct extensions instantiation:
  • JerseyManaged annotated service must be instantiated by HK2 and not guice
  • Other services must be instantiated only in guice

When enabled, exception will be thrown when service instantiated outside of assumed bound (or duplicate instantiation occur).

Checked only beans registered by JerseyInstaller (ResourceInstaller, JerseyProviderInstaller or any 3rd party installer implementing jersey installer interface).

Module intended to be used in tests. ContextDebugService collects all tracked classes instantiated by both guice and HK2 and may provide lists of classes accordingly. It may be used in test conditions.

Soft deprecation: try to avoid hk2 direct usage if possible, someday HK2 support will be removed

Since:
15.01.2016
  • Constructor Details

    • HK2DebugBundle

      public HK2DebugBundle()
  • Method Details

    • initialize

      public void initialize(GuiceyBootstrap bootstrap)
      Description copied from interface: GuiceyBundle
      Called in initialization phase. GuiceyBootstrap contains almost the same methods as GuiceBundle.Builder, which allows registering installers, extensions and guice modules. Existing installer could be replaced by disabling old one and registering new.

      Dropwizard bundles could be also registered with GuiceyBootstrap.dropwizardBundles(io.dropwizard.core.ConfiguredBundle[]) shortcut (or by directly accessing dropwizard bootstrap object: GuiceyBootstrap.bootstrap().

      As bundles could be registered only during initialization phase, it is not possible to avoid bundle registration based on configuration (not a good practice). But, it is possible to use guicey options instead: for example, map option from environment variable and use to decide if some bundles should be activated.

      Parameters:
      bootstrap - guicey bootstrap object