-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce support for Java9/10/11 #155
Conversation
Get a compilable version for Java8
Remove unnecessary change Add NullPointer check for getInputStream Add comment for new methods
Yes, the subsequent pull requests are subsumed to this one. |
@@ -23,7 +32,7 @@ | |||
<plugin> | |||
<groupId>org.apache.maven.plugins</groupId> | |||
<artifactId>maven-surefire-plugin</artifactId> | |||
<version>2.20</version> | |||
<version>2.22.2</version> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is optional: you may want to use something like <surefire.version>2.22.2</surefire.version>
in properties
, and then use <version>${surefire.version}</version>
for all occurrences.
And I am not sure whether using a more recent version would help, as discussed in #154 (comment)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're right! We don't necessarily need to do this upgrade for Surefire
here. I'll revert the changes here in the break-down PR.
Did your PRs pass the integration tests under |
I just pushed a new patch to deal with this issue on Ubuntu. Please check if it works in your dev environment. |
It works in my dev environment. Thanks for your changes! |
No, please check out the separate ones (i.e. #157, #158, #159). It'll be much better to review the separate PRs. I'll close this one later. And we plan to have 2 more PRs for the entire feature. |
@ShawnLi-25, do you plan to continue working on this PR? We are going to upgrade to JDK11 and the lack of support in NonDex is the only blocker. |
Hi,
Sure, I can look into it these days. Sorry I forgot to follow up on my PRs.
Shawn
…On Dec 2, 2021, 12:07 AM -0600, Pavel Bludov ***@***.***>, wrote:
@ShawnLi-25, do you plan to continue working on this PR? We are going to upgrade to JDK11 and the lack of support in NonDex is the only blocker.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
|
@pbludov and @ShawnLi-25, we have added JDK11 support, for now just in |
@darko-marinov Is there any plans to release this? |
This is the final cumulative PR for the whole feature. We also break it down into multiple small patches to be more readable for review.
Our work enables NonDex to support Java9/10/11 Maven projects. It's also compilable in either Java8 or Java9/10/11 environment. The result of our recent experiments on open-source project dataset proves that the tool works fine on both Java8 and Java9/10/11 projects.
The migration job can be broke down as the following:
rt.jar
in Java9+(Reason: JRE images in Java9+ no longer contain the files lib/rt.jar, lib/tools.jar, lib/dt.jar, and other internal JAR files.)
java.util.logging.Level
.(Reason: In Java 9+, the original logger
java.util.logging
has been separated into an isolated module calledjava.logging
, and we can not access the logger injava.base
module in Java 9+).NonDex
initialization inControlNondeterminism
after VM is booted, otherwise we'll haveExceptionInInitializerError
when instrumentingjava.util.HashMap/concurrent.ConcurrentHashMap
(Reason: Java9+ changes the implementation of
VM.class
that loads these class too early even during VM initPhase. SinceNonDex
instruments these classes, the accidental order of class loading will crash the JVM)Instrumenter.java
to be workable with Java9+.Please feel free to comment and follow up. Thank you!