Class GuiceProvisionTimeHook
- java.lang.Object
-
- ru.vyarus.dropwizard.guice.debug.hook.GuiceProvisionTimeHook
-
- All Implemented Interfaces:
GuiceyConfigurationHook
public class GuiceProvisionTimeHook extends java.lang.Object implements 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 Modifier and Type Field Description static java.lang.StringALIASSystem property hook alias name.
-
Constructor Summary
Constructors Constructor Description GuiceProvisionTimeHook()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclearData()Clear 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<?>,java.time.Duration>getRecordedData()Map format: binding - provisions time.java.lang.StringrenderReport()-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface ru.vyarus.dropwizard.guice.hook.GuiceyConfigurationHook
register
-
-
-
-
Field Detail
-
ALIAS
public static final java.lang.String ALIAS
System property hook alias name.- See Also:
- Constant Field Values
-
-
Method Detail
-
configure
public void configure(GuiceBundle.Builder builder)
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<?>,java.time.Duration> getRecordedData()
Map format: binding - provisions time.- Returns:
- recorded provision data
-
renderReport
public java.lang.String renderReport()
- Returns:
- render beans creation report from collected data
-
-