[
https://issues.redhat.com/browse/ELY-1979?page=com.atlassian.jira.plugin....
]
Darran Lofthouse commented on ELY-1979:
---------------------------------------
This will get interesting.
Our build requires Java 11 as we have some multi module jars which allow us to use some
later APIs to move away from some of the "workarounds" we needed when running
against Java 8, as defined in jboss-parent we however still target Java 8:
{code:xml}
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
{code}
We then redefine the maven-compiler-plugin and set the release version to 8:
{code:xml}
<release>8</release>
{code}
This parameter is passed straight to javac, According to the documentation for the release
parameter:
{quote}
Compiles against the public, supported and documented API for a specific VM version.
Supported release targets are 6, 7, 8, 9, 10, and 11.
{quote}
https://docs.oracle.com/en/java/javase/11/tools/javac.html
It seems even the latest versions of Java 11 don't agree these new methods are part of
the Java 8 API. If I remove the release setting the use of these new methods build
cleanly but it does leave the project at risk of using API later than Java 8.
I can probably relax this check just for the affected component to get the changes through
but we may now need an alternative API check to double check we don't accidentally
introduce anything else new - so far this configuration has been quite reliable at
providing the protection we need.
Elytron needs to deal with JEPS 244 in the org.wildfly.security.ssl
package
---------------------------------------------------------------------------
Key: ELY-1979
URL:
https://issues.redhat.com/browse/ELY-1979
Project: WildFly Elytron
Issue Type: Bug
Components: SSL
Affects Versions: 1.12.0.Final
Reporter: Brian Stansberry
Assignee: Darran Lofthouse
Priority: Blocker
Fix For: 1.12.1.CR1
JEPS 244, available in JDK 9 or later and in JDK 8 since the 251 release[1] has added new
methods to some of the javax.net.ssl classes that elytron wraps in
org.wildfly.security.ssl. But the elytron classes do not handle those new methods. I
believe the relevant change is at [2] and updates the SSLEngine, SSLParameters and
SSLSocket classes (plus various non-javax classes.)
If Elytron were to require 251 or later to build perhaps this could be a simple matter of
adding new methods to the wrappers and calling the delegate, under the expectation that at
runtime the wrapper methods would not be invoked in a JVM < 251. Or the wrappers could
use reflection and throw a UOE if the methods are not available.
[1]
https://www.oracle.com/technetwork/java/javase/8u251-relnotes-5972664.htm...
[2]
https://hg.openjdk.java.net/jdk8u/jdk8u41/jdk/rev/b26b096d4c89
--
This message was sent by Atlassian Jira
(v7.13.8#713008)