@Override
  protected RecoveredReplicationSourceShipper createNewShipper(String walGroupId,
    ReplicationSourceWALReader walReader) {
    return new RecoveredReplicationSourceShipper(conf, walGroupId, this, walReader, queueStorage,
      () -> {
        if (workerThreads.isEmpty()) {
          this.getSourceMetrics().clear();
          if (this.getReplicationEndpoint() != null) {
            this.getReplicationEndpoint().stop();
          }
          manager.finishRecoveredSource(this);
        }
      });
  }
Class that handles the recovered source of a replication stream, which is transfered from another
dead region server. This will be closed when all logs are pushed to peer cluster.
hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSource.java