Skip to content

Commit b6aa63d

Browse files
JPackageCommand: enhance usePredefinedAppImage() to enable automatic entitlements validation of additional launchers in two-phase app image packaging/signing scenarios; add missing verifyMutable() calls; SigningAppImageTwoStepsTest: follow-up change
1 parent b10de2c commit b6aa63d

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -392,20 +392,29 @@ public JPackageCommand setInputToEmptyDirectory() {
392392
}
393393

394394
public JPackageCommand setFakeRuntime() {
395-
verifyMutable();
396395
addPrerequisiteAction(cmd -> {
397396
cmd.setArgumentValue("--runtime-image", createInputRuntimeImage(RuntimeImageType.RUNTIME_TYPE_FAKE));
398397
});
399398

400399
return this;
401400
}
402401

402+
public JPackageCommand usePredefinedAppImage(JPackageCommand appImageCmd) {
403+
appImageCmd.verifyIsOfType(PackageType.IMAGE);
404+
verifyIsOfType(PackageType.IMAGE);
405+
appImageCmd.getVerifyActionsWithRole(ActionRole.LAUNCHER_VERIFIER).forEach(verifier -> {
406+
addVerifyAction(verifier, ActionRole.LAUNCHER_VERIFIER);
407+
});
408+
return usePredefinedAppImage(appImageCmd.outputBundle());
409+
}
410+
403411
public JPackageCommand usePredefinedAppImage(Path predefinedAppImagePath) {
404412
return setArgumentValue("--app-image", Objects.requireNonNull(predefinedAppImagePath))
405413
.removeArgumentWithValue("--input");
406414
}
407415

408416
JPackageCommand addPrerequisiteAction(ThrowingConsumer<JPackageCommand, ? extends Exception> action) {
417+
verifyMutable();
409418
prerequisiteActions.add(action);
410419
return this;
411420
}
@@ -421,6 +430,7 @@ enum ActionRole {
421430
}
422431

423432
JPackageCommand addVerifyAction(ThrowingConsumer<JPackageCommand, ? extends Exception> action, ActionRole actionRole) {
433+
verifyMutable();
424434
verifyActions.add(action, actionRole);
425435
return this;
426436
}

test/jdk/tools/jpackage/macosx/SigningAppImageTwoStepsTest.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@
2121
* questions.
2222
*/
2323

24-
import java.nio.file.Files;
25-
import java.nio.file.Path;
2624
import java.util.ArrayList;
2725
import java.util.Collection;
2826
import java.util.List;
@@ -38,7 +36,6 @@
3836
import jdk.jpackage.test.MacHelper.SignKeyOption;
3937
import jdk.jpackage.test.MacHelper.SignKeyOptionWithKeychain;
4038
import jdk.jpackage.test.MacSign;
41-
import jdk.jpackage.test.ApplicationLayout;
4239
import jdk.jpackage.test.MacSignVerify;
4340
import jdk.jpackage.test.PackageType;
4441
import jdk.jpackage.test.TKit;
@@ -153,7 +150,7 @@ private SignKeyOptionWithKeychain createSignKeyOption() {
153150
private SignKeyOptionWithKeychain sign;
154151
}
155152

156-
Path createAppImage() {
153+
JPackageCommand createAppImage() {
157154
var appImageCmd = JPackageCommand.helloAppImage()
158155
.setFakeRuntime()
159156
.setArgumentValue("--dest", TKit.createTempDirectory("appimage"));
@@ -170,17 +167,17 @@ Path createAppImage() {
170167
}, signOption.keychain());
171168
}, appImageCmd::execute);
172169

173-
return appImageCmd.outputBundle();
170+
return appImageCmd;
174171
}
175172

176-
void signAppImage(Path appImage, Optional<Consumer<JPackageCommand>> mutator) {
177-
Objects.requireNonNull(appImage);
173+
void signAppImage(JPackageCommand appImageCmd, Optional<Consumer<JPackageCommand>> mutator) {
174+
Objects.requireNonNull(appImageCmd);
178175
Objects.requireNonNull(mutator);
179176

180177
MacSign.withKeychain(keychain -> {
181178
var cmd = new JPackageCommand()
182179
.setPackageType(PackageType.IMAGE)
183-
.addArguments("--app-image", appImage)
180+
.usePredefinedAppImage(appImageCmd)
184181
.mutate(sign::addTo);
185182

186183
mutator.ifPresent(cmd::mutate);

0 commit comments

Comments
 (0)