Class GuiceProvisionTimeHook
java.lang.Object
ru.vyarus.dropwizard.guice.debug.hook.GuiceProvisionTimeHook
- All Implemented Interfaces:
GuiceyConfigurationHook
Hook enables guice provision time logs. It is assumed to be used to enable provision time logs for compiled
application with system property:
-Dguicey.hooks=provision-time.
Also, hook could be used in tests to track created guice beans:
@EnableHook
static GuiceProvisionTimeHook hook = new GuiceProvisionTimeHook();
@Test
public void test() {
hook.clearData()
// anything requiring provision
injector.getInstance(SomeService.class);
// the report would contain only one bean creation
System.out.println(hook.renderReport())
}
- Since:
- 25.03.2025
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidClear collected data.voidconfigure(GuiceBundle.Builder builder) Configuration is applied just after manual configuration (through bundle's builder in application class).com.google.common.collect.ListMultimap<com.google.inject.Binding<?>,Duration> Map format: binding - provisions time.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ru.vyarus.dropwizard.guice.hook.GuiceyConfigurationHook
register
-
Field Details
-
ALIAS
System property hook alias name.- See Also:
-
-
Constructor Details
-
GuiceProvisionTimeHook
public GuiceProvisionTimeHook()
-
-
Method Details
-
configure
Description copied from interface:GuiceyConfigurationHookConfiguration is applied just after manual configuration (through bundle's builder in application class).GuiceBundle.Buildercontains special methods for test support:- Generic disable:
GuiceBundle.Builder.disable(java.util.function.Predicate[]) - Direct disable* method, for example
GuiceBundle.Builder.disableExtensions(Class[]) - Guice bindings override:
GuiceBundle.Builder.modulesOverride(com.google.inject.Module...)
GuiceBundle.Builder.option(Enum, Object)).All configuration items, registered with hook will be scoped as
GuiceyConfigurationHookinstead ofApplicationand so will be clearly distinguishable in configuration logs (GuiceBundle.Builder.printDiagnosticInfo()).- Specified by:
configurein interfaceGuiceyConfigurationHook- Parameters:
builder- just created bundle's builder
- Generic disable:
-
clearData
public void clearData()Clear collected data. -
getRecordedData
public com.google.common.collect.ListMultimap<com.google.inject.Binding<?>,Duration> getRecordedData()Map format: binding - provisions time.- Returns:
- recorded provision data
-
renderReport
- Returns:
- render beans creation report from collected data
-