Skip to content

Commit d2cfc87

Browse files
committed
[KYUUBI #7144] Remove direct usage of sun.misc.Signal
### Why are the changes needed? This PR replaces the `sun.misc.Signal` with the Kyuubi wrapped one, see apache/kyuubi-shaded#64, which allows Kyuubi to use any of Java 8+ to compile with `-release:8` while still ensuring compatibility with Java 8. ### How was this patch tested? Pass GHA. Local tested by building against JDK 21, running on JDK 8, everything works as expected. ### Was this patch authored or co-authored using generative AI tooling? No. Closes #7144 from pan3793/signal. Closes #7144 6480406 [Cheng Pan] enforcer.maxJdkVersion 2eb2635 [Cheng Pan] cleanup b699c34 [Cheng Pan] remove staging repo 12eeae3 [Cheng Pan] fix 08eba76 [Cheng Pan] RC 53e4e6c [Cheng Pan] Use Kyuubi Signal Authored-by: Cheng Pan <[email protected]> Signed-off-by: Cheng Pan <[email protected]>
1 parent 31ce37f commit d2cfc87

File tree

5 files changed

+33
-36
lines changed

5 files changed

+33
-36
lines changed

kyuubi-common/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,11 @@
108108
<artifactId>kyuubi-relocated-hive-service-rpc</artifactId>
109109
</dependency>
110110

111+
<dependency>
112+
<groupId>org.apache.kyuubi</groupId>
113+
<artifactId>kyuubi-relocated-util</artifactId>
114+
</dependency>
115+
111116
<dependency>
112117
<groupId>com.fasterxml.jackson.module</groupId>
113118
<artifactId>jackson-module-scala_${scala.binary.version}</artifactId>

kyuubi-common/src/main/scala/org/apache/kyuubi/util/SignalRegister.scala

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,20 @@
1717

1818
package org.apache.kyuubi.util
1919

20+
import java.util
2021
import java.util.Collections
2122

2223
import scala.collection.JavaConverters._
24+
import scala.collection.mutable
2325

2426
import org.apache.commons.lang3.SystemUtils
2527
import org.slf4j.Logger
26-
import sun.misc.{Signal, SignalHandler}
2728

2829
import org.apache.kyuubi.Logging
30+
import org.apache.kyuubi.shaded.util.{Signal, SignalHandler}
2931

3032
object SignalRegister extends Logging {
31-
private val handlers = new scala.collection.mutable.HashMap[String, ActionHandler]
33+
private val handlers = new mutable.HashMap[String, ActionHandler]
3234

3335
def registerLogger(log: Logger): Unit = {
3436
Seq("TERM", "HUP", "INT").foreach { sig =>
@@ -41,7 +43,7 @@ object SignalRegister extends Logging {
4143
ActionHandler(signal)
4244
})
4345
handler.register({
44-
log.error(s"RECEIVED SIGNAL ${signal.getNumber}: " + sig)
46+
log.error(s"RECEIVED SIGNAL ${signal.getNumber}: $sig")
4547
false
4648
})
4749
} catch {
@@ -52,7 +54,7 @@ object SignalRegister extends Logging {
5254
}
5355

5456
case class ActionHandler(signal: Signal) extends SignalHandler {
55-
private val actions = Collections.synchronizedList(new java.util.LinkedList[() => Boolean])
57+
private val actions = Collections.synchronizedList(new util.LinkedList[() => Boolean])
5658
private val prevHandler: SignalHandler = Signal.handle(signal, this)
5759

5860
override def handle(sig: Signal): Unit = {

kyuubi-hive-beeline/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@
4646
<version>${project.version}</version>
4747
</dependency>
4848

49+
<dependency>
50+
<groupId>org.apache.kyuubi</groupId>
51+
<artifactId>kyuubi-relocated-util</artifactId>
52+
</dependency>
53+
4954
<dependency>
5055
<groupId>org.apache.hadoop</groupId>
5156
<artifactId>hadoop-client-api</artifactId>

kyuubi-hive-beeline/src/main/java/org/apache/hive/beeline/SunSignalHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424

2525
import java.sql.SQLException;
2626
import java.sql.Statement;
27-
import sun.misc.Signal;
28-
import sun.misc.SignalHandler;
27+
import org.apache.kyuubi.shaded.util.Signal;
28+
import org.apache.kyuubi.shaded.util.SignalHandler;
2929

3030
public class SunSignalHandler implements BeeLineSignalHandler, SignalHandler {
3131
private Statement stmt = null;

pom.xml

Lines changed: 15 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,10 @@
113113
</distributionManagement>
114114

115115
<properties>
116-
<java.version>8</java.version>
117116
<maven.version>3.9.10</maven.version>
118-
<maven.compiler.source>${java.version}</maven.compiler.source>
119-
<maven.compiler.target>${java.version}</maven.compiler.target>
117+
<maven.compiler.source>8</maven.compiler.source>
118+
<maven.compiler.target>8</maven.compiler.target>
119+
<enforcer.maxJdkVersion>8</enforcer.maxJdkVersion>
120120
<scala.version>2.12.19</scala.version>
121121
<scala.binary.version>2.12</scala.binary.version>
122122
<scala-collection-compat.version>2.12.0</scala-collection-compat.version>
@@ -310,6 +310,11 @@
310310
<artifactId>kyuubi-relocated-hive-service-rpc</artifactId>
311311
<version>${kyuubi-relocated.version}</version>
312312
</dependency>
313+
<dependency>
314+
<groupId>org.apache.kyuubi</groupId>
315+
<artifactId>kyuubi-relocated-util</artifactId>
316+
<version>${kyuubi-relocated.version}</version>
317+
</dependency>
313318
<dependency>
314319
<groupId>org.apache.kyuubi</groupId>
315320
<artifactId>${kyuubi-relocated-zookeeper.artifacts}</artifactId>
@@ -1891,7 +1896,8 @@
18911896
<configuration>
18921897
<rules>
18931898
<enforceBytecodeVersion>
1894-
<maxJdkVersion>${java.version}</maxJdkVersion>
1899+
<maxJdkVersion>${enforcer.maxJdkVersion}</maxJdkVersion>
1900+
<ignoredScopes>provided</ignoredScopes>
18951901
<ignoredScopes>test</ignoredScopes>
18961902
<ignoreClasses>
18971903
<!--
@@ -1935,7 +1941,6 @@
19351941
<jdk>8</jdk>
19361942
</activation>
19371943
<properties>
1938-
<java.version>8</java.version>
19391944
<!--
19401945
Iceberg drops support for Java 8 since 1.7.0.
19411946
And it may have compatible issue with Spark 3.5.4+, see Iceberg #11731
@@ -1945,30 +1950,12 @@
19451950
</profile>
19461951

19471952
<profile>
1948-
<id>java-11</id>
1949-
<activation>
1950-
<jdk>11</jdk>
1951-
</activation>
1952-
<properties>
1953-
<java.version>11</java.version>
1954-
<maven.compiler.source></maven.compiler.source>
1955-
<maven.compiler.target></maven.compiler.target>
1956-
<maven.compiler.release>${java.version}</maven.compiler.release>
1957-
<minimalJavaBuildVersion>${java.version}</minimalJavaBuildVersion>
1958-
</properties>
1959-
</profile>
1960-
1961-
<profile>
1962-
<id>java-17</id>
1953+
<id>jdk9+</id>
19631954
<activation>
1964-
<jdk>17</jdk>
1955+
<jdk>[9,)</jdk>
19651956
</activation>
19661957
<properties>
1967-
<java.version>17</java.version>
1968-
<maven.compiler.source></maven.compiler.source>
1969-
<maven.compiler.target></maven.compiler.target>
1970-
<maven.compiler.release>${java.version}</maven.compiler.release>
1971-
<minimalJavaBuildVersion>${java.version}</minimalJavaBuildVersion>
1958+
<maven.compiler.release>8</maven.compiler.release>
19721959
</properties>
19731960
</profile>
19741961

@@ -1978,10 +1965,6 @@
19781965
<jdk>21</jdk>
19791966
</activation>
19801967
<properties>
1981-
<java.version>21</java.version>
1982-
<maven.compiler.source></maven.compiler.source>
1983-
<maven.compiler.target></maven.compiler.target>
1984-
<maven.compiler.release>${java.version}</maven.compiler.release>
19851968
<!-- TODO: The current version of spotless(2.30.0) and google-java-format(1.7)
19861969
does not support Java 21, but new version produces different outputs.
19871970
Re-evaluate once we dropped support for Java 8. -->
@@ -2064,6 +2047,7 @@
20642047
<module>extensions/spark/kyuubi-spark-connector-hive</module>
20652048
</modules>
20662049
<properties>
2050+
<enforcer.maxJdkVersion>17</enforcer.maxJdkVersion>
20672051
<spark.version>4.0.0</spark.version>
20682052
<spark.binary.version>4.0</spark.binary.version>
20692053
<antlr4.version>4.13.1</antlr4.version>
@@ -2084,6 +2068,7 @@
20842068
<profile>
20852069
<id>spark-master</id>
20862070
<properties>
2071+
<enforcer.maxJdkVersion>17</enforcer.maxJdkVersion>
20872072
<spark.version>4.0.0-SNAPSHOT</spark.version>
20882073
<antlr4.version>4.13.1</antlr4.version>
20892074
<maven.plugin.scalatest.exclude.tags>org.scalatest.tags.Slow,org.apache.kyuubi.tags.DeltaTest,org.apache.kyuubi.tags.IcebergTest,org.apache.kyuubi.tags.PaimonTest,org.apache.kyuubi.tags.HudiTest,org.apache.kyuubi.tags.PySparkTest</maven.plugin.scalatest.exclude.tags>

0 commit comments

Comments
 (0)