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
8271598: CDS classlist file should support uber JARs #5876
8271598: CDS classlist file should support uber JARs #5876
Conversation
/label add hotpot-runtime |
👋 Welcome back ccheung! A progress list of the required criteria for merging this PR into |
@calvinccheung The label
|
@calvinccheung The following labels will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing lists. If you would like to change these labels, use the /label pull request command. |
/label remove hotspot |
@calvinccheung |
@calvinccheung |
/label remove core-libs |
@calvinccheung |
/label add core-libs |
@AlanBateman |
I've added the core-libs label to this issue as this will require wider discussion, detailed review of the classes that are being added to jdk.internal.misc, and a discussion as to whether this is the right place. |
@calvinccheung This pull request has been inactive for more than 4 weeks and will be automatically closed if another 4 weeks passes without any activity. To avoid this, simply add a new comment to the pull request. Feel free to ask for assistance if you need help with progressing this pull request towards integration! |
@calvinccheung This pull request has been inactive for more than 8 weeks and will now be automatically closed. If you would like to continue working on this pull request in the future, feel free to reopen it! This can be done using the |
Currently, for archive classes for custom loaders, CDS supports the following source locations in the classlist:
/some/dir
/some/file.jar
However, some apps packaged in an uber jar load classes using custom loaders from locations such as the following:
jar:file:/some/file.jar!/another/file2.jar!/
jar:file:/some/file.jar!/another/dir!/
This RFE adds support for the above locations in the classlist and load classes from the above locations during
CDS static dump. The implementation of class loading is in the
UberJarUtils
and related classes. TheUberJarUtils.loadClass()
is the static method called by the VM during CDS static dump for loading classes.Since the
UberJarUtils
class also handles existing source locations (simple directory and jar), the existing implementationin the VM could be simplified.
Testing:
Progress
Issue
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk pull/5876/head:pull/5876
$ git checkout pull/5876
Update a local copy of the PR:
$ git checkout pull/5876
$ git pull https://git.openjdk.java.net/jdk pull/5876/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 5876
View PR using the GUI difftool:
$ git pr show -t 5876
Using diff file
Download this PR as a diff file:
https://git.openjdk.java.net/jdk/pull/5876.diff