Class WebServletInstaller

  • All Implemented Interfaces:
    FeatureInstaller, InstanceInstaller<javax.servlet.http.HttpServlet>, WithOptions, Ordered

    public class WebServletInstaller
    extends InstallerOptionsSupport
    implements FeatureInstaller, InstanceInstaller<javax.servlet.http.HttpServlet>, Ordered
    Search for http servlets annotated with WebServlet (servlet api annotation). Such servlets will not be installed by jetty because dropwizard didn't depend on jetty-annotations.

    Only the following WebServlet annotation properties are supported: name, urlPatterns ( or value), initParams, asyncSupported.

    When servlet name not defined, then name will be generated as: . (dot) at the beginning to indicate generated name, followed by lower-cased class name. If class ends with "servlet" then it will be cut off. For example, for class "MyCoolServlet" generated name will be ".mycool".

    If servlet mapping clash (partially or completely) with some other servlet then warning log will be printed, but overall process will not fail. Use InstallersOptions.DenyServletRegistrationWithClash to throw exception instead of warning.

    By default, everything is installed for main context. Special annotation AdminContext must be used to install into admin or both contexts.

    Reporting format:

    [urls] [context markers: M - main, A - admin] (class) [servlet name]
    . If servlet registered only in main context, then context marker (M) is not shown.
    Since:
    06.08.2016
    • 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.
      void install​(io.dropwizard.setup.Environment environment, javax.servlet.http.HttpServlet instance)
      Use FeatureUtils.getInstanceClass(instance) to overcome proxies and get correct type.
      boolean matches​(java.lang.Class<?> type)
      NOTE: consider using ru.vyarus.dropwizard.guice.module.installer.util.FeatureUtils to simplify checks (for example, types most likely must be checks to be not abstract).
      void report()
      Called to log registered endpoints in dropwizard log fashion.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • WebServletInstaller

        public WebServletInstaller()
    • Method Detail

      • matches

        public boolean matches​(java.lang.Class<?> type)
        Description copied from interface: FeatureInstaller
        NOTE: consider using ru.vyarus.dropwizard.guice.module.installer.util.FeatureUtils to 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:
        matches in interface FeatureInstaller
        Parameters:
        type - type to check
        Returns:
        true if extension recognized, false otherwise
      • report

        public void report()
        Description copied from interface: FeatureInstaller
        Called to log registered endpoints in dropwizard log fashion. It's important to naturally show all dynamically resolved classes to easily catch errors. Use Reporter to simplify reporting.

        Method may do nothing if reporting not required

        Specified by:
        report in interface FeatureInstaller