Class 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
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  HK2DebugBundle.HK2DebugModule
      Guice module with scope validation services.
    • Constructor Summary

      Constructors 
      Constructor Description
      HK2DebugBundle()  
    • Constructor Detail

      • HK2DebugBundle

        public HK2DebugBundle()
    • Method Detail

      • 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