From 2a81078f27c3762a3ff7ce9f3acff57fe7e75cae Mon Sep 17 00:00:00 2001 From: Abhinay Agarwal <abhinay.agarwal@gluonhq.com> Date: Tue, 16 Apr 2024 10:57:16 +0530 Subject: [PATCH 1/4] build: use relative path for resuesable workflows in same repository (#687) --- .github/workflows/early-access.yml | 10 +++++----- .github/workflows/release.yml | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/early-access.yml b/.github/workflows/early-access.yml index eb413e9bf..85eeb3b61 100644 --- a/.github/workflows/early-access.yml +++ b/.github/workflows/early-access.yml @@ -46,7 +46,7 @@ jobs: linux-bundles: needs: [precheck] - uses: gluonhq/scenebuilder/.github/workflows/bundles-linux.yml@master + uses: ./.github/workflows/bundles-linux.yml with: javafx-version: ${{ needs.precheck.outputs.JAVAFX_VERSION }} java-version: ${{ needs.precheck.outputs.JAVA_VERSION }} @@ -56,7 +56,7 @@ jobs: windows-bundles: needs: [precheck] - uses: gluonhq/scenebuilder/.github/workflows/bundles-windows.yml@master + uses: ./.github/workflows/bundles-windows.yml secrets: WINDOWS_CERTIFICATE: ${{ secrets.WINDOWS_CERTIFICATE }} WINDOWS_PASSWORD: ${{ secrets.WINDOWS_PASSWORD }} @@ -70,7 +70,7 @@ jobs: mac-bundles: needs: [precheck] - uses: gluonhq/scenebuilder/.github/workflows/bundles-mac.yml@master + uses: ./.github/workflows/bundles-mac.yml secrets: CERTIFICATES_FILE_BASE64: ${{ secrets.CERTIFICATES_FILE_BASE64 }} CERTIFICATES_PASSWORD: ${{ secrets.CERTIFICATES_PASSWORD }} @@ -87,7 +87,7 @@ jobs: mac_aarch64-bundles: needs: [precheck] - uses: gluonhq/scenebuilder/.github/workflows/bundles-mac_aarch64.yml@master + uses: ./.github/workflows/bundles-mac_aarch64.yml secrets: CERTIFICATES_FILE_BASE64: ${{ secrets.CERTIFICATES_FILE_BASE64 }} CERTIFICATES_PASSWORD: ${{ secrets.CERTIFICATES_PASSWORD }} @@ -104,7 +104,7 @@ jobs: kit-bundles: needs: [precheck] - uses: gluonhq/scenebuilder/.github/workflows/bundles-kit.yml@master + uses: ./.github/workflows/bundles-kit.yml with: java-version: ${{ needs.precheck.outputs.JAVA_VERSION }} project-version: ${{ needs.precheck.outputs.PROJECT_VERSION }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ca95d84fb..4c4397c19 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -60,7 +60,7 @@ jobs: linux-bundles: needs: [precheck] - uses: gluonhq/scenebuilder/.github/workflows/bundles-linux.yml@master + uses: ./.github/workflows/bundles-linux.yml with: javafx-version: ${{ needs.precheck.outputs.JAVAFX_VERSION }} java-version: ${{ needs.precheck.outputs.JAVA_VERSION }} @@ -70,7 +70,7 @@ jobs: windows-bundles: needs: [precheck] - uses: gluonhq/scenebuilder/.github/workflows/bundles-windows.yml@master + uses: ./.github/workflows/bundles-windows.yml secrets: WINDOWS_CERTIFICATE: ${{ secrets.WINDOWS_CERTIFICATE }} WINDOWS_PASSWORD: ${{ secrets.WINDOWS_PASSWORD }} @@ -84,7 +84,7 @@ jobs: mac-bundles: needs: [precheck] - uses: gluonhq/scenebuilder/.github/workflows/bundles-mac.yml@master + uses: ./.github/workflows/bundles-mac.yml secrets: CERTIFICATES_FILE_BASE64: ${{ secrets.CERTIFICATES_FILE_BASE64 }} CERTIFICATES_PASSWORD: ${{ secrets.CERTIFICATES_PASSWORD }} @@ -101,7 +101,7 @@ jobs: mac_aarch64-bundles: needs: [precheck] - uses: gluonhq/scenebuilder/.github/workflows/bundles-mac_aarch64.yml@master + uses: ./.github/workflows/bundles-mac_aarch64.yml secrets: CERTIFICATES_FILE_BASE64: ${{ secrets.CERTIFICATES_FILE_BASE64 }} CERTIFICATES_PASSWORD: ${{ secrets.CERTIFICATES_PASSWORD }} @@ -118,7 +118,7 @@ jobs: kit-bundles: needs: [precheck] - uses: gluonhq/scenebuilder/.github/workflows/bundles-kit.yml@master + uses: ./.github/workflows/bundles-kit.yml with: java-version: ${{ needs.precheck.outputs.JAVA_VERSION }} project-version: ${{ needs.precheck.outputs.PROJECT_VERSION }} From df782b079dddda466e8b7af387062fb44a9886c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Pereda?= <jose.pereda@gluonhq.com> Date: Tue, 20 Aug 2024 20:00:16 +0200 Subject: [PATCH 2/4] fix: Ignore private and package-private classes when importing custom components (#702) --- .../scenebuilder/kit/library/util/ExplorerBase.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/kit/src/main/java/com/oracle/javafx/scenebuilder/kit/library/util/ExplorerBase.java b/kit/src/main/java/com/oracle/javafx/scenebuilder/kit/library/util/ExplorerBase.java index 6b711d4a4..1ddf56ebd 100644 --- a/kit/src/main/java/com/oracle/javafx/scenebuilder/kit/library/util/ExplorerBase.java +++ b/kit/src/main/java/com/oracle/javafx/scenebuilder/kit/library/util/ExplorerBase.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Gluon and/or its affiliates. + * Copyright (c) 2020, 2024, Gluon and/or its affiliates. * Copyright (c) 2012, 2014, Oracle and/or its affiliates. * All rights reserved. Use is subject to license terms. * @@ -102,8 +102,10 @@ JarReportEntry exploreEntry(String entryName, ClassLoader classLoader, String cl // http://stackoverflow.com/questions/8100376/class-forname-vs-classloader-loadclass-which-to-use-for-dynamic-loading entryClass = classLoader.loadClass(className); // Note: static intializers of entryClass are not run, this doesn't seem to be an issue - if (Modifier.isAbstract(entryClass.getModifiers()) - || !Node.class.isAssignableFrom(entryClass)) { + final int modifiers = entryClass.getModifiers(); + if (Modifier.isAbstract(modifiers) + || !Node.class.isAssignableFrom(entryClass) + || !(Modifier.isPublic(modifiers) || Modifier.isProtected(modifiers))) { status = JarReportEntry.Status.IGNORED; entryClass = null; entryException = null; From 37aeb21dbc0ecc07f5052e7c81d8ecde80f69688 Mon Sep 17 00:00:00 2001 From: Abhinay Agarwal <abhinay.agarwal@gluonhq.com> Date: Fri, 23 Aug 2024 11:33:56 +0530 Subject: [PATCH 3/4] build: increment version to 23.0.0-SNAPSHOT (#704) --- app/pom.xml | 2 +- kit/pom.xml | 2 +- pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/pom.xml b/app/pom.xml index daec5e6bd..22288a872 100644 --- a/app/pom.xml +++ b/app/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>com.gluonhq.scenebuilder</groupId> <artifactId>parent</artifactId> - <version>22.0.1-SNAPSHOT</version> + <version>23.0.0-SNAPSHOT</version> </parent> <properties> diff --git a/kit/pom.xml b/kit/pom.xml index c205135b6..174e821f7 100644 --- a/kit/pom.xml +++ b/kit/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>com.gluonhq.scenebuilder</groupId> <artifactId>parent</artifactId> - <version>22.0.1-SNAPSHOT</version> + <version>23.0.0-SNAPSHOT</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index b50ac0059..cb8132aa6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ <groupId>com.gluonhq.scenebuilder</groupId> <artifactId>parent</artifactId> <packaging>pom</packaging> - <version>22.0.1-SNAPSHOT</version> + <version>23.0.0-SNAPSHOT</version> <name>Scene Builder</name> <description>Scene Builder is a visual, drag n drop, layout tool for designing JavaFX application user interfaces</description> <inceptionYear>2012</inceptionYear> From d36d9f62e902682cf5d734f4b7d8379b4f3acfae Mon Sep 17 00:00:00 2001 From: Abhinay Agarwal <abhinay.agarwal@gluonhq.com> Date: Mon, 26 Aug 2024 12:04:41 +0530 Subject: [PATCH 4/4] build: Use Java and JavaFX 23-ea (#707) --- .github/workflows/build.yml | 2 +- .github/workflows/bundles-kit.yml | 2 +- .github/workflows/bundles-linux.yml | 11 +++++++---- .github/workflows/bundles-mac.yml | 13 ++++++++----- .github/workflows/bundles-mac_aarch64.yml | 13 ++++++++----- .github/workflows/bundles-windows.yml | 11 +++++++---- .github/workflows/early-access.yml | 8 ++++---- .github/workflows/release.yml | 10 +++++----- pom.xml | 4 ++-- 9 files changed, 43 insertions(+), 31 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0caf31844..e9b314064 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,7 +3,7 @@ on: pull_request: env: - JAVA_VERSION: '22' + JAVA_VERSION: '23' jobs: verify: diff --git a/.github/workflows/bundles-kit.yml b/.github/workflows/bundles-kit.yml index ced47d5d2..a0ba1638e 100644 --- a/.github/workflows/bundles-kit.yml +++ b/.github/workflows/bundles-kit.yml @@ -7,7 +7,7 @@ on: required: true type: string java-version: - default: '22' + default: '23' required: false type: string diff --git a/.github/workflows/bundles-linux.yml b/.github/workflows/bundles-linux.yml index 09bdc6ac5..837b4aa32 100644 --- a/.github/workflows/bundles-linux.yml +++ b/.github/workflows/bundles-linux.yml @@ -10,11 +10,11 @@ on: required: true type: string java-version: - default: '22' + default: '23' required: false type: string javafx-version: - default: '22' + default: '23' required: false type: string test: @@ -38,8 +38,11 @@ jobs: release: ${{ inputs.java-version }} - name: Setup JavaFX + id: javafx run: | - wget -P /tmp https://download2.gluonhq.com/openjfx/${{ inputs.javafx-version }}/openjfx-${{ inputs.javafx-version }}_linux-x64_bin-jmods.zip + JAVAFX_MAJOR_VERSION=$(echo ${{ inputs.javafx-version }} | cut -d- -f1) + echo JAVAFX_MAJOR_VERSION=$JAVAFX_MAJOR_VERSION >> $GITHUB_OUTPUT + wget -P /tmp https://download2.gluonhq.com/openjfx/$JAVAFX_MAJOR_VERSION/openjfx-${{ inputs.javafx-version }}_linux-x64_bin-jmods.zip unzip /tmp/openjfx-${{ inputs.javafx-version }}_linux-x64_bin-jmods.zip -d /tmp - name: Cache Maven packages @@ -89,7 +92,7 @@ jobs: ls ${{ env.INSTALL_DIR }} env: MAIN_CLASS: com.oracle.javafx.scenebuilder.app.SceneBuilderApp - JAVAFX_HOME: /tmp/javafx-jmods-${{ inputs.javafx-version }}/ + JAVAFX_HOME: /tmp/javafx-jmods-${{ steps.javafx.outputs.JAVAFX_MAJOR_VERSION }}/ JPACKAGE_HOME: ${{ env.JAVA_HOME }} PROJECT_VERSION: ${{ inputs.project-version }} APP_VERSION: ${{ inputs.app-version }} diff --git a/.github/workflows/bundles-mac.yml b/.github/workflows/bundles-mac.yml index 53631d237..feade7064 100644 --- a/.github/workflows/bundles-mac.yml +++ b/.github/workflows/bundles-mac.yml @@ -10,11 +10,11 @@ on: required: true type: string java-version: - default: '22' + default: '23' required: false type: string javafx-version: - default: '22' + default: '23' required: false type: string test: @@ -52,8 +52,11 @@ jobs: p12-password: ${{ secrets.CERTIFICATES_PASSWORD }} - name: Setup JavaFX + id: javafx run: | - wget -P /tmp https://download2.gluonhq.com/openjfx/${{ inputs.javafx-version }}/openjfx-${{ inputs.javafx-version }}_osx-x64_bin-jmods.zip + JAVAFX_MAJOR_VERSION=$(echo ${{ inputs.javafx-version }} | cut -d- -f1) + echo JAVAFX_MAJOR_VERSION=$JAVAFX_MAJOR_VERSION >> $GITHUB_OUTPUT + wget -P /tmp https://download2.gluonhq.com/openjfx/$JAVAFX_MAJOR_VERSION/openjfx-${{ inputs.javafx-version }}_osx-x64_bin-jmods.zip unzip /tmp/openjfx-${{ inputs.javafx-version }}_osx-x64_bin-jmods.zip -d /tmp - name: Cache Maven packages @@ -89,10 +92,10 @@ jobs: --mac-sign mv ${{ env.INSTALL_DIR }}/SceneBuilder-${{ env.APP_VERSION }}.dmg ${{ env.INSTALL_DIR }}/SceneBuilder-${{ env.PROJECT_VERSION }}-amd64.dmg ls ${{ env.INSTALL_DIR }} - echo ::set-output name=path::${{ env.INSTALL_DIR }}/SceneBuilder-${{ env.PROJECT_VERSION }}-amd64.dmg + echo path=${{ env.INSTALL_DIR }}/SceneBuilder-${{ env.PROJECT_VERSION }}-amd64.dmg >> $GITHUB_OUTPUT env: MAIN_CLASS: com.oracle.javafx.scenebuilder.app.SceneBuilderApp - JAVAFX_HOME: /tmp/javafx-jmods-${{ inputs.javafx-version }}/ + JAVAFX_HOME: /tmp/javafx-jmods-${{ steps.javafx.outputs.JAVAFX_MAJOR_VERSION }}/ JPACKAGE_HOME: ${{ env.JAVA_HOME }} MACSIGN_PREFIX: ${{ secrets.MACSIGN_PREFIX }} MACSIGN_USER: ${{ secrets.MACSIGN_USER }} diff --git a/.github/workflows/bundles-mac_aarch64.yml b/.github/workflows/bundles-mac_aarch64.yml index 1918ac8ab..cf319b69b 100644 --- a/.github/workflows/bundles-mac_aarch64.yml +++ b/.github/workflows/bundles-mac_aarch64.yml @@ -10,11 +10,11 @@ on: required: true type: string java-version: - default: '22' + default: '23' required: false type: string javafx-version: - default: '22' + default: '23' required: false type: string test: @@ -53,8 +53,11 @@ jobs: p12-password: ${{ secrets.CERTIFICATES_PASSWORD }} - name: Setup JavaFX + id: javafx run: | - wget -P /tmp https://download2.gluonhq.com/openjfx/${{ inputs.javafx-version }}/openjfx-${{ inputs.javafx-version }}_osx-aarch64_bin-jmods.zip + JAVAFX_MAJOR_VERSION=$(echo ${{ inputs.javafx-version }} | cut -d- -f1) + echo JAVAFX_MAJOR_VERSION=$JAVAFX_MAJOR_VERSION >> $GITHUB_OUTPUT + wget -P /tmp https://download2.gluonhq.com/openjfx/$JAVAFX_MAJOR_VERSION/openjfx-${{ inputs.javafx-version }}_osx-aarch64_bin-jmods.zip unzip /tmp/openjfx-${{ inputs.javafx-version }}_osx-aarch64_bin-jmods.zip -d /tmp - name: Cache Maven packages @@ -90,10 +93,10 @@ jobs: --mac-sign mv ${{ env.INSTALL_DIR }}/SceneBuilder-${{ env.APP_VERSION }}.dmg ${{ env.INSTALL_DIR }}/SceneBuilder-${{ env.PROJECT_VERSION }}-aarch64.dmg ls ${{ env.INSTALL_DIR }} - echo ::set-output name=path::${{ env.INSTALL_DIR }}/SceneBuilder-${{ env.PROJECT_VERSION }}-aarch64.dmg + echo path=${{ env.INSTALL_DIR }}/SceneBuilder-${{ env.PROJECT_VERSION }}-aarch64.dmg >> $GITHUB_OUTPUT env: MAIN_CLASS: com.oracle.javafx.scenebuilder.app.SceneBuilderApp - JAVAFX_HOME: /tmp/javafx-jmods-${{ inputs.javafx-version }}/ + JAVAFX_HOME: /tmp/javafx-jmods-${{ steps.javafx.outputs.JAVAFX_MAJOR_VERSION }}/ JPACKAGE_HOME: ${{ env.JAVA_HOME }} MACSIGN_PREFIX: ${{ secrets.MACSIGN_PREFIX }} MACSIGN_USER: ${{ secrets.MACSIGN_USER }} diff --git a/.github/workflows/bundles-windows.yml b/.github/workflows/bundles-windows.yml index cc1c72bbe..75b537119 100644 --- a/.github/workflows/bundles-windows.yml +++ b/.github/workflows/bundles-windows.yml @@ -10,11 +10,11 @@ on: required: true type: string java-version: - default: '22' + default: '23' required: false type: string javafx-version: - default: '22' + default: '23' required: false type: string test: @@ -42,9 +42,12 @@ jobs: release: ${{ inputs.java-version }} - name: Setup JavaFX + id: javafx shell: pwsh run: | - Invoke-WebRequest -Uri https://download2.gluonhq.com/openjfx/${{ inputs.javafx-version }}/openjfx-${{ inputs.javafx-version }}_windows-x64_bin-jmods.zip -OutFile D:\openjfx-${{ inputs.javafx-version }}_windows-x64_bin-jmods.zip + $JAVAFX_MAJOR_VERSION = '${{ inputs.javafx-version }}' -split '-' | Select-Object -Index 0 + echo "JAVAFX_MAJOR_VERSION=$JAVAFX_MAJOR_VERSION" >> $env:GITHUB_OUTPUT + Invoke-WebRequest -Uri https://download2.gluonhq.com/openjfx/$JAVAFX_MAJOR_VERSION/openjfx-${{ inputs.javafx-version }}_windows-x64_bin-jmods.zip -OutFile D:\openjfx-${{ inputs.javafx-version }}_windows-x64_bin-jmods.zip Expand-Archive -Force D:\openjfx-${{ inputs.javafx-version }}_windows-x64_bin-jmods.zip D:\ - name: Cache Maven packages @@ -75,7 +78,7 @@ jobs: call dir ${{ env.INSTALL_DIR }} env: MAIN_CLASS: com.oracle.javafx.scenebuilder.app.SceneBuilderApp - JAVAFX_HOME: D:\javafx-jmods-${{ inputs.javafx-version }} + JAVAFX_HOME: D:\javafx-jmods-${{ steps.javafx.outputs.JAVAFX_MAJOR_VERSION }} JPACKAGE_HOME: ${{ env.JAVA_HOME }} PROJECT_VERSION: ${{ inputs.project-version }} APP_VERSION: ${{ inputs.app-version }} diff --git a/.github/workflows/early-access.yml b/.github/workflows/early-access.yml index 85eeb3b61..3b0c59b3b 100644 --- a/.github/workflows/early-access.yml +++ b/.github/workflows/early-access.yml @@ -5,8 +5,8 @@ on: branches: [ master ] env: - JAVAFX_VERSION: '22' - JAVA_VERSION: '22' + JAVA_VERSION: '23' + JAVAFX_VERSION: '23-ea+27' jobs: precheck: @@ -41,8 +41,8 @@ jobs: PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) APP_VERSION=$PROJECT_VERSION APP_VERSION=${APP_VERSION%-*} - echo ::set-output name=APP_VERSION::$APP_VERSION - echo ::set-output name=PROJECT_VERSION::$PROJECT_VERSION + echo APP_VERSION=$APP_VERSION >> $GITHUB_OUTPUT + echo PROJECT_VERSION=$PROJECT_VERSION >> $GITHUB_OUTPUT linux-bundles: needs: [precheck] diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4c4397c19..fad68a505 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,8 +11,8 @@ on: - GA env: - JAVAFX_VERSION: '22' - JAVA_VERSION: '22' + JAVAFX_VERSION: '23' + JAVA_VERSION: '23' jobs: precheck: @@ -54,9 +54,9 @@ jobs: S3_PATH=RC/$PROJECT_VERSION fi echo "Releasing.. "$PROJECT_VERSION - echo ::set-output name=APP_VERSION::$APP_VERSION - echo ::set-output name=PROJECT_VERSION::$PROJECT_VERSION - echo ::set-output name=S3_PATH::$S3_PATH + echo APP_VERSION=$APP_VERSION >> $GITHUB_OUTPUT + echo PROJECT_VERSION=$PROJECT_VERSION >> $GITHUB_OUTPUT + echo S3_PATH=$S3_PATH >> $GITHUB_OUTPUT linux-bundles: needs: [precheck] diff --git a/pom.xml b/pom.xml index cb8132aa6..1dbbbc06f 100644 --- a/pom.xml +++ b/pom.xml @@ -16,11 +16,11 @@ </modules> <properties> - <java.version>22</java.version> + <java.version>23</java.version> <maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.target>${java.version}</maven.compiler.target> <maven.compiler.release>${java.version}</maven.compiler.release> - <javafx.version>22</javafx.version> + <javafx.version>23-ea+27</javafx.version> <aether.version>1.1.0</aether.version> <charm.glisten.version>6.2.2</charm.glisten.version> <gluon.attach.version>4.0.19</gluon.attach.version>