You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ja...@apache.org on 2019/06/17 21:29:27 UTC

[hbase] branch branch-2.0 updated: HBASE-22344 Documented the deprecation of public and limited private APIs (#208)

This is an automated email from the ASF dual-hosted git repository.

janh pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new 3eff02a  HBASE-22344 Documented the deprecation of public and limited private APIs (#208)
3eff02a is described below

commit 3eff02a8f37c359337f53eee48ad4f0d2b001b72
Author: Jan Hentschel <ja...@ultratendency.com>
AuthorDate: Mon Jun 17 22:02:23 2019 +0200

    HBASE-22344 Documented the deprecation of public and limited private APIs (#208)
    
    Signed-off-by: stack <st...@apache.org>
---
 .../org/apache/hadoop/hbase/HColumnDescriptor.java |  5 ++-
 .../org/apache/hadoop/hbase/HTableDescriptor.java  | 24 ++++++++--
 .../java/org/apache/hadoop/hbase/client/Scan.java  | 51 +++++++++++++++-------
 .../hadoop/hbase/client/SnapshotDescription.java   | 26 ++++++++---
 .../hadoop/hbase/client/TableDescriptor.java       |  4 ++
 .../hbase/client/TableDescriptorBuilder.java       | 20 +++++++++
 .../FirstKeyValueMatchingQualifiersFilter.java     |  3 +-
 .../apache/hadoop/hbase/HBaseConfiguration.java    |  8 +++-
 .../hadoop/hbase/io/ImmutableBytesWritable.java    |  4 +-
 .../java/org/apache/hadoop/hbase/util/Bytes.java   | 18 ++++++--
 .../java/org/apache/hadoop/hbase/util/Counter.java |  5 ++-
 .../hadoop/hbase/mapred/TableOutputFormat.java     |  6 ++-
 .../apache/hadoop/hbase/mapreduce/CellCreator.java |  2 +
 .../hadoop/hbase/mapreduce/HFileOutputFormat2.java |  5 ++-
 .../mapreduce/SimpleTotalOrderPartitioner.java     |  9 ++++
 .../hadoop/hbase/mapreduce/TableMapReduceUtil.java | 10 ++++-
 .../hbase/regionserver/RowTooBigException.java     |  4 +-
 .../hbase/regionserver/RpcSchedulerFactory.java    |  4 ++
 .../regionserver/SimpleRpcSchedulerFactory.java    |  4 ++
 .../hadoop/hbase/regionserver/StoreFileReader.java | 14 +++---
 .../java/org/apache/hadoop/hbase/wal/WALEdit.java  | 10 ++++-
 .../org/apache/hadoop/hbase/HBaseTestCase.java     |  5 ++-
 .../apache/hadoop/hbase/HBaseTestingUtility.java   | 30 ++++++++++---
 23 files changed, 217 insertions(+), 54 deletions(-)

diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
index 7039208..a203936 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
@@ -162,7 +162,10 @@ public class HColumnDescriptor implements ColumnFamilyDescriptor, Comparable<HCo
    * name: i.e. 'printable' and ends in a ':' (Null passes are allowed because
    * <code>b</code> can be null when deserializing).  Cannot start with a '.'
    * either. Also Family can not be an empty value or equal "recovered.edits".
-   * @deprecated Use {@link ColumnFamilyDescriptorBuilder#isLegalColumnFamilyName(byte[])}.
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use
+   *   {@link ColumnFamilyDescriptorBuilder#isLegalColumnFamilyName(byte[])} instead.
+   * @see ColumnFamilyDescriptorBuilder#isLegalColumnFamilyName(byte[])
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-18008">HBASE-18008</a>
    */
   @Deprecated
   public static byte [] isLegalFamilyName(final byte [] b) {
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java
index 4f3c24e..90510e8 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java
@@ -527,9 +527,11 @@ public class HTableDescriptor implements TableDescriptor, Comparable<HTableDescr
   /**
    * Returns an unmodifiable collection of all the {@link HColumnDescriptor}
    * of all the column families of the table.
-   * @deprecated Use {@link #getColumnFamilies}.
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use {@link #getColumnFamilies()} instead.
    * @return Immutable collection of {@link HColumnDescriptor} of all the
    * column families.
+   * @see #getColumnFamilies()
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-18008">HBASE-18008</a>
    */
   @Deprecated
   public Collection<HColumnDescriptor> getFamilies() {
@@ -636,8 +638,9 @@ public class HTableDescriptor implements TableDescriptor, Comparable<HTableDescr
    * of the table.
    *
    * @return Array of all the HColumnDescriptors of the current table
-   *
+   * @deprecated since 2.0.0 and will be removed in 3.0.0.
    * @see #getFamilies()
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-18008">HBASE-18008</a>
    */
   @Deprecated
   @Override
@@ -653,7 +656,10 @@ public class HTableDescriptor implements TableDescriptor, Comparable<HTableDescr
    * @param column Column family name
    * @return Column descriptor for the passed family name or the family on
    * passed in column.
-   * @deprecated Use {@link #getColumnFamily(byte[])}.
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use {@link #getColumnFamily(byte[])}
+   *   instead.
+   * @see #getColumnFamily(byte[])
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-18008">HBASE-18008</a>
    */
   @Deprecated
   public HColumnDescriptor getFamily(final byte[] column) {
@@ -776,12 +782,20 @@ public class HTableDescriptor implements TableDescriptor, Comparable<HTableDescr
   public static final HTableDescriptor NAMESPACE_TABLEDESC
     = new HTableDescriptor(TableDescriptorBuilder.NAMESPACE_TABLEDESC);
 
+  /**
+   * @deprecated since 0.94.1
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-6188">HBASE-6188</a>
+   */
   @Deprecated
   public HTableDescriptor setOwner(User owner) {
     getDelegateeForModification().setOwner(owner);
     return this;
   }
 
+  /**
+   * @deprecated since 0.94.1
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-6188">HBASE-6188</a>
+   */
   // used by admin.rb:alter(table_name,*args) to update owner.
   @Deprecated
   public HTableDescriptor setOwnerString(String ownerString) {
@@ -789,6 +803,10 @@ public class HTableDescriptor implements TableDescriptor, Comparable<HTableDescr
     return this;
   }
 
+  /**
+   * @deprecated since 0.94.1
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-6188">HBASE-6188</a>
+   */
   @Override
   @Deprecated
   public String getOwnerString() {
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Scan.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Scan.java
index d4aff04..5e57799 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Scan.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Scan.java
@@ -196,7 +196,9 @@ public class Scan extends Query {
   public Scan() {}
 
   /**
-   * @deprecated use {@code new Scan().withStartRow(startRow).setFilter(filter)} instead.
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use
+   *   {@code new Scan().withStartRow(startRow).setFilter(filter)} instead.
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-17320">HBASE-17320</a>
    */
   @Deprecated
   public Scan(byte[] startRow, Filter filter) {
@@ -210,7 +212,9 @@ public class Scan extends Query {
    * If the specified row does not exist, the Scanner will start from the next closest row after the
    * specified row.
    * @param startRow row to start scanner at or after
-   * @deprecated use {@code new Scan().withStartRow(startRow)} instead.
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use
+   *   {@code new Scan().withStartRow(startRow)} instead.
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-17320">HBASE-17320</a>
    */
   @Deprecated
   public Scan(byte[] startRow) {
@@ -221,7 +225,9 @@ public class Scan extends Query {
    * Create a Scan operation for the range of rows specified.
    * @param startRow row to start scanner at or after (inclusive)
    * @param stopRow row to stop scanner before (exclusive)
-   * @deprecated use {@code new Scan().withStartRow(startRow).withStopRow(stopRow)} instead.
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use
+   *   {@code new Scan().withStartRow(startRow).withStopRow(stopRow)} instead.
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-17320">HBASE-17320</a>
    */
   @Deprecated
   public Scan(byte[] startRow, byte[] stopRow) {
@@ -423,8 +429,11 @@ public class Scan extends Query {
    * @return this
    * @throws IllegalArgumentException if startRow does not meet criteria for a row key (when length
    *           exceeds {@link HConstants#MAX_ROW_LENGTH})
-   * @deprecated use {@link #withStartRow(byte[])} instead. This method may change the inclusive of
-   *             the stop row to keep compatible with the old behavior.
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use {@link #withStartRow(byte[])}
+   *   instead. This method may change the inclusive of the stop row to keep compatible with the old
+   *   behavior.
+   * @see #withStartRow(byte[])
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-17320">HBASE-17320</a>
    */
   @Deprecated
   public Scan setStartRow(byte[] startRow) {
@@ -483,8 +492,11 @@ public class Scan extends Query {
    * @return this
    * @throws IllegalArgumentException if stopRow does not meet criteria for a row key (when length
    *           exceeds {@link HConstants#MAX_ROW_LENGTH})
-   * @deprecated use {@link #withStopRow(byte[])} instead. This method may change the inclusive of
-   *             the stop row to keep compatible with the old behavior.
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use {@link #withStopRow(byte[])} instead.
+   *   This method may change the inclusive of the stop row to keep compatible with the old
+   *   behavior.
+   * @see #withStopRow(byte[])
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-17320">HBASE-17320</a>
    */
   @Deprecated
   public Scan setStopRow(byte[] stopRow) {
@@ -601,8 +613,10 @@ public class Scan extends Query {
   /**
    * Get all available versions.
    * @return this
-   * @deprecated It is easy to misunderstand with column family's max versions, so use
-   *             {@link #readAllVersions()} instead.
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. It is easy to misunderstand with column
+   *   family's max versions, so use {@link #readAllVersions()} instead.
+   * @see #readAllVersions()
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-17125">HBASE-17125</a>
    */
   @Deprecated
   public Scan setMaxVersions() {
@@ -613,8 +627,10 @@ public class Scan extends Query {
    * Get up to the specified number of versions of each column.
    * @param maxVersions maximum versions for each column
    * @return this
-   * @deprecated It is easy to misunderstand with column family's max versions, so use
-   *             {@link #readVersions(int)} instead.
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. It is easy to misunderstand with column
+   *   family's max versions, so use {@link #readVersions(int)} instead.
+   * @see #readVersions(int)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-17125">HBASE-17125</a>
    */
   @Deprecated
   public Scan setMaxVersions(int maxVersions) {
@@ -1037,12 +1053,13 @@ public class Scan extends Query {
    * better performance for small scan. [HBASE-9488]. Generally, if the scan range is within one
    * data block(64KB), it could be considered as a small scan.
    * @param small
-   * @deprecated since 2.0.0. Use {@link #setLimit(int)} and {@link #setReadType(ReadType)} instead.
-   *             And for the one rpc optimization, now we will also fetch data when openScanner, and
-   *             if the number of rows reaches the limit then we will close the scanner
-   *             automatically which means we will fall back to one rpc.
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use {@link #setLimit(int)} and
+   *   {@link #setReadType(ReadType)} instead. And for the one rpc optimization, now we will also
+   *   fetch data when openScanner, and if the number of rows reaches the limit then we will close
+   *   the scanner automatically which means we will fall back to one rpc.
    * @see #setLimit(int)
    * @see #setReadType(ReadType)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-17045">HBASE-17045</a>
    */
   @Deprecated
   public Scan setSmall(boolean small) {
@@ -1054,7 +1071,9 @@ public class Scan extends Query {
   /**
    * Get whether this scan is a small scan
    * @return true if small scan
-   * @deprecated since 2.0.0. See the comment of {@link #setSmall(boolean)}
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. See the comment of
+   *   {@link #setSmall(boolean)}
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-17045">HBASE-17045</a>
    */
   @Deprecated
   public boolean isSmall() {
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/SnapshotDescription.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/SnapshotDescription.java
index db62c43..0b6f196 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/SnapshotDescription.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/SnapshotDescription.java
@@ -37,7 +37,10 @@ public class SnapshotDescription {
   }
 
   /**
-   * @deprecated Use the version with the TableName instance instead
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use the version with the TableName
+   *   instance instead.
+   * @see #SnapshotDescription(String, TableName)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-16892">HBASE-16892</a>
    */
   @Deprecated
   public SnapshotDescription(String name, String table) {
@@ -49,7 +52,10 @@ public class SnapshotDescription {
   }
 
   /**
-   * @deprecated Use the version with the TableName instance instead
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use the version with the TableName
+   *   instance instead.
+   * @see #SnapshotDescription(String, TableName, SnapshotType)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-16892">HBASE-16892</a>
    */
   @Deprecated
   public SnapshotDescription(String name, String table, SnapshotType type) {
@@ -61,7 +67,10 @@ public class SnapshotDescription {
   }
 
   /**
-   * @deprecated Use the version with the TableName instance instead
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use the version with the TableName
+   *   instance instead.
+   * @see #SnapshotDescription(String, TableName, SnapshotType, String)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-16892">HBASE-16892</a>
    */
   @Deprecated
   public SnapshotDescription(String name, String table, SnapshotType type, String owner) {
@@ -73,7 +82,10 @@ public class SnapshotDescription {
   }
 
   /**
-   * @deprecated Use the version with the TableName instance instead
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use the version with the TableName
+   *   instance instead.
+   * @see #SnapshotDescription(String, TableName, SnapshotType, String, long, int)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-16892">HBASE-16892</a>
    */
   @Deprecated
   public SnapshotDescription(String name, String table, SnapshotType type, String owner,
@@ -96,7 +108,11 @@ public class SnapshotDescription {
   }
 
   /**
-   * @deprecated Use getTableName() or getTableNameAsString() instead.
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use {@link #getTableName()} or
+   *   {@link #getTableNameAsString()} instead.
+   * @see #getTableName()
+   * @see #getTableNameAsString()
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-16892">HBASE-16892</a>
    */
   @Deprecated
   public String getTable() {
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptor.java
index 9456fd4..beef898 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptor.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptor.java
@@ -190,6 +190,10 @@ public interface TableDescriptor {
    */
   TableName getTableName();
 
+  /**
+   * @deprecated since 2.0.0 and will be removed in 3.0.0.
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-15583">HBASE-15583</a>
+   */
   @Deprecated
   String getOwnerString();
 
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java
index 02901ac..af833b2 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java
@@ -431,12 +431,20 @@ public class TableDescriptorBuilder {
     return this;
   }
 
+  /**
+   * @deprecated since 2.0.0 and will be removed in 3.0.0.
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-15583">HBASE-15583</a>
+   */
   @Deprecated
   public TableDescriptorBuilder setOwner(User owner) {
     desc.setOwner(owner);
     return this;
   }
 
+  /**
+   * @deprecated since 2.0.0 and will be removed in 3.0.0.
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-15583">HBASE-15583</a>
+   */
   @Deprecated
   public TableDescriptorBuilder setOwnerString(String ownerString) {
     desc.setOwnerString(ownerString);
@@ -1393,17 +1401,29 @@ public class TableDescriptorBuilder {
       }
     }
 
+    /**
+     * @deprecated since 2.0.0 and will be removed in 3.0.0.
+     * @see <a href="https://issues.apache.org/jira/browse/HBASE-15583">HBASE-15583</a>
+     */
     @Deprecated
     public ModifyableTableDescriptor setOwner(User owner) {
       return setOwnerString(owner != null ? owner.getShortName() : null);
     }
 
+    /**
+     * @deprecated since 2.0.0 and will be removed in 3.0.0.
+     * @see <a href="https://issues.apache.org/jira/browse/HBASE-15583">HBASE-15583</a>
+     */
     // used by admin.rb:alter(table_name,*args) to update owner.
     @Deprecated
     public ModifyableTableDescriptor setOwnerString(String ownerString) {
       return setValue(OWNER_KEY, ownerString);
     }
 
+    /**
+     * @deprecated since 2.0.0 and will be removed in 3.0.0.
+     * @see <a href="https://issues.apache.org/jira/browse/HBASE-15583">HBASE-15583</a>
+     */
     @Override
     @Deprecated
     public String getOwnerString() {
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.java
index 4cde2bf..ed11949 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.java
@@ -43,7 +43,8 @@ import org.apache.hbase.thirdparty.com.google.protobuf.UnsafeByteOperations;
  * caveat, this filter is only useful for special cases
  * like org.apache.hadoop.hbase.mapreduce.RowCounter.
  * <p>
- * @deprecated Deprecated in 2.0. See HBASE-13347
+ * @deprecated Deprecated in 2.0.0 and will be removed in 3.0.0.
+ * @see <a href="https://issues.apache.org/jira/browse/HBASE-13347">HBASE-13347</a>
  */
 @InterfaceAudience.Public
 @Deprecated
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/HBaseConfiguration.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/HBaseConfiguration.java
index 02c36ab..85c038f 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/HBaseConfiguration.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/HBaseConfiguration.java
@@ -39,7 +39,9 @@ public class HBaseConfiguration extends Configuration {
   /**
    * Instantiating HBaseConfiguration() is deprecated. Please use
    * HBaseConfiguration#create() to construct a plain Configuration
-   * @deprecated Please use create() instead.
+   * @deprecated since 0.90.0. Please use {@link #create()} instead.
+   * @see #create()
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-2036">HBASE-2036</a>
    */
   @Deprecated
   public HBaseConfiguration() {
@@ -53,7 +55,9 @@ public class HBaseConfiguration extends Configuration {
   /**
    * Instantiating HBaseConfiguration() is deprecated. Please use
    * HBaseConfiguration#create(conf) to construct a plain Configuration
-   * @deprecated Please user create(conf) instead.
+   * @deprecated since 0.90.0. Please use {@link #create(Configuration)} instead.
+   * @see #create(Configuration)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-2036">HBASE-2036</a>
    */
   @Deprecated
   public HBaseConfiguration(final Configuration c) {
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/ImmutableBytesWritable.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/ImmutableBytesWritable.java
index 949e905..d810c4a 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/ImmutableBytesWritable.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/ImmutableBytesWritable.java
@@ -117,7 +117,9 @@ implements WritableComparable<ImmutableBytesWritable> {
 
   /**
    * @return the number of valid bytes in the buffer
-   * @deprecated use {@link #getLength()} instead
+   * @deprecated since 0.98.5. Use {@link #getLength()} instead
+   * @see #getLength()
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-11561">HBASE-11561</a>
    */
   @Deprecated
   public int getSize() {
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Bytes.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Bytes.java
index faaab6f..3337c1d 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Bytes.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Bytes.java
@@ -226,7 +226,9 @@ public class Bytes implements Comparable<Bytes> {
 
   /**
    * @return the number of valid bytes in the buffer
-   * @deprecated use {@link #getLength()} instead
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use {@link #getLength()} instead.
+   * @see #getLength()
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-11862">HBASE-11862</a>
    */
   @Deprecated
   public int getSize() {
@@ -1370,7 +1372,9 @@ public class Bytes implements Comparable<Bytes> {
    * @param offset Offset into array at which vint begins.
    * @throws java.io.IOException e
    * @return deserialized long from buffer.
-   * @deprecated Use {@link #readAsVLong(byte[],int)} instead.
+   * @deprecated since 0.98.12. Use {@link #readAsVLong(byte[],int)} instead.
+   * @see #readAsVLong(byte[], int)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-6919">HBASE-6919</a>
    */
   @Deprecated
   public static long readVLong(final byte [] buffer, final int offset)
@@ -2003,7 +2007,10 @@ public class Bytes implements Comparable<Bytes> {
    *         arr[-1] = -Inf and arr[N] = Inf for an N-element array. The above
    *         means that this function can return 2N + 1 different values
    *         ranging from -(N + 1) to N - 1.
-   * @deprecated {@link Bytes#binarySearch(byte[][], byte[], int, int)}
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use
+   *   {@link #binarySearch(byte[][], byte[], int, int)} instead.
+   * @see #binarySearch(byte[][], byte[], int, int)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-13450">HBASE-13450</a>
    */
   @Deprecated
   public static int binarySearch(byte [][]arr, byte []key, int offset,
@@ -2061,7 +2068,10 @@ public class Bytes implements Comparable<Bytes> {
    *         means that this function can return 2N + 1 different values
    *         ranging from -(N + 1) to N - 1.
    * @return the index of the block
-   * @deprecated Use {@link Bytes#binarySearch(Cell[], Cell, CellComparator)}
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use
+   *   {@link #binarySearch(Cell[], Cell, CellComparator)} instead.
+   * @see #binarySearch(Cell[], Cell, CellComparator)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-13450">HBASE-13450</a>
    */
   @Deprecated
   public static int binarySearch(byte[][] arr, Cell key, RawComparator<Cell> comparator) {
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Counter.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Counter.java
index d646f45..2d97405 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Counter.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Counter.java
@@ -25,7 +25,10 @@ import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * High scalable counter. Thread safe.
- * @deprecated use {@link java.util.concurrent.atomic.LongAdder} instead.
+ * @deprecated since 2.0.0 and will be removed in 3.0.0. Use
+ *   {@link java.util.concurrent.atomic.LongAdder} instead.
+ * @see java.util.concurrent.atomic.LongAdder
+ * @see <a href="https://issues.apache.org/jira/browse/HBASE-7612">HBASE-7612</a>
  */
 @InterfaceAudience.Public
 @Deprecated
diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapred/TableOutputFormat.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapred/TableOutputFormat.java
index ed619fd..fcf6f55 100644
--- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapred/TableOutputFormat.java
+++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapred/TableOutputFormat.java
@@ -57,8 +57,10 @@ public class TableOutputFormat extends FileOutputFormat<ImmutableBytesWritable,
     /**
      * Instantiate a TableRecordWriter with the HBase HClient for writing.
      *
-     * @deprecated Please use {@code #TableRecordWriter(JobConf)}  This version does not clean up
-     * connections and will leak connections (removed in 2.0)
+     * @deprecated since 2.0.0 and will be removed in 3.0.0. Please use
+     *   {@code #TableRecordWriter(JobConf)} instead. This version does not clean up connections and
+     *   will leak connections (removed in 2.0).
+     * @see <a href="https://issues.apache.org/jira/browse/HBASE-16774">HBASE-16774</a>
      */
     @Deprecated
     public TableRecordWriter(final BufferedMutator mutator) throws IOException {
diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CellCreator.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CellCreator.java
index e744967..6c69651 100644
--- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CellCreator.java
+++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CellCreator.java
@@ -87,6 +87,8 @@ public class CellCreator {
    * @param visExpression visibility expression to be associated with cell
    * @return created Cell
    * @throws IOException
+   * @deprecated since 0.98.9
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-10560">HBASE-10560</a>
    */
   @Deprecated
   public Cell create(byte[] row, int roffset, int rlength, byte[] family, int foffset, int flength,
diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HFileOutputFormat2.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HFileOutputFormat2.java
index 6bfaef7..dc29356 100644
--- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HFileOutputFormat2.java
+++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HFileOutputFormat2.java
@@ -118,7 +118,10 @@ public class HFileOutputFormat2
     /**
      * The modification for the returned HTD doesn't affect the inner TD.
      * @return A clone of inner table descriptor
-     * @deprecated use {@link #getTableDescriptor}
+     * @deprecated since 2.0.0 and will be removed in 3.0.0. Use {@link #getTableDescriptor()}
+     *   instead.
+     * @see #getTableDescriptor()
+     * @see <a href="https://issues.apache.org/jira/browse/HBASE-18241">HBASE-18241</a>
      */
     @Deprecated
     public HTableDescriptor getHTableDescriptor() {
diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.java
index 1d6308a..df07780 100644
--- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.java
+++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.java
@@ -49,8 +49,17 @@ public class SimpleTotalOrderPartitioner<VALUE> extends Partitioner<ImmutableByt
 implements Configurable {
   private final static Logger LOG = LoggerFactory.getLogger(SimpleTotalOrderPartitioner.class);
 
+  /**
+   * @deprecated since 0.90.0
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-1923">HBASE-1923</a>
+   */
   @Deprecated
   public static final String START = "hbase.simpletotalorder.start";
+
+  /**
+   * @deprecated since 0.90.0
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-1923">HBASE-1923</a>
+   */
   @Deprecated
   public static final String END = "hbase.simpletotalorder.end";
 
diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java
index ce9f93a..7098e24 100644
--- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java
+++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java
@@ -552,7 +552,10 @@ public class TableMapReduceUtil {
    * @param job The job that requires the permission.
    * @param quorumAddress string that contains the 3 required configuratins
    * @throws IOException When the authentication token cannot be obtained.
-   * @deprecated Since 1.2.0, use {@link #initCredentialsForCluster(Job, Configuration)} instead.
+   * @deprecated Since 1.2.0 and will be removed in 3.0.0. Use
+   *   {@link #initCredentialsForCluster(Job, Configuration)} instead.
+   * @see #initCredentialsForCluster(Job, Configuration)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-14886">HBASE-14886</a>
    */
   @Deprecated
   public static void initCredentialsForCluster(Job job, String quorumAddress)
@@ -876,7 +879,10 @@ public class TableMapReduceUtil {
    * Add the jars containing the given classes to the job's configuration
    * such that JobClient will ship them to the cluster and add them to
    * the DistributedCache.
-   * @deprecated rely on {@link #addDependencyJars(Job)} instead.
+   * @deprecated since 1.3.0 and will be removed in 3.0.0. Use {@link #addDependencyJars(Job)}
+   *   instead.
+   * @see #addDependencyJars(Job)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-8386">HBASE-8386</a>
    */
   @Deprecated
   public static void addDependencyJars(Configuration conf,
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RowTooBigException.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RowTooBigException.java
index 4e32811..9cbf748 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RowTooBigException.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RowTooBigException.java
@@ -25,7 +25,9 @@ import org.apache.yetus.audience.InterfaceAudience;
  * set and row size appears to exceed max configured size (configurable via
  * hbase.table.max.rowsize).
  *
- * @deprecated use {@link org.apache.hadoop.hbase.client.RowTooBigException} instead.
+ * @deprecated since 0.99.0. Use {@link org.apache.hadoop.hbase.client.RowTooBigException} instead.
+ * @see org.apache.hadoop.hbase.client.RowTooBigException
+ * @see <a href="https://issues.apache.org/jira/browse/HBASE-11893">HBASE-11893</a>
  */
 @InterfaceAudience.Public
 @Deprecated
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RpcSchedulerFactory.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RpcSchedulerFactory.java
index 4e63f43..dbd393d 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RpcSchedulerFactory.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RpcSchedulerFactory.java
@@ -36,6 +36,10 @@ public interface RpcSchedulerFactory {
    */
   RpcScheduler create(Configuration conf, PriorityFunction priority, Abortable server);
 
+  /**
+   * @deprecated since 1.0.0.
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-12028">HBASE-12028</a>
+   */
   @Deprecated
   RpcScheduler create(Configuration conf, PriorityFunction priority);
 }
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SimpleRpcSchedulerFactory.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SimpleRpcSchedulerFactory.java
index 67aad26..22a9da5 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SimpleRpcSchedulerFactory.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SimpleRpcSchedulerFactory.java
@@ -32,6 +32,10 @@ import org.apache.hadoop.hbase.ipc.SimpleRpcScheduler;
 @InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, HBaseInterfaceAudience.PHOENIX})
 @InterfaceStability.Evolving
 public class SimpleRpcSchedulerFactory implements RpcSchedulerFactory {
+  /**
+   * @deprecated since 1.0.0.
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-12028">HBASE-12028</a>
+   */
   @Override
   @Deprecated
   public RpcScheduler create(Configuration conf, PriorityFunction priority) {
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileReader.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileReader.java
index 0a4efb0..5c76c0b 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileReader.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileReader.java
@@ -191,13 +191,14 @@ public class StoreFileReader {
   }
 
   /**
-   * @deprecated Do not write further code which depends on this call. Instead
-   *   use getStoreFileScanner() which uses the StoreFileScanner class/interface
-   *   which is the preferred way to scan a store with higher level concepts.
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Do not write further code which depends
+   *   on this call. Instead use getStoreFileScanner() which uses the StoreFileScanner
+   *   class/interface which is the preferred way to scan a store with higher level concepts.
    *
    * @param cacheBlocks should we cache the blocks?
    * @param pread use pread (for concurrent small readers)
    * @return the underlying HFileScanner
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-15296">HBASE-15296</a>
    */
   @Deprecated
   public HFileScanner getScanner(boolean cacheBlocks, boolean pread) {
@@ -205,9 +206,9 @@ public class StoreFileReader {
   }
 
   /**
-   * @deprecated Do not write further code which depends on this call. Instead
-   *   use getStoreFileScanner() which uses the StoreFileScanner class/interface
-   *   which is the preferred way to scan a store with higher level concepts.
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Do not write further code which depends
+   *   on this call. Instead use getStoreFileScanner() which uses the StoreFileScanner
+   *   class/interface which is the preferred way to scan a store with higher level concepts.
    *
    * @param cacheBlocks
    *          should we cache the blocks?
@@ -216,6 +217,7 @@ public class StoreFileReader {
    * @param isCompaction
    *          is scanner being used for compaction?
    * @return the underlying HFileScanner
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-15296">HBASE-15296</a>
    */
   @Deprecated
   public HFileScanner getScanner(boolean cacheBlocks, boolean pread,
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALEdit.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALEdit.java
index 3d90a45..d79ff8a 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALEdit.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALEdit.java
@@ -94,7 +94,10 @@ public class WALEdit implements HeapSize {
   }
 
   /**
-   * @deprecated Since 2.0.1. Use {@link #WALEdit(int, boolean)} instead.
+   * @deprecated since 2.0.1 and will be removed in 4.0.0. Use {@link #WALEdit(int, boolean)}
+   *   instead.
+   * @see #WALEdit(int, boolean)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-20781">HBASE-20781</a>
    */
   @Deprecated
   public WALEdit(boolean isReplay) {
@@ -102,7 +105,10 @@ public class WALEdit implements HeapSize {
   }
 
   /**
-   * @deprecated Since 2.0.1. Use {@link #WALEdit(int, boolean)} instead.
+   * @deprecated since 2.0.1 and will be removed in 4.0.0. Use {@link #WALEdit(int, boolean)}
+   *   instead.
+   * @see #WALEdit(int, boolean)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-20781">HBASE-20781</a>
    */
   @Deprecated
   public WALEdit(int cellCount) {
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestCase.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestCase.java
index 706a75f..7d296fa 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestCase.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestCase.java
@@ -47,7 +47,10 @@ import junit.framework.TestCase;
 /**
  * Abstract HBase test class.  Initializes a few things that can come in handly
  * like an HBaseConfiguration and filesystem.
- * @deprecated Write junit4 unit tests using {@link HBaseTestingUtility}
+ * @deprecated since 2.0.0 and will be removed in 3.0.0. Write junit4 unit tests using
+ *   {@link HBaseTestingUtility}.
+ * @see HBaseTestingUtility
+ * @see <a href="https://issues.apache.org/jira/browse/HBASE-11912">HBASE-11912</a>
  */
 @Deprecated
 public abstract class HBaseTestCase extends TestCase {
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
index 78c7973..4ff3127 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
@@ -181,7 +181,8 @@ public class HBaseTestingUtility extends HBaseZKTestingUtility {
    * System property key to get test directory value. Name is as it is because mini dfs has
    * hard-codings to put test data here. It should NOT be used directly in HBase, as it's a property
    * used in mini dfs.
-   * @deprecated can be used only with mini dfs
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Can be used only with mini dfs.
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-19410">HBASE-19410</a>
    */
   @Deprecated
   private static final String TEST_DIRECTORY_KEY = "test.build.data";
@@ -357,8 +358,11 @@ public class HBaseTestingUtility extends HBaseZKTestingUtility {
   }
 
   /**
-   * @deprecated use {@link HBaseTestingUtility#HBaseTestingUtility()} instead
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use {@link #HBaseTestingUtility()}
+   *   instead.
    * @return a normal HBaseTestingUtility
+   * @see #HBaseTestingUtility()
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-19841">HBASE-19841</a>
    */
   @Deprecated
   public static HBaseTestingUtility createLocalHTU() {
@@ -366,8 +370,11 @@ public class HBaseTestingUtility extends HBaseZKTestingUtility {
   }
 
   /**
-   * @deprecated use {@link HBaseTestingUtility#HBaseTestingUtility(Configuration)} instead
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use
+   *   {@link #HBaseTestingUtility(Configuration)} instead.
    * @return a normal HBaseTestingUtility
+   * @see #HBaseTestingUtility(Configuration)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-19841">HBASE-19841</a>
    */
   @Deprecated
   public static HBaseTestingUtility createLocalHTU(Configuration c) {
@@ -1752,6 +1759,12 @@ public class HBaseTestingUtility extends HBaseZKTestingUtility {
   public static final byte [] START_KEY_BYTES = {FIRST_CHAR, FIRST_CHAR, FIRST_CHAR};
   public static final String START_KEY = new String(START_KEY_BYTES, HConstants.UTF8_CHARSET);
 
+  /**
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use
+   *   {@link #createTableDescriptor(TableName, int, int, int, KeepDeletedCells)} instead.
+   * @see #createTableDescriptor(TableName, int, int, int, KeepDeletedCells)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-13893">HBASE-13893</a>
+   */
   @Deprecated
   public HTableDescriptor createTableDescriptor(final String name,
       final int minVersions, final int versions, final int ttl, KeepDeletedCells keepDeleted) {
@@ -1763,6 +1776,10 @@ public class HBaseTestingUtility extends HBaseZKTestingUtility {
    * Create a table of name <code>name</code>.
    * @param name Name to give table.
    * @return Column descriptor.
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use
+   *   {@link #createTableDescriptor(TableName, int, int, int, KeepDeletedCells)} instead.
+   * @see #createTableDescriptor(TableName, int, int, int, KeepDeletedCells)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-13893">HBASE-13893</a>
    */
   @Deprecated
   public HTableDescriptor createTableDescriptor(final String name) {
@@ -1864,8 +1881,11 @@ public class HBaseTestingUtility extends HBaseZKTestingUtility {
    * @throws IOException
    * @return A region on which you must call
              {@link HBaseTestingUtility#closeRegionAndWAL(HRegion)} when done.
-   * @deprecated use
-   * {@link #createLocalHRegion(TableName, byte[], byte[], boolean, Durability, WAL, byte[]...)}
+   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use
+   *   {@link #createLocalHRegion(TableName, byte[], byte[], boolean, Durability, WAL, byte[]...)}
+   *   instead.
+   * @see #createLocalHRegion(TableName, byte[], byte[], boolean, Durability, WAL, byte[]...)
+   * @see <a href="https://issues.apache.org/jira/browse/HBASE-13893">HBASE-13893</a>
    */
   @Deprecated
   public HRegion createLocalHRegion(byte[] tableName, byte[] startKey, byte[] stopKey,