Skip to content

Commit 4a71738

Browse files
Merge branch 'gluonhq:master' into issue-402
2 parents 0a862e5 + eb03ff4 commit 4a71738

File tree

12 files changed

+130
-36
lines changed

12 files changed

+130
-36
lines changed

.github/release-drafter.yml

+7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
exclude-labels:
22
- 'housekeeping'
3+
categories:
4+
- title: '🚀 Features'
5+
labels:
6+
- 'enhancement'
7+
- title: '🐛 Bug Fixes'
8+
labels:
9+
- 'bug'
310
template: |
411
## What’s Changed
512
$CHANGES

.github/workflows/build.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ jobs:
2424
uses: actions/checkout@v2
2525

2626
- name: Setup Java
27-
uses: joschi/setup-jdk@v2
27+
uses: actions/setup-java@v2
2828
with:
29-
java-version: 16
29+
distribution: 'temurin'
30+
java-version: '17-ea'
3031

3132
- name: Run Tests (Linux)
3233
if: runner.os == 'Linux'

.github/workflows/kit.yml

+4-3
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ jobs:
1111
run: sudo apt-get install xdg-utils xvfb tigervnc-standalone-server tigervnc-common
1212
- uses: actions/checkout@v2
1313
- name: Setup java
14-
uses: joschi/setup-jdk@v2
14+
uses: actions/setup-java@v2
1515
with:
16-
java-version: 16
16+
distribution: 'temurin'
17+
java-version: '17-ea'
1718
- name: Store Variables
1819
id: variables
1920
run: |
@@ -35,7 +36,7 @@ jobs:
3536
chmod -v 600 /home/runner/.vnc/passwd
3637
vncserver :90 -localhost -nolisten tcp
3738
mvn -q versions:set -DnewVersion=${{ env.TAG }} -DgenerateBackupPoms=false
38-
mvn clean package -Dmaven.test.skip=true -X
39+
mvn clean package -Dmaven.test.skip=true -f kit -X
3940
vncserver -kill :90
4041
env:
4142
TAG: ${{ steps.variables.outputs.SOURCE_TAG }}

.github/workflows/linux.yml

