Skip to content

Commit 96847dc

Browse files
committed
Merge remote-tracking branch 'upstream/master' into macfscleanup
2 parents d2e3466 + dd60065 commit 96847dc

File tree

13,341 files changed

+624928
-365530
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

13,341 files changed

+624928
-365530
lines changed

.github/workflows/submit.yml

+117-32
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# This code is free software; you can redistribute it and/or modify it
@@ -25,14 +25,16 @@
2525

2626
#
2727
# This GitHub actions YAML file runs a build and test on each of the three primary platforms:
28-
# Linux, macOS, Windows. The jobs are run using the default (latest) OS platform for each OS.
28+
# Linux, macOS (both x64 and aarch64), Windows. The jobs are run using the default (latest) OS platform for each OS.
2929
# We download a specific version the boot JDK and gradle. We use the default versions
3030
# of all other build tools (e.g., compilers and ant) that are available on each platform.
3131
#
3232
# The build step is run in the default mode without building the native media or webkit libraries.
3333
# The test is run with web tests excluded. As a follow-up enhancement, we might consider optionally
3434
# building the media and webkit libraries.
3535
#
36+
# NOTE: much of the build logic is duplicated for each platform. Keep this in mind when making changes.
37+
#
3638

3739
name: JavaFX pre-submit tests
3840

@@ -63,20 +65,20 @@ jobs:
6365
linux_x64_build:
6466
name: Linux x64
6567
needs: validation
66-
runs-on: "ubuntu-22.04"
68+
runs-on: "ubuntu-24.04"
6769

6870
env:
6971
# FIXME: read this information from a property file
7072
# BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
7173
# BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_FILENAME }}"
7274
# BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_URL }}"
7375
# BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_SHA256 }}"
74-
BOOT_JDK_VERSION: "19.0.2"
75-
BOOT_JDK_FILENAME: "jdk-19.0.2_linux-x64_bin.tar.gz"
76-
BOOT_JDK_URL: "https://download.oracle.com/java/19/archive/jdk-19.0.2_linux-x64_bin.tar.gz"
77-
ANT_DIR: "apache-ant-1.10.5"
78-
ANT_FILENAME: "apache-ant-1.10.5.tar.gz"
79-
ANT_URL: "https://archive.apache.org/dist/ant/binaries/apache-ant-1.10.5-bin.tar.gz"
76+
BOOT_JDK_VERSION: "23"
77+
BOOT_JDK_FILENAME: "jdk-23_linux-x64_bin.tar.gz"
78+
BOOT_JDK_URL: "https://download.oracle.com/java/23/archive/jdk-23_linux-x64_bin.tar.gz"
79+
# ANT_DIR: "apache-ant-1.10.5"
80+
# ANT_FILENAME: "apache-ant-1.10.5.tar.gz"
81+
# ANT_URL: "https://archive.apache.org/dist/ant/binaries/apache-ant-1.10.5-bin.tar.gz"
8082

