public void registerListenerExtensions() {
    if (listenerExtensionsRegistered) {
      throw H2O.fail("Listeners already registered");
    }

    long before = System.currentTimeMillis();
    ServiceLoader<H2OListenerExtension> extensionsLoader = ServiceLoader.load(H2OListenerExtension.class);
    for (H2OListenerExtension ext : extensionsLoader) {
      ext.init();
      listenerExtensions.put(ext.getName(), ext);
    }
    listenerExtensionsRegistered = true;
    registerListenerExtensionsMillis = System.currentTimeMillis() - before;
  }
public void registerListenerExtensions ( ) { if ( listenerExtensionsRegistered ) { throw H2O . fail ( "Listeners already registered" ) ; } long before = System . currentTimeMillis ( ) ; ServiceLoader < H2OListenerExtension > extensionsLoader = ServiceLoader . load ( H2OListenerExtension . class ) ; for ( H2OListenerExtension ext : extensionsLoader ) { ext . init ( ) ; listenerExtensions . put ( ext . getName ( ) , ext ) ; } listenerExtensionsRegistered = true ; registerListenerExtensionsMillis = System . currentTimeMillis ( ) - before ; }
Register various listener extensions

Use reflection to find all classes that inherit from {@link water.api.AbstractRegister}
and call the register() method for each.