RATIS-1600. Add protobuf-java-util (#35)

diff --git a/misc/pom.xml b/misc/pom.xml
index 498e25a..82fd68c 100644
--- a/misc/pom.xml
+++ b/misc/pom.xml
@@ -29,6 +29,10 @@
       <artifactId>protobuf-java</artifactId>
     </dependency>
     <dependency>
+      <groupId>com.google.protobuf</groupId>
+      <artifactId>protobuf-java-util</artifactId>
+    </dependency>
+    <dependency>
       <groupId>io.grpc</groupId>
       <artifactId>grpc-netty</artifactId>
     </dependency>
diff --git a/pom.xml b/pom.xml
index 58baebd..c1d51c2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -113,6 +113,11 @@
         <version>${shaded.protobuf.version}</version>
       </dependency>
       <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-java-util</artifactId>
+        <version>${shaded.protobuf.version}</version>
+      </dependency>
+      <dependency>
         <groupId>io.grpc</groupId>
         <artifactId>grpc-netty</artifactId>
         <version>${shaded.grpc.version}</version>
diff --git a/test/src/test/java/org/apache/ratis/thirdparty/demo/proto/ProtoUtilTest.java b/test/src/test/java/org/apache/ratis/thirdparty/demo/proto/ProtoUtilTest.java
new file mode 100644
index 0000000..0f8b4b0
--- /dev/null
+++ b/test/src/test/java/org/apache/ratis/thirdparty/demo/proto/ProtoUtilTest.java
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ratis.thirdparty.demo.proto;
+
+import org.apache.ratis.thirdparty.com.google.protobuf.util.JsonFormat;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+/**
+ * Unit test for ensure that protobuf-java-util is properly shaded as ratis thirdparty.
+ */
+@RunWith(JUnit4.class)
+public class ProtoUtilTest {
+
+    @Test
+    public void testJsonFormatPrinter() throws Exception {
+        final HelloRequest request = HelloRequest.newBuilder().setName("ratis").build();
+        final String actual = JsonFormat.printer().print(request);
+        final String expected = "{\n" +
+            "  \"name\": \"ratis\"\n" +
+            "}";
+        Assert.assertEquals(expected, actual);
+    }
+
+}