You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2020/03/26 13:35:48 UTC

[hbase] branch master updated: HBASE-23975 make hbase-rest use shaded protobuf (#1325)

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

zhangduo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
     new d7ff742  HBASE-23975 make hbase-rest use shaded protobuf (#1325)
d7ff742 is described below

commit d7ff742ce850ac891fbacf55064e1942a531708d
Author: Semen Komissarov <se...@gmail.com>
AuthorDate: Thu Mar 26 16:35:36 2020 +0300

    HBASE-23975 make hbase-rest use shaded protobuf (#1325)
    
    Signed-off-by: stack <st...@apache.org>
    Signed-off-by: Jan Hentschel <ja...@ultratendency.com>
    Signed-off-by: Duo Zhang <zh...@apache.org>
---
 .../src/main/protobuf/CellMessage.proto               |  2 +-
 .../src/main/protobuf/CellSetMessage.proto            |  2 +-
 .../src/main/protobuf/ColumnSchemaMessage.proto       |  2 +-
 .../main/protobuf/NamespacePropertiesMessage.proto    |  2 +-
 .../src/main/protobuf/NamespacesMessage.proto         |  2 +-
 .../src/main/protobuf/ScannerMessage.proto            |  2 +-
 .../main/protobuf/StorageClusterStatusMessage.proto   |  2 +-
 .../src/main/protobuf/TableInfoMessage.proto          |  2 +-
 .../src/main/protobuf/TableListMessage.proto          |  2 +-
 .../src/main/protobuf/TableSchemaMessage.proto        |  2 +-
 .../src/main/protobuf/VersionMessage.proto            |  2 +-
 hbase-rest/pom.xml                                    | 19 +++----------------
 .../org/apache/hadoop/hbase/rest/model/CellModel.java | 11 ++++++-----
 .../apache/hadoop/hbase/rest/model/CellSetModel.java  | 16 +++++++++-------
 .../hbase/rest/model/NamespacesInstanceModel.java     |  3 ++-
 .../hadoop/hbase/rest/model/NamespacesModel.java      |  3 ++-
 .../apache/hadoop/hbase/rest/model/ScannerModel.java  | 16 +++++++++-------
 .../hbase/rest/model/StorageClusterStatusModel.java   | 10 ++++++----
 .../hadoop/hbase/rest/model/TableInfoModel.java       | 12 +++++++-----
 .../hadoop/hbase/rest/model/TableListModel.java       |  5 +++--
 .../hadoop/hbase/rest/model/TableSchemaModel.java     |  7 ++++---
 .../apache/hadoop/hbase/rest/model/VersionModel.java  |  4 ++--
 .../hadoop/hbase/rest/TestScannersWithLabels.java     |  2 +-
 23 files changed, 65 insertions(+), 65 deletions(-)

diff --git a/hbase-rest/src/main/protobuf/CellMessage.proto b/hbase-protocol-shaded/src/main/protobuf/CellMessage.proto
similarity index 93%
rename from hbase-rest/src/main/protobuf/CellMessage.proto
rename to hbase-protocol-shaded/src/main/protobuf/CellMessage.proto
index 0170be8..75b6f01 100644
--- a/hbase-rest/src/main/protobuf/CellMessage.proto
+++ b/hbase-protocol-shaded/src/main/protobuf/CellMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.rest.protobuf.generated;
+package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
 
 message Cell {
   optional bytes row = 1;       // unused if Cell is in a CellSet
diff --git a/hbase-rest/src/main/protobuf/CellSetMessage.proto b/hbase-protocol-shaded/src/main/protobuf/CellSetMessage.proto
similarity index 93%
rename from hbase-rest/src/main/protobuf/CellSetMessage.proto
rename to hbase-protocol-shaded/src/main/protobuf/CellSetMessage.proto
index b43482c..0e41181 100644
--- a/hbase-rest/src/main/protobuf/CellSetMessage.proto
+++ b/hbase-protocol-shaded/src/main/protobuf/CellSetMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.rest.protobuf.generated;
+package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
 
 import "CellMessage.proto";
 
diff --git a/hbase-rest/src/main/protobuf/ColumnSchemaMessage.proto b/hbase-protocol-shaded/src/main/protobuf/ColumnSchemaMessage.proto
similarity index 94%
rename from hbase-rest/src/main/protobuf/ColumnSchemaMessage.proto
rename to hbase-protocol-shaded/src/main/protobuf/ColumnSchemaMessage.proto
index c6c957d..8b5e479 100644
--- a/hbase-rest/src/main/protobuf/ColumnSchemaMessage.proto
+++ b/hbase-protocol-shaded/src/main/protobuf/ColumnSchemaMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.rest.protobuf.generated;
+package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
 
 message ColumnSchema {
   optional string name = 1;
diff --git a/hbase-rest/src/main/protobuf/NamespacePropertiesMessage.proto b/hbase-protocol-shaded/src/main/protobuf/NamespacePropertiesMessage.proto
similarity index 93%
rename from hbase-rest/src/main/protobuf/NamespacePropertiesMessage.proto
rename to hbase-protocol-shaded/src/main/protobuf/NamespacePropertiesMessage.proto
index 5858aef..d0a1a4e 100644
--- a/hbase-rest/src/main/protobuf/NamespacePropertiesMessage.proto
+++ b/hbase-protocol-shaded/src/main/protobuf/NamespacePropertiesMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.rest.protobuf.generated;
+package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
 
 message NamespaceProperties {
   message Property {
diff --git a/hbase-rest/src/main/protobuf/NamespacesMessage.proto b/hbase-protocol-shaded/src/main/protobuf/NamespacesMessage.proto
similarity index 93%
rename from hbase-rest/src/main/protobuf/NamespacesMessage.proto
rename to hbase-protocol-shaded/src/main/protobuf/NamespacesMessage.proto
index 0d1c857..6627e0d 100644
--- a/hbase-rest/src/main/protobuf/NamespacesMessage.proto
+++ b/hbase-protocol-shaded/src/main/protobuf/NamespacesMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.rest.protobuf.generated;
+package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
 
 message Namespaces {
 	repeated string namespace = 1;
diff --git a/hbase-rest/src/main/protobuf/ScannerMessage.proto b/hbase-protocol-shaded/src/main/protobuf/ScannerMessage.proto
similarity index 95%
rename from hbase-rest/src/main/protobuf/ScannerMessage.proto
rename to hbase-protocol-shaded/src/main/protobuf/ScannerMessage.proto
index 08e3408..55cdf15 100644
--- a/hbase-rest/src/main/protobuf/ScannerMessage.proto
+++ b/hbase-protocol-shaded/src/main/protobuf/ScannerMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.rest.protobuf.generated;
+package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
 
 message Scanner {
   optional bytes startRow = 1;
diff --git a/hbase-rest/src/main/protobuf/StorageClusterStatusMessage.proto b/hbase-protocol-shaded/src/main/protobuf/StorageClusterStatusMessage.proto
similarity index 96%
rename from hbase-rest/src/main/protobuf/StorageClusterStatusMessage.proto
rename to hbase-protocol-shaded/src/main/protobuf/StorageClusterStatusMessage.proto
index 7b9c40c..c39e239 100644
--- a/hbase-rest/src/main/protobuf/StorageClusterStatusMessage.proto
+++ b/hbase-protocol-shaded/src/main/protobuf/StorageClusterStatusMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.rest.protobuf.generated;
+package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
 
 message StorageClusterStatus {
   message Region {
diff --git a/hbase-rest/src/main/protobuf/TableInfoMessage.proto b/hbase-protocol-shaded/src/main/protobuf/TableInfoMessage.proto
similarity index 94%
rename from hbase-rest/src/main/protobuf/TableInfoMessage.proto
rename to hbase-protocol-shaded/src/main/protobuf/TableInfoMessage.proto
index d0b1121..344ee1d 100644
--- a/hbase-rest/src/main/protobuf/TableInfoMessage.proto
+++ b/hbase-protocol-shaded/src/main/protobuf/TableInfoMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.rest.protobuf.generated;
+package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
 
 message TableInfo {
   required string name = 1;
diff --git a/hbase-rest/src/main/protobuf/TableListMessage.proto b/hbase-protocol-shaded/src/main/protobuf/TableListMessage.proto
similarity index 93%
rename from hbase-rest/src/main/protobuf/TableListMessage.proto
rename to hbase-protocol-shaded/src/main/protobuf/TableListMessage.proto
index 6439948..bf3857e 100644
--- a/hbase-rest/src/main/protobuf/TableListMessage.proto
+++ b/hbase-protocol-shaded/src/main/protobuf/TableListMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.rest.protobuf.generated;
+package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
 
 message TableList {
   repeated string name = 1;
diff --git a/hbase-rest/src/main/protobuf/TableSchemaMessage.proto b/hbase-protocol-shaded/src/main/protobuf/TableSchemaMessage.proto
similarity index 94%
rename from hbase-rest/src/main/protobuf/TableSchemaMessage.proto
rename to hbase-protocol-shaded/src/main/protobuf/TableSchemaMessage.proto
index 5ee2e96..3edc2b8 100644
--- a/hbase-rest/src/main/protobuf/TableSchemaMessage.proto
+++ b/hbase-protocol-shaded/src/main/protobuf/TableSchemaMessage.proto
@@ -18,7 +18,7 @@
 syntax = "proto2";
 import "ColumnSchemaMessage.proto";
 
-package org.apache.hadoop.hbase.rest.protobuf.generated;
+package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
 
 message TableSchema {
   optional string name = 1;
diff --git a/hbase-rest/src/main/protobuf/VersionMessage.proto b/hbase-protocol-shaded/src/main/protobuf/VersionMessage.proto
similarity index 94%
rename from hbase-rest/src/main/protobuf/VersionMessage.proto
rename to hbase-protocol-shaded/src/main/protobuf/VersionMessage.proto
index 8f5ddeb9..742d882 100644
--- a/hbase-rest/src/main/protobuf/VersionMessage.proto
+++ b/hbase-protocol-shaded/src/main/protobuf/VersionMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.rest.protobuf.generated;
+package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
 
 message Version {
   optional string restVersion = 1;
diff --git a/hbase-rest/pom.xml b/hbase-rest/pom.xml
index 39479de..8aa7b77 100644
--- a/hbase-rest/pom.xml
+++ b/hbase-rest/pom.xml
@@ -124,19 +124,6 @@
         </configuration>
       </plugin>
       <plugin>
-        <groupId>org.xolstice.maven.plugins</groupId>
-        <artifactId>protobuf-maven-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>compile-protoc</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>compile</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
         <groupId>net.revelc.code</groupId>
         <artifactId>warbucks-maven-plugin</artifactId>
       </plugin>
@@ -166,7 +153,7 @@
     </dependency>
     <dependency>
       <groupId>org.apache.hbase</groupId>
-      <artifactId>hbase-protocol</artifactId>
+      <artifactId>hbase-protocol-shaded</artifactId>
       <type>jar</type>
     </dependency>
     <dependency>
@@ -235,8 +222,8 @@
       <artifactId>hbase-shaded-miscellaneous</artifactId>
     </dependency>
     <dependency>
-      <groupId>com.google.protobuf</groupId>
-      <artifactId>protobuf-java</artifactId>
+      <groupId>org.apache.hbase.thirdparty</groupId>
+      <artifactId>hbase-shaded-protobuf</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.httpcomponents</groupId>
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/CellModel.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/CellModel.java
index ffb6743..2621de0 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/CellModel.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/CellModel.java
@@ -32,14 +32,15 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
 import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.hadoop.hbase.util.ByteStringer;
 import org.apache.yetus.audience.InterfaceAudience;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.HConstants;
-import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
-import org.apache.hadoop.hbase.rest.protobuf.generated.CellMessage.Cell;
 
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.rest.protobuf.generated.CellMessage.Cell;
+
+import org.apache.hbase.thirdparty.com.google.protobuf.UnsafeByteOperations;
 /**
  * Representation of a cell. A cell is a single value associated a column and
  * optional qualifier, and either the timestamp when it was stored or the user-
@@ -189,8 +190,8 @@ public class CellModel implements ProtobufMessageHandler, Serializable {
   @Override
   public byte[] createProtobufOutput() {
     Cell.Builder builder = Cell.newBuilder();
-    builder.setColumn(ByteStringer.wrap(getColumn()));
-    builder.setData(ByteStringer.wrap(getValue()));
+    builder.setColumn(UnsafeByteOperations.unsafeWrap(getColumn()));
+    builder.setData(UnsafeByteOperations.unsafeWrap(getValue()));
     if (hasUserTimestamp()) {
       builder.setTimestamp(getTimestamp());
     }
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/CellSetModel.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/CellSetModel.java
index 7fbfa01..ebb2b18 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/CellSetModel.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/CellSetModel.java
@@ -29,11 +29,13 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.apache.hadoop.hbase.HConstants;
-import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
-import org.apache.hadoop.hbase.rest.protobuf.generated.CellMessage.Cell;
-import org.apache.hadoop.hbase.rest.protobuf.generated.CellSetMessage.CellSet;
-import org.apache.hadoop.hbase.util.ByteStringer;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.rest.protobuf.generated.CellMessage.Cell;
+import org.apache.hadoop.hbase.shaded.rest.protobuf.generated.CellSetMessage.CellSet;
+
+import org.apache.hbase.thirdparty.com.google.protobuf.UnsafeByteOperations;
 
 import org.apache.yetus.audience.InterfaceAudience;
 
@@ -114,11 +116,11 @@ public class CellSetModel implements Serializable, ProtobufMessageHandler {
     CellSet.Builder builder = CellSet.newBuilder();
     for (RowModel row : getRows()) {
       CellSet.Row.Builder rowBuilder = CellSet.Row.newBuilder();
-      rowBuilder.setKey(ByteStringer.wrap(row.getKey()));
+      rowBuilder.setKey(UnsafeByteOperations.unsafeWrap(row.getKey()));
       for (CellModel cell : row.getCells()) {
         Cell.Builder cellBuilder = Cell.newBuilder();
-        cellBuilder.setColumn(ByteStringer.wrap(cell.getColumn()));
-        cellBuilder.setData(ByteStringer.wrap(cell.getValue()));
+        cellBuilder.setColumn(UnsafeByteOperations.unsafeWrap(cell.getColumn()));
+        cellBuilder.setData(UnsafeByteOperations.unsafeWrap(cell.getValue()));
         if (cell.hasUserTimestamp()) {
           cellBuilder.setTimestamp(cell.getTimestamp());
         }
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/NamespacesInstanceModel.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/NamespacesInstanceModel.java
index af3b0b0..aa7df1e 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/NamespacesInstanceModel.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/NamespacesInstanceModel.java
@@ -34,7 +34,8 @@ import org.apache.hadoop.hbase.NamespaceDescriptor;
 import org.apache.yetus.audience.InterfaceAudience;
 import org.apache.hadoop.hbase.client.Admin;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
-import org.apache.hadoop.hbase.rest.protobuf
+
+import org.apache.hadoop.hbase.shaded.rest.protobuf
   .generated.NamespacePropertiesMessage.NamespaceProperties;
 
 /**
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/NamespacesModel.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/NamespacesModel.java
index c0dfa75..0be558d 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/NamespacesModel.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/NamespacesModel.java
@@ -33,7 +33,8 @@ import org.apache.hadoop.hbase.NamespaceDescriptor;
 import org.apache.yetus.audience.InterfaceAudience;
 import org.apache.hadoop.hbase.client.Admin;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
-import org.apache.hadoop.hbase.rest.protobuf.generated.NamespacesMessage.Namespaces;
+
+import org.apache.hadoop.hbase.shaded.rest.protobuf.generated.NamespacesMessage.Namespaces;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/ScannerModel.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/ScannerModel.java
index dff0e99..3df2a1f 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/ScannerModel.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/ScannerModel.java
@@ -68,16 +68,18 @@ import org.apache.hadoop.hbase.filter.SubstringComparator;
 import org.apache.hadoop.hbase.filter.TimestampsFilter;
 import org.apache.hadoop.hbase.filter.ValueFilter;
 import org.apache.hadoop.hbase.filter.WhileMatchFilter;
-import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
-import org.apache.hadoop.hbase.rest.protobuf.generated.ScannerMessage.Scanner;
 import org.apache.hadoop.hbase.security.visibility.Authorizations;
-import org.apache.hadoop.hbase.util.ByteStringer;
 import org.apache.hadoop.hbase.util.Bytes;
 
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.rest.protobuf.generated.ScannerMessage.Scanner;
+
+import org.apache.hbase.thirdparty.com.google.protobuf.ByteString;
+import org.apache.hbase.thirdparty.com.google.protobuf.UnsafeByteOperations;
+
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
-import com.google.protobuf.ByteString;
 
 /**
  * A representation of Scanner parameters.
@@ -798,13 +800,13 @@ public class ScannerModel implements ProtobufMessageHandler, Serializable {
   public byte[] createProtobufOutput() {
     Scanner.Builder builder = Scanner.newBuilder();
     if (!Bytes.equals(startRow, HConstants.EMPTY_START_ROW)) {
-      builder.setStartRow(ByteStringer.wrap(startRow));
+      builder.setStartRow(UnsafeByteOperations.unsafeWrap(startRow));
     }
     if (!Bytes.equals(endRow, HConstants.EMPTY_START_ROW)) {
-      builder.setEndRow(ByteStringer.wrap(endRow));
+      builder.setEndRow(UnsafeByteOperations.unsafeWrap(endRow));
     }
     for (byte[] column: columns) {
-      builder.addColumns(ByteStringer.wrap(column));
+      builder.addColumns(UnsafeByteOperations.unsafeWrap(column));
     }
     if (startTime != 0) {
       builder.setStartTime(startTime);
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/StorageClusterStatusModel.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/StorageClusterStatusModel.java
index 83fb86f..cb1e7f7 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/StorageClusterStatusModel.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/StorageClusterStatusModel.java
@@ -30,12 +30,14 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlElementWrapper;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
-import org.apache.hadoop.hbase.rest.protobuf.generated.StorageClusterStatusMessage.StorageClusterStatus;
-import org.apache.hadoop.hbase.util.ByteStringer;
 import org.apache.hadoop.hbase.util.Bytes;
 
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.rest.protobuf.generated.StorageClusterStatusMessage.StorageClusterStatus;
+
+import org.apache.hbase.thirdparty.com.google.protobuf.UnsafeByteOperations;
+
 import org.apache.yetus.audience.InterfaceAudience;
 
 /**
@@ -743,7 +745,7 @@ public class StorageClusterStatusModel implements Serializable, ProtobufMessageH
       for (Node.Region region : node.regions) {
         StorageClusterStatus.Region.Builder regionBuilder =
           StorageClusterStatus.Region.newBuilder();
-        regionBuilder.setName(ByteStringer.wrap(region.name));
+        regionBuilder.setName(UnsafeByteOperations.unsafeWrap(region.name));
         regionBuilder.setStores(region.stores);
         regionBuilder.setStorefiles(region.storefiles);
         regionBuilder.setStorefileSizeMB(region.storefileSizeMB);
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/TableInfoModel.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/TableInfoModel.java
index cb96901..3200625 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/TableInfoModel.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/TableInfoModel.java
@@ -28,11 +28,13 @@ import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import org.apache.hadoop.hbase.util.ByteStringer;
 import org.apache.yetus.audience.InterfaceAudience;
-import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
-import org.apache.hadoop.hbase.rest.protobuf.generated.TableInfoMessage.TableInfo;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.rest.protobuf.generated.TableInfoMessage.TableInfo;
+
+import org.apache.hbase.thirdparty.com.google.protobuf.UnsafeByteOperations;
 
 /**
  * Representation of a list of table regions.
@@ -135,8 +137,8 @@ public class TableInfoModel implements Serializable, ProtobufMessageHandler {
       TableInfo.Region.Builder regionBuilder = TableInfo.Region.newBuilder();
       regionBuilder.setName(aRegion.getName());
       regionBuilder.setId(aRegion.getId());
-      regionBuilder.setStartKey(ByteStringer.wrap(aRegion.getStartKey()));
-      regionBuilder.setEndKey(ByteStringer.wrap(aRegion.getEndKey()));
+      regionBuilder.setStartKey(UnsafeByteOperations.unsafeWrap(aRegion.getStartKey()));
+      regionBuilder.setEndKey(UnsafeByteOperations.unsafeWrap(aRegion.getEndKey()));
       regionBuilder.setLocation(aRegion.getLocation());
       builder.addRegions(regionBuilder);
     }
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/TableListModel.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/TableListModel.java
index 01ee026..8d3e1ab 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/TableListModel.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/TableListModel.java
@@ -29,8 +29,9 @@ import javax.xml.bind.annotation.XmlRootElement;
 
 import org.apache.yetus.audience.InterfaceAudience;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
-import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
-import org.apache.hadoop.hbase.rest.protobuf.generated.TableListMessage.TableList;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.rest.protobuf.generated.TableListMessage.TableList;
 
 /**
  * Simple representation of a list of table names.
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/TableSchemaModel.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/TableSchemaModel.java
index 6e99d82..3d60490 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/TableSchemaModel.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/TableSchemaModel.java
@@ -45,12 +45,13 @@ import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
 import org.apache.hadoop.hbase.client.TableDescriptor;
 import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
-import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
-import org.apache.hadoop.hbase.rest.protobuf.generated.ColumnSchemaMessage.ColumnSchema;
-import org.apache.hadoop.hbase.rest.protobuf.generated.TableSchemaMessage.TableSchema;
 import org.apache.hadoop.hbase.util.Bytes;
 
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.rest.protobuf.generated.TableSchemaMessage.TableSchema;
+import org.apache.hadoop.hbase.shaded.rest.protobuf.generated.ColumnSchemaMessage.ColumnSchema;
+
 /**
  * A representation of HBase table descriptors.
  *
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/VersionModel.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/VersionModel.java
index 378d149..0db793a 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/VersionModel.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/model/VersionModel.java
@@ -29,10 +29,10 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.apache.yetus.audience.InterfaceAudience;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
 import org.apache.hadoop.hbase.rest.RESTServlet;
-import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
-import org.apache.hadoop.hbase.rest.protobuf.generated.VersionMessage.Version;
 import org.glassfish.jersey.servlet.ServletContainer;
 
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.rest.protobuf.generated.VersionMessage.Version;
 
 /**
  * A representation of the collection of versions of the REST gateway software
diff --git a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestScannersWithLabels.java b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestScannersWithLabels.java
index d6723da..bc74b27 100644
--- a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestScannersWithLabels.java
+++ b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestScannersWithLabels.java
@@ -45,7 +45,7 @@ import org.apache.hadoop.hbase.client.Durability;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Table;
 import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
-import org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsResponse;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsResponse;
 import org.apache.hadoop.hbase.rest.client.Client;
 import org.apache.hadoop.hbase.rest.client.Cluster;
 import org.apache.hadoop.hbase.rest.client.Response;