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-thirdparty.git


The following commit(s) were added to refs/heads/master by this push:
     new 1a12463  HBASE-26781 [hbase-thirdparty] Introduce the sun.misc.Signal 
delegati… (#79)
1a12463 is described below

commit 1a124633a7f5722914ff492aed3f564ee3c18af1
Author: Duo Zhang <[email protected]>
AuthorDate: Thu Mar 3 22:14:59 2022 +0800

    HBASE-26781 [hbase-thirdparty] Introduce the sun.misc.Signal delegati… (#79)
    
    Signed-off-by: GeorryHuang <[email protected]>
---
 hbase-noop-htrace/pom.xml                          |  4 +++
 hbase-unsafe/pom.xml                               |  4 +++
 ...BaseUnsafe.java => HBasePlatformDependent.java} | 32 ++++++++++++++--------
 .../hadoop/hbase/unsafe/HBaseSignalInternal.java}  | 22 +++++++--------
 .../hadoop/hbase/unsafe/TestHBaseUnsafe.java       |  8 +++---
 5 files changed, 44 insertions(+), 26 deletions(-)

diff --git a/hbase-noop-htrace/pom.xml b/hbase-noop-htrace/pom.xml
index 2cab03c..114bcfd 100644
--- a/hbase-noop-htrace/pom.xml
+++ b/hbase-noop-htrace/pom.xml
@@ -96,6 +96,10 @@
           <includeTestSourceDirectory>true</includeTestSourceDirectory>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-source-plugin</artifactId>
+      </plugin>
     </plugins>
   </build>
 </project>
diff --git a/hbase-unsafe/pom.xml b/hbase-unsafe/pom.xml
index 555b54f..a621f99 100644
--- a/hbase-unsafe/pom.xml
+++ b/hbase-unsafe/pom.xml
@@ -87,6 +87,10 @@
           <includeTestSourceDirectory>true</includeTestSourceDirectory>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-source-plugin</artifactId>
+      </plugin>
     </plugins>
   </build>
 </project>
diff --git 
a/hbase-unsafe/src/main/java/org/apache/hadoop/hbase/unsafe/HBaseUnsafe.java 
b/hbase-unsafe/src/main/java/org/apache/hadoop/hbase/unsafe/HBasePlatformDependent.java
similarity index 94%
rename from 
hbase-unsafe/src/main/java/org/apache/hadoop/hbase/unsafe/HBaseUnsafe.java
rename to 
hbase-unsafe/src/main/java/org/apache/hadoop/hbase/unsafe/HBasePlatformDependent.java
index aa142b9..ffb07c5 100644
--- a/hbase-unsafe/src/main/java/org/apache/hadoop/hbase/unsafe/HBaseUnsafe.java
+++ 
b/hbase-unsafe/src/main/java/org/apache/hadoop/hbase/unsafe/HBasePlatformDependent.java
@@ -22,17 +22,19 @@ import java.lang.reflect.Method;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.security.ProtectionDomain;
+import java.util.function.BiConsumer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * Delegate all methods of {@link HBaseUnsafeInternal}, so we will not touch 
the actual
- * {@code sun.misc.Unsafe} class until we actually call the methods.
+ * Delegate all methods of {@link HBaseUnsafeInternal} and {@link 
HBaseSignalInternal} so we will
+ * not touch the actual {@code sun.misc.Unsafe} and {@code sun.misc.Signal} 
classes until we
+ * actually call the methods.
  */
