code: @Override
      public void init(ServletConfig config) throws ServletException {
          LOGGER.info("Starting " + Config.getInstance().getApplicationName());
          super.init(config);
  
          final Info info = new Info()
                  .title(Config.getInstance().getApplicationName() + " API")
                  .version(Config.getInstance().getApplicationVersion());
  
          final Swagger swagger = new Swagger()
                  .info(info)
                  .securityDefinition("X-Api-Key", new ApiKeyAuthDefinition("X-Api-Key", In.HEADER));
  
          // Dynamically get the url-pattern from web.xml and use that as the 'baseUrl' for
          // the API documentation
          final ServletContext servletContext = getServletContext();
          final ServletRegistration servletRegistration = servletContext.getServletRegistration(config.getServletName());
          final Collection<String> mappings = servletRegistration.getMappings();
          if (! Collections.isEmpty(mappings)) {
              String baseUrl = mappings.iterator().next();
              if (baseUrl.charAt(0) != '/') {
                  baseUrl = "/" + baseUrl;
              }
              baseUrl = baseUrl.replace("/*", "").replaceAll("\\/$", "");
              swagger.basePath(config.getServletContext().getContextPath() + baseUrl);
          }
  
          new SwaggerContextService().withServletConfig(config).updateSwagger(swagger).initScanner();
  
          // Initializes the KeyManager
          KeyManager.getInstance();
  
          // Log all Java System Properties
          SecurityUtil.logJavaSystemProperties();
  
          // Determine if Watchdog logging is enabled and if so, start interval logging
          final int interval = Config.getInstance().getPropertyAsInt(Config.AlpineKey.WATCHDOG_LOGGING_INTERVAL);
          if (interval > 0) {
              final IntervalLoggerController wd = SecurityLoggingFactory.getControllerInstance();
              wd.start(interval * 1000); // Interval is defined in seconds
          }
          LOGGER.info(Config.getInstance().getApplicationName() + " is ready");
      }
docs: Overrides the servlet init method and loads sets the InputStream necessary
  to load application.properties.
  @throws ServletException a general error that occurs during initialization