RFR: 8309381: Support JavaFX incubator modules [v2]

Kevin Rushforth kcr at openjdk.org
Fri Nov 22 19:37:19 UTC 2024


On Fri, 22 Nov 2024 16:36:02 GMT, Kevin Rushforth <kcr at openjdk.org> wrote:

>> This PR add the necessary support for [JavaFX Incubator Modules](https://github.com/kevinrushforth/jfx/blob/jfx.incubator/INCUBATOR-MODULES.md). 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.
>
> Kevin Rushforth has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision:
> 
>  - Merge branch 'master' into 8309381-incubator.dev
>  - Remove call to doPrivileged
>  - 8309381: Support JavaFX incubator modules

I made the changes to split out the build logic from `build.gradle` so that adding a new incubator module will not require touching the main `build.gradle` file. I pushed this to a new [8309381-incubator.v2](https://github.com/kevinrushforth/jfx/tree/8309381-incubator.v2) branch to evaluate whether to update this PR with that approach.

Click here to see [the diff between this PR branch and v2](https://github.com/kevinrushforth/jfx/compare/8309381-incubator...8309381-incubator.v2).

See [README-incubator.md](https://github.com/kevinrushforth/jfx/blob/8309381-incubator.v2/README-incubator.md) for instructions on creating a new incubator module.

I also updated the sample incubator module, `jfx.incubator.myfeature` in my [jfx.incubator.v2](https://github.com/kevinrushforth/jfx/tree/jfx.incubator.v2) branch.

Click here to see [the jfx.incubator.v2 diffs](https://github.com/kevinrushforth/jfx/compare/jfx.incubator...jfx.incubator.v2).

@andy-goryachev-oracle Can you take a look?

I do think it makes a better separation to get the build logic out of build.gradle, but I wonder whether we want to wait and do this as part of the larger build.gradle cleanup.

@nlisker @johanvos What do you think?

-------------

PR Comment: https://git.openjdk.org/jfx/pull/1616#issuecomment-2494645757


More information about the openjfx-dev mailing list