-public final class HBaseUnsafe {
+public final class HBasePlatformDependent {
 
   private static final String CLASS_NAME = "sun.misc.Unsafe";
-  private static final Logger LOG = LoggerFactory.getLogger(HBaseUnsafe.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(HBasePlatformDependent.class);
   private static final boolean AVAIL;
   private static final boolean UNALIGNED;
 
@@ -174,9 +176,8 @@ public final class HBaseUnsafe {
       m.setAccessible(true);
       return (Boolean) m.invoke(null);
     } catch (Exception e) {
-      LOG.warn("java.nio.Bits#unaligned() check failed."
-          + "Unsafe based read/write of primitive types won't be used",
-        e);
+      LOG.warn("java.nio.Bits#unaligned() check failed." +
+        "Unsafe based read/write of primitive types won't be used", e);
     }
     return false;
   }
@@ -185,7 +186,7 @@ public final class HBaseUnsafe {
    * @return true when running JVM is having sun's Unsafe package available in 
it and it is
    *         accessible.
    */
-  public static boolean isAvailable() {
+  public static boolean isUnsafeAvailable() {
     return AVAIL;
   }
 
@@ -197,7 +198,7 @@ public final class HBaseUnsafe {
     return UNALIGNED;
   }
 
-  private HBaseUnsafe() {
+  private HBasePlatformDependent() {
     // private constructor to avoid instantiation
   }
 
@@ -354,7 +355,7 @@ public final class HBaseUnsafe {
   }
 
   public static void copyMemory(Object srcBase, long srcOffset, Object 
destBase, long destOffset,
-      long bytes) {
+    long bytes) {
     HBaseUnsafeInternal.copyMemory(srcBase, srcOffset, destBase, destOffset, 
bytes);
   }
 
@@ -403,7 +404,7 @@ public final class HBaseUnsafe {
   }
 
   public static Class<?> defineClass(String name, byte[] b, int off, int len, 
ClassLoader loader,
-      ProtectionDomain protectionDomain) {
+    ProtectionDomain protectionDomain) {
     return HBaseUnsafeInternal.defineClass(name, b, off, len, loader, 
protectionDomain);
   }
 
@@ -559,4 +560,13 @@ public final class HBaseUnsafe {
     HBaseUnsafeInternal.fullFence();
   }
 
+  /**
+   * Delegate {@code sun.misc.Signal}.
+   * @param signal the name of the signal, such as 'HUP'.
+   * @param handler the handler of the signal, the first parameter is the 
number of the signal,
+   *          while the second one is the name of the sinal.
+   */
+  public static void handle(String signal, BiConsumer<Integer, String> 
handler) {
+    HBaseSignalInternal.handle(signal, handler);
+  }
 }
diff --git 
a/hbase-unsafe/src/test/java/org/apache/hadoop/hbase/unsafe/TestHBaseUnsafe.java
 
b/hbase-unsafe/src/main/java/org/apache/hadoop/hbase/unsafe/HBaseSignalInternal.java
similarity index 66%
copy from 
hbase-unsafe/src/test/java/org/apache/hadoop/hbase/unsafe/TestHBaseUnsafe.java
copy to 
hbase-unsafe/src/main/java/org/apache/hadoop/hbase/unsafe/HBaseSignalInternal.java
index 699996b..cbd4f34 100644
--- 
a/hbase-unsafe/src/test/java/org/apache/hadoop/hbase/unsafe/TestHBaseUnsafe.java
+++ 
b/hbase-unsafe/src/main/java/org/apache/hadoop/hbase/unsafe/HBaseSignalInternal.java
@@ -17,19 +17,19 @@
  */
 package org.apache.hadoop.hbase.unsafe;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assume.assumeTrue;
+import java.util.function.BiConsumer;
+import sun.misc.Signal;
 
-import org.junit.Test;
+/**
+ * Delegation of {@code sun.misc.Signal}.
+ */
+@SuppressWarnings("restriction")
+public final class HBaseSignalInternal {
 
-public class TestHBaseUnsafe {
+  private HBaseSignalInternal() {
+  }
 
-  @Test
-  public void test() {
-    assumeTrue(HBaseUnsafe.isAvailable());
-    byte[] arr = new byte[4];
-    int arrayBaseOffset = HBaseUnsafe.arrayBaseOffset(arr.getClass());
-    HBaseUnsafe.putInt(arr, arrayBaseOffset, 123456);
-    assertEquals(123456, HBaseUnsafe.getInt(arr, arrayBaseOffset));
+  public static void handle(String signal, BiConsumer<Integer, String> 
handler) {
+    Signal.handle(new Signal(signal), s -> handler.accept(s.getNumber(), 
s.getName()));
   }
 }
diff --git 
a/hbase-unsafe/src/test/java/org/apache/hadoop/hbase/unsafe/TestHBaseUnsafe.java
 
b/hbase-unsafe/src/test/java/org/apache/hadoop/hbase/unsafe/TestHBaseUnsafe.java
index 699996b..78cbcb6 100644
--- 
a/hbase-unsafe/src/test/java/org/apache/hadoop/hbase/unsafe/TestHBaseUnsafe.java
+++ 
b/hbase-unsafe/src/test/java/org/apache/hadoop/hbase/unsafe/TestHBaseUnsafe.java
@@ -26,10 +26,10 @@ public class TestHBaseUnsafe {
 
   @Test
   public void test() {
-    assumeTrue(HBaseUnsafe.isAvailable());
+    assumeTrue(HBasePlatformDependent.isUnsafeAvailable());
     byte[] arr = new byte[4];
-    int arrayBaseOffset = HBaseUnsafe.arrayBaseOffset(arr.getClass());
-    HBaseUnsafe.putInt(arr, arrayBaseOffset, 123456);
-    assertEquals(123456, HBaseUnsafe.getInt(arr, arrayBaseOffset));
+    int arrayBaseOffset = 
HBasePlatformDependent.arrayBaseOffset(arr.getClass());
+    HBasePlatformDependent.putInt(arr, arrayBaseOffset, 123456);
+    assertEquals(123456, HBasePlatformDependent.getInt(arr, arrayBaseOffset));
   }
 }

Reply via email to