+9-5
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ jobs:
1111
run: sudo apt-get install xdg-utils
1212
- uses: actions/checkout@v2
1313
- name: Setup java
14-
uses: joschi/setup-jdk@v2
14+
uses: actions/setup-java@v2
1515
with:
16-
java-version: 16
16+
distribution: 'temurin'
17+
java-version: '17-ea'
1718
- name: Store Variables
1819
id: variables
1920
run: |
@@ -32,8 +33,8 @@ jobs:
3233
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
3334
- name: Setup JavaFX
3435
run: |
35-
wget -P /tmp https://download2.gluonhq.com/openjfx/16/openjfx-16_linux-x64_bin-jmods.zip
36-
unzip /tmp/openjfx-16_linux-x64_bin-jmods.zip -d /tmp
36+
wget -P /tmp https://download2.gluonhq.com/openjfx/17/openjfx-17_linux-x64_bin-jmods.zip
37+
unzip /tmp/openjfx-17_linux-x64_bin-jmods.zip -d /tmp
3738
- name: Build and package JAR
3839
run: |
3940
mvn -q versions:set -DnewVersion=${{ env.VERSION }} -DgenerateBackupPoms=false
@@ -47,6 +48,8 @@ jobs:
4748
--icon app/assets/linux/icon-linux.png \
4849
--java-options '"-Djdk.gtk.version=2"' \
4950
--java-options '"--add-opens=javafx.fxml/javafx.fxml=ALL-UNNAMED"' \
51+
--java-options '"-Djava.library.path=/opt/scenebuilder/lib/runtime/bin:/opt/scenebuilder/lib/runtime/lib"' \
52+
--resource-dir app/assets/linux
5053
--install-dir /opt \
5154
--type deb
5255
mv $INSTALL_DIR/*.deb $INSTALL_DIR/SceneBuilder-${{ env.TAG }}.deb
@@ -55,13 +58,14 @@ jobs:
5558
--icon app/assets/linux/icon-linux.png \
5659
--java-options '"-Djdk.gtk.version=2"' \
5760
--java-options '"--add-opens=javafx.fxml/javafx.fxml=ALL-UNNAMED"' \
61+
--resource-dir app/assets/linux
5862
--install-dir /opt \
5963
--type rpm
6064
mv $INSTALL_DIR/*.rpm $INSTALL_DIR/SceneBuilder-${{ env.TAG }}.rpm
6165
ls $INSTALL_DIR
6266
env:
6367
MAIN_CLASS: com.oracle.javafx.scenebuilder.app.SceneBuilderApp
64-
JAVAFX_HOME: /tmp/javafx-jmods-16/
68+
JAVAFX_HOME: /tmp/javafx-jmods-17/
6569
JPACKAGE_HOME: ${{ env.JAVA_HOME }}
6670
TAG: ${{ steps.variables.outputs.SOURCE_TAG }}
6771
VERSION: ${{ steps.variables.outputs.SOURCE_VERSION }}

.github/workflows/mac.yml

+6-5
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ jobs:
99
steps:
1010
- uses: actions/checkout@v2
1111
- name: Setup java
12-
uses: joschi/setup-jdk@v2
12+
uses: actions/setup-java@v2
1313
with:
14-
java-version: 16
14+
distribution: 'temurin'
15+
java-version: '17-ea'
1516
- uses: Apple-Actions/import-codesign-certs@v1
1617
with:
1718
p12-file-base64: ${{ secrets.CERTIFICATES_FILE_BASE64 }}
@@ -34,8 +35,8 @@ jobs:
3435
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
3536
- name: Setup JavaFX
3637
run: |
37-
wget -P /tmp https://download2.gluonhq.com/openjfx/16/openjfx-16_osx-x64_bin-jmods-SIGNED.zip
38-
unzip /tmp/openjfx-16_osx-x64_bin-jmods-SIGNED.zip -d /tmp
38+
wget -P /tmp https://download2.gluonhq.com/openjfx/17/openjfx-17_osx-x64_bin-jmods.zip
39+
unzip /tmp/openjfx-17_osx-x64_bin-jmods.zip -d /tmp
3940
- name: Build and package JAR
4041
run: |
4142
mvn -q versions:set -DnewVersion=${{ env.VERSION }} -DgenerateBackupPoms=false
@@ -59,7 +60,7 @@ jobs:
5960
echo ::set-output name=path::$INSTALL_DIR/SceneBuilder-${{ env.TAG }}.dmg
6061
env:
6162
MAIN_CLASS: com.oracle.javafx.scenebuilder.app.SceneBuilderApp
62-
JAVAFX_HOME: /tmp/javafx-jmods-16/
63+
JAVAFX_HOME: /tmp/javafx-jmods-17/
6364
JPACKAGE_HOME: ${{ env.JAVA_HOME }}
6465
GLUON_MACSIGN_PREFIX: ${{ secrets.GLUON_MACSIGN_PREFIX }}
6566
GLUON_MACSIGN_USER: ${{ secrets.GLUON_MACSIGN_USER }}

.github/workflows/win.yml

+6-5
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ jobs:
99
steps:
1010
- uses: actions/checkout@v2
1111
- name: Setup java
12-
uses: joschi/setup-jdk@v2
12+
uses: actions/setup-java@v2
1313
with:
14-
java-version: 16
14+
distribution: 'temurin'
15+
java-version: '17-ea'
1516
- name: Store Variables
1617
id: variables
1718
run: |
@@ -30,8 +31,8 @@ jobs:
3031
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
3132
- name: Setup JavaFX
3233
run: |
33-
bitsadmin /Transfer DownloadJavaFX https://download2.gluonhq.com/openjfx/16/openjfx-16_windows-x64_bin-jmods.zip D:\openjfx-16_windows-x64_bin-jmods.zip
34-
Expand-Archive -Force D:\openjfx-16_windows-x64_bin-jmods.zip D:\
34+
bitsadmin /Transfer DownloadJavaFX https://download2.gluonhq.com/openjfx/17/openjfx-17_windows-x64_bin-jmods.zip D:\openjfx-17_windows-x64_bin-jmods.zip
35+
Expand-Archive -Force D:\openjfx-17_windows-x64_bin-jmods.zip D:\
3536
- name: Build and package JAR
3637
shell: cmd
3738
run: |
@@ -47,7 +48,7 @@ jobs:
4748
call dir ${{ env.INSTALL_DIR }}
4849
env:
4950
MAIN_CLASS: com.oracle.javafx.scenebuilder.app.SceneBuilderApp
50-
JAVAFX_HOME: D:\javafx-jmods-16
51+
JAVAFX_HOME: D:\javafx-jmods-17
5152
JPACKAGE_HOME: ${{ env.JAVA_HOME }}
5253
TAG: ${{ steps.variables.outputs.SOURCE_TAG }}
5354
VERSION: ${{ steps.variables.outputs.SOURCE_VERSION }}

app/assets/linux/SceneBuilder.desktop

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[Desktop Entry]
2+
Name=APPLICATION_NAME
3+
Comment=APPLICATION_DESCRIPTION
4+
Exec=APPLICATION_LAUNCHER
5+
Icon=APPLICATION_ICON
6+
Terminal=false
7+
Type=Application
8+
Categories=DEPLOY_BUNDLE_CATEGORY
9+
DESKTOP_MIMES
10+
StartupWMClass=com.oracle.javafx.scenebuilder.app.SceneBuilderApp

app/pom.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77
<parent>
88
<groupId>com.gluonhq.scenebuilder</groupId>
99
<artifactId>parent</artifactId>
10-
<version>16.0.0-SNAPSHOT</version>
10+
<version>17.0.0</version>
1111
</parent>
1212

1313
<properties>
1414
<main.class.name>com.oracle.javafx.scenebuilder.app.SceneBuilderApp</main.class.name>
1515
<!-- For about.properties file -->
1616
<buildDate>${maven.build.timestamp}</buildDate>
17-
<javaVersion>${java.vm.version}, ${java.vendor}</javaVersion>
17+
<javaVersion>${java.version}, ${java.runtime.name}</javaVersion>
1818
<javafxVersion>${javafx.version}</javafxVersion>
1919
<maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format>
2020
</properties>
@@ -23,7 +23,7 @@
2323
<dependency>
2424
<groupId>com.gluonhq.scenebuilder</groupId>
2525
<artifactId>kit</artifactId>
26-
<version>16.0.0-SNAPSHOT</version>
26+
<version>17.0.0</version>
2727
</dependency>
2828
</dependencies>
2929

app/src/main/java/com/oracle/javafx/scenebuilder/app/about/AboutWindowController.java

+69-7
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@
4040
import java.io.File;
4141
import java.io.IOException;
4242
import java.io.InputStream;
43+
import java.nio.file.Files;
44+
import java.nio.file.InvalidPathException;
45+
import java.nio.file.Path;
46+
import java.nio.file.Paths;
47+
import java.util.ArrayList;
48+
import java.util.List;
4349
import java.util.Properties;
4450
import javafx.fxml.FXML;
4551
import javafx.scene.control.TextArea;
@@ -57,7 +63,7 @@ public final class AboutWindowController extends AbstractFxmlWindowController {
5763
private GridPane vbox;
5864
@FXML
5965
private TextArea textArea;
60-
66+
6167
private String sbBuildInfo;
6268
private String sbBuildVersion;
6369
private String sbBuildDate;
@@ -87,7 +93,7 @@ public AboutWindowController() {
8793
// We go with default values
8894
}
8995
}
90-
96+
9197
@FXML
9298
public void onMousePressed(MouseEvent event) {
9399
if ((event.getClickCount() == 2) && event.isAltDown()) {
@@ -128,28 +134,45 @@ private String getAboutText() {
128134
.append(getLoggingParagraph())
129135
.append(getJavaFXParagraph())
130136
.append(getJavaParagraph())
137+
.append(getJavaLibraryPathParagraph())
131138
.append(getOsParagraph())
139+
.append(getApplicationDirectoriesParagraph())
132140
.append(I18N.getString(sbAboutCopyrightKeyName));
133141

134142
return text.toString();
135143
}
136-
144+
145+
private StringBuilder getApplicationDirectoriesParagraph() {
146+
return new StringBuilder(I18N.getString("about.app.data.directory"))
147+
.append("\n\t") // NOI18N
148+
.append(Paths.get(AppPlatform.getApplicationDataFolder()).normalize()) //NOI18N
149+
.append("\n\n") //NOI18N
150+
.append(I18N.getString("about.app.user.library"))
151+
.append("\n\t") //NOI18N
152+
.append(Paths.get(AppPlatform.getUserLibraryFolder()).normalize()) //NOI18N
153+
.append("\n\n") //NOI18N
154+
.append(I18N.getString("about.app.program.directory"))
155+
.append("\n\t") //NOI18N
156+
.append(Paths.get(".").toAbsolutePath().normalize()) //NOI18N
157+
.append("\n\n"); //NOI18N
158+
}
159+
137160
/**
138161
*
139162
* @treatAsPrivate
140163
*/
141164
public String getBuildJavaVersion() {
142165
return sbBuildJavaVersion;
143166
}
144-
167+
145168
/**
146169
*
147170
* @treatAsPrivate
148171
*/
149172
public String getBuildInfo() {
150173
return sbBuildInfo;
151174
}
152-
175+
153176
private StringBuilder getVersionParagraph() {
154177
StringBuilder sb = new StringBuilder(I18N.getString("about.product.version"));
155178
sb.append("\nJavaFX Scene Builder ").append(sbBuildVersion) //NOI18N
@@ -194,11 +217,50 @@ private StringBuilder getJavaFXParagraph() {
194217

195218
private StringBuilder getJavaParagraph() {
196219
StringBuilder sb = new StringBuilder("Java\n"); //NOI18N
197-
sb.append(System.getProperty("java.runtime.version")).append(", ") //NOI18N
198-
.append(System.getProperty("java.vendor")).append("\n\n"); //NOI18N
220+
sb.append(System.getProperty("java.version")).append(", ") //NOI18N
221+
.append(System.getProperty("java.runtime.name")) // NOI18N
222+
.append("\n\n");
199223
return sb;
200224
}
201225

226+
private StringBuilder getJavaLibraryPathParagraph() {
227+
StringBuilder sb = new StringBuilder(I18N.getString("about.java.library.paths"))
228+
.append("\n"); //NOI18N
229+
String libPaths = System.getProperty("java.library.path"); //NOI18N
230+
List<String> invalidPaths = new ArrayList<>();
231+
String separator = getPathSeparator();
232+
for (String libPath : libPaths.split(separator)) {
233+
try {
234+
Path absolutePath = Paths.get(libPath).normalize().toAbsolutePath();
235+
if (Files.exists(absolutePath)) {
236+
String path = absolutePath.toString();
237+
sb.append("\t").append(path).append("\n");
238+
} else {
239+
invalidPaths.add(libPath);
240+
}
241+
} catch (InvalidPathException error) {
242+
invalidPaths.add(libPath);
243+
}
244+
}
245+
sb.append("\n");
246+
if (!invalidPaths.isEmpty()) {
247+
sb.append(I18N.getString("about.java.library.paths.invalids")); //NOI18N
248+
sb.append("\n");
249+
invalidPaths.forEach(invalidPath -> sb.append("\t").append(invalidPath).append("\n"));
250+
sb.append("\n");
251+
}
252+
return sb;
253+
}
254+
255+
private String getPathSeparator() {
256+
String os = System.getProperty("os.name").toLowerCase();
257+
if (os.indexOf("win") >= 0) {
258+
return ";";
259+
} else {
260+
return ":";
261+
}
262+
}
263+
202264
private StringBuilder getOsParagraph() {
203265
StringBuilder sb = new StringBuilder(I18N.getString("about.operating.system"));
204266
sb.append("\n").append(System.getProperty("os.name")).append(", ") //NOI18N

app/src/main/resources/com/oracle/javafx/scenebuilder/app/i18n/SceneBuilderApp.properties

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (c) 2016, 2019, Gluon and/or its affiliates.
1+
# Copyright (c) 2016, 2021, Gluon and/or its affiliates.
22
# Copyright (c) 2012, 2014, Oracle and/or its affiliates.
33
# All rights reserved. Use is subject to license terms.
44
#
@@ -300,6 +300,13 @@ about.logging.body.second = The default file path is {0}
300300
about.operating.system = Operating System
301301
about.product.version = Product Version
302302

303+
about.app.data.directory = Application Data Folder:
304+
about.app.user.library = User Library Folder:
305+
about.app.program.directory = Application Folder:
306+
307+
about.java.library.paths = Java Library Path(s):
308+
about.java.library.paths.invalids = Missing or invalid Java Library Path(s):
309+
303310
# -----------------------------------------------------------------------------
304311
# Themes
305312
# -----------------------------------------------------------------------------
@@ -517,4 +524,4 @@ check_for_updates.alert.error.message = Can't check for latest version with serv
517524
check_for_updates.alert.error.title = Scene Builder
518525
check_for_updates.alert.up_to_date.message = You already have the latest version of Scene Builder installed.
519526
check_for_updates.alert.up_to_date.title = Scene Builder
520-
check_for_updates.alert.headertext = Update Check
527+
check_for_updates.alert.headertext = Update Check

kit/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<parent>
88
<groupId>com.gluonhq.scenebuilder</groupId>
99
<artifactId>parent</artifactId>
10-
<version>16.0.0-SNAPSHOT</version>
10+
<version>17.0.0</version>
1111
</parent>
1212

1313
<dependencies>

pom.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<groupId>com.gluonhq.scenebuilder</groupId>
55
<artifactId>parent</artifactId>
66
<packaging>pom</packaging>
7-
<version>16.0.0-SNAPSHOT</version>
7+
<version>17.0.0</version>
88
<name>Scene Builder</name>
99
<description>Scene Builder is a visual, drag n drop, layout tool for designing JavaFX application user interfaces</description>
1010
<inceptionYear>2012</inceptionYear>
@@ -16,7 +16,7 @@
1616
</modules>
1717

1818
<properties>
19-
<javafx.version>16</javafx.version>
19+
<javafx.version>17</javafx.version>
2020
<aether.version>1.1.0</aether.version>
2121
<charm.glisten.version>5.0.0-jdk9</charm.glisten.version>
2222
<maven.compiler.release>11</maven.compiler.release>
@@ -100,7 +100,7 @@
100100

101101
<issueManagement>
102102
<system>GitHub</system>
103-
<url>https://github.com/gluonhq/ChatApp/issues</url>
103+
<url>https://github.com/gluonhq/scenebuilder/issues</url>
104104
</issueManagement>
105105

106106
<licenses>

0 commit comments

Comments
 (0)