@Override
  public void init(WALFactory factory, Configuration conf, String providerId, Abortable abortable)
    throws IOException {
    if (!initialized.compareAndSet(false, true)) {
      throw new IllegalStateException("WALProvider.init should only be called once.");
    }
    this.factory = factory;
    this.conf = conf;
    this.providerId = providerId != null ? providerId : DEFAULT_PROVIDER_ID;
  }
@param factory    factory that made us, identity used for FS layout. may not be null
@param conf       may not be null
@param providerId differentiate between providers from one facotry, used for FS layout. may be
                  null
hbase-server/src/test/java/org/apache/hadoop/hbase/wal/IOTestProvider.java