docs: public void configureDefaults() {
      // The pre-initiators part is heavily inspired by Tomcats JreMemoryLeakPreventionListener  
      // See http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java?view=markup
      this.addPreInitiator(new AwtToolkitInitiator());
      // initSecurityProviders()
      this.addPreInitiator(new JdbcDriversInitiator());
      this.addPreInitiator(new SunAwtAppContextInitiator());
      this.addPreInitiator(new SecurityPolicyInitiator());
      this.addPreInitiator(new SecurityProvidersInitiator());
      this.addPreInitiator(new DocumentBuilderFactoryInitiator());
      this.addPreInitiator(new ReplaceDOMNormalizerSerializerAbortException());
      this.addPreInitiator(new DatatypeConverterImplInitiator());
      this.addPreInitiator(new JavaxSecurityLoginConfigurationInitiator());
      this.addPreInitiator(new JarUrlConnectionInitiator());
      // Load Sun specific classes that may cause leaks
      this.addPreInitiator(new LdapPoolManagerInitiator());
      this.addPreInitiator(new Java2dDisposerInitiator());
      this.addPreInitiator(new Java2dRenderQueueInitiator());
      this.addPreInitiator(new SunGCInitiator());
      this.addPreInitiator(new OracleJdbcThreadInitiator());
  
      this.addCleanUp(new BeanIntrospectorCleanUp());
      
      // Apache Commons Pool can leave unfinished threads. Anything specific we can do?
      this.addCleanUp(new BeanELResolverCleanUp());
      this.addCleanUp(new BeanValidationCleanUp());
      this.addCleanUp(new JacksonCleanUp());
      this.addCleanUp(new JavaServerFaces2746CleanUp());
      this.addCleanUp(new GeoToolsCleanUp());
      // Can we do anything about Google Guice ?
      // Can we do anything about Groovy http://jira.codehaus.org/browse/GROOVY-4154 ?
      this.addCleanUp(new IntrospectionUtilsCleanUp());
      // Can we do anything about Logback http://jira.qos.ch/browse/LBCORE-205 ?
      this.addCleanUp(new IIOServiceProviderCleanUp()); // clear ImageIO registry
      this.addCleanUp(new MoxyCleanUp());
      this.addCleanUp(new ReactorNettyHttpResourcesCleanUp());
      this.addCleanUp(new ThreadGroupContextCleanUp());
      this.addCleanUp(new X509TrustManagerImplUnparseableExtensionCleanUp());
      this.addCleanUp(new SAAJEnvelopeFactoryParserPoolCleanUp());
      
      ////////////////////
      // Fix generic leaks
      this.addCleanUp(new DriverManagerCleanUp());
      
      this.addCleanUp(new DefaultAuthenticatorCleanUp());
  
      this.addCleanUp(new MBeanCleanUp());
      this.addCleanUp(new MXBeanNotificationListenersCleanUp());
      
      this.addCleanUp(new ShutdownHookCleanUp());
      this.addCleanUp(new PropertyEditorCleanUp());
      this.addCleanUp(new SecurityProviderCleanUp());
      this.addCleanUp(new JceSecurityCleanUp()); // (Probably best to do after deregistering the providers)
      this.addCleanUp(new ProxySelectorCleanUp());
      this.addCleanUp(new RmiTargetsCleanUp());
      this.addCleanUp(new StopThreadsCleanUp());
      this.addCleanUp(new ThreadGroupCleanUp());
      this.addCleanUp(new ThreadLocalCleanUp()); // This must be done after threads have been stopped, or new ThreadLocals may be added by those threads
      this.addCleanUp(new KeepAliveTimerCacheCleanUp());
      this.addCleanUp(new ResourceBundleCleanUp());
      this.addCleanUp(new JDK8151486CleanUp());
      this.addCleanUp(new JavaUtilLoggingLevelCleanUp()); // Do this last, in case other shutdown procedures want to log something.
      this.addCleanUp(new ApacheCommonsLoggingCleanUp()); // Do this last, in case other shutdown procedures want to log something.
      
    }