8183
steps:
8284
- name: Checkout the source
@@ -88,11 +90,11 @@ jobs:
8890
run: |
8991
set -x
9092
sudo apt-get update
91-
sudo apt-get install libgl1-mesa-dev libx11-dev libxxf86vm-dev libxt-dev pkg-config libgtk2.0-dev libgtk-3-dev libxtst-dev gcc-12 g++-12
92-
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100 --slave /usr/bin/g++ g++ /usr/bin/g++-12
93+
sudo apt-get install ant libgl1-mesa-dev libx11-dev libxxf86vm-dev libxt-dev pkg-config libgtk2.0-dev libgtk-3-dev libxtst-dev gcc-13 g++-13
94+
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 100 --slave /usr/bin/g++ g++ /usr/bin/g++-13
9395
mkdir -p "${HOME}/build-tools"
94-
wget -O "${HOME}/build-tools/${ANT_FILENAME}" "${ANT_URL}"
95-
tar -zxf "${HOME}/build-tools/${ANT_FILENAME}" -C "${HOME}/build-tools"
96+
# wget -O "${HOME}/build-tools/${ANT_FILENAME}" "${ANT_URL}"
97+
# tar -zxf "${HOME}/build-tools/${ANT_FILENAME}" -C "${HOME}/build-tools"
9698
9799
# FIXME: enable cache for boot JDK
98100
# - name: Restore boot JDK from cache
@@ -116,9 +118,10 @@ jobs:
116118
set -x
117119
export JAVA_HOME="${HOME}/bootjdk/jdk-${BOOT_JDK_VERSION}"
118120
echo "JAVA_HOME=${JAVA_HOME}" >> "${GITHUB_ENV}"
119-
export ANT_HOME="${HOME}/build-tools/${ANT_DIR}"
120-
echo "ANT_HOME=${ANT_HOME}" >> "${GITHUB_ENV}"
121-
export PATH="$JAVA_HOME/bin:$ANT_HOME/bin:$PATH"
121+
# export ANT_HOME="${HOME}/build-tools/${ANT_DIR}"
122+
# echo "ANT_HOME=${ANT_HOME}" >> "${GITHUB_ENV}"
123+
# export PATH="$JAVA_HOME/bin:$ANT_HOME/bin:$PATH"
124+
export PATH="$JAVA_HOME/bin:$PATH"
122125
env | sort
123126
which java
124127
java -version
@@ -130,15 +133,17 @@ jobs:
130133
working-directory: jfx
131134
run: |
132135
set -x
133-
export PATH="$JAVA_HOME/bin:$ANT_HOME/bin:$PATH"
136+
# export PATH="$JAVA_HOME/bin:$ANT_HOME/bin:$PATH"
137+
export PATH="$JAVA_HOME/bin:$PATH"
134138
bash gradlew -version
135139
bash gradlew --info all
136140
137141
- name: Run JavaFX headless tests
138142
working-directory: jfx
139143
run: |
140144
set -x
141-
export PATH="$JAVA_HOME/bin:$ANT_HOME/bin:$PATH"
145+
# export PATH="$JAVA_HOME/bin:$ANT_HOME/bin:$PATH"
146+
export PATH="$JAVA_HOME/bin:$PATH"
142147
bash gradlew --info --continue -PTEST_ONLY=true test -x :web:test
143148
144149
@@ -153,9 +158,95 @@ jobs:
153158
# BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_FILENAME }}"
154159
# BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_URL }}"
155160
# BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_SHA256 }}"
156-
BOOT_JDK_VERSION: "19.0.2"
157-
BOOT_JDK_FILENAME: "jdk-19.0.2_macos-x64_bin.tar.gz"
158-
BOOT_JDK_URL: "https://download.oracle.com/java/19/archive/jdk-19.0.2_macos-x64_bin.tar.gz"
161+
BOOT_JDK_VERSION: "23"
162+
BOOT_JDK_FILENAME: "jdk-23_macos-x64_bin.tar.gz"
163+
BOOT_JDK_URL: "https://download.oracle.com/java/23/archive/jdk-23_macos-x64_bin.tar.gz"
164+
# Disabled due to timeout downloading ant; use ant installed on system
165+
#ANT_DIR: "apache-ant-1.10.5"
166+
#ANT_FILENAME: "apache-ant-1.10.5.tar.gz"
167+
#ANT_URL: "https://archive.apache.org/dist/ant/binaries/apache-ant-1.10.5-bin.tar.gz"
168+
169+
steps:
170+
- name: Checkout the source
171+
uses: actions/checkout@v2
172+
with:
173+
path: jfx
174+
175+
- name: Install dependencies
176+
run: |
177+
set -x
178+
echo "NOT NEEDED: brew install make"
179+
echo "NOT NEEDED: wget ... ant"
180+
#mkdir -p "${HOME}/build-tools"
181+
#wget -O "${HOME}/build-tools/${ANT_FILENAME}" "${ANT_URL}"
182+
#tar -zxf "${HOME}/build-tools/${ANT_FILENAME}" -C "${HOME}/build-tools"
183+
184+
# FIXME: enable cache for boot JDK
185+
# - name: Restore boot JDK from cache
186+
# id: bootjdk
187+
# uses: actions/cache@v2
188+
# with:
189+
# path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
190+
# key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
191+
192+
- name: Download boot JDK
193+
run: |
194+
set -x
195+
mkdir -p "${HOME}/bootjdk"
196+
wget -O "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" "${BOOT_JDK_URL}"
197+
# FIXME: sha256sum
198+
tar -xf "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" -C "${HOME}/bootjdk"
199+
# FIXME: enable cache for boot JDK
200+
201+
- name: Setup environment
202+
run: |
203+
set -x
204+
export JAVA_HOME="${HOME}/bootjdk/jdk-${BOOT_JDK_VERSION}.jdk/Contents/Home"
205+
echo "JAVA_HOME=${JAVA_HOME}" >> "${GITHUB_ENV}"
206+
#export ANT_HOME="${HOME}/build-tools/${ANT_DIR}"
207+
#echo "ANT_HOME=${ANT_HOME}" >> "${GITHUB_ENV}"
208+
#export PATH="$JAVA_HOME/bin:$ANT_HOME/bin:$PATH"
209+
export PATH="$JAVA_HOME/bin:$PATH"
210+
env | sort
211+
which java
212+
java -version
213+
which ant
214+
ant -version
215+
sudo xcode-select --switch /Applications/Xcode_14.3.1.app/Contents/Developer
216+
xcodebuild -version
217+
218+
- name: Build JavaFX artifacts
219+
working-directory: jfx
220+
run: |
221+
set -x
222+
#export PATH="$JAVA_HOME/bin:$ANT_HOME/bin:$PATH"
223+
export PATH="$JAVA_HOME/bin:$PATH"
224+
bash gradlew -version
225+
bash gradlew --info all
226+
227+
- name: Run JavaFX headless tests
228+
working-directory: jfx
229+
run: |
230+
set -x
231+
#export PATH="$JAVA_HOME/bin:$ANT_HOME/bin:$PATH"
232+
export PATH="$JAVA_HOME/bin:$PATH"
233+
bash gradlew --info --continue -PTEST_ONLY=true test -x :web:test
234+
235+
236+
macos_aarch64_build:
237+
name: macOS aarch64
238+
needs: validation
239+
runs-on: "macos-14"
240+
241+
env:
242+
# FIXME: read this information from a property file
243+
# BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
244+
# BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_FILENAME }}"
245+
# BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_URL }}"
246+
# BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_SHA256 }}"
247+
BOOT_JDK_VERSION: "23"
248+
BOOT_JDK_FILENAME: "jdk-23_macos-aarch64_bin.tar.gz"
249+
BOOT_JDK_URL: "https://download.oracle.com/java/23/archive/jdk-23_macos-aarch64_bin.tar.gz"
159250
# Disabled due to timeout downloading ant; use ant installed on system
160251
#ANT_DIR: "apache-ant-1.10.5"
161252
#ANT_FILENAME: "apache-ant-1.10.5.tar.gz"
@@ -207,7 +298,8 @@ jobs:
207298
java -version
208299
which ant
209300
ant -version
210-
sudo xcode-select --switch /Applications/Xcode_14.3.app/Contents/Developer
301+
# We want to use Xcode 14, but GHA removed it from the macOS 14 runners
302+
# sudo xcode-select --switch /Applications/Xcode_14.3.1.app/Contents/Developer
211303
xcodebuild -version
212304
213305
- name: Build JavaFX artifacts
@@ -239,14 +331,12 @@ jobs:
239331
# BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_FILENAME }}"
240332
# BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_URL }}"
241333
# BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_SHA256 }}"
242-
BOOT_JDK_VERSION: "19.0.2"
243-
BOOT_JDK_FILENAME: "jdk-19.0.2_windows-x64_bin.zip"
244-
BOOT_JDK_URL: "https://download.oracle.com/java/19/archive/jdk-19.0.2_windows-x64_bin.zip"
334+
BOOT_JDK_VERSION: "23"
335+
BOOT_JDK_FILENAME: "jdk-23_windows-x64_bin.zip"
336+
BOOT_JDK_URL: "https://download.oracle.com/java/23/archive/jdk-23_windows-x64_bin.zip"
245337
ANT_DIR: "apache-ant-1.10.5"
246338
ANT_FILENAME: "apache-ant-1.10.5.tar.gz"
247339
ANT_URL: "https://archive.apache.org/dist/ant/binaries/apache-ant-1.10.5-bin.tar.gz"
248-
# FIXME: hard-code the location of VS 2022 for now
249-
VS150COMNTOOLS: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Auxiliary\\Build"
250340

