code: private static ParserEngine tryLoadEngine(String engineClassName) {
          try {
              @SuppressWarnings("unchecked")
              Class<? extends ParserEngine> engineClass = (Class<? extends ParserEngine>) Class.forName(engineClassName, false, Engines.class.getClassLoader());
              return engineClass.getDeclaredConstructor().newInstance();
          } catch (ClassNotFoundException | NoClassDefFoundError | IllegalAccessException | InstantiationException e) {
              return new ErrorEngine(engineClassName);
          } catch (NoSuchMethodException | InvocationTargetException e) {
              LOGGER.error("unable to instantiate ParserEngine {}", engineClassName);
          }
          return null;
      }
docs: This method is used to search for a specific class, telling if loading the engine would succeed. This is
  typically used to avoid loading optional modules.
  
  @param engineClassName engine class, used both as a hint to find it and to create the engine itself.
  @return null if the engine is not available, an instance of the engine otherwise