diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/ReplicationEndpoint.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/ReplicationEndpoint.java
index ffdba34713..8e1daca47d 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/ReplicationEndpoint.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/ReplicationEndpoint.java
@@ -35,20 +35,25 @@ import org.apache.hadoop.hbase.replication.regionserver.MetricsSource;
/**
* ReplicationEndpoint is a plugin which implements replication
- * to other HBase clusters, or other systems. ReplicationEndpoint implementation
- * can be specified at the peer creation time by specifying it
- * in the {@link ReplicationPeerConfig}. A ReplicationEndpoint is run in a thread
- * in each region server in the same process.
+ * to other HBase clusters, or other systems. The ReplicationEndpoint implementation
+ * is specified at peer creation time by specifying a {@link ReplicationPeerConfig}.
+ * A ReplicationEndpoint is run in a thread in each region server inside the RegionServer
+ * process.
*
* ReplicationEndpoint is closely tied to ReplicationSource in a producer-consumer
* relation. ReplicationSource is an HBase-private class which tails the logs and manages
* the queue of logs plus management and persistence of all the state for replication.
* ReplicationEndpoint on the other hand is responsible for doing the actual shipping
* and persisting of the WAL entries in the other cluster.
+ *
+ *
Filtering
+ * ReplicationEndpoint implementations can filter out WALEdits on the sending side.
+ * Implement {@link WALEntryFilter}(s) and return them via {@link #getWALEntryfilter()}}.
+ * For examples see {@link BaseReplicationEndpoint}'s {@link #getWALEntryfilter()}}.
*/
@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.REPLICATION)
public interface ReplicationEndpoint extends ReplicationPeerConfigListener {
- // TODO: This class needs doc. Has a Context and a ReplicationContext. Then has #start, #stop.
+ // TODO: This class needs doc. Has a Context and a ReplicateContext. Then has #start, #stop.
// How they relate? Do we #start before #init(Context)? We fail fast if you don't?
@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.REPLICATION)
@@ -142,6 +147,7 @@ public interface ReplicationEndpoint extends ReplicationPeerConfigListener {
List entries;
int size;
String walGroupId;
+
@InterfaceAudience.Private
public ReplicateContext() {
}
@@ -150,14 +156,17 @@ public interface ReplicationEndpoint extends ReplicationPeerConfigListener {
this.entries = entries;
return this;
}
+
public ReplicateContext setSize(int size) {
this.size = size;
return this;
}
+
public ReplicateContext setWalGroupId(String walGroupId) {
this.walGroupId = walGroupId;
return this;
}
+
public List getEntries() {
return entries;
}
@@ -171,7 +180,7 @@ public interface ReplicationEndpoint extends ReplicationPeerConfigListener {
/**
* Replicate the given set of entries (in the context) to the other cluster.
- * Can block until all the given entries are replicated. Upon this method is returned,
+ * Can block until all the given entries are replicated. Upon return,
* all entries that were passed in the context are assumed to be persisted in the
* target cluster.
* @param replicateContext a context where WAL entries and other