Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 39 additions & 37 deletions gradle/verification-keyring.keys
Original file line number Diff line number Diff line change
Expand Up @@ -1272,46 +1272,48 @@ LBaslDFjyxMECWr3v7TuEmEmNcD+KwNyACFNuBjEBWeuJZYwCkAkVy8AyitrTMh8
=Evfn
-----END PGP PUBLIC KEY BLOCK-----

id 1D9866E375A1435ACE0BE0ADE3461D2D16725F94
id BF3A87D91B70BE32CAD64A2645D0CAA6D26B0F7D
uid Open Source <opensource@palantir.com>
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=rjU5
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
Q+QSti9Qi4JDuwzJy3IV/5dmHoPgvVs1EXvJ
=XaeA
-----END PGP PUBLIC KEY BLOCK-----

id BDB5FA4FE719D787FB3D3197F6D4A1D411E9D1AE
Expand Down
2 changes: 1 addition & 1 deletion gradle/verification-metadata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@

<!-- CODE FORMATTING - Palantir Java formatter with transitive dependencies -->
<!-- βœ… Signed by Palantir -->
<trusted-key id="1D9866E375A1435ACE0BE0ADE3461D2D16725F94" group="com.palantir.javaformat"/>
<trusted-key id="BF3A87D91B70BE32CAD64A2645D0CAA6D26B0F7D" group="com.palantir.javaformat"/>
<!-- βœ… Signed by Tatu Saloranta - Jackson -->
<trusted-key id="28118C070CB22A0175A2E8D43D12CA2AC19F3181">
<trusting group="com.fasterxml.jackson.core"/>
Expand Down
2 changes: 1 addition & 1 deletion settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
plugins { id("org.gradlex.internal-build-conventions") version "0.8" }
plugins { id("org.gradlex.internal-build-conventions") version "0.9" }

rootProject.name = "java-module-packaging"
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,9 @@
import org.gradlex.javamodule.packaging.model.Target;
import org.gradlex.javamodule.packaging.tasks.Jpackage;
import org.gradlex.javamodule.packaging.tasks.ValidateHostSystemAction;
import org.jspecify.annotations.NullMarked;

