Skip to content

Commit 57f6867

Browse files
committed
Improved PWA support.
1 parent b994f7e commit 57f6867

30 files changed

+75
-79
lines changed

build.gradle

+7-6
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,20 @@ buildscript {
1212

1313
plugins {
1414
id "io.freefair.lombok" version "8.4"
15-
id "com.github.ben-manes.versions" version "0.49.0"
15+
id "com.github.ben-manes.versions" version "0.50.0"
1616
}
1717

1818
apply plugin: "java-gradle-plugin"
1919
apply plugin: "com.gradle.plugin-publish"
2020
apply plugin: "jacoco"
2121

2222
group = "nl.colorize"
23-
version = "2023.10.1"
23+
version = "2024.1"
2424
compileJava.options.encoding = "UTF-8"
2525

2626
java {
27-
sourceCompatibility = "17"
28-
targetCompatibility = "17"
27+
sourceCompatibility = "21"
28+
targetCompatibility = "21"
2929
sourceSets.main.java.srcDirs = ["source"]
3030
sourceSets.main.resources.srcDirs = ["resources"]
3131
sourceSets.test.java.srcDirs = ["test"]
@@ -39,10 +39,11 @@ dependencies {
3939
implementation gradleApi()
4040
implementation localGroovy()
4141
implementation files("lib/appbundler-1.0ea.jar")
42-
implementation "org.jsoup:jsoup:1.16.2"
42+
implementation "org.jsoup:jsoup:1.17.1"
4343
implementation "org.commonmark:commonmark:0.21.0"
4444
implementation "org.nanohttpd:nanohttpd-webserver:2.3.1"
45-
testImplementation "org.junit.jupiter:junit-jupiter:5.10.0"
45+
testImplementation "org.junit.jupiter:junit-jupiter:5.10.1"
46+
testRuntimeOnly "org.junit.platform:junit-platform-launcher"
4647
}
4748

4849
jar {

example/build.gradle

+9-6
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,15 @@ apply plugin: "nl.colorize.gradle.application"
1616

1717
group = "nl.colorize"
1818
version = "0.1"
19-
sourceCompatibility = "17"
20-
targetCompatibility = "17"
2119
compileJava.options.encoding = "UTF-8"
22-
sourceSets.main.java.srcDirs = ["source"]
23-
sourceSets.main.resources.srcDirs = ["../resources"]
24-
sourceSets.test.java.srcDirs = ["source"]
20+
21+
java {
22+
sourceCompatibility = "21"
23+
targetCompatibility = "21"
24+
sourceSets.main.java.srcDirs = ["source"]
25+
sourceSets.main.resources.srcDirs = ["../resources"]
26+
sourceSets.test.java.srcDirs = ["source"]
27+
}
2528

2629
jar {
2730
archiveFileName = "example.jar"
@@ -37,7 +40,7 @@ macApplicationBundle {
3740
identifier = "com.example"
3841
bundleVersion = "0.1"
3942
description = "A simple example application"
40-
copyright = "Copyright 2010-2023 Colorize"
43+
copyright = "Copyright 2010-2024 Colorize"
4144
icon = "../resources/icon.icns"
4245
applicationCategory = "public.app-category.developer-tools"
4346
mainClassName = "com.example.ExampleApp"

example/source/ExampleApp.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

readme.md

+4-6
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ multiple application types for different source technologies and target platform
1919
This allows you to distribute the same application to multiple platforms, without having to
2020
maintain platform-specific code.
2121

22-
![Example of building native apps for multiple platforms](example/resources/example-gallery.png)
23-
2422
System requirements
2523
-------------------
2624

@@ -44,7 +42,7 @@ The plugin is available from the [Gradle plugin registry](https://plugins.gradle
4442
use the plugin in your Gradle project by adding the following to `build.gradle`:
4543

4644
plugins {
47-
id "nl.colorize.gradle.application" version "2023.10.1"
45+
id "nl.colorize.gradle.application" version "2024.1"
4846
}
4947

5048
Building native Mac application bundles
@@ -69,7 +67,7 @@ The following shows an example on how to define this configuration in Gradle:
6967
name = "Example"
7068
identifier = "com.example"
7169
description = "A description for your application"
72-
copyright = "Copyright 2023"
70+
copyright = "Copyright 2024"
7371
bundleVersion = "1.0"
7472
icon = "resources/icon.icns"
7573
applicationCategory = "public.app-category.developer-tools"
@@ -308,7 +306,7 @@ Instructions for building the plugin itself
308306

309307
Building the plugin itself can only be done on Mac OS. It also requires the following:
310308

311-
- [Java JDK](http://java.oracle.com) 17+
309+
- [Java JDK](http://java.oracle.com) 21+
312310
- [Gradle](http://gradle.org)
313311
- [Ant](https://ant.apache.org)
314312

@@ -350,7 +348,7 @@ the plugin itself. Refer to the documentation for each application type for deta
350348
License
351349
-------
352350

353-
Copyright 2010-2023 Colorize
351+
Copyright 2010-2024 Colorize
354352

355353
> Licensed under the Apache License, Version 2.0 (the "License");
356354
> you may not use this file except in compliance with the License.

resources/service-worker.js

+10-14
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,17 @@ const RESOURCE_FILES = [
1010
];
1111

1212
self.addEventListener("install", event => {
13-
event.waitUntil(async () => {
14-
const cache = await caches.open(CACHE_NAME);
15-
return cache.addAll(RESOURCE_FILES);
16-
});
13+
event.waitUntil(
14+
caches.open(CACHE_NAME).then(cache => {
15+
return cache.addAll(RESOURCE_FILES);
16+
})
17+
);
1718
});
1819

1920
self.addEventListener("fetch", event => {
20-
event.respondWith(async () => {
21-
const cache = await caches.open(CACHE_NAME);
22-
const cachedResponse = await cache.match(event.request);
23-
24-
if (cachedResponse === undefined) {
25-
return fetch(event.request);
26-
} else {
27-
return cachedResponse;
28-
}
29-
});
21+
event.respondWith(
22+
fetch(event.request).catch(() => {
23+
return caches.match(event.request);
24+
})
25+
);
3026
});

source/nl/colorize/gradle/application/AppHelper.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

source/nl/colorize/gradle/application/ApplicationPlugin.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

source/nl/colorize/gradle/application/Validatable.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

source/nl/colorize/gradle/application/macapplicationbundle/CreateApplicationBundleTask.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

source/nl/colorize/gradle/application/macapplicationbundle/MacApplicationBundleExt.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

@@ -43,6 +43,8 @@ public class MacApplicationBundleExt implements Validatable {
4343
private String outputDir;
4444

4545
public static final List<String> SUPPORTED_EMBEDDED_JDKS = List.of(
46+
"temurin-21.jdk",
47+
"temurin-m1-21.jdk",
4648
"temurin-17.jdk",
4749
"temurin-m1-17.jdk",
4850
"adoptopenjdk-11.jdk"

source/nl/colorize/gradle/application/macapplicationbundle/SignApplicationBundleTask.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

source/nl/colorize/gradle/application/pwa/GeneratePwaTask.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

@@ -81,7 +81,7 @@ private String prepareServiceWorker(PwaExt config) throws IOException {
8181
.map(file -> base.relativize(file).toString())
8282
.filter(file -> !file.startsWith("userHome"))
8383
.sorted()
84-
.map(file -> "\"" + file + "\",\n")
84+
.map(file -> "\"/" + file + "\",\n")
8585
.collect(Collectors.joining(""));
8686

8787
return AppHelper.loadResourceFile("service-worker.js", Map.of(

source/nl/colorize/gradle/application/pwa/PwaExt.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

source/nl/colorize/gradle/application/staticsite/GenerateStaticSiteTask.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

source/nl/colorize/gradle/application/staticsite/ServeStaticSiteTask.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

source/nl/colorize/gradle/application/staticsite/StaticSiteExt.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

source/nl/colorize/gradle/application/windowsexe/PackageWindowsStandaloneTask.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

source/nl/colorize/gradle/application/windowsexe/WindowsStandaloneExt.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

source/nl/colorize/gradle/application/windowsmsi/PackageMSITask.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

source/nl/colorize/gradle/application/windowsmsi/WindowsInstallerExt.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

source/nl/colorize/gradle/application/xcode/XcodeGenExt.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

source/nl/colorize/gradle/application/xcode/XcodeGenTask.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

test/nl/colorize/gradle/application/AppHelperTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

test/nl/colorize/gradle/application/macapplicationbundle/CreateApplicationBundleTaskTest.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

@@ -31,7 +31,7 @@ void createApplicationBundleJLink(@TempDir File tempDir) {
3131
config.setName("Example");
3232
config.setIdentifier("com.example");
3333
config.setDescription("A description for your application");
34-
config.setCopyright("Copyright 2023");
34+
config.setCopyright("Copyright 2024");
3535
config.setMainClassName("HelloWorld.Main");
3636
config.setContentDir("resources");
3737
config.setBundleVersion("1.0");
@@ -47,7 +47,7 @@ void createApplicationBundleJLink(@TempDir File tempDir) {
4747
assertTrue(new File(tempDir + "/build/mac/Example.app/Contents/MacOS").exists());
4848
assertTrue(new File(tempDir + "/build/mac/Example.app/Contents/MacOS/JavaAppLauncher").exists());
4949
assertTrue(new File(tempDir + "/build/mac/Example.app/Contents/Plugins").exists());
50-
assertTrue(new File(tempDir + "/build/mac/Example.app/Contents/Plugins/temurin-17.jdk").exists());
50+
assertTrue(new File(tempDir + "/build/mac/Example.app/Contents/Plugins/temurin-21.jdk").exists());
5151
assertTrue(new File(tempDir + "/build/mac/Example.app/Contents/Resources").exists());
5252
assertTrue(new File(tempDir + "/build/mac/Example.app/Contents/Resources/icon.icns").exists());
5353
assertTrue(new File(tempDir + "/build/mac/Example.app/Contents/Info.plist").exists());

test/nl/colorize/gradle/application/macapplicationbundle/SignApplicationBundleTaskTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

test/nl/colorize/gradle/application/pwa/GeneratePwaTaskTest.java

+13-17
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//-----------------------------------------------------------------------------
22
// Gradle Application Plugin
3-
// Copyright 2010-2023 Colorize
3+
// Copyright 2010-2024 Colorize
44
// Apache license (http://www.apache.org/licenses/LICENSE-2.0)
55
//-----------------------------------------------------------------------------
66

@@ -95,29 +95,25 @@ void generateServiceWorker(@TempDir File tempDir) throws IOException {
9595
9696
const RESOURCE_FILES = [
9797
"/",
98-
"index.html",
99-
"manifest.json",
98+
"/index.html",
99+
"/manifest.json",
100100
101101
];
102102
103103
self.addEventListener("install", event => {
104-
event.waitUntil(async () => {
105-
const cache = await caches.open(CACHE_NAME);
106-
return cache.addAll(RESOURCE_FILES);
107-
});
104+
event.waitUntil(
105+
caches.open(CACHE_NAME).then(cache => {
106+
return cache.addAll(RESOURCE_FILES);
107+
})
108+
);
108109
});
109110
110111
self.addEventListener("fetch", event => {
111-
event.respondWith(async () => {
112-
const cache = await caches.open(CACHE_NAME);
113-
const cachedResponse = await cache.match(event.request);
114-
115-
if (cachedResponse === undefined) {
116-
return fetch(event.request);
117-
} else {
118-
return cachedResponse;
119-
}
120-
});
112+
event.respondWith(
113+
fetch(event.request).catch(() => {
114+
return caches.match(event.request);
115+
})
116+
);
121117
});
122118
""";
123119

0 commit comments

Comments
 (0)