251341
steps:
252342
- name: Checkout the source
@@ -291,15 +381,10 @@ jobs:
291381
292382
- name: Setup environment
293383
run: |
294-
echo "VS150COMNTOOLS=$env:VS150COMNTOOLS"
295384
echo "dir ...\VC\Tools\MSVC"
296385
dir "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC"
297-
echo "dir VS150COMNTOOLS"
298-
dir "$env:VS150COMNTOOLS"
299386
# echo "dir ...\VC\Tools\MSVC"
300387
# dir "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC"
301-
# echo "dir VS150COMNTOOLS"
302-
# dir "$env:VS150COMNTOOLS"
303388
304389
$env:Path = "$HOME\cygwin\cygwin64\bin;$HOME\cygwin\cygwin64\bin;$env:Path" ;
305390
$env:JAVA_HOME = "$HOME\bootjdk\jdk-$env:BOOT_JDK_VERSION" ;

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ testbin/
1111
**/Ensemble8/lib/
1212
**/Ensemble8/src/generated/resources/ensemble/search/index/write.lock
1313
**/nbproject/private/
14+
hs_err_pid*
1415

1516
# Ignore webrevs
1617
/webrev/

.jcheck/conf

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
;
2-
; Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved.
2+
; Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved.
33
; DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
;
55
; This code is free software; you can redistribute it and/or modify it
@@ -24,13 +24,14 @@
2424
[general]
2525
project=openjfx
2626
jbs=jdk
27-
version=jfx22
27+
version=jfx24
2828

