src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxPackageBundler.java
branchJDK-8200758-branch
changeset 58762 0fe62353385b
parent 58647 2c43b89b1679
child 58791 fca9cb5f4953
equal deleted inserted replaced
58761:88e2753a2334 58762:0fe62353385b
    27 import java.io.*;
    27 import java.io.*;
    28 import java.nio.file.InvalidPathException;
    28 import java.nio.file.InvalidPathException;
    29 import java.nio.file.Path;
    29 import java.nio.file.Path;
    30 import java.text.MessageFormat;
    30 import java.text.MessageFormat;
    31 import java.util.*;
    31 import java.util.*;
       
    32 import java.util.function.Function;
    32 import java.util.function.Predicate;
    33 import java.util.function.Predicate;
    33 import java.util.stream.Collectors;
    34 import java.util.stream.Collectors;
    34 import java.util.stream.Stream;
    35 import java.util.stream.Stream;
    35 import static jdk.jpackage.internal.DesktopIntegration.*;
    36 import static jdk.jpackage.internal.DesktopIntegration.*;
    36 import static jdk.jpackage.internal.LinuxAppBundler.LINUX_INSTALL_DIR;
    37 import static jdk.jpackage.internal.LinuxAppBundler.LINUX_INSTALL_DIR;
    97             File outputParentDir) throws PackagerException {
    98             File outputParentDir) throws PackagerException {
    98         IOUtils.writableOutputDir(outputParentDir.toPath());
    99         IOUtils.writableOutputDir(outputParentDir.toPath());
    99 
   100 
   100         PlatformPackage thePackage = createMetaPackage(params);
   101         PlatformPackage thePackage = createMetaPackage(params);
   101 
   102 
       
   103         Function<File, ApplicationLayout> initAppImageLayout = imageRoot -> {
       
   104             ApplicationLayout layout = appImageLayout(params);
       
   105             layout.pathGroup().setPath(new Object(),
       
   106                     AppImageFile.getPathInAppImage(Path.of("")));
       
   107             return layout.resolveAt(imageRoot.toPath());
       
   108         };
       
   109 
   102         try {
   110         try {
   103             File appImage = StandardBundlerParam.getPredefinedAppImage(params);
   111             File appImage = StandardBundlerParam.getPredefinedAppImage(params);
   104 
   112 
   105             // we either have an application image or need to build one
   113             // we either have an application image or need to build one
   106             if (appImage != null) {
   114             if (appImage != null) {
   107                 appImageLayout(params).resolveAt(appImage.toPath()).copy(
   115                 initAppImageLayout.apply(appImage).copy(
   108                         thePackage.sourceApplicationLayout());
   116                         thePackage.sourceApplicationLayout());
   109             } else {
   117             } else {
   110                 appImage = APP_BUNDLER.fetchFrom(params).doBundle(params,
   118                 appImage = APP_BUNDLER.fetchFrom(params).doBundle(params,
   111                         thePackage.sourceRoot().toFile(), true);
   119                         thePackage.sourceRoot().toFile(), true);
   112                 ApplicationLayout srcAppLayout = appImageLayout(params).resolveAt(
   120                 ApplicationLayout srcAppLayout = initAppImageLayout.apply(
   113                         appImage.toPath());
   121                         appImage);
   114                 if (appImage.equals(PREDEFINED_RUNTIME_IMAGE.fetchFrom(params))) {
   122                 if (appImage.equals(PREDEFINED_RUNTIME_IMAGE.fetchFrom(params))) {
   115                     // Application image points to run-time image.
   123                     // Application image points to run-time image.
   116                     // Copy it.
   124                     // Copy it.
   117                     srcAppLayout.copy(thePackage.sourceApplicationLayout());
   125                     srcAppLayout.copy(thePackage.sourceApplicationLayout());
   118                 } else {
   126                 } else {