From 56ab30fb7256bd1990380f32cf37b7fdb0a9dcf0 Mon Sep 17 00:00:00 2001 From: Chia-Ping Tsai Date: Sat, 17 Mar 2018 12:08:59 +0800 Subject: [PATCH] HBASE-20119 (addendum) revert the removed methods in TableDescriptorBuilder and TableDescriptor --- .../org/apache/hadoop/hbase/HTableDescriptor.java | 18 ++------- .../hadoop/hbase/client/TableDescriptor.java | 16 +++++++- .../hbase/client/TableDescriptorBuilder.java | 46 ++++++++++++++++++++++ 3 files changed, 64 insertions(+), 16 deletions(-) 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 e59ea45e10..960b91fa15 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 @@ -21,16 +21,15 @@ package org.apache.hadoop.hbase; import java.io.IOException; import java.util.Collection; import java.util.Collections; -import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; - import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; +import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder.ModifyableColumnFamilyDescriptor; import org.apache.hadoop.hbase.client.CoprocessorDescriptor; import org.apache.hadoop.hbase.client.CoprocessorDescriptorBuilder; -import org.apache.yetus.audience.InterfaceAudience; import org.apache.hadoop.hbase.client.Durability; import org.apache.hadoop.hbase.client.TableDescriptor; import org.apache.hadoop.hbase.client.TableDescriptorBuilder; @@ -38,8 +37,7 @@ import org.apache.hadoop.hbase.client.TableDescriptorBuilder.ModifyableTableDesc import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.security.User; import org.apache.hadoop.hbase.util.Bytes; -import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; -import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder.ModifyableColumnFamilyDescriptor; +import org.apache.yetus.audience.InterfaceAudience; /** * HTableDescriptor contains the details about an HBase table such as the descriptors of @@ -762,16 +760,6 @@ public class HTableDescriptor implements TableDescriptor, Comparable getCoprocessors() { - return getCoprocessorDescriptors().stream().map(CoprocessorDescriptor::getClassName) - .collect(Collectors.toList()); - } - /** * Remove a coprocessor from those set on the table * @param className Class name of the co-processor 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 4c46a8fe7e..9456fd4dc4 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 @@ -24,7 +24,7 @@ import java.util.Comparator; import java.util.Iterator; import java.util.Map; import java.util.Set; - +import java.util.stream.Collectors; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.util.Bytes; @@ -86,6 +86,20 @@ public interface TableDescriptor { */ Collection getCoprocessorDescriptors(); + /** + * Return the list of attached co-processor represented by their name + * className + * @return The list of co-processors classNames + * @deprecated As of release 2.0.0, this will be removed in HBase 3.0.0. + * Use {@link #getCoprocessorDescriptors()} instead + */ + @Deprecated + default Collection getCoprocessors() { + return getCoprocessorDescriptors().stream() + .map(CoprocessorDescriptor::getClassName) + .collect(Collectors.toList()); + } + /** * Returns the durability setting for the table. * 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 0f5d3ad89c..dcd95faf14 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 @@ -35,6 +35,7 @@ import java.util.TreeSet; import java.util.function.Function; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.Coprocessor; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.TableName; @@ -302,6 +303,51 @@ public class TableDescriptorBuilder { this.desc = new ModifyableTableDescriptor(desc); } + /** + * @deprecated As of release 2.0.0, this will be removed in HBase 3.0.0. + * Use {@link #setCoprocessor(String)} instead + */ + @Deprecated + public TableDescriptorBuilder addCoprocessor(String className) throws IOException { + return addCoprocessor(className, null, Coprocessor.PRIORITY_USER, null); + } + + /** + * @deprecated As of release 2.0.0, this will be removed in HBase 3.0.0. + * Use {@link #setCoprocessor(CoprocessorDescriptor)} instead + */ + @Deprecated + public TableDescriptorBuilder addCoprocessor(String className, Path jarFilePath, + int priority, final Map kvs) throws IOException { + desc.setCoprocessor( + CoprocessorDescriptorBuilder.newBuilder(className) + .setJarPath(jarFilePath == null ? null : jarFilePath.toString()) + .setPriority(priority) + .setProperties(kvs == null ? Collections.emptyMap() : kvs) + .build()); + return this; + } + + /** + * @deprecated As of release 2.0.0, this will be removed in HBase 3.0.0. + * Use {@link #setCoprocessor(CoprocessorDescriptor)} instead + */ + @Deprecated + public TableDescriptorBuilder addCoprocessorWithSpec(final String specStr) throws IOException { + desc.setCoprocessorWithSpec(specStr); + return this; + } + + /** + * @deprecated As of release 2.0.0, this will be removed in HBase 3.0.0. + * Use {@link #setColumnFamily(ColumnFamilyDescriptor)} instead + */ + @Deprecated + public TableDescriptorBuilder addColumnFamily(final ColumnFamilyDescriptor family) { + desc.setColumnFamily(family); + return this; + } + public TableDescriptorBuilder setCoprocessor(String className) throws IOException { return setCoprocessor(CoprocessorDescriptorBuilder.of(className)); } -- 2.16.2.windows.1