On Wed, 28 May 2025 22:30:25 GMT, Alexey Semenyuk <asemen...@openjdk.org> wrote:

>> - `--install-dir` option in DMG packaging is no longer ignored.
>> - Defaults are still the same: `/Applications` and 
>> `/Library/Java/JavaVirtualMachines`.
>> - If the installation directory doesn't exist, jpackage will try to create 
>> and delete it right after the DMG package is created.
>> - If jpackage was unable to create installation directory error will be 
>> thrown or if installation directory points to invalid location like file.
>> - It will be user responsibility to make sure installation directory exist 
>> on target machine, since DMG cannot create directories during drag and drop.
>> - Target directory in case of non-default installation dir will display full 
>> path. See image below for example.
>> 
>> ![Screenshot 2025-05-28 at 12 07 53 
>> AM](https://github.com/user-attachments/assets/fbcba07b-74a5-4276-90c3-5f8d2d0dcc16)
>
> src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacDmgPackageBuilder.java
>  line 101:
> 
>> 99:                     Log.verbose(ex);
>> 100:                     throw new RuntimeException(ex);
>> 101:                 }
> 
> This code should be in a separate function covered with unit tests.
> 
> The core of this code is a general-purpose function that takes a path as 
> input, finds the first nonexistent path component, and creates it as a 
> directory. It should be a part of PathUtils. Probably without creating a 
> directory part. Something like `Optional<Path> 
> PathUtils.findFirstNonExistingComponent(Path path)`.

Another issue with this code is that it creates a directory during the 
configuration phase. Files/directories should be created at the packaging 
phase. Another reason to move it into MacDmgPackager.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/25481#discussion_r2113071605

Reply via email to