Installers report¶
Installers report is intended to show what extensions could be used and share some light on how installers work.
Activation:
GuiceBundle.builder()
...
.printAvailableInstallers()
.build());
Example output:
INFO [2019-10-11 06:09:06,085] ru.vyarus.dropwizard.guice.debug.ConfigurationDiagnostic: Available installers report
---------------------------------------------------------------------------[CONFIGURATION]
INSTALLERS in processing order =
OBJECT, ORDER lifecycle (r.v.d.g.m.i.f.LifeCycleInstaller)
OBJECT, ORDER managed (r.v.d.g.m.i.feature.ManagedInstaller)
OBJECT jerseyfeature (r.v.d.g.m.i.f.j.JerseyFeatureInstaller)
JERSEY, BIND, OPTIONS jerseyprovider (r.v.d.g.m.i.f.j.p.JerseyProviderInstaller)
TYPE, JERSEY, BIND, OPTIONS resource (r.v.d.g.m.i.f.j.ResourceInstaller)
BIND eagersingleton (r.v.d.g.m.i.f.e.EagerSingletonInstaller)
OBJECT healthcheck (r.v.d.g.m.i.f.h.HealthCheckInstaller)
OBJECT task (r.v.d.g.m.i.feature.TaskInstaller)
BIND plugin (r.v.d.g.m.i.f.plugin.PluginInstaller)
OBJECT, OPTIONS, ORDER webservlet (r.v.d.g.m.i.f.w.WebServletInstaller)
OBJECT, ORDER webfilter (r.v.d.g.m.i.f.web.WebFilterInstaller)
OBJECT, OPTIONS, ORDER weblistener (r.v.d.g.m.i.f.w.l.WebListenerInstaller)
---------------------------------------------------------------------------[CONFIGURATION TREE]
APPLICATION
│
└── CoreInstallersBundle (r.v.d.g.m.installer)
├── installer LifeCycleInstaller (r.v.d.g.m.i.feature)
├── installer ManagedInstaller (r.v.d.g.m.i.feature)
├── installer JerseyFeatureInstaller (r.v.d.g.m.i.f.jersey)
├── installer JerseyProviderInstaller (r.v.d.g.m.i.f.j.provider)
├── installer ResourceInstaller (r.v.d.g.m.i.f.jersey)
├── installer EagerSingletonInstaller (r.v.d.g.m.i.f.eager)
├── installer HealthCheckInstaller (r.v.d.g.m.i.f.health)
├── installer TaskInstaller (r.v.d.g.m.i.feature)
├── installer PluginInstaller (r.v.d.g.m.i.f.plugin)
│
└── WebInstallersBundle (r.v.d.g.m.installer)
├── installer WebFilterInstaller (r.v.d.g.m.i.f.web)
├── installer WebServletInstaller (r.v.d.g.m.i.f.web)
└── installer WebListenerInstaller (r.v.d.g.m.i.f.w.listener)
Note
This is actually re-configured configuration report. But, in contrast to configuration report, it shows all installers (even not used).
Also, it indicated used installer features. For example, looking at
OBJECT, ORDER managed (r.v.d.g.m.i.feature.ManagedInstaller)
You could see that managed installer (responsible for Managed
objects installation)
use objects for installation (obtains extension instance from guice and registers it).
Also it supports ordering (so extensions could use @Order
annotation).
By looking at @EagerSingleton
installer:
BIND eagersingleton (r.v.d.g.m.i.f.e.EagerSingletonInstaller)
You can see that it only applies guice binding and nothing more.
Installer features¶
Feature | Description |
---|---|
OBJECT |
Installer use object instances for extensions registration (obtain instance from guice context) |
TYPE |
Installer use extension class for extension registration. Usually it's jersey installers which has to register extension in jersey context |
JERSEY |
Installer installs jersey features (in time of jersey start and not after injector creation as "pure" installers) |
BIND |
Installer perform manual guice binding. For such installers, automatic untargeted binding for extension is not created (assuming installer require some custom binding). Such installers also verify manual guice bindings, when they are recognized as extension binding. |
OPTIONS |
Installer requires access for options. Most likely it means it supports additional configuration options (but it cold just read core options value). |
ORDER |
Installer supports extensions ordering. Use @Order annotation to declare order. |