@NullMarked
public abstract class JavaModulePackagingExtension {
private static final boolean MIN_GRADLE_9_0 =
GradleVersion.current().compareTo(GradleVersion.version("9.0.0")) >= 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@
import org.gradle.jvm.toolchain.JavaToolchainService;
import org.gradle.util.GradleVersion;
import org.gradlex.javamodule.packaging.internal.HostIdentification;
import org.jspecify.annotations.NullMarked;

@SuppressWarnings("unused")
@NullMarked
public abstract class JavaModulePackagingPlugin implements Plugin<Project> {

@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
import org.gradle.nativeplatform.MachineArchitecture;
import org.gradle.nativeplatform.OperatingSystemFamily;
import org.gradlex.javamodule.packaging.model.Target;
import org.jspecify.annotations.NullMarked;

@NullMarked
public class HostIdentification {

public static void validateHostSystem(String arch, String os) {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
import org.gradle.api.file.ConfigurableFileCollection;
import org.gradle.api.provider.ListProperty;
import org.gradle.api.provider.Property;
import org.jspecify.annotations.NullMarked;

@NullMarked
public abstract class Target {

private final String name;
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@
import org.gradle.jvm.toolchain.JavaInstallationMetadata;
import org.gradle.process.ExecOperations;
import org.gradle.process.ExecSpec;
import org.jspecify.annotations.NullMarked;

@NullMarked
@CacheableTask
public abstract class Jpackage extends DefaultTask {

Expand Down Expand Up @@ -280,7 +282,7 @@ private String createArgsFile(String modulePathAsPath) {
} catch (IOException e) {
throw new RuntimeException(e);
}
return "@" + argsFile.toString();
return "@" + argsFile;
}

private void generateChecksums() throws NoSuchAlgorithmException, IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
import java.util.Map;
import org.gradle.api.Action;
import org.gradle.api.Task;
import org.jspecify.annotations.NullMarked;

@NullMarked
public class ValidateHostSystemAction implements Action<Task> {
@Override
public void execute(Task task) {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ class JavaModulePackagingOptionsTest {
@BeforeEach
void setup() {
var macosArch = System.getProperty("os.arch").contains("aarch") ? "aarch64" : "x86-64";
build.appBuildFile.appendText(
"""
build.appBuildFile.appendText("""
version = "1.0"
javaModulePackaging {
target("macos") {
Expand All @@ -38,8 +37,7 @@ void setup() {
packageTypes.set(listOf("exe"))
}
}
"""
.formatted(macosArch));
""".formatted(macosArch));
build.appModuleInfoFile.writeText("""
module org.example.app {
}
Expand All @@ -48,8 +46,7 @@ void setup() {

@Test
void can_configure_jlink_options() {
build.appBuildFile.appendText(
"""
build.appBuildFile.appendText("""
javaModulePackaging {
jlinkOptions.addAll(
"--ignore-signing-information",
Expand All @@ -70,8 +67,7 @@ void can_configure_jlink_options() {

@Test
void can_configure_java_options() {
build.appBuildFile.appendText(
"""
build.appBuildFile.appendText("""
application {
applicationDefaultJvmArgs = listOf(
"-XX:+UnlockExperimentalVMOptions",
Expand All @@ -84,9 +80,7 @@ void can_configure_java_options() {

build.build(":app:jpackage");

assertThat(build.appContentsFolder().file("app/app.cfg").getAsPath())
.hasContent(
"""
assertThat(build.appContentsFolder().file("app/app.cfg").getAsPath()).hasContent("""
[Application]
app.mainmodule=org.example.app/org.example.app.Main

Expand All @@ -101,8 +95,7 @@ void can_configure_java_options() {

@Test
void can_configure_add_modules() {
build.appBuildFile.appendText(
"""
build.appBuildFile.appendText("""
javaModulePackaging {
addModules.addAll("com.acme.boo")
}
Expand All @@ -116,8 +109,7 @@ void can_configure_add_modules() {

@Test
void can_set_verbose_option() {
build.appBuildFile.appendText(
"""
build.appBuildFile.appendText("""
javaModulePackaging {
verbose.set(true)
}
Expand All @@ -130,8 +122,7 @@ void can_set_verbose_option() {

@Test
void can_set_target_specific_option() {
build.appBuildFile.appendText(
"""
build.appBuildFile.appendText("""
javaModulePackaging {
targetsWithOs("windows") {
singleStepPackaging.set(true)
Expand All @@ -158,8 +149,7 @@ void can_set_target_specific_option() {

@Test
void can_set_target_specific_option_for_app_image() {
build.appBuildFile.appendText(
"""
build.appBuildFile.appendText("""
javaModulePackaging {
targetsWithOs("windows") {
options.addAll("--dummy") // no effect as app-image fails first
Expand All @@ -183,8 +173,7 @@ void can_set_target_specific_option_for_app_image() {

@Test
void can_build_package_in_one_step() {
build.appBuildFile.appendText(
"""
build.appBuildFile.appendText("""
javaModulePackaging {
targetsWithOs("windows") { singleStepPackaging.set(true) }
targetsWithOs("linux") { singleStepPackaging.set(true) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@ class JavaModulePackagingResourcesTest {
@BeforeEach
void setup() {
var macosArch = System.getProperty("os.arch").contains("aarch") ? "aarch64" : "x86-64";
build.appBuildFile.appendText(
"""
build.appBuildFile.appendText("""
version = "1.0"
javaModulePackaging {
target("macos") {
Expand All @@ -39,8 +38,7 @@ void setup() {
architecture.set("x86-64")
}
}
"""
.formatted(macosArch));
""".formatted(macosArch));
build.appModuleInfoFile.writeText("""
module org.example.app {
}
Expand All @@ -49,8 +47,7 @@ void setup() {

@Test
void can_configure_jlink_options() {
build.appBuildFile.appendText(
"""
build.appBuildFile.appendText("""
javaModulePackaging {
jlinkOptions.addAll(
"--ignore-signing-information",
Expand All @@ -70,8 +67,7 @@ void can_configure_jlink_options() {

@Test
void can_configure_add_modules() {
build.appBuildFile.appendText(
"""
build.appBuildFile.appendText("""
javaModulePackaging {
addModules.addAll("com.acme.boo")
}
Expand Down Expand Up @@ -119,8 +115,7 @@ void can_add_resources_for_jpackage() {

@Test
void can_add_resources_for_app_folder() {
build.appBuildFile.appendText(
"""
build.appBuildFile.appendText("""
javaModulePackaging {
// resource is added to the os-specific 'app' folder inside the image
resources.from("res")
Expand All @@ -140,8 +135,7 @@ void can_add_resources_to_image_root() {
// Resource is added to the root of the image.
// This is a target-specific setting as it usually needs to be placed in a place that
// makes sense in the corresponding package structure.
build.appBuildFile.appendText(
"""
build.appBuildFile.appendText("""
javaModulePackaging {
targetsWithOs("windows") { targetResources.from("res") }
targetsWithOs("linux") { targetResources.from("res") }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,7 @@ void can_use_plugin(String label, String os, boolean success) {
var taskToRun = ":app:jpackage" + capitalize(label);
var taskToCheck = ":app:jpackage" + capitalize(label);
var macosArch = System.getProperty("os.arch").contains("aarch") ? "aarch64" : "x86-64";
build.appBuildFile.appendText(
"""
build.appBuildFile.appendText("""
version = "1.0"
javaModulePackaging {
target("macos") {
Expand All @@ -53,10 +52,8 @@ void can_use_plugin(String label, String os, boolean success) {
architecture.set("x86-64")
}
}
"""
.formatted(macosArch));
build.appModuleInfoFile.writeText(
"""
""".formatted(macosArch));
build.appModuleInfoFile.writeText("""
module org.example.app {
}
""");
Expand Down
Loading
Loading