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));
}
}