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

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


The following commit(s) were added to refs/heads/branch-3 by this push:
     new 7f32c733236 HBASE-28726 Revert REST protobuf package to 
org.apache.hadoop.hbase.rest (#6408)
7f32c733236 is described below

commit 7f32c733236844cdc51f995d30def4a6264307bd
Author: Istvan Toth <[email protected]>
AuthorDate: Tue Oct 29 07:21:33 2024 +0100

    HBASE-28726 Revert REST protobuf package to org.apache.hadoop.hbase.rest 
(#6408)
    
    also move REST protobuf definition files a generated classes back to 
hbase-rest
    
    Signed-off-by: Duo Zhang <[email protected]>
    (cherry picked from commit 7e3652041ef0e572e577dd23922c4d7997c1eb05)
---
 hbase-protocol-shaded/pom.xml                      | 38 ----------------
 hbase-rest/pom.xml                                 | 23 ++++++++++
 .../apache/hadoop/hbase/rest/model/CellModel.java  |  3 +-
 .../hadoop/hbase/rest/model/CellSetModel.java      |  5 +--
 .../hbase/rest/model/NamespacesInstanceModel.java  |  3 +-
 .../hadoop/hbase/rest/model/NamespacesModel.java   |  3 +-
 .../hadoop/hbase/rest/model/ScannerModel.java      |  3 +-
 .../rest/model/StorageClusterStatusModel.java      |  3 +-
 .../hadoop/hbase/rest/model/TableInfoModel.java    |  3 +-
 .../hadoop/hbase/rest/model/TableListModel.java    |  3 +-
 .../hadoop/hbase/rest/model/TableSchemaModel.java  |  5 +--
 .../hadoop/hbase/rest/model/VersionModel.java      |  3 +-
 .../src/main/protobuf}/CellMessage.proto           |  2 +-
 .../src/main/protobuf}/CellSetMessage.proto        |  4 +-
 .../src/main/protobuf}/ColumnSchemaMessage.proto   |  2 +-
 .../protobuf}/NamespacePropertiesMessage.proto     |  2 +-
 .../src/main/protobuf}/NamespacesMessage.proto     |  2 +-
 .../src/main/protobuf}/ScannerMessage.proto        |  2 +-
 .../protobuf}/StorageClusterStatusMessage.proto    |  2 +-
 .../src/main/protobuf}/TableInfoMessage.proto      |  2 +-
 .../src/main/protobuf}/TableListMessage.proto      |  2 +-
 .../src/main/protobuf}/TableSchemaMessage.proto    |  4 +-
 .../src/main/protobuf}/VersionMessage.proto        |  2 +-
 pom.xml                                            | 50 ++++++++++++++++++++++
 24 files changed, 98 insertions(+), 73 deletions(-)

diff --git a/hbase-protocol-shaded/pom.xml b/hbase-protocol-shaded/pom.xml
index fc80e7d41f5..9a71ae42f22 100644
--- a/hbase-protocol-shaded/pom.xml
+++ b/hbase-protocol-shaded/pom.xml
@@ -31,11 +31,6 @@
   <description>Shaded protobuf protocol classes used by HBase 
internally.</description>
   <properties>
     <maven.javadoc.skip>true</maven.javadoc.skip>
-    <!--
-      Version of protobuf that hbase uses internally (we shade our pb) Must 
match what is out
-      in hbase-thirdparty include.
-    -->
-    <internal.protobuf.version>4.28.2</internal.protobuf.version>
   </properties>
   <dependencies>
     <!--BE CAREFUL! Any dependency added here needs to be
@@ -105,39 +100,6 @@
       <plugin>
         <groupId>com.google.code.maven-replacer-plugin</groupId>
         <artifactId>replacer</artifactId>
