Skip to content

Commit fea5f2b

Browse files
author
Alexey Semenyuk
committed
8344415: Restruct jpackage utility classes
Reviewed-by: almatvee
1 parent a28e4d8 commit fea5f2b

File tree

67 files changed

+1014
-571
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+1014
-571
lines changed

src/jdk.jpackage/linux/classes/jdk/jpackage/internal/DesktopIntegration.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -54,6 +54,8 @@
5454
import static jdk.jpackage.internal.StandardBundlerParam.ICON;
5555
import static jdk.jpackage.internal.StandardBundlerParam.PREDEFINED_APP_IMAGE;
5656
import static jdk.jpackage.internal.StandardBundlerParam.SHORTCUT_HINT;
57+
import jdk.jpackage.internal.util.PathUtils;
58+
import jdk.jpackage.internal.util.XmlUtils;
5759

5860
/**
5961
* Helper to create files for desktop integration.
@@ -119,7 +121,7 @@ private DesktopIntegration(PlatformPackage thePackage,
119121
if (withDesktopFile) {
120122
desktopFile = new DesktopFile(desktopFileName);
121123
iconFile = new DesktopFile(escapedAppFileName
122-
+ IOUtils.getSuffix(Path.of(DEFAULT_ICON)));
124+
+ PathUtils.getSuffix(Path.of(DEFAULT_ICON)));
123125

124126
if (curIconResource == null) {
125127
// Create default icon.
@@ -420,7 +422,7 @@ private void appendFileAssociation(XMLStreamWriter xml,
420422
}
421423

422424
private void createFileAssociationsMimeInfoFile() throws IOException {
423-
IOUtils.createXml(mimeInfoFile.srcPath(), xml -> {
425+
XmlUtils.createXml(mimeInfoFile.srcPath(), xml -> {
424426
xml.writeStartElement("mime-info");
425427
xml.writeDefaultNamespace(
426428
"http://www.freedesktop.org/standards/shared-mime-info");
@@ -451,7 +453,7 @@ private void addFileAssociationIconFiles(ShellCommands shellCommands)
451453

452454
// Create icon name for mime type from mime type.
453455
DesktopFile faIconFile = new DesktopFile(mimeType.replace(
454-
File.separatorChar, '-') + IOUtils.getSuffix(
456+
File.separatorChar, '-') + PathUtils.getSuffix(
455457
assoc.data.iconPath));
456458

457459
IOUtils.copyFile(assoc.data.iconPath,

src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxAppImageBuilder.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -35,6 +35,7 @@
3535
import static jdk.jpackage.internal.StandardBundlerParam.APP_NAME;
3636
import static jdk.jpackage.internal.StandardBundlerParam.ICON;
3737
import static jdk.jpackage.internal.StandardBundlerParam.ADD_LAUNCHERS;
38+
import jdk.jpackage.internal.util.PathUtils;
3839

3940
public class LinuxAppImageBuilder extends AbstractAppImageBuilder {
4041

@@ -127,7 +128,7 @@ private void createLauncherForEntryPoint(Map<String, ? super Object> params,
127128
mainParams);
128129
if (iconResource != null) {
129130
Path iconTarget = appLayout.destktopIntegrationDirectory().resolve(
130-
APP_NAME.fetchFrom(params) + IOUtils.getSuffix(Path.of(
131+
APP_NAME.fetchFrom(params) + PathUtils.getSuffix(Path.of(
131132
DEFAULT_ICON)));
132133
iconResource.saveToFile(iconTarget);
133134
}

src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxPackageBundler.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -44,6 +44,7 @@
4444
import static jdk.jpackage.internal.StandardBundlerParam.VENDOR;
4545
import static jdk.jpackage.internal.StandardBundlerParam.DESCRIPTION;
4646
import static jdk.jpackage.internal.StandardBundlerParam.INSTALL_DIR;
47+
import jdk.jpackage.internal.util.FileUtils;
4748

4849
abstract class LinuxPackageBundler extends AbstractBundler {
4950

@@ -144,7 +145,7 @@ public final Path execute(Map<String, ? super Object> params,
144145
// Application image is a newly created directory tree.
145146
// Move it.
146147
srcAppLayout.move(thePackage.sourceApplicationLayout());
147-
IOUtils.deleteRecursive(srcAppImageRoot);
148+
FileUtils.deleteRecursive(srcAppImageRoot);
148149
}
149150
}
150151

src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacBaseInstallerBundler.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -25,25 +25,20 @@
2525

2626
package jdk.jpackage.internal;
2727

28-
import java.io.ByteArrayOutputStream;
2928
import java.io.IOException;
30-
import java.io.PrintStream;
3129
import java.nio.file.Files;
3230
import java.nio.file.LinkOption;
3331
import java.nio.file.Path;
3432
import java.text.MessageFormat;
35-
import java.util.ArrayList;
36-
import java.util.List;
3733
import java.util.Map;
3834
import java.util.Optional;
39-
import java.util.regex.Matcher;
40-
import java.util.regex.Pattern;
4135
import static jdk.jpackage.internal.StandardBundlerParam.APP_NAME;
4236
import static jdk.jpackage.internal.StandardBundlerParam.INSTALLER_NAME;
4337
import static jdk.jpackage.internal.StandardBundlerParam.INSTALL_DIR;
4438
import static jdk.jpackage.internal.StandardBundlerParam.PREDEFINED_APP_IMAGE;
4539
import static jdk.jpackage.internal.StandardBundlerParam.VERSION;
4640
import static jdk.jpackage.internal.StandardBundlerParam.SIGN_BUNDLE;
41+
import jdk.jpackage.internal.util.FileUtils;
4742

4843
public abstract class MacBaseInstallerBundler extends AbstractBundler {
4944

@@ -187,7 +182,7 @@ protected Path prepareAppBundle(Map<String, ? super Object> params)
187182
StandardBundlerParam.getPredefinedAppImage(params);
188183
if (predefinedImage != null) {
189184
appDir = appImageRoot.resolve(APP_NAME.fetchFrom(params) + ".app");
190-
IOUtils.copyRecursive(predefinedImage, appDir,
185+
FileUtils.copyRecursive(predefinedImage, appDir,
191186
LinkOption.NOFOLLOW_LINKS);
192187

193188
// Create PackageFile if predefined app image is not signed

src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacDmgBundler.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -48,6 +48,7 @@
4848
import static jdk.jpackage.internal.StandardBundlerParam.TEMP_ROOT;
4949
import static jdk.jpackage.internal.StandardBundlerParam.VERBOSE;
5050
import static jdk.jpackage.internal.StandardBundlerParam.DMG_CONTENT;
51+
import jdk.jpackage.internal.util.FileUtils;
5152

5253
public class MacDmgBundler extends MacBaseInstallerBundler {
5354

@@ -294,7 +295,7 @@ private Path buildDMG( Map<String, ? super Object> params,
294295
MAC_CF_BUNDLE_IDENTIFIER.fetchFrom(params));
295296
Path dest = root.resolve("Contents/Home");
296297

297-
IOUtils.copyRecursive(source, dest);
298+
FileUtils.copyRecursive(source, dest);
298299

299300
srcFolder = newRoot;
300301
}
@@ -319,7 +320,7 @@ private Path buildDMG( Map<String, ? super Object> params,
319320
List <String> dmgContent = DMG_CONTENT.fetchFrom(params);
320321
for (String content : dmgContent) {
321322
Path path = Path.of(content);
322-
IOUtils.copyRecursive(path, srcFolder.resolve(path.getFileName()));
323+
FileUtils.copyRecursive(path, srcFolder.resolve(path.getFileName()));
323324
}
324325
// create temp image
325326
ProcessBuilder pb = new ProcessBuilder(
@@ -381,9 +382,9 @@ private Path buildDMG( Map<String, ? super Object> params,
381382
Path destPath = mountedRoot
382383
.resolve(srcFolder.getFileName());
383384
Files.createDirectory(destPath);
384-
IOUtils.copyRecursive(srcFolder, destPath);
385+
FileUtils.copyRecursive(srcFolder, destPath);
385386
} else {
386-
IOUtils.copyRecursive(srcFolder, mountedRoot);
387+
FileUtils.copyRecursive(srcFolder, mountedRoot);
387388
}
388389
}
389390

src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacLaunchersAsServices.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -33,6 +33,7 @@
3333
import static jdk.jpackage.internal.MacAppImageBuilder.MAC_CF_BUNDLE_IDENTIFIER;
3434
import static jdk.jpackage.internal.OverridableResource.createResource;
3535
import static jdk.jpackage.internal.StandardBundlerParam.APP_NAME;
36+
import jdk.jpackage.internal.util.PathUtils;
3637

3738
/**
3839
* Helper to install launchers as services using "launchd".
@@ -95,7 +96,7 @@ private static class Launcher extends UnixLauncherAsService {
9596

9697
// It is recommended to set value of "label" property in launchd
9798
// .plist file equal to the name of this .plist file without the suffix.
98-
String label = IOUtils.replaceSuffix(plistFilename.getFileName(), "").toString();
99+
String label = PathUtils.replaceSuffix(plistFilename.getFileName(), "").toString();
99100

100101
getResource()
101102
.setPublicName(plistFilename)

src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacPkgBundler.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -62,6 +62,8 @@
6262
import static jdk.jpackage.internal.MacAppImageBuilder.MAC_CF_BUNDLE_IDENTIFIER;
6363
import static jdk.jpackage.internal.OverridableResource.createResource;
6464
import static jdk.jpackage.internal.StandardBundlerParam.RESOURCE_DIR;
65+
import jdk.jpackage.internal.util.FileUtils;
66+
import jdk.jpackage.internal.util.XmlUtils;
6567

6668
public class MacPkgBundler extends MacBaseInstallerBundler {
6769

@@ -267,7 +269,7 @@ private void prepareDistributionXMLFile(Map<String, ? super Object> params)
267269
Log.verbose(MessageFormat.format(I18N.getString(
268270
"message.preparing-distribution-dist"), f.toAbsolutePath().toString()));
269271

270-
IOUtils.createXml(f, xml -> {
272+
XmlUtils.createXml(f, xml -> {
271273
xml.writeStartElement("installer-gui-script");
272274
xml.writeAttribute("minSpecVersion", "1");
273275

@@ -452,7 +454,7 @@ private String getRoot(Map<String, ? super Object> params,
452454
source = appLocation;
453455
dest = newRoot.resolve(appLocation.getFileName());
454456
}
455-
IOUtils.copyRecursive(source, dest);
457+
FileUtils.copyRecursive(source, dest);
456458

457459
return newRoot.toString();
458460
}

src/jdk.jpackage/share/classes/jdk/jpackage/internal/AbstractAppImageBuilder.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@
3232
import java.util.ArrayList;
3333
import java.util.Map;
3434
import java.util.List;
35-
import java.util.Objects;
36-
import java.util.stream.Stream;
3735
import static jdk.jpackage.internal.OverridableResource.createResource;
3836
import static jdk.jpackage.internal.StandardBundlerParam.APP_NAME;
3937
import static jdk.jpackage.internal.StandardBundlerParam.ICON;
@@ -42,6 +40,8 @@
4240
import static jdk.jpackage.internal.StandardBundlerParam.OUTPUT_DIR;
4341
import static jdk.jpackage.internal.StandardBundlerParam.TEMP_ROOT;
4442
import jdk.jpackage.internal.resources.ResourceLocator;
43+
import jdk.jpackage.internal.util.FileUtils;
44+
import jdk.jpackage.internal.util.PathUtils;
4545

4646
/*
4747
* AbstractAppImageBuilder
@@ -92,15 +92,15 @@ protected void copyApplication(Map<String, ? super Object> params)
9292
}
9393
}
9494

95-
IOUtils.copyRecursive(inputPath,
95+
FileUtils.copyRecursive(inputPath,
9696
appLayout.appDirectory().toAbsolutePath(), excludes);
9797
}
9898

9999
AppImageFile.save(root, params);
100100

101101
List<String> items = APP_CONTENT.fetchFrom(params);
102102
for (String item : items) {
103-
IOUtils.copyRecursive(Path.of(item),
103+
FileUtils.copyRecursive(Path.of(item),
104104
appLayout.contentDirectory().resolve(Path.of(item).getFileName()));
105105
}
106106
}
@@ -115,7 +115,7 @@ public static OverridableResource createIconResource(String defaultIconName,
115115
}
116116

117117
final String resourcePublicName = APP_NAME.fetchFrom(params)
118-
+ IOUtils.getSuffix(Path.of(defaultIconName));
118+
+ PathUtils.getSuffix(Path.of(defaultIconName));
119119

120120
IconType iconType = getLauncherIconType(params);
121121
if (iconType == IconType.NoIcon) {

src/jdk.jpackage/share/classes/jdk/jpackage/internal/AbstractBundler.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,7 @@
2828
import java.io.IOException;
2929
import java.nio.file.Path;
3030
import java.util.Map;
31+
import jdk.jpackage.internal.util.FileUtils;
3132

3233

3334
/**
@@ -55,7 +56,7 @@ public String toString() {
5556
@Override
5657
public void cleanup(Map<String, ? super Object> params) {
5758
try {
58-
IOUtils.deleteRecursive(
59+
FileUtils.deleteRecursive(
5960
StandardBundlerParam.TEMP_ROOT.fetchFrom(params));
6061
} catch (IOException e) {
6162
Log.verbose(e.getMessage());

src/jdk.jpackage/share/classes/jdk/jpackage/internal/AppImageFile.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -59,6 +59,7 @@
5959
import static jdk.jpackage.internal.StandardBundlerParam.MENU_HINT;
6060
import static jdk.jpackage.internal.StandardBundlerParam.SIGN_BUNDLE;
6161
import static jdk.jpackage.internal.StandardBundlerParam.APP_STORE;
62+
import jdk.jpackage.internal.util.XmlUtils;
6263

6364
public final class AppImageFile {
6465

@@ -247,7 +248,7 @@ private static void save(Path appImageDir,
247248
addLauncherInfoSave = appImage.getAddLaunchers();
248249
}
249250

250-
IOUtils.createXml(getPathInAppImage(appImageDir), xml -> {
251+
XmlUtils.createXml(getPathInAppImage(appImageDir), xml -> {
251252
xml.writeStartElement("jpackage-state");
252253
xml.writeAttribute("version", getVersion());
253254
xml.writeAttribute("platform", getPlatform());

0 commit comments

Comments
 (0)