@Test
  public void testCustomReplicationProvider() throws IOException {
    final Configuration config = new Configuration();
    config.set(WALFactory.REPLICATION_WAL_PROVIDER, IOTestProvider.class.getName());
    final WALFactory walFactory = new WALFactory(config, this.currentServername.toString());
    Class<? extends WALProvider> walProvider =
      walFactory.getProviderClass(WALFactory.WAL_PROVIDER, Providers.filesystem.name());
    assertEquals(Providers.filesystem.clazz, walProvider);
    WALProvider replicationWALProvider = walFactory.getReplicationProvider();
    assertEquals(IOTestProvider.class, replicationWALProvider.getClass());
  }
A loaded WAL coprocessor won't break existing WAL test cases.
hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALFactory.java