-        <version>1.5.3</version>
-        <configuration>
-          <basedir>${basedir}/target/generated-sources/</basedir>
-          <includes>
-            <include>**/*.java</include>
-          </includes>
-          <!-- Ignore errors when missing files, because it means this build
-                 was run with -Dprotoc.skip and there is no -Dreplacer.skip -->
-          <ignoreErrors>true</ignoreErrors>
-          <replacements>
-            <replacement>
-              <token>([^\.])com.google.protobuf</token>
-              <value>$1org.apache.hbase.thirdparty.com.google.protobuf</value>
-            </replacement>
-            <replacement>
-              <token>(public)(\W+static)?(\W+final)?(\W+class)</token>
-              <value>@javax.annotation.Generated("proto") $1$2$3$4</value>
-            </replacement>
-            <!-- replacer doesn't support anchoring or negative lookbehind -->
-            <replacement>
-              <token>(@javax.annotation.Generated\("proto"\) ){2}</token>
-              <value>$1</value>
-            </replacement>
-          </replacements>
-        </configuration>
-        <executions>
-          <execution>
-            <goals>
-              <goal>replace</goal>
-            </goals>
-            <phase>process-sources</phase>
-          </execution>
-        </executions>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
diff --git a/hbase-rest/pom.xml b/hbase-rest/pom.xml
index 87b9898a9c4..9b83a93ae76 100644
--- a/hbase-rest/pom.xml
+++ b/hbase-rest/pom.xml
@@ -350,6 +350,29 @@
           </systemPropertyVariables>
         </configuration>
       </plugin>
+      <!-- The protobuf-maven-plugin and com.google.code.maven-replacer-plugin 
config
+      is copied directly from hbase-shaded-protocol, and should be kept in 
sync. -->
+      <plugin>
+        <groupId>org.xolstice.maven.plugins</groupId>
+        <artifactId>protobuf-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>compile-protoc</id>
+            <goals>
+              <goal>compile</goal>
+            </goals>
+            <phase>generate-sources</phase>
+            <configuration>
+              
<protocArtifact>com.google.protobuf:protoc:${internal.protobuf.version}:exe:${os.detected.classifier}</protocArtifact>
+              <checkStaleness>true</checkStaleness>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>com.google.code.maven-replacer-plugin</groupId>
+        <artifactId>replacer</artifactId>
+      </plugin>
       <plugin>
         <groupId>net.revelc.code</groupId>
         <artifactId>warbucks-maven-plugin</artifactId>
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 00475518103..f3d2510c45f 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
@@ -35,14 +35,13 @@ import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
 import org.apache.hadoop.hbase.rest.RestUtil;
+import org.apache.hadoop.hbase.rest.protobuf.generated.CellMessage.Cell;
 import org.apache.yetus.audience.InterfaceAudience;
 
 import org.apache.hbase.thirdparty.com.google.protobuf.CodedInputStream;
 import org.apache.hbase.thirdparty.com.google.protobuf.Message;
 import org.apache.hbase.thirdparty.com.google.protobuf.UnsafeByteOperations;
 
-import org.apache.hadoop.hbase.shaded.rest.protobuf.generated.CellMessage.Cell;
-
 /**
  * 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- provided timestamp 
if one was explicitly
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 2a746274254..59e9b79fa3b 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
@@ -30,15 +30,14 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
 import org.apache.hadoop.hbase.rest.RestUtil;
+import org.apache.hadoop.hbase.rest.protobuf.generated.CellMessage.Cell;
+import org.apache.hadoop.hbase.rest.protobuf.generated.CellSetMessage.CellSet;
 import org.apache.yetus.audience.InterfaceAudience;
 
 import org.apache.hbase.thirdparty.com.google.protobuf.CodedInputStream;
 import org.apache.hbase.thirdparty.com.google.protobuf.Message;
 import org.apache.hbase.thirdparty.com.google.protobuf.UnsafeByteOperations;
 
-import org.apache.hadoop.hbase.shaded.rest.protobuf.generated.CellMessage.Cell;
-import 
org.apache.hadoop.hbase.shaded.rest.protobuf.generated.CellSetMessage.CellSet;
-
 /**
  * Representation of a grouping of cells. May contain cells from more than one 
row. Encapsulates
  * RowModel and CellModel models.
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 ee5fed13b57..3bf640934c6 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
@@ -30,13 +30,12 @@ import org.apache.hadoop.hbase.NamespaceDescriptor;
 import org.apache.hadoop.hbase.client.Admin;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
 import org.apache.hadoop.hbase.rest.RestUtil;
+import 
org.apache.hadoop.hbase.rest.protobuf.generated.NamespacePropertiesMessage.NamespaceProperties;
 import org.apache.yetus.audience.InterfaceAudience;
 
 import org.apache.hbase.thirdparty.com.google.protobuf.CodedInputStream;
 import org.apache.hbase.thirdparty.com.google.protobuf.Message;
 
-import 
org.apache.hadoop.hbase.shaded.rest.protobuf.generated.NamespacePropertiesMessage.NamespaceProperties;
-
 /**
  * List a HBase namespace's key/value properties.
  * <ul>
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 e13e5633322..2f565ba8dce 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
@@ -30,13 +30,12 @@ import org.apache.hadoop.hbase.NamespaceDescriptor;
 import org.apache.hadoop.hbase.client.Admin;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
 import org.apache.hadoop.hbase.rest.RestUtil;
+import 
org.apache.hadoop.hbase.rest.protobuf.generated.NamespacesMessage.Namespaces;
 import org.apache.yetus.audience.InterfaceAudience;
 
 import org.apache.hbase.thirdparty.com.google.protobuf.CodedInputStream;
 import org.apache.hbase.thirdparty.com.google.protobuf.Message;
 
-import 
org.apache.hadoop.hbase.shaded.rest.protobuf.generated.NamespacesMessage.Namespaces;
-
 /**
  * A list of HBase namespaces.
  * <ul>
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 1ccb541c887..89a8e056e4e 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
@@ -69,6 +69,7 @@ import org.apache.hadoop.hbase.filter.ValueFilter;
 import org.apache.hadoop.hbase.filter.WhileMatchFilter;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
 import org.apache.hadoop.hbase.rest.RestUtil;
+import org.apache.hadoop.hbase.rest.protobuf.generated.ScannerMessage.Scanner;
 import org.apache.hadoop.hbase.security.visibility.Authorizations;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.Pair;
@@ -81,8 +82,6 @@ import 
org.apache.hbase.thirdparty.com.google.protobuf.Message;
 import org.apache.hbase.thirdparty.com.google.protobuf.UnsafeByteOperations;
 import org.apache.hbase.thirdparty.javax.ws.rs.core.MediaType;
 
-import 
org.apache.hadoop.hbase.shaded.rest.protobuf.generated.ScannerMessage.Scanner;
-
 /**
  * A representation of Scanner parameters.
  *
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 ae3671a509f..06e00c90265 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
@@ -28,6 +28,7 @@ import javax.xml.bind.annotation.XmlElementWrapper;
 import javax.xml.bind.annotation.XmlRootElement;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
 import org.apache.hadoop.hbase.rest.RestUtil;
+import 
org.apache.hadoop.hbase.rest.protobuf.generated.StorageClusterStatusMessage.StorageClusterStatus;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.yetus.audience.InterfaceAudience;
 
@@ -35,8 +36,6 @@ import 
org.apache.hbase.thirdparty.com.google.protobuf.CodedInputStream;
 import org.apache.hbase.thirdparty.com.google.protobuf.Message;
 import org.apache.hbase.thirdparty.com.google.protobuf.UnsafeByteOperations;
 
-import 
org.apache.hadoop.hbase.shaded.rest.protobuf.generated.StorageClusterStatusMessage.StorageClusterStatus;
-
 /**
  * Representation of the status of a storage cluster:
  * <p>
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 9656f0c8214..cfcc028d62f 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
@@ -26,14 +26,13 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
 import org.apache.hadoop.hbase.rest.RestUtil;
+import 
org.apache.hadoop.hbase.rest.protobuf.generated.TableInfoMessage.TableInfo;
 import org.apache.yetus.audience.InterfaceAudience;
 
 import org.apache.hbase.thirdparty.com.google.protobuf.CodedInputStream;
 import org.apache.hbase.thirdparty.com.google.protobuf.Message;
 import org.apache.hbase.thirdparty.com.google.protobuf.UnsafeByteOperations;
 
-import 
org.apache.hadoop.hbase.shaded.rest.protobuf.generated.TableInfoMessage.TableInfo;
-
 /**
  * Representation of a list of table regions.
  *
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 7a3430e03d4..0ee9d6365e7 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
@@ -25,13 +25,12 @@ import javax.xml.bind.annotation.XmlElementRef;
 import javax.xml.bind.annotation.XmlRootElement;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
 import org.apache.hadoop.hbase.rest.RestUtil;
+import 
org.apache.hadoop.hbase.rest.protobuf.generated.TableListMessage.TableList;
 import org.apache.yetus.audience.InterfaceAudience;
 
 import org.apache.hbase.thirdparty.com.google.protobuf.CodedInputStream;
 import org.apache.hbase.thirdparty.com.google.protobuf.Message;
 
-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 3e28afdfbae..36c8950b10a 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
@@ -40,15 +40,14 @@ import org.apache.hadoop.hbase.client.TableDescriptor;
 import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
 import org.apache.hadoop.hbase.rest.RestUtil;
+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.yetus.audience.InterfaceAudience;
 
 import org.apache.hbase.thirdparty.com.google.protobuf.CodedInputStream;
 import org.apache.hbase.thirdparty.com.google.protobuf.Message;
 
-import 
org.apache.hadoop.hbase.shaded.rest.protobuf.generated.ColumnSchemaMessage.ColumnSchema;
-import 
org.apache.hadoop.hbase.shaded.rest.protobuf.generated.TableSchemaMessage.TableSchema;
-
 /**
  * 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 3ab5e4db6b5..c305d5f4b4d 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
@@ -25,6 +25,7 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.apache.hadoop.hbase.rest.ProtobufMessageHandler;
 import org.apache.hadoop.hbase.rest.RESTServlet;
 import org.apache.hadoop.hbase.rest.RestUtil;
+import org.apache.hadoop.hbase.rest.protobuf.generated.VersionMessage.Version;
 import org.apache.hadoop.hbase.util.VersionInfo;
 import org.apache.yetus.audience.InterfaceAudience;
 
@@ -32,8 +33,6 @@ import 
org.apache.hbase.thirdparty.com.google.protobuf.CodedInputStream;
 import org.apache.hbase.thirdparty.com.google.protobuf.Message;
 import 
org.apache.hbase.thirdparty.org.glassfish.jersey.servlet.ServletContainer;
 
-import 
org.apache.hadoop.hbase.shaded.rest.protobuf.generated.VersionMessage.Version;
-
 /**
  * A representation of the collection of versions of the REST gateway software 
components.
  * <ul>
diff --git a/hbase-protocol-shaded/src/main/protobuf/rest/CellMessage.proto 
b/hbase-rest/src/main/protobuf/CellMessage.proto
similarity index 93%
rename from hbase-protocol-shaded/src/main/protobuf/rest/CellMessage.proto
rename to hbase-rest/src/main/protobuf/CellMessage.proto
index 75b6f01e5a7..0170be8fe23 100644
--- a/hbase-protocol-shaded/src/main/protobuf/rest/CellMessage.proto
+++ b/hbase-rest/src/main/protobuf/CellMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
+package org.apache.hadoop.hbase.rest.protobuf.generated;
 
 message Cell {
   optional bytes row = 1;       // unused if Cell is in a CellSet
diff --git a/hbase-protocol-shaded/src/main/protobuf/rest/CellSetMessage.proto 
b/hbase-rest/src/main/protobuf/CellSetMessage.proto
similarity index 90%
rename from hbase-protocol-shaded/src/main/protobuf/rest/CellSetMessage.proto
rename to hbase-rest/src/main/protobuf/CellSetMessage.proto
index 68a6b05bbe5..b43482c3ce5 100644
--- a/hbase-protocol-shaded/src/main/protobuf/rest/CellSetMessage.proto
+++ b/hbase-rest/src/main/protobuf/CellSetMessage.proto
@@ -16,9 +16,9 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
+package org.apache.hadoop.hbase.rest.protobuf.generated;
 
-import "rest/CellMessage.proto";
+import "CellMessage.proto";
 
 message CellSet {
   message Row {
diff --git 
a/hbase-protocol-shaded/src/main/protobuf/rest/ColumnSchemaMessage.proto 
b/hbase-rest/src/main/protobuf/ColumnSchemaMessage.proto
similarity index 94%
rename from 
hbase-protocol-shaded/src/main/protobuf/rest/ColumnSchemaMessage.proto
rename to hbase-rest/src/main/protobuf/ColumnSchemaMessage.proto
index 8b5e47956a8..c6c957d82b2 100644
--- a/hbase-protocol-shaded/src/main/protobuf/rest/ColumnSchemaMessage.proto
+++ b/hbase-rest/src/main/protobuf/ColumnSchemaMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
+package org.apache.hadoop.hbase.rest.protobuf.generated;
 
 message ColumnSchema {
   optional string name = 1;
diff --git 
a/hbase-protocol-shaded/src/main/protobuf/rest/NamespacePropertiesMessage.proto 
b/hbase-rest/src/main/protobuf/NamespacePropertiesMessage.proto
similarity index 93%
rename from 
hbase-protocol-shaded/src/main/protobuf/rest/NamespacePropertiesMessage.proto
rename to hbase-rest/src/main/protobuf/NamespacePropertiesMessage.proto
index d0a1a4ebc6a..5858aefc39d 100644
--- 
a/hbase-protocol-shaded/src/main/protobuf/rest/NamespacePropertiesMessage.proto
+++ b/hbase-rest/src/main/protobuf/NamespacePropertiesMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
+package org.apache.hadoop.hbase.rest.protobuf.generated;
 
 message NamespaceProperties {
   message Property {
diff --git 
a/hbase-protocol-shaded/src/main/protobuf/rest/NamespacesMessage.proto 
b/hbase-rest/src/main/protobuf/NamespacesMessage.proto
similarity index 93%
rename from hbase-protocol-shaded/src/main/protobuf/rest/NamespacesMessage.proto
rename to hbase-rest/src/main/protobuf/NamespacesMessage.proto
index 229a1f66f71..e4260200828 100644
--- a/hbase-protocol-shaded/src/main/protobuf/rest/NamespacesMessage.proto
+++ b/hbase-rest/src/main/protobuf/NamespacesMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
+package org.apache.hadoop.hbase.rest.protobuf.generated;
 
 message Namespaces {
   repeated string namespace = 1;
diff --git a/hbase-protocol-shaded/src/main/protobuf/rest/ScannerMessage.proto 
b/hbase-rest/src/main/protobuf/ScannerMessage.proto
similarity index 95%
rename from hbase-protocol-shaded/src/main/protobuf/rest/ScannerMessage.proto
rename to hbase-rest/src/main/protobuf/ScannerMessage.proto
index 78aa85b40b8..4ea8566abb5 100644
--- a/hbase-protocol-shaded/src/main/protobuf/rest/ScannerMessage.proto
+++ b/hbase-rest/src/main/protobuf/ScannerMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
+package org.apache.hadoop.hbase.rest.protobuf.generated;
 
 message Scanner {
   optional bytes startRow = 1;
diff --git 
a/hbase-protocol-shaded/src/main/protobuf/rest/StorageClusterStatusMessage.proto
 b/hbase-rest/src/main/protobuf/StorageClusterStatusMessage.proto
similarity index 96%
rename from 
hbase-protocol-shaded/src/main/protobuf/rest/StorageClusterStatusMessage.proto
rename to hbase-rest/src/main/protobuf/StorageClusterStatusMessage.proto
index c39e23956e2..7b9c40cb47d 100644
--- 
a/hbase-protocol-shaded/src/main/protobuf/rest/StorageClusterStatusMessage.proto
+++ b/hbase-rest/src/main/protobuf/StorageClusterStatusMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
+package org.apache.hadoop.hbase.rest.protobuf.generated;
 
 message StorageClusterStatus {
   message Region {
diff --git 
a/hbase-protocol-shaded/src/main/protobuf/rest/TableInfoMessage.proto 
b/hbase-rest/src/main/protobuf/TableInfoMessage.proto
similarity index 94%
rename from hbase-protocol-shaded/src/main/protobuf/rest/TableInfoMessage.proto
rename to hbase-rest/src/main/protobuf/TableInfoMessage.proto
index 344ee1d2976..d0b1121d5e0 100644
--- a/hbase-protocol-shaded/src/main/protobuf/rest/TableInfoMessage.proto
+++ b/hbase-rest/src/main/protobuf/TableInfoMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
+package org.apache.hadoop.hbase.rest.protobuf.generated;
 
 message TableInfo {
   required string name = 1;
diff --git 
a/hbase-protocol-shaded/src/main/protobuf/rest/TableListMessage.proto 
b/hbase-rest/src/main/protobuf/TableListMessage.proto
similarity index 93%
rename from hbase-protocol-shaded/src/main/protobuf/rest/TableListMessage.proto
rename to hbase-rest/src/main/protobuf/TableListMessage.proto
index bf3857e5d68..643994811b0 100644
--- a/hbase-protocol-shaded/src/main/protobuf/rest/TableListMessage.proto
+++ b/hbase-rest/src/main/protobuf/TableListMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
+package org.apache.hadoop.hbase.rest.protobuf.generated;
 
 message TableList {
   repeated string name = 1;
diff --git 
a/hbase-protocol-shaded/src/main/protobuf/rest/TableSchemaMessage.proto 
b/hbase-rest/src/main/protobuf/TableSchemaMessage.proto
similarity index 91%
rename from 
hbase-protocol-shaded/src/main/protobuf/rest/TableSchemaMessage.proto
rename to hbase-rest/src/main/protobuf/TableSchemaMessage.proto
index 6135716ce02..7a5b2c0df91 100644
--- a/hbase-protocol-shaded/src/main/protobuf/rest/TableSchemaMessage.proto
+++ b/hbase-rest/src/main/protobuf/TableSchemaMessage.proto
@@ -16,9 +16,9 @@
  * limitations under the License.
  */
 syntax = "proto2";
