@Override
  public WALCoprocessor checkAndGetInstance(Class<?> implClass)
    throws IllegalAccessException, InstantiationException {
    if (WALCoprocessor.class.isAssignableFrom(implClass)) {
      try {
        return implClass.asSubclass(WALCoprocessor.class).getDeclaredConstructor().newInstance();
      } catch (NoSuchMethodException | InvocationTargetException e) {
        throw (InstantiationException) new InstantiationException(implClass.getName()).initCause(e);
      }
    } else {
      LOG.error(implClass.getName() + " is not of type WALCoprocessor. Check the "
        + "configuration " + CoprocessorHost.WAL_COPROCESSOR_CONF_KEY);
      return null;
    }
  }
Constructor
@param log  the write ahead log
@param conf the configuration
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALCoprocessorHost.java