2929
[repository]
3030
tags=(jdk-){0,1}([1-9]([0-9]*)(\.(0|[1-9][0-9]*)){0,3})(\+(([0-9]+))|(-ga))|[1-9]((\.\d{1,3}){0,2})-((b\d{2,3})|(ga))|[1-9]u(\d{1,3})-((b\d{2,3})|(ga))
3131

3232
[checks]
3333
error=author,reviewers,merge,message,issues,whitespace,executable
34+
warning=issuestitle,binary
3435

3536
[census]
3637
version=0
@@ -40,7 +41,7 @@ domain=openjdk.org
4041
files=.*\.java$|.*\.c$|.*\.h$|.*\.cpp$|.*\.hpp$|.*\.cc$|.*\.jsl$|.*\.fxml$|.*\.css$|.*\.m$|.*\.mm$|.*\.frag$|.*\.vert$|.*\.hlsl$|.*\.metal$|.*\.gradle$|.*\.groovy$|.*\.g4$|.*\.stg$
4142

4243
[checks "reviewers"]
43-
minimum=1
44+
reviewers=1
4445

4546
[checks "merge"]
4647
message=Merge

.project

-8
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,5 @@
44
<projects>
55
</projects>
66
<buildSpec>
7-
<buildCommand>
8-
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
9-
<arguments>
10-
</arguments>
11-
</buildCommand>
127
</buildSpec>
13-
<natures>
14-
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
15-
</natures>
168
</projectDescription>

CONTRIBUTING.md

+13-11
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ If you are a first time contributor to OpenJFX, welcome! Please do the following
4646

4747
* Read the code review policies
4848

