Skip to content
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

8309381: Support JavaFX incubator modules #1616

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

kevinrushforth
Copy link
Member

@kevinrushforth kevinrushforth commented Oct 29, 2024

This PR add the necessary support for JavaFX Incubator Modules. It includes the following:

  1. Changes to the build scripts build.gradle and settings.gradle to document where to add your incubator module. Also added jlink flags to not resolve incubator modules by default and warn when resolving (same as is done for JDK incubator modules).
  2. A utility class to produce warnings when first using an incubator module.
  3. Changes to javafx.base/module-info.java to document where to add the needed qualified exports to your module to access the utility class in 2.

See PR #1617 for a sample module that is built on top of this PR's source branch.

This is almost ready to review. I will take it out of Draft in the next day or so.

/reviewers 2 reviewers
/csr


Progress

  • Change must not contain extraneous whitespace
  • Change requires a CSR request matching fixVersion jfx24 to be approved (needs to be created)
  • Commit message must refer to an issue
  • Change must be properly reviewed (2 reviews required, with at least 2 Reviewers)

Issue

  • JDK-8309381: Support JavaFX incubator modules (Enhancement - P3)

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jfx.git pull/1616/head:pull/1616
$ git checkout pull/1616

Update a local copy of the PR:
$ git checkout pull/1616
$ git pull https://git.openjdk.org/jfx.git pull/1616/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 1616

View PR using the GUI difftool:
$ git pr show -t 1616

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jfx/pull/1616.diff

Using Webrev

Link to Webrev Comment

@bridgekeeper
Copy link

bridgekeeper bot commented Oct 29, 2024

👋 Welcome back kcr! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link

openjdk bot commented Oct 29, 2024

❗ This change is not yet ready to be integrated.
See the Progress checklist in the description for automated requirements.

@openjdk
Copy link

openjdk bot commented Oct 29, 2024

@kevinrushforth
The total number of required reviews for this PR (including the jcheck configuration and the last /reviewers command) is now set to 2 (with at least 2 Reviewers).

@openjdk openjdk bot added the csr Need approved CSR to integrate pull request label Oct 29, 2024
@openjdk
Copy link

openjdk bot commented Oct 29, 2024

@kevinrushforth has indicated that a compatibility and specification (CSR) request is needed for this pull request.

@kevinrushforth please create a CSR request for issue JDK-8309381 with the correct fix version. This pull request cannot be integrated until the CSR request is approved.

@kevinrushforth
Copy link
Member Author

@andy-goryachev-oracle @arapte Can you review?

@openjdk openjdk bot added the rfr Ready for review label Nov 1, 2024
@mlbridge
Copy link

mlbridge bot commented Nov 1, 2024

Webrevs

Copy link
Contributor

@andy-goryachev-oracle andy-goryachev-oracle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks consistent with the original changes, but easier to understand.

had a few minor suggestions, will re-approve if you decide to fix it (WRAIYDTFI).

"jsobject",
"web",
"media",
"systemTests"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you for placing each entry on a separate line!

I would prefer to remove the blank lines around the comment so as not to break the visual grouping (the comments are typically syntax colored anyway unless the user is on TRS80)

// BEGIN: incubator placeholder
//project(":incubator.mymod").projectDir = file("modules/jfx.incubator.mymod")
// END: incubator placeholder

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same suggestion about empty lines

// BEGIN: incubator placeholder
//'incubator.mymod',
// END: incubator placeholder

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(same comment about empty lines)

@@ -2872,6 +2872,19 @@ project(":controls") {
addValidateSourceSets(project, sourceSets)
}

// Add a project declaration for each incubator module here, leaving the
// incubator placeholder lines as an example.
// BEGIN: incubator placeholder
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Q: maybe we should mention the JBS every time we say the word "incubator"?

It might be useful to anyone who is looking at the code and has no access to git history (or when git history is obscured by a move). I mean, JBS is our knowledge base, and it usually helps.

'graphics',
'controls',

// Add an entry for each incubator module here, leaving the incubator
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we check for the existence of a file in e.g. buildSrc/incubator.gradle instead, and if so, modify things like dependendProjects in that file?
The build.gradle is already huge and hard to understand/maintain. Every line we add to it makes it harder.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's an interesting idea. I'll prototype it and see how it looks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
csr Need approved CSR to integrate pull request rfr Ready for review
Development

Successfully merging this pull request may close these issues.

4 participants