8372292: Remove redundant "throws ConfigException"

Reviewed-by: almatvee
This commit is contained in:
Alexey Semenyuk 2025-11-21 14:58:46 +00:00
parent f912772045
commit e439909b7d
23 changed files with 88 additions and 162 deletions

View File

@ -26,7 +26,6 @@ package jdk.jpackage.internal;
import java.util.Objects;
import java.util.Optional;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.LinuxDebPackage;
import jdk.jpackage.internal.model.LinuxDebPackageMixin;
@ -36,7 +35,7 @@ final class LinuxDebPackageBuilder {
this.pkgBuilder = Objects.requireNonNull(pkgBuilder);
}
LinuxDebPackage create() throws ConfigException {
LinuxDebPackage create() {
if (pkgBuilder.category().isEmpty()) {
pkgBuilder.category(DEFAULTS.category());
}

View File

@ -32,12 +32,11 @@ import java.util.Optional;
import java.util.regex.Pattern;
import jdk.jpackage.internal.model.AppImageLayout;
import jdk.jpackage.internal.model.ApplicationLayout;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.LinuxApplication;
import jdk.jpackage.internal.model.LinuxPackage;
import jdk.jpackage.internal.model.RuntimeLayout;
import jdk.jpackage.internal.model.LinuxPackageMixin;
import jdk.jpackage.internal.model.Package;
import jdk.jpackage.internal.model.RuntimeLayout;
import jdk.jpackage.internal.model.StandardPackageType;
final class LinuxPackageBuilder {
@ -46,20 +45,17 @@ final class LinuxPackageBuilder {
this.pkgBuilder = Objects.requireNonNull(pkgBuilder);
}
LinuxPackage create() throws ConfigException {
if (literalName != null) {
pkgBuilder.name(literalName);
} else {
LinuxPackage create() {
pkgBuilder.name(Optional.ofNullable(literalName).orElseGet(() -> {
// Lower case and turn spaces/underscores into dashes
pkgBuilder.name(pkgBuilder.create().packageName().toLowerCase().replaceAll("[ _]", "-"));
}
return pkgBuilder.create().packageName().toLowerCase().replaceAll("[ _]", "-");
}));
final var tmpPkg = pkgBuilder.create();
final var stdPkgType = tmpPkg.asStandardPackageType();
if (stdPkgType.isPresent()) {
validatePackageName(tmpPkg.packageName(), stdPkgType.orElseThrow());
}
tmpPkg.asStandardPackageType().ifPresent(stdPkgType -> {
validatePackageName(tmpPkg.packageName(), stdPkgType);
});
final AppImageLayout relativeInstalledLayout;
if (create(tmpPkg).isInstallDirInUsrTree()) {
@ -81,7 +77,7 @@ final class LinuxPackageBuilder {
.create());
}
private LinuxPackage create(Package pkg) throws ConfigException {
private LinuxPackage create(Package pkg) {
return LinuxPackage.create(pkg, new LinuxPackageMixin.Stub(
Optional.ofNullable(menuGroupName).orElseGet(DEFAULTS::menuGroupName),
category(),
@ -137,8 +133,7 @@ final class LinuxPackageBuilder {
lib.resolve("lib/libapplauncher.so"));
}
private static void validatePackageName(String packageName,
StandardPackageType pkgType) throws ConfigException {
private static void validatePackageName(String packageName, StandardPackageType pkgType) {
switch (pkgType) {
case LINUX_DEB -> {
//

View File

@ -26,7 +26,6 @@ package jdk.jpackage.internal;
import java.util.Objects;
import java.util.Optional;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.LinuxRpmPackage;
import jdk.jpackage.internal.model.LinuxRpmPackageMixin;
@ -36,7 +35,7 @@ final class LinuxRpmPackageBuilder {
this.pkgBuilder = Objects.requireNonNull(pkgBuilder);
}
LinuxRpmPackage create() throws ConfigException {
LinuxRpmPackage create() {
if (pkgBuilder.release().isEmpty()) {
pkgBuilder.release("1");
}

View File

@ -28,7 +28,6 @@ import java.nio.file.Path;
import java.util.Objects;
import java.util.Optional;
import jdk.jpackage.internal.model.AppImageSigningConfig;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.LauncherStartupInfo;
final class AppImageSigningConfigBuilder {
@ -62,21 +61,20 @@ final class AppImageSigningConfigBuilder {
return this;
}
Optional<AppImageSigningConfig> create() throws ConfigException {
final var identityCfg = signingIdentityBuilder.create();
if (identityCfg.isEmpty()) {
return Optional.empty();
} else {
Optional<AppImageSigningConfig> create() {
return signingIdentityBuilder.create().map(cfg -> {
final var validatedEntitlements = validatedEntitlements();
return identityCfg.map(cfg -> {
return new AppImageSigningConfig.Stub(cfg.identity(), signingIdentifierPrefix,
validatedEntitlements, cfg.keychain().map(Keychain::name),
Optional.ofNullable(entitlementsResourceName).orElse("entitlements.plist"));
});
}
return new AppImageSigningConfig.Stub(
Objects.requireNonNull(cfg.identity()),
Objects.requireNonNull(signingIdentifierPrefix),
validatedEntitlements,
cfg.keychain().map(Keychain::name),
Optional.ofNullable(entitlementsResourceName).orElse("entitlements.plist")
);
});
}
private Optional<Path> validatedEntitlements() throws ConfigException {
private Optional<Path> validatedEntitlements() {
return Optional.ofNullable(entitlements);
}

View File

@ -28,17 +28,15 @@ import java.io.IOException;
import java.io.UncheckedIOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import java.util.Set;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import jdk.jpackage.internal.model.AppImageLayout;
import jdk.jpackage.internal.model.AppImageSigningConfig;
import jdk.jpackage.internal.model.Application;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.Launcher;
import jdk.jpackage.internal.model.MacApplication;
import jdk.jpackage.internal.model.MacApplicationMixin;
import jdk.jpackage.internal.model.AppImageLayout;
import jdk.jpackage.internal.model.AppImageSigningConfig;
final class MacApplicationBuilder {
@ -92,7 +90,7 @@ final class MacApplicationBuilder {
return this;
}
MacApplication create() throws ConfigException {
MacApplication create() {
if (externalInfoPlistFile != null) {
return createCopyForExternalInfoPlistFile().create();
}
@ -136,7 +134,7 @@ final class MacApplicationBuilder {
return true;
}
private static void validateAppVersion(Application app) throws ConfigException {
private static void validateAppVersion(Application app) {
try {
CFBundleVersion.of(app.version());
} catch (IllegalArgumentException ex) {
@ -156,7 +154,7 @@ final class MacApplicationBuilder {
}
}
private MacApplicationBuilder createCopyForExternalInfoPlistFile() throws ConfigException {
private MacApplicationBuilder createCopyForExternalInfoPlistFile() {
try {
final var plistFile = AppImageInfoPListFile.loadFromInfoPList(externalInfoPlistFile);
@ -187,15 +185,11 @@ final class MacApplicationBuilder {
}
}
private Optional<AppImageSigningConfig> createSigningConfig() throws ConfigException {
if (signingBuilder != null) {
return signingBuilder.create();
} else {
return Optional.empty();
}
private Optional<AppImageSigningConfig> createSigningConfig() {
return Optional.ofNullable(signingBuilder).flatMap(AppImageSigningConfigBuilder::create);
}
private String validatedBundleName() throws ConfigException {
private String validatedBundleName() {
final var value = Optional.ofNullable(bundleName).orElseGet(() -> {
final var appName = app.name();
// Commented out for backward compatibility
@ -214,7 +208,7 @@ final class MacApplicationBuilder {
return value;
}
private String validatedBundleIdentifier() throws ConfigException {
private String validatedBundleIdentifier() {
final var value = Optional.ofNullable(bundleIdentifier).orElseGet(() -> {
return app.mainLauncher()
.flatMap(Launcher::startupInfo)
@ -238,16 +232,12 @@ final class MacApplicationBuilder {
return value;
}
private String validatedCategory() throws ConfigException {
private String validatedCategory() {
return "public.app-category." + Optional.ofNullable(category).orElseGet(DEFAULTS::category);
}
private Optional<Path> validatedIcon() throws ConfigException {
if (icon != null) {
LauncherBuilder.validateIcon(icon);
}
return Optional.ofNullable(icon);
private Optional<Path> validatedIcon() {
return Optional.ofNullable(icon).map(LauncherBuilder::validateIcon);
}
private record Defaults(String category) {

View File

@ -28,7 +28,6 @@ import java.nio.file.Path;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.MacDmgPackage;
import jdk.jpackage.internal.model.MacDmgPackageMixin;
@ -52,7 +51,7 @@ final class MacDmgPackageBuilder {
return Optional.ofNullable(dmgContent).orElseGet(List::of);
}
MacDmgPackage create() throws ConfigException {
MacDmgPackage create() {
final var pkg = pkgBuilder.create();
return MacDmgPackage.create(pkg, new MacDmgPackageMixin.Stub(

View File

@ -27,15 +27,13 @@ package jdk.jpackage.internal;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.FileAssociation;
import jdk.jpackage.internal.model.MacFileAssociation;
import jdk.jpackage.internal.model.MacFileAssociationMixin;
final class MacFileAssociationBuilder {
MacFileAssociation create(FileAssociation fa) throws ConfigException {
MacFileAssociation create(FileAssociation fa) {
Objects.requireNonNull(fa);
final var mixin = new MacFileAssociationMixin.Stub(

View File

@ -29,7 +29,6 @@ import static jdk.jpackage.internal.MacPackagingPipeline.LayoutUtils.packagerLay
import java.nio.file.Files;
import java.util.Objects;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.MacApplication;
import jdk.jpackage.internal.model.MacPackage;
import jdk.jpackage.internal.model.MacPackageMixin;
@ -49,7 +48,7 @@ final class MacPackageBuilder {
return pkgBuilder;
}
MacPackage create() throws ConfigException {
MacPackage create() {
final var app = (MacApplication)pkgBuilder.app();

View File

@ -224,10 +224,12 @@ final class MacPackagingPipeline {
if (!app.sign()) {
throw new IllegalArgumentException();
}
return toSupplier(() -> {
return new PackageBuilder(app, SignAppImagePackageType.VALUE).predefinedAppImage(
Objects.requireNonNull(env.appImageDir())).installDir(Path.of("/foo")).create();
}).get();
return new PackageBuilder(
app,
SignAppImagePackageType.VALUE
).predefinedAppImage(
Objects.requireNonNull(env.appImageDir())
).installDir(Path.of("/foo")).create();
}
static final class LayoutUtils {

View File

@ -26,7 +26,6 @@ package jdk.jpackage.internal;
import java.util.Objects;
import java.util.Optional;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.MacPkgPackage;
import jdk.jpackage.internal.model.MacPkgPackageMixin;
import jdk.jpackage.internal.model.PkgSigningConfig;
@ -42,20 +41,16 @@ final class MacPkgPackageBuilder {
return this;
}
MacPkgPackage create() throws ConfigException {
MacPkgPackage create() {
var pkg = MacPkgPackage.create(pkgBuilder.create(), new MacPkgPackageMixin.Stub(createSigningConfig()));
validatePredefinedAppImage(pkg);
return pkg;
}
private Optional<PkgSigningConfig> createSigningConfig() throws ConfigException {
if (signingBuilder != null) {
return signingBuilder.create().map(cfg -> {
return new PkgSigningConfig.Stub(cfg.identity(), cfg.keychain().map(Keychain::name));
});
} else {
return Optional.empty();
}
private Optional<PkgSigningConfig> createSigningConfig() {
return Optional.ofNullable(signingBuilder).flatMap(SigningIdentityBuilder::create).map(cfg -> {
return new PkgSigningConfig.Stub(cfg.identity(), cfg.keychain().map(Keychain::name));
});
}
private static void validatePredefinedAppImage(MacPkgPackage pkg) {

View File

@ -30,12 +30,11 @@ import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import java.nio.file.Path;
import java.util.function.Predicate;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.RuntimeLayout;
final class MacRuntimeValidator {
static void validateRuntimeHasJliLib(RuntimeLayout runtimeLayout) throws ConfigException {
static void validateRuntimeHasJliLib(RuntimeLayout runtimeLayout) {
final var jliName = Path.of("libjli.dylib");
try (var walk = Files.walk(runtimeLayout.runtimeDirectory().resolve("lib"))) {
if (walk.map(Path::getFileName).anyMatch(Predicate.isEqual(jliName))) {
@ -51,7 +50,7 @@ final class MacRuntimeValidator {
runtimeLayout.unresolve().runtimeDirectory().resolve("lib/**").resolve(jliName)).create();
}
static void validateRuntimeHasNoBinDir(RuntimeLayout runtimeLayout) throws ConfigException {
static void validateRuntimeHasNoBinDir(RuntimeLayout runtimeLayout) {
if (Files.isDirectory(runtimeLayout.runtimeDirectory().resolve("bin"))) {
throw I18N.buildConfigException()
.message("error.invalid-runtime-image-bin-dir", runtimeLayout.rootDirectory())

View File

@ -82,7 +82,7 @@ final class SigningIdentityBuilder {
return this;
}
Optional<SigningConfig> create() throws ConfigException {
Optional<SigningConfig> create() {
if (signingIdentity == null && certificateSelector == null) {
return Optional.empty();
} else {
@ -90,11 +90,11 @@ final class SigningIdentityBuilder {
}
}
private Optional<Keychain> validatedKeychain() throws ConfigException {
private Optional<Keychain> validatedKeychain() {
return Optional.ofNullable(keychain).map(Keychain::new);
}
private SigningIdentity validatedSigningIdentity() throws ConfigException {
private SigningIdentity validatedSigningIdentity() {
if (signingIdentity != null) {
return new SigningIdentityImpl(signingIdentity);
}
@ -142,7 +142,7 @@ final class SigningIdentityBuilder {
}
private static X509Certificate selectSigningIdentity(List<X509Certificate> certs,
CertificateSelector certificateSelector, Optional<Keychain> keychain) throws ConfigException {
CertificateSelector certificateSelector, Optional<Keychain> keychain) {
Objects.requireNonNull(certificateSelector);
Objects.requireNonNull(keychain);
switch (certs.size()) {

View File

@ -35,13 +35,10 @@ import java.util.Optional;
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import jdk.jpackage.internal.model.AppImageLayout;
import jdk.jpackage.internal.model.Application;
import jdk.jpackage.internal.model.ApplicationLaunchers;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.ExternalApplication;
import jdk.jpackage.internal.model.JPackageException;
import jdk.jpackage.internal.model.Launcher;
import jdk.jpackage.internal.model.LauncherIcon;
import jdk.jpackage.internal.model.LauncherStartupInfo;
@ -50,26 +47,17 @@ import jdk.jpackage.internal.model.RuntimeBuilder;
final class ApplicationBuilder {
Application create() throws ConfigException {
Application create() {
Objects.requireNonNull(appImageLayout);
final var launchersAsList = Optional.ofNullable(launchers).map(
ApplicationLaunchers::asList).orElseGet(List::of);
launchersAsList.stream().collect(Collectors.toMap(Launcher::name, x -> x, (a, b) -> {
throw new JPackageException(I18N.format("error.launcher-duplicate-name", a.name()));
}));
final String effectiveName;
if (name != null) {
effectiveName = name;
} else if (!launchersAsList.isEmpty()) {
effectiveName = launchers.mainLauncher().name();
} else {
throw buildConfigException("error.no.name").advice("error.no.name.advice").create();
}
Objects.requireNonNull(launchersAsList);
final String effectiveName = Optional.ofNullable(name).or(() -> {
return Optional.ofNullable(launchers).map(ApplicationLaunchers::mainLauncher).map(Launcher::name);
}).orElseThrow(() -> {
return buildConfigException("error.no.name").advice("error.no.name.advice").create();
});
return new Application.Stub(
effectiveName,
@ -79,7 +67,10 @@ final class ApplicationBuilder {
Optional.ofNullable(copyright).orElseGet(DEFAULTS::copyright),
Optional.ofNullable(srcDir),
Optional.ofNullable(contentDirs).orElseGet(List::of),
appImageLayout, Optional.ofNullable(runtimeBuilder), launchersAsList, Map.of());
appImageLayout,
Optional.ofNullable(runtimeBuilder),
launchersAsList,
Map.of());
}
ApplicationBuilder runtimeBuilder(RuntimeBuilder v) {

View File

@ -31,7 +31,6 @@ import java.util.Objects;
import java.util.Optional;
import jdk.jpackage.internal.model.AppImageLayout;
import jdk.jpackage.internal.model.Application;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.Package;
import jdk.jpackage.internal.resources.ResourceLocator;
@ -41,7 +40,7 @@ final class BuildEnvBuilder {
this.root = Objects.requireNonNull(root);
}
BuildEnv create() throws ConfigException {
BuildEnv create() {
var exceptionBuilder = I18N.buildConfigException("ERR_BuildRootInvalid", root);
if (Files.isDirectory(root)) {
try (var rootDirContents = Files.list(root)) {

View File

@ -50,7 +50,6 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
import jdk.internal.module.ModulePath;
import jdk.jpackage.internal.model.AppImageLayout;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.JPackageException;
import jdk.jpackage.internal.model.LauncherModularStartupInfo;
import jdk.jpackage.internal.model.LauncherStartupInfo;
@ -95,7 +94,7 @@ final class JLinkRuntimeBuilder implements RuntimeBuilder {
}
static RuntimeBuilder createJLinkRuntimeBuilder(List<Path> modulePath, Set<String> addModules,
Set<String> limitModules, List<String> options, List<LauncherStartupInfo> startupInfos) throws ConfigException {
Set<String> limitModules, List<String> options, List<LauncherStartupInfo> startupInfos) {
return new JLinkRuntimeBuilder(createJLinkCmdline(modulePath, addModules, limitModules,
options, startupInfos));
}
@ -147,7 +146,7 @@ final class JLinkRuntimeBuilder implements RuntimeBuilder {
}
private static List<String> createJLinkCmdline(List<Path> modulePath, Set<String> addModules,
Set<String> limitModules, List<String> options, List<LauncherStartupInfo> startupInfos) throws ConfigException {
Set<String> limitModules, List<String> options, List<LauncherStartupInfo> startupInfos) {
List<String> launcherModules = startupInfos.stream().map(si -> {
if (si instanceof LauncherModularStartupInfo siModular) {
return siModular.moduleName();

View File

@ -25,7 +25,6 @@
package jdk.jpackage.internal;
import static jdk.jpackage.internal.I18N.buildConfigException;
import static jdk.jpackage.internal.util.function.ThrowingConsumer.toConsumer;
import java.nio.file.Path;
import java.util.List;
@ -34,23 +33,20 @@ import java.util.Objects;
import java.util.Optional;
import java.util.function.Function;
import jdk.internal.util.OperatingSystem;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.CustomLauncherIcon;
import jdk.jpackage.internal.model.DefaultLauncherIcon;
import jdk.jpackage.internal.model.FileAssociation;
import jdk.jpackage.internal.model.Launcher;
import jdk.jpackage.internal.model.Launcher.Stub;
import jdk.jpackage.internal.util.PathUtils;
import jdk.jpackage.internal.model.LauncherIcon;
import jdk.jpackage.internal.model.LauncherStartupInfo;
import jdk.jpackage.internal.model.ResourceDirLauncherIcon;
import jdk.jpackage.internal.util.PathUtils;
final class LauncherBuilder {
Launcher create() throws ConfigException {
Launcher create() {
CustomLauncherIcon.fromLauncherIcon(icon)
.map(CustomLauncherIcon::path)
.ifPresent(toConsumer(LauncherBuilder::validateIcon));
.ifPresent(LauncherBuilder::validateIcon);
final var fa = createFileAssociations(faSources, Optional.ofNullable(faTraits).orElse(DEFAULT_FA_TRAITS));
@ -123,7 +119,7 @@ final class LauncherBuilder {
.setCategory("icon");
}
static void validateIcon(Path icon) throws ConfigException {
static Path validateIcon(Path icon) {
switch (OperatingSystem.current()) {
case WINDOWS -> {
if (!icon.getFileName().toString().toLowerCase().endsWith(".ico")) {
@ -144,13 +140,15 @@ final class LauncherBuilder {
throw new UnsupportedOperationException();
}
}
return icon;
}
record FileAssociationTraits() {
}
private static List<FileAssociation> createFileAssociations(
List<FileAssociationGroup> groups, FileAssociationTraits faTraits) throws ConfigException {
List<FileAssociationGroup> groups, FileAssociationTraits faTraits) {
Objects.requireNonNull(groups);
Objects.requireNonNull(faTraits);

View File

@ -31,7 +31,6 @@ import java.util.Objects;
import java.util.Optional;
import jdk.jpackage.internal.model.AppImageLayout;
import jdk.jpackage.internal.model.Application;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.Package;
import jdk.jpackage.internal.model.Package.Stub;
import jdk.jpackage.internal.model.PackageType;
@ -44,7 +43,7 @@ final class PackageBuilder {
this.type = Objects.requireNonNull(type);
}
Package create() throws ConfigException {
Package create() {
final var validatedName = validatedName();
Path relativeInstallDir;
@ -208,8 +207,7 @@ final class PackageBuilder {
});
}
private static Path mapInstallDir(Path installDir, PackageType pkgType)
throws ConfigException {
private static Path mapInstallDir(Path installDir, PackageType pkgType) {
var ex = buildConfigException("error.invalid-install-dir", installDir).create();
if (installDir.getNameCount() == 0) {

View File

@ -25,7 +25,6 @@
package jdk.jpackage.internal;
import static jdk.jpackage.internal.model.RuntimeBuilder.getDefaultModulePath;
import static jdk.jpackage.internal.util.function.ThrowingSupplier.toSupplier;
import java.io.IOException;
import java.io.UncheckedIOException;
@ -38,7 +37,6 @@ import java.util.Optional;
import java.util.Set;
import java.util.function.Supplier;
import jdk.jpackage.internal.model.ApplicationLayout;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.LauncherStartupInfo;
import jdk.jpackage.internal.model.RuntimeBuilder;
import jdk.jpackage.internal.util.FileUtils;
@ -112,8 +110,7 @@ final class RuntimeBuilderBuilder {
);
}
private static RuntimeBuilder createCopyingRuntimeBuilder(Path runtimeDir,
Path... modulePath) throws ConfigException {
private static RuntimeBuilder createCopyingRuntimeBuilder(Path runtimeDir, Path... modulePath) {
return appImageLayout -> {
try {
// copy whole runtime, skipping jmods and src.zip
@ -147,10 +144,9 @@ final class RuntimeBuilderBuilder {
@Override
public RuntimeBuilder get() {
return toSupplier(() -> createCopyingRuntimeBuilder(
return createCopyingRuntimeBuilder(
predefinedRuntimeImage,
Optional.ofNullable(thiz.modulePath).orElseGet(List::of).toArray(Path[]::new))
).get();
Optional.ofNullable(thiz.modulePath).orElseGet(List::of).toArray(Path[]::new));
}
}
@ -160,13 +156,12 @@ final class RuntimeBuilderBuilder {
@Override
public RuntimeBuilder get() {
return toSupplier(() -> JLinkRuntimeBuilder.createJLinkRuntimeBuilder(
return JLinkRuntimeBuilder.createJLinkRuntimeBuilder(
Optional.ofNullable(thiz.modulePath).orElseGet(List::of),
Optional.ofNullable(addModules).orElseGet(Set::of),
Optional.ofNullable(limitModules).orElseGet(Set::of),
Optional.ofNullable(options).orElseGet(List::of),
startupInfos)
).get();
startupInfos);
}
}

View File

@ -104,23 +104,4 @@ public class ConfigException extends JPackageException {
private String advice;
}
/**
* Throws the cause of the given {@link RuntimeException} exception
* as {@link ConfigException} if the cause is of this type or re-throws the given
* {@link RuntimeException} exception as-is otherwise.
* <p>
* Never return a value. It always throws some exception object.
*
* @param ex exception to re-throw
* @return doesn't return value
* @throws ConfigException
*/
public static RuntimeException rethrowConfigException(RuntimeException ex) throws ConfigException {
if (ex.getCause() instanceof ConfigException configEx) {
throw configEx;
} else {
throw ex;
}
}
}

View File

@ -27,7 +27,6 @@ package jdk.jpackage.internal;
import java.nio.file.Path;
import java.util.Objects;
import java.util.Optional;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.WinExePackage;
import jdk.jpackage.internal.model.WinMsiPackage;
@ -37,11 +36,8 @@ final class WinExePackageBuilder {
this.pkg = Objects.requireNonNull(pkg);
}
WinExePackage create() throws ConfigException {
if (icon != null) {
LauncherBuilder.validateIcon(icon);
}
return WinExePackage.create(pkg, Optional.ofNullable(icon));
WinExePackage create() {
return WinExePackage.create(pkg, Optional.ofNullable(icon).map(LauncherBuilder::validateIcon));
}
WinExePackageBuilder icon(Path v) {

View File

@ -32,9 +32,7 @@ import java.nio.file.Path;
import java.util.Objects;
import java.util.Optional;
import java.util.UUID;
import jdk.jpackage.internal.model.Application;
import jdk.jpackage.internal.model.ConfigException;
import jdk.jpackage.internal.model.MsiVersion;
import jdk.jpackage.internal.model.WinMsiPackage;
import jdk.jpackage.internal.model.WinMsiPackageMixin;
@ -45,7 +43,7 @@ final class WinMsiPackageBuilder {
this.pkgBuilder = Objects.requireNonNull(pkgBuilder);
}
WinMsiPackage create() throws ConfigException {
WinMsiPackage create() {
var pkg = pkgBuilder.create();
try {

View File

@ -24,8 +24,6 @@
*/
package jdk.jpackage.internal;
import static jdk.jpackage.internal.util.function.ThrowingSupplier.toSupplier;
import java.util.Objects;
import jdk.jpackage.internal.util.Result;
@ -36,6 +34,6 @@ record WinSystemEnvironment(WixToolset wixToolset) implements SystemEnvironment
}
static Result<WinSystemEnvironment> create() {
return Result.create(toSupplier(WixTool::createToolset)).map(WinSystemEnvironment::new);
return Result.create(WixTool::createToolset).map(WinSystemEnvironment::new);
}
}

View File

@ -89,7 +89,7 @@ public enum WixTool {
}
}
static WixToolset createToolset() throws ConfigException {
static WixToolset createToolset() {
Function<List<ToolLookupResult>, Map<WixTool, ToolInfo>> conv = lookupResults -> {
return lookupResults.stream().filter(ToolLookupResult::isValid).collect(Collectors.
groupingBy(lookupResult -> {