code: private static AbstractTemplateEngine tryLoadEngine(final JBakeConfiguration config, final ContentStore db, String engineClassName) {
          try {
              @SuppressWarnings("unchecked")
              Class<? extends AbstractTemplateEngine> engineClass = (Class<? extends AbstractTemplateEngine>) Class.forName(engineClassName, false, TemplateEngines.class.getClassLoader());
              Constructor<? extends AbstractTemplateEngine> ctor = engineClass.getConstructor(JBakeConfiguration.class, ContentStore.class);
              return ctor.newInstance(config, db);
          } catch (Throwable e) {
              // not all engines might be necessary, therefore only emit class loading issue with level warn
              LOGGER.warn("unable to load engine", e);
              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 config the configuration
  @param db database instance
  @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