Skip to content

Commit

Permalink
Merge branch 'release/4.0.0-beta0001'
Browse files Browse the repository at this point in the history
Release: com.io7m.jwheatsheaf 4.0.0-beta0001
Change: (Backwards incompatible) File choosers no longer require a Stage argument.
Change: Refactored test suite to use xoanon instead of TestFX.
Change: Update com.github.marschall:memoryfilesystem 2.6.0 → 2.6.1.
Change: Update com.io7m.primogenitor:com.io7m.primogenitor.support 7.5.0 → 7.7.0.
Change: Update org.junit.jupiter:junit-jupiter-api 5.9.2 → 5.9.3.
Change: Update org.junit.jupiter:junit-jupiter-engine 5.9.2 → 5.9.3.
Change: Update org.openjfx:javafx-controls 19 → 20.
Change: Update org.openjfx:javafx-fxml 19 → 20.
Change: Update org.openjfx:javafx-graphics 19 → 20.
Change: Update org.openjfx:javafx-swing 19 → 20.
Change: Update org.junit.jupiter:junit-jupiter-api 5.9.1 → 5.9.2.
Change: Update org.junit.jupiter:junit-jupiter-engine 5.9.1 → 5.9.2.
Change: Update nl.jqno.equalsverifier:equalsverifier 3.12.3 → 3.14.1.
Change: Update org.slf4j:slf4j-api 2.0.6 → 2.0.7.
Change: Update ch.qos.logback:logback-classic 1.4.5 → 1.4.6.
Change: Update org.mockito:mockito-core 4.10.0 → 5.3.0.
Change: Update com.github.marschall:memoryfilesystem 2.4.0 → 2.5.0.
Change: (Backwards incompatible) Require JDK 17
Change: Fix a silently failing OK button (Ticket: #34)
  • Loading branch information
io7m committed May 28, 2023
2 parents 9f64a0d + 09b81c7 commit 1499a36
Show file tree
Hide file tree
Showing 116 changed files with 2,634 additions and 1,683 deletions.
Empty file added .github/workflows-are-custom
Empty file.
@@ -1,4 +1,4 @@
name: main-openjdk_current-linux
name: main.linux.temurin.current

on:
push:
Expand All @@ -14,15 +14,15 @@ jobs:
- name: JDK
uses: actions/setup-java@v1
with:
java-version: 16
java-version: 20
- name: Build
run: ./.github/workflows/run-with-xvfb.sh mvn --errors clean verify site
- name: Upload video
uses: actions/upload-artifact@v2
if: ${{ always() }}
with:
name: test-video
path: test-suite.mkv
path: test-suite.webm
- name: Upload test logs
uses: actions/upload-artifact@v2
if: ${{ always() }}
Expand Down
@@ -1,4 +1,4 @@
name: main-openjdk_lts-linux
name: main.linux.temurin.lts

on:
push:
Expand All @@ -14,15 +14,15 @@ jobs:
- name: JDK
uses: actions/setup-java@v1
with:
java-version: 11
java-version: 17
- name: Build
run: ./.github/workflows/run-with-xvfb.sh mvn --errors clean verify site
- name: Upload video
uses: actions/upload-artifact@v2
if: ${{ always() }}
with:
name: test-video
path: test-suite.mkv
path: test-suite.webm
- name: Upload test logs
uses: actions/upload-artifact@v2
if: ${{ always() }}
Expand Down
@@ -1,4 +1,4 @@
name: main-openjdk_current-windows
name: main.windows.temurin.current

on:
push:
Expand All @@ -14,6 +14,6 @@ jobs:
- name: JDK
uses: actions/setup-java@v1
with:
java-version: 16
java-version: 20
- name: Build
run: mvn -DskipTests=true --errors clean verify site
19 changes: 19 additions & 0 deletions .github/workflows/main.windows.temurin.lts.yml
@@ -0,0 +1,19 @@
name: main.windows.temurin.lts

on:
push:
branches: [ develop, feature/*, release/* ]
pull_request:
branches: [ develop ]

jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: JDK
uses: actions/setup-java@v1
with:
java-version: 17
- name: Build
run: mvn -DskipTests=true --errors clean verify site
16 changes: 5 additions & 11 deletions .github/workflows/run-with-xvfb.sh
Expand Up @@ -10,10 +10,11 @@ exec > >(tee build.txt) 2>&1
# fluxbox to provide a bare-minimum window manager with click-to-focus
# ffmpeg to record the session
# feh to set a background
# xterm to display the build log in the video
#

sudo apt-get -y install xvfb fluxbox feh ffmpeg xterm
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y install xvfb fluxbox feh ffmpeg

#---------------------------------------------------------------------
# Start Xvfb on a new display.
Expand All @@ -30,13 +31,6 @@ sleep 1
fluxbox &
sleep 1

#---------------------------------------------------------------------
# Start an xterm that displays the build log.
#

xterm -geometry 200x40 -e tail -F build.txt &
sleep 1

#---------------------------------------------------------------------
# Set a desktop image.
#
Expand All @@ -48,7 +42,7 @@ sleep 1
# Start recording the session.
#

ffmpeg -f x11grab -y -r 15 -video_size 1280x1024 -i :99 -vcodec libx264 test-suite.mkv &
ffmpeg -f x11grab -y -r 60 -video_size 1280x1024 -i :99 test-suite.webm &
FFMPEG_PID="$!"

#---------------------------------------------------------------------
Expand All @@ -63,5 +57,5 @@ FFMPEG_PID="$!"
# stops.
#

sleep 5
sleep 20
kill -INT "${FFMPEG_PID}"
31 changes: 29 additions & 2 deletions README-CHANGES.xml
Expand Up @@ -39,7 +39,7 @@
<c:change date="2020-04-10T00:00:00+00:00" summary="Enable CheckStyle to enforce code style"/>
</c:changes>
</c:release>
<c:release date="2021-05-02T11:31:11+00:00" is-open="true" ticket-system="com.github.io7m.jwheatsheaf" version="3.0.0">
<c:release date="2021-05-18T00:00:00+00:00" is-open="false" ticket-system="com.github.io7m.jwheatsheaf" version="3.0.0">
<c:changes>
<c:change date="2021-04-10T00:00:00+00:00" summary="Allow the escape key to close file choosers">
<c:tickets>
Expand Down Expand Up @@ -111,13 +111,40 @@
<c:ticket id="7"/>
</c:tickets>
</c:change>
<c:change date="2021-05-02T11:31:11+00:00" summary="Add the ability to confirm file selections">
<c:change date="2021-05-02T00:00:00+00:00" summary="Add the ability to confirm file selections">
<c:tickets>
<c:ticket id="17"/>
</c:tickets>
</c:change>
</c:changes>
</c:release>
<c:release date="2023-05-26T10:50:34+00:00" is-open="true" ticket-system="com.github.io7m.jwheatsheaf" version="4.0.0">
<c:changes>
<c:change compatible="false" date="2022-02-13T00:00:00+00:00" summary="Require JDK 17"/>
<c:change date="2023-04-17T00:00:00+00:00" summary="Update org.openjfx:javafx-controls 19 → 20."/>
<c:change date="2023-04-17T00:00:00+00:00" summary="Update org.openjfx:javafx-fxml 19 → 20."/>
<c:change date="2023-04-17T00:00:00+00:00" summary="Update org.openjfx:javafx-graphics 19 → 20."/>
<c:change date="2023-04-17T00:00:00+00:00" summary="Update org.openjfx:javafx-swing 19 → 20."/>
<c:change date="2023-04-17T00:00:00+00:00" summary="Update org.junit.jupiter:junit-jupiter-api 5.9.1 → 5.9.2."/>
<c:change date="2023-04-17T00:00:00+00:00" summary="Update org.junit.jupiter:junit-jupiter-engine 5.9.1 → 5.9.2."/>
<c:change date="2023-04-17T00:00:00+00:00" summary="Update nl.jqno.equalsverifier:equalsverifier 3.12.3 → 3.14.1."/>
<c:change date="2023-04-17T00:00:00+00:00" summary="Update org.slf4j:slf4j-api 2.0.6 → 2.0.7."/>
<c:change date="2023-04-17T00:00:00+00:00" summary="Update ch.qos.logback:logback-classic 1.4.5 → 1.4.6."/>
<c:change date="2023-04-17T00:00:00+00:00" summary="Update org.mockito:mockito-core 4.10.0 → 5.3.0."/>
<c:change date="2023-04-17T00:00:00+00:00" summary="Update com.github.marschall:memoryfilesystem 2.4.0 → 2.5.0."/>
<c:change date="2022-02-13T00:00:00+00:00" summary="Fix a silently failing OK button">
<c:tickets>
<c:ticket id="34"/>
</c:tickets>
</c:change>
<c:change date="2023-05-20T00:00:00+00:00" summary="Update com.github.marschall:memoryfilesystem 2.6.0 → 2.6.1."/>
<c:change date="2023-05-20T00:00:00+00:00" summary="Update com.io7m.primogenitor:com.io7m.primogenitor.support 7.5.0 → 7.7.0."/>
<c:change date="2023-05-20T00:00:00+00:00" summary="Update org.junit.jupiter:junit-jupiter-api 5.9.2 → 5.9.3."/>
<c:change date="2023-05-20T00:00:00+00:00" summary="Update org.junit.jupiter:junit-jupiter-engine 5.9.2 → 5.9.3."/>
<c:change date="2023-05-25T00:00:00+00:00" summary="Refactored test suite to use xoanon instead of TestFX."/>
<c:change compatible="false" date="2023-05-26T10:50:34+00:00" summary="File choosers no longer require a Stage argument."/>
</c:changes>
</c:release>
</c:releases>
<c:ticket-systems>
<c:ticket-system default="true" id="com.github.io7m.jwheatsheaf" url="https://www.github.com/io7m/jwheatsheaf/issues/"/>
Expand Down
2 changes: 1 addition & 1 deletion README-LICENSE.txt
@@ -1,4 +1,4 @@
Copyright © 2020 Mark Raynsford <code@io7m.com> http://io7m.com
Copyright © 2020 Mark Raynsford <code@io7m.com> https://www.io7m.com

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
Expand Down
24 changes: 21 additions & 3 deletions README.in
@@ -1,4 +1,8 @@
An alternative to JavaFX's FileChooser that aims to be feature-compatible,


# jwheatsheaf

An alternative to JavaFX's FileChooser that aims to be feature-compatible,
if not fully API-compatible.

### Features
Expand All @@ -8,7 +12,7 @@ if not fully API-compatible.
* Directory creation.
* Configurable, extensible file/directory filtering.
* Simple case-insensitive directory searching.
* Written in pure Java 11.
* Written in pure Java 17.
* [OSGi](https://www.osgi.org/) ready
* [JPMS](https://en.wikipedia.org/wiki/Java_Platform_Module_System) ready
* ISC license
Expand All @@ -26,6 +30,20 @@ slightly differently on each platform. The purpose of the `jwheatsheaf` package
configurable, styleable, consistent, non-native file chooser implementation analogous to the `JFileChooser`
class.

### Building

```
$ mvn clean verify
```

Note: The above will run the test suite, and this _will_ take over your
keyboard and mouse for the duration of the test suite run. If you don't
want to run the tests, use the `skipTests` propery:

```
$ mvn -DskipTests=true clean verify
```

### Usage

The simplest possible code that can open a file chooser and select at most one file:
Expand All @@ -38,7 +56,7 @@ final var configuration =
.build();

final var choosers = JWFileChoosers.create();
final var chooser = choosers.create(mainWindow, configuration);
final var chooser = choosers.create(configuration);
final List<Path> selected = chooser.showAndWait();
```

Expand Down
36 changes: 27 additions & 9 deletions README.md
Expand Up @@ -2,18 +2,22 @@ jwheatsheaf
===

[![Maven Central](https://img.shields.io/maven-central/v/com.io7m.jwheatsheaf/com.io7m.jwheatsheaf.svg?style=flat-square)](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.io7m.jwheatsheaf%22)
[![Maven Central (snapshot)](https://img.shields.io/nexus/s/https/oss.sonatype.org/com.io7m.jwheatsheaf/com.io7m.jwheatsheaf.svg?style=flat-square)](https://oss.sonatype.org/content/repositories/snapshots/com/io7m/jwheatsheaf/)
[![Maven Central (snapshot)](https://img.shields.io/nexus/s/https/s01.oss.sonatype.org/com.io7m.jwheatsheaf/com.io7m.jwheatsheaf.svg?style=flat-square)](https://s01.oss.sonatype.org/content/repositories/snapshots/com/io7m/jwheatsheaf/)
[![Codecov](https://img.shields.io/codecov/c/github/io7m/jwheatsheaf.svg?style=flat-square)](https://codecov.io/gh/io7m/jwheatsheaf)

![jwheatsheaf](./src/site/resources/jwheatsheaf.jpg?raw=true)

| JVM | Platform | Status |
|-----------------|----------|--------|
| OpenJDK LTS | Linux | [![Build (OpenJDK LTS, Linux)](https://img.shields.io/github/workflow/status/io7m/jwheatsheaf/main-openjdk_lts-linux)](https://github.com/io7m/jwheatsheaf/actions?query=workflow%3Amain-openjdk_lts-linux) |
| OpenJDK Current | Linux | [![Build (OpenJDK Current, Linux)](https://img.shields.io/github/workflow/status/io7m/jwheatsheaf/main-openjdk_current-linux)](https://github.com/io7m/jwheatsheaf/actions?query=workflow%3Amain-openjdk_current-linux)
| OpenJDK Current | Windows | [![Build (OpenJDK Current, Windows)](https://img.shields.io/github/workflow/status/io7m/jwheatsheaf/main-openjdk_current-windows)](https://github.com/io7m/jwheatsheaf/actions?query=workflow%3Amain-openjdk_current-windows)
| JVM | Platform | Status |
|-----|----------|--------|
| OpenJDK (Temurin) Current | Linux | [![Build (OpenJDK (Temurin) Current, Linux)](https://img.shields.io/github/actions/workflow/status/io7m/jwheatsheaf/main.linux.temurin.current.yml)](https://github.com/io7m/jwheatsheaf/actions?query=workflow%3Amain.linux.temurin.current)|
| OpenJDK (Temurin) LTS | Linux | [![Build (OpenJDK (Temurin) LTS, Linux)](https://img.shields.io/github/actions/workflow/status/io7m/jwheatsheaf/main.linux.temurin.lts.yml)](https://github.com/io7m/jwheatsheaf/actions?query=workflow%3Amain.linux.temurin.lts)|
| OpenJDK (Temurin) Current | Windows | [![Build (OpenJDK (Temurin) Current, Windows)](https://img.shields.io/github/actions/workflow/status/io7m/jwheatsheaf/main.windows.temurin.current.yml)](https://github.com/io7m/jwheatsheaf/actions?query=workflow%3Amain.windows.temurin.current)|
| OpenJDK (Temurin) LTS | Windows | [![Build (OpenJDK (Temurin) LTS, Windows)](https://img.shields.io/github/actions/workflow/status/io7m/jwheatsheaf/main.windows.temurin.lts.yml)](https://github.com/io7m/jwheatsheaf/actions?query=workflow%3Amain.windows.temurin.lts)|

An alternative to JavaFX's FileChooser that aims to be feature-compatible,

# jwheatsheaf

An alternative to JavaFX's FileChooser that aims to be feature-compatible,
if not fully API-compatible.

### Features
Expand All @@ -23,7 +27,7 @@ if not fully API-compatible.
* Directory creation.
* Configurable, extensible file/directory filtering.
* Simple case-insensitive directory searching.
* Written in pure Java 11.
* Written in pure Java 17.
* [OSGi](https://www.osgi.org/) ready
* [JPMS](https://en.wikipedia.org/wiki/Java_Platform_Module_System) ready
* ISC license
Expand All @@ -41,6 +45,20 @@ slightly differently on each platform. The purpose of the `jwheatsheaf` package
configurable, styleable, consistent, non-native file chooser implementation analogous to the `JFileChooser`
class.

### Building

```
$ mvn clean verify
```

Note: The above will run the test suite, and this _will_ take over your
keyboard and mouse for the duration of the test suite run. If you don't
want to run the tests, use the `skipTests` propery:

```
$ mvn -DskipTests=true clean verify
```

### Usage

The simplest possible code that can open a file chooser and select at most one file:
Expand All @@ -53,7 +71,7 @@ final var configuration =
.build();
final var choosers = JWFileChoosers.create();
final var chooser = choosers.create(mainWindow, configuration);
final var chooser = choosers.create(configuration);
final List<Path> selected = chooser.showAndWait();
```

Expand Down
33 changes: 31 additions & 2 deletions com.io7m.jwheatsheaf.api/pom.xml
Expand Up @@ -9,14 +9,14 @@
<parent>
<artifactId>com.io7m.jwheatsheaf</artifactId>
<groupId>com.io7m.jwheatsheaf</groupId>
<version>3.0.0</version>
<version>4.0.0-beta0001</version>
</parent>

<artifactId>com.io7m.jwheatsheaf.api</artifactId>

<name>com.io7m.jwheatsheaf.api</name>
<description>JavaFX File Chooser (API)</description>
<url>http://github.com/io7m/jwheatsheaf</url>
<url>https://www.io7m.com/software/jwheatsheaf</url>

<dependencies>
<dependency>
Expand Down Expand Up @@ -67,6 +67,35 @@
</ignoredUnusedDeclaredDependencies>
</configuration>
</plugin>

<plugin>
<groupId>com.io7m.stmp</groupId>
<artifactId>string-template-maven-plugin</artifactId>
<executions>
<execution>
<id>generate-version</id>
<phase>generate-sources</phase>
<goals>
<goal>render</goal>
</goals>
<configuration>
<templates>
<template>
<directory>src/main/string-template</directory>
<name>JWVersion</name>
<target>
${project.build.directory}/generated-sources/string-template/com/io7m/jwheatsheaf/api/JWVersion.java
</target>
<properties>
<appVersion>${project.version}</appVersion>
<appBuild>${buildNumber}</appBuild>
</properties>
</template>
</templates>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

Expand Down
@@ -1,5 +1,5 @@
/*
* Copyright © 2020 Mark Raynsford <code@io7m.com> http://io7m.com
* Copyright © 2020 Mark Raynsford <code@io7m.com> https://www.io7m.com
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
Expand Down
@@ -1,5 +1,5 @@
/*
* Copyright © 2020 Mark Raynsford <code@io7m.com> http://io7m.com
* Copyright © 2020 Mark Raynsford <code@io7m.com> https://www.io7m.com
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
Expand Down

0 comments on commit 1499a36

Please sign in to comment.