test_class.file: webapp/scinitializer/src/test/java/cloud/piranha/webapp/scinitializer/ServletContainerInitializerExtensionTest.java
test_class.identifier: ServletContainerInitializerExtensionTest
test_case.body: @Test
      void testConfigure() {
          DefaultWebApplication webApplication = new DefaultWebApplication();
          ServletContainerInitializerExtension extension = new ServletContainerInitializerExtension();
          extension.configure(webApplication);
      }
test_case.class_method_signature: ServletContainerInitializerExtensionTest.testConfigure()
test_case.full_signature: @Test void testConfigure()
test_case.identifier: testConfigure
test_case.invocations: configure
test_case.modifiers: @Test
test_case.parameters: ()
test_case.return: void
test_case.signature: void testConfigure()
focal_class.declarator: LOGGER = Logger.getLogger(
              ServletContainerInitializerExtension.class.getPackage().getName())
focal_class.modifier: private static final
focal_class.original_string: private static final Logger LOGGER = Logger.getLogger(
              ServletContainerInitializerExtension.class.getPackage().getName());
focal_class.type: Logger
focal_class.var_name: LOGGER
focal_class.declarator: excludeExistingInitializers
focal_class.modifier: private final
focal_class.original_string: private final boolean excludeExistingInitializers;
focal_class.type: boolean
focal_class.var_name: excludeExistingInitializers
focal_class.declarator: ignoreInitializers
focal_class.modifier: private final
focal_class.original_string: private final List<String> ignoreInitializers;
focal_class.type: List<String>
focal_class.var_name: ignoreInitializers
focal_class.file: webapp/scinitializer/src/main/java/cloud/piranha/webapp/scinitializer/ServletContainerInitializerExtension.java
focal_class.identifier: ServletContainerInitializerExtension
focal_class.interfaces: implements WebApplicationExtension
focal_class.class_method_signature: ServletContainerInitializerExtension.ServletContainerInitializerExtension()
focal_class.full_signature: public  ServletContainerInitializerExtension()
focal_class.identifier: ServletContainerInitializerExtension
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  ServletContainerInitializerExtension()
focal_class.class_method_signature: ServletContainerInitializerExtension.ServletContainerInitializerExtension(boolean excludeExistingInitializers, List<String> ignoreInitializers)
focal_class.full_signature: public  ServletContainerInitializerExtension(boolean excludeExistingInitializers, List<String> ignoreInitializers)
focal_class.identifier: ServletContainerInitializerExtension
focal_class.modifiers: public
focal_class.parameters: (boolean excludeExistingInitializers, List<String> ignoreInitializers)
focal_class.signature:  ServletContainerInitializerExtension(boolean excludeExistingInitializers, List<String> ignoreInitializers)
focal_class.class_method_signature: ServletContainerInitializerExtension.configure(WebApplication webApplication)
focal_class.full_signature: @Override public void configure(WebApplication webApplication)
focal_class.identifier: configure
focal_class.modifiers: @Override public
focal_class.parameters: (WebApplication webApplication)
focal_class.return: void
focal_class.signature: void configure(WebApplication webApplication)
focal_class.class_method_signature: ServletContainerInitializerExtension.shouldAdd(WebApplication webApplication, ServletContainerInitializer initializer)
focal_class.full_signature: private boolean shouldAdd(WebApplication webApplication, ServletContainerInitializer initializer)
focal_class.identifier: shouldAdd
focal_class.modifiers: private
focal_class.parameters: (WebApplication webApplication, ServletContainerInitializer initializer)
focal_class.return: boolean
focal_class.signature: boolean shouldAdd(WebApplication webApplication, ServletContainerInitializer initializer)
focal_class.class_method_signature: ServletContainerInitializerExtension.containsInstance(WebApplication webApplication, ServletContainerInitializer initializer)
focal_class.full_signature: private boolean containsInstance(WebApplication webApplication, ServletContainerInitializer initializer)
focal_class.identifier: containsInstance
focal_class.modifiers: private
focal_class.parameters: (WebApplication webApplication, ServletContainerInitializer initializer)
focal_class.return: boolean
focal_class.signature: boolean containsInstance(WebApplication webApplication, ServletContainerInitializer initializer)
focal_class.class_method_signature: ServletContainerInitializerExtension.isIgnored(ServletContainerInitializer initializer)
focal_class.full_signature: private boolean isIgnored(ServletContainerInitializer initializer)
focal_class.identifier: isIgnored
focal_class.modifiers: private
focal_class.parameters: (ServletContainerInitializer initializer)
focal_class.return: boolean
focal_class.signature: boolean isIgnored(ServletContainerInitializer initializer)
focal_method.body: @Override
      public void configure(WebApplication webApplication) {
          LOGGER.log(FINER, "Starting ServletContainerInitializer processing");
          ServiceLoader<ServletContainerInitializer> serviceLoader = ServiceLoader.load(
                  ServletContainerInitializer.class, webApplication.getClassLoader());
  
          for (ServletContainerInitializer initializer : serviceLoader) {
              LOGGER.log(FINE, () -> "Adding initializer: " + initializer.getClass().getName());
  
              if (shouldAdd(webApplication, initializer)) {
                  webApplication.addInitializer(initializer);
              }
          }
  
          if (this.getClass().getModule().isNamed()) {
              // We are running in a modular environment,
              // the providers from modules aren't available in the webApplication classloader
              serviceLoader = ServiceLoader.load(ServletContainerInitializer.class);
              for (ServletContainerInitializer initializer : serviceLoader) {
                  LOGGER.log(FINE, () -> "Adding initializer: " + initializer.getClass().getName());
  
                  if (shouldAdd(webApplication, initializer)) {
                      webApplication.addInitializer(initializer);
                  }
              }
          }
  
          LOGGER.log(FINER, "Finished ServletContainerInitializer processing");
      }
focal_method.class_method_signature: ServletContainerInitializerExtension.configure(WebApplication webApplication)
focal_method.full_signature: @Override public void configure(WebApplication webApplication)
focal_method.identifier: configure
focal_method.invocations: log load getClassLoader log getName getClass shouldAdd addInitializer isNamed getModule getClass load log getName getClass shouldAdd addInitializer log
focal_method.modifiers: @Override public
focal_method.parameters: (WebApplication webApplication)
focal_method.return: void
focal_method.signature: void configure(WebApplication webApplication)