OpenJDK 8 (Zulu 1.8.0_282) 对 Spring 3、Hibernate 3、XStream 等库有任何影响吗?

问题描述

我们的项目是在 Java 7 上运行的遗留项目,我们计划从 Oracle Java 7 迁移到 OpenJDK 8 (Zulu)。 我们使用以下 3rd 方库,我想知道迁移到 Zulu 的 OpenJDK 8 是否会对使用这些 3rd 方库产生任何影响。

OpenJDK 版本:-

openjdk version "1.8.0_282"
OpenJDK Runtime Environment (Zulu 8.52.0.23-CA-win64) (build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (Zulu 8.52.0.23-CA-win64) (build 25.282-b08,mixed mode)

项目使用的库:-

hibernate-commons-annotations-3.2.0.Final.jar
hibernate-core-3.6.10.Final.patched.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
h2-1.3.173.jar
spring-aop-3.0.4.RELEASE.jar
spring-asm-3.0.4.RELEASE.jar
spring-aspects-3.0.4.RELEASE.jar
spring-beans-3.0.4.RELEASE.jar
spring-context-3.0.4.RELEASE.jar
spring-context-support-3.0.4.RELEASE.jar
spring-core-3.0.4.RELEASE.jar
spring-expression-3.0.4.RELEASE.jar
spring-test-3.0.4.RELEASE.jar
spring-tx-3.0.4.RELEASE.jar
xstream-1.4.7.jar

请让我知道是否有任何链接博客提到了兼容性,或者是否对这些库有任何影响,我们是否也需要升级提到的库?

解决方法

无法明确声明对运行时进行此更改不会产生任何影响。除了 JDK 7 和 JDK 8 之间的变化(有很多)之外,JDK 8 的所有更新中还包含了许多变化。测试您的应用程序是了解的唯一方法。

Zulu 是 OpenJDK 和 TCK 测试的构建版本,在功能上与任何其他经过 TCK 测试的 OpenJDK 构建版本完全相同。

可能会引起您注意的一件事是 JDK 8 的最新更新 u292,它默认关闭了对 TLS 1.0 和 1.1 的支持。这让我发现了一个使用 MySQL 和 JDBC 的应用程序,因此您的库列表也可能会受到影响。如果这确实导致问题,很容易在 $JAVA_HOME/jre/lib/security/java.security 文件中重新打开 TLS 版本(查找 jdk.tls.disabledAlgorithms 部分)。