Interface ClassLoaderAwareServletContainerInitializer

All Superinterfaces:
jakarta.servlet.ServletContainerInitializer
All Known Subinterfaces:
VaadinServletContextStartupInitializer
All Known Implementing Classes:
AnnotationValidator, DevModeStartupListener, ErrorNavigationTargetInitializer, LookupServletContainerInitializer, RouteRegistryInitializer, VaadinAppShellInitializer, WebComponentConfigurationRegistryInitializer, WebComponentExporterAwareValidator

public interface ClassLoaderAwareServletContainerInitializer extends jakarta.servlet.ServletContainerInitializer
Allows to load the implementation class by one classloader but accepts classes in onStartup(Set, ServletContext) method loaded by another classloader.

Workaround for https://github.com/vaadin/flow/issues/7805.

Author:
Vaadin Ltd
  • Method Summary

    Modifier and Type
    Method
    Description
    default void
    onStartup(Set<Class<?>> set, jakarta.servlet.ServletContext context)
    Overridden to use different classloaders if needed.
    void
    process(Set<Class<?>> classSet, jakarta.servlet.ServletContext context)
    Implement this method instead of onStartup(Set, ServletContext) to handle classes accessible by different classloaders.
    default boolean
    Whether this initializer requires lookup or not.
  • Method Details

    • onStartup

      default void onStartup(Set<Class<?>> set, jakarta.servlet.ServletContext context) throws jakarta.servlet.ServletException
      Overridden to use different classloaders if needed.

      Specified by:
      onStartup in interface jakarta.servlet.ServletContainerInitializer
      Throws:
      jakarta.servlet.ServletException
    • requiresLookup

      default boolean requiresLookup()
      Whether this initializer requires lookup or not.
      Returns:
      whether this initializer requires lookup
    • process

      void process(Set<Class<?>> classSet, jakarta.servlet.ServletContext context) throws jakarta.servlet.ServletException
      Implement this method instead of onStartup(Set, ServletContext) to handle classes accessible by different classloaders.
      Parameters:
      classSet - the Set of application classes that extend, implement, or have been annotated with the class types specified by the HandlesTypes annotation, or null if there are no matches, or this ServletContainerInitializer has not been annotated with HandlesTypes
      context - the ServletContext of the web application that is being started and in which the classes contained in classSet were found
      Throws:
      jakarta.servlet.ServletException - if an error has occurred
      See Also: