Class WebListenerInstaller
- java.lang.Object
-
- ru.vyarus.dropwizard.guice.module.installer.option.InstallerOptionsSupport
-
- ru.vyarus.dropwizard.guice.module.installer.feature.web.listener.WebListenerInstaller
-
- All Implemented Interfaces:
FeatureInstaller,InstanceInstaller<java.util.EventListener>,WithOptions,Ordered
public class WebListenerInstaller extends InstallerOptionsSupport implements FeatureInstaller, InstanceInstaller<java.util.EventListener>, Ordered
Search for servlet and session listeners annotated withWebListener(servlet api annotation). Such listeners will not be installed by jetty because dropwizard didn't depend on jetty-annotations.As stated in
WebListenerannotation javadoc both servlet (4) and session events (3) supported. But dropwizard by default is stateless, so http listeners will be installed only if session handler defined. Single extension could implement multiple listener interfaces (even all of them).IMPORTANT: For session listeners registered for context without sessions support enabled only warning will be showed in logs (and listeners will not be installed). Error is not thrown to let writing more universal bundles with listener extensions (session related extensions will simply not work). Use
InstallersOptions.DenySessionListenersWithoutSessionto throw exception instead of warning.By default, everything is installed for main context. Special annotation
AdminContextmust be used to install into admin or both contexts.Reporting format:
[context markers: M - main, A - admin] (class)
. If listener registered only in main context, then context marker (M) is not shown.- Since:
- 06.08.2016
-
-
Constructor Summary
Constructors Constructor Description WebListenerInstaller()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<java.lang.String>getRecognizableSigns()Method used by extensions help report (GuiceBundle.Builder.printExtensionsHelp()) to show what signs this exact installer recognize so user could better understand extensions support specifics.voidinstall(io.dropwizard.core.setup.Environment environment, java.util.EventListener instance)UseFeatureUtils.getInstanceClass(instance)to overcome proxies and get correct type.booleanmatches(java.lang.Class<?> type)NOTE: consider usingru.vyarus.dropwizard.guice.module.installer.util.FeatureUtilsto simplify checks (for example, types most likely must be checks to be not abstract).voidreport()Called to log registered endpoints in dropwizard log fashion.-
Methods inherited from class ru.vyarus.dropwizard.guice.module.installer.option.InstallerOptionsSupport
option, setOptions
-
-
-
-
Method Detail
-
matches
public boolean matches(java.lang.Class<?> type)
Description copied from interface:FeatureInstallerNOTE: consider usingru.vyarus.dropwizard.guice.module.installer.util.FeatureUtilsto simplify checks (for example, types most likely must be checks to be not abstract).When type accepted by any extension it's registered in guice module.
- Specified by:
matchesin interfaceFeatureInstaller- Parameters:
type- type to check- Returns:
- true if extension recognized, false otherwise
-
install
public void install(io.dropwizard.core.setup.Environment environment, java.util.EventListener instance)Description copied from interface:InstanceInstallerUseFeatureUtils.getInstanceClass(instance)to overcome proxies and get correct type.Full
Injectorcould be obtained withInjectorLookup.getInjector(Environment).Shared state could be obtained with
SharedConfigurationState.get(Environment)- Specified by:
installin interfaceInstanceInstaller<java.util.EventListener>- Parameters:
environment- environment objectinstance- extension instance
-
report
public void report()
Description copied from interface:FeatureInstallerCalled to log registered endpoints in dropwizard log fashion. It's important to naturally show all dynamically resolved classes to easily catch errors. UseReporterto simplify reporting.Method may do nothing if reporting not required
- Specified by:
reportin interfaceFeatureInstaller
-
getRecognizableSigns
public java.util.List<java.lang.String> getRecognizableSigns()
Description copied from interface:FeatureInstallerMethod used by extensions help report (GuiceBundle.Builder.printExtensionsHelp()) to show what signs this exact installer recognize so user could better understand extensions support specifics.- Specified by:
getRecognizableSignsin interfaceFeatureInstaller- Returns:
- list of extension signs installer recognize
-
-