core/src/main/java/com/orientechnologies/orient/core/Orient.java
private void registerEngines() {
    ClassLoader classLoader = Orient.class.getClassLoader();

    Iterator<OEngine> engines = OClassLoaderHelper.lookupProviderWithOrientClassLoader(OEngine.class, classLoader);

    OEngine engine = null;
    while (engines.hasNext()) {
      try {
        engine = engines.next();
        registerEngine(engine);
      } catch (IllegalArgumentException e) {
        if (engine != null)
          OLogManager.instance().debug(this, "Failed to replace engine " + engine.getName(), e);
      }
    }
  }
private void registerEngines() {
    ClassLoader classLoader = Orient.class.getClassLoader();

    Iterator<OEngine> engines = OClassLoaderHelper.lookupProviderWithOrientClassLoader(OEngine.class, classLoader);

    OEngine engine = null;
    while (engines.hasNext()) {
      try {
        engine = engines.next();
        registerEngine(engine);
      } catch (IllegalArgumentException e) {
        if (engine != null)
          OLogManager.instance().debug(this, "Failed to replace engine " + engine.getName(), e);
      }
    }
  }
Shutdown whole OrientDB ecosystem. Usually is called during JVM shutdown by JVM shutdown handler. During shutdown all handlers
which were registered by the call of {@link #addShutdownHandler(OShutdownHandler)} are called together with pre-registered
system shoutdown handlers according to their priority.

@see OShutdownWorkersHandler
@see