49-
Please read the entire section below on how to submit a pull request, as well as the [OpenJFX Code Review Policies](https://wiki.openjdk.org/display/OpenJFX/Code+Reviews). If this is a feature request, please note the additional requirements and expectations in the [New features / API additions](#new-features--api-additions) section at the end of this guide.
49+
Please read the entire section below on how to submit a pull request, as well as the [Code Review Policies](README-code-reviews.md) page. If this is a feature request, please note the additional requirements and expectations in the [New features / API additions](#new-features--api-additions) section at the end of this guide.
5050

5151
* File a bug in JBS for every pull request
5252

@@ -115,7 +115,7 @@ Once your changes and tests are ready to submit for review:
115115
4. Code review
116116
117117
All pull requests _must_ be reviewed according to the
118-
[OpenJFX Code Review Policies](https://wiki.openjdk.org/display/OpenJFX/Code+Reviews).
118+
[Code Review Policies](README-code-reviews.md) page.
119119
It is the responsibility of the Reviewer(s) and the Committer who
120120
will integrate or sponsor the change to ensure that the code review policies
121121
are followed, and that all concerns have been addressed.
@@ -153,11 +153,12 @@ Once your changes and tests are ready to submit for review:
153153
Once the review has completed as described above, you can integrate
154154
the PR.
155155
156-
A. Verify the commit message. The Skara tooling adds a comment with
157-
the commit message that will be used. You can add a summary to the
158-
commit message with the `/summary` command. You can add additional
159-
contributors with the `/contributor` command. Commands are issued
160-
by adding a comment to the PR that starts with a slash `/` character.
156+
A. Verify the following: all substantive feedback has been addressed; all Reviewers
157+
who have requested the chance to review have done so; the PR has been "rfr"
158+
for at least 1 business day (excluding weekends and holidays);
159+
the commit message is correct.
160+
See the [Code Review Gudelines](README-code-reviews.md#before-you-integrate-or-sponsor-a-pr)
161+
for more details.
161162
162163
B. Issue the `/integrate` command. If you have the "Committer" role
163164
(or higher) in the Project, then the Skara bot will merge the change
@@ -199,8 +200,8 @@ this is a good time to discuss it. Once this step is far enough along that there
199200
then it's time to focus on the implementation.
200201
201202
3. Submit a review of your proposed implementation. As noted in the
202-
[New features / API additions](https://wiki.openjdk.org/display/OpenJFX/Code+Reviews#CodeReviews-NewFeaturesC.Newfeatures/APIadditions.)
203-
section of the Code Review Policies doc, we also need a [CSR](https://wiki.openjdk.org/display/csr/Main), which documents the API change and its approval.
203+
[New features / API additions](README-code-reviews.md#c-new-features--api-additions)
204+
section of the Code Review Policies page, we also need a [CSR](https://wiki.openjdk.org/display/csr/Main), which documents the API change and its approval.
204205
The CSR can be reviewed in parallel. Changes in the API that arise during the review need to be reflected in the CSR, meaning
205206
that the final review / approval of the CSR usually happens late in the review cycle.
206207
You can avoid extra work by waiting to submit the CSR until the API is agreed upon and the code review for the documentation is reasonably far along.
@@ -229,13 +230,14 @@ Please also follow these formatting guidelines:
229230
* Wildcard imports &ndash; for example, `import java.util.*;` &ndash; are forbidden and may cause the build to fail. Please attempt to configure your IDE so it doesn't generate wildcard imports. An exception to this rule is that wildcard static imports in test classes are allowed, for example, `import static org.junit.Assert.*;`.
230231
* Don't worry too much about import order. Try not to change it but don't worry about fighting your IDE to stop it from doing so.
231232
233+
New code should be formatted consistently in accordance with the above guidelines. However, please do not reformat existing code as part of a bug fix. This makes more changes for code reviewers to track and review, and can lead to merge conflicts.
234+
232235
### Building and testing
233236
234-
JDK 17 (at a minimum) is required to build OpenJFX. You must have the JDK
237+
JDK 22 (at a minimum) is required to build OpenJFX. You must have the JDK
235238
installed on your system
236239
with the environment variable `JAVA_HOME` referencing the path to Java home for
237240
your JDK installation. By default, tests use the same runtime as `JAVA_HOME`.
238-
Currently OpenJFX will build and run on JDK 17 through JDK 18.
239241
240242
It is possible to develop in any major Java IDE (Eclipse, IntelliJ, NetBeans). IDEs can automatically configure projects based on Gradle setup.
241243

0 commit comments

Comments
 (0)