-import "rest/ColumnSchemaMessage.proto";
+import "ColumnSchemaMessage.proto";
 
-package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
+package org.apache.hadoop.hbase.rest.protobuf.generated;
 
 message TableSchema {
   optional string name = 1;
diff --git a/hbase-protocol-shaded/src/main/protobuf/rest/VersionMessage.proto 
b/hbase-rest/src/main/protobuf/VersionMessage.proto
similarity index 94%
rename from hbase-protocol-shaded/src/main/protobuf/rest/VersionMessage.proto
rename to hbase-rest/src/main/protobuf/VersionMessage.proto
index 4ce5afe7141..e76dc62a1f4 100644
--- a/hbase-protocol-shaded/src/main/protobuf/rest/VersionMessage.proto
+++ b/hbase-rest/src/main/protobuf/VersionMessage.proto
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 syntax = "proto2";
-package org.apache.hadoop.hbase.shaded.rest.protobuf.generated;
+package org.apache.hadoop.hbase.rest.protobuf.generated;
 
 message Version {
   optional string restVersion = 1;
diff --git a/pom.xml b/pom.xml
index 3a3fe8d8365..ccc45f5a4ec 100644
--- a/pom.xml
+++ b/pom.xml
@@ -848,6 +848,11 @@
     <opentelemetry-javaagent.version>1.15.0</opentelemetry-javaagent.version>
     <log4j2.version>2.17.2</log4j2.version>
     <mockito.version>4.11.0</mockito.version>
+    <!--
+      Version of protobuf that hbase uses internally (we shade our pb) Must 
match what is out
+      in hbase-thirdparty include.
+    -->
+    <internal.protobuf.version>4.28.2</internal.protobuf.version>
     <protobuf.plugin.version>0.6.1</protobuf.plugin.version>
     <thrift.path>thrift</thrift.path>
     <thrift.version>0.14.1</thrift.version>
@@ -2159,6 +2164,51 @@
             </dependency>
           </dependencies>
         </plugin>
+        <!--Need this old plugin to replace in generated files instances
+           of com.google.protobuf so instead its o.a.h.h.com.google.protobuf.
+           Plugin is old and in google code archive. Here is usage done by
+           anohther: 
https://github.com/beiliubei/maven-replacer-plugin/wiki/Usage-Guide
+           The mess with the regex in the below is to prevent replacement 
every time
+           we run mvn install. There is probably a better way of avoiding the
+           double interpolation but this is it for now.
+        -->
+        <plugin>
+          <groupId>com.google.code.maven-replacer-plugin</groupId>
+          <artifactId>replacer</artifactId>
+          <version>1.5.3</version>
+          <configuration>
+            <basedir>${basedir}/target/generated-sources/</basedir>
+            <includes>
+              <include>**/*.java</include>
+            </includes>
+            <!-- Ignore errors when missing files, because it means this build
+                   was run with -Dprotoc.skip and there is no -Dreplacer.skip 
-->
+            <ignoreErrors>true</ignoreErrors>
+            <replacements>
+              <replacement>
+                <token>([^\.])com.google.protobuf</token>
+                
<value>$1org.apache.hbase.thirdparty.com.google.protobuf</value>
+              </replacement>
+              <replacement>
+                <token>(public)(\W+static)?(\W+final)?(\W+class)</token>
+                <value>@javax.annotation.Generated("proto") $1$2$3$4</value>
+              </replacement>
+              <!-- replacer doesn't support anchoring or negative lookbehind 
-->
+              <replacement>
+                <token>(@javax.annotation.Generated\("proto"\) ){2}</token>
+                <value>$1</value>
+              </replacement>
+            </replacements>
+          </configuration>
+          <executions>
+            <execution>
+              <goals>
+                <goal>replace</goal>
+              </goals>
+              <phase>process-sources</phase>
+            </execution>
+          </executions>
+        </plugin>
         <plugin>
           <groupId>net.revelc.code</groupId>
           <artifactId>warbucks-maven-plugin</artifactId>

Reply via email to