On Sat, 10 May 2025 19:02:45 GMT, Alexey Semenyuk <asemen...@openjdk.org> wrote:

>> Refactor jpackage to separate the configuration and execution phases.
>> At the configuration phase, jpackage parses command-line arguments and 
>> validates them.
>> At the execution phase, jpackage builds a bundle based on data collected at 
>> the configuration phase.
>> 
>> There was no clear separation between these phases. Both used the same data 
>> type (`Map<String, Object>`), making it hard to understand and use properly.
>> 
>> This change introduces data model to jpackage (classes in 
>> "jdk.jpackage.internal.model" package). The output of the configuration 
>> phase is either an instance of 
>> [jdk.jpackage.internal.model.Application](https://github.com/openjdk/jdk/pull/19668/files#diff-e4e7717f1978a09ac4806eded5c7f94aa29b2ea56671545dc053cb83eba86919)
>>  interface for app image bundling or 
>> [jdk.jpackage.internal.model.Package](https://github.com/openjdk/jdk/pull/19668/files#diff-9908b5648e03bd8a8104f6f6f5aa08e5df78fbc0508823774d3458b22927b721)
>>  for native package bundling.
>> 
>> The execution phase has been reworked to get configuration properties from 
>> the new `jdk.jpackage.internal.model.Application` and 
>> `jdk.jpackage.internal.model.Package` interfaces instead of extracting data 
>> from `Map<String, Object>` "params".
>> 
>> Additionally, a notion of "packaging pipeline" 
>> (jdk.jpackage.internal.PackagingPipeline class) was added to configure 
>> packaging declaratively with more code sharing between bundlers.
>> 
>> jdk.jpackage module javadoc - 
>> https://alexeysemenyukoracle.github.io/jpackage-javadoc/jdk.jpackage/module-summary.html
>> 
>> **Functional changes**
>> jpackage behavior 99% remains the same, i.e., it produces the same bundles 
>> for the given parameters. This change affects only the implementation. 
>> Still, there are some changes in jpackage behavior. They are outlined below.
>> 
>>  - Minimize copying of the source app image when doing native packaging.
>> 
>> Before this change, native package bundlers made redundant copies of the 
>> source app image. E.g., msi and linux package bundlers copied the external 
>> app image (the one specified with `--app-image` parameter); linux package 
>> bundlers always transformed the source app image if the installation 
>> directory was in the "/usr" tree (`--install-dir /usr`). This change 
>> eliminates all redundant app image copy/transformations.
>> 
>> - PKG bundler: change "preinstall" and "postinstall" scripts in app bundles.
>> 
>> post- and pre- install PKG scripts for SimplePackageTest package before and 
>> after the change:
>> <table>
>> <thead>
>> <tr>
>> <th>Scr...
>
> Alexey Semenyuk has updated the pull request with a new target base due to a 
> merge or a rebase. The pull request now contains 512 commits:
> 
>  - Add ConfigFilesStasher that allows to save contents of jpackage build 
> directories in external directory; Add clean_stashed_files.sh
>  - Merge branch 'master' into JDK-8333664
>  - Remove redundant StandardBundlerParam.createResource()
>  - Adapt JDK-8352480 fix
>  - Merge branch 'master' into JDK-8333664
>  - Fix javadoc
>  - Merge branch 'master' into JDK-8333664
>  - 8333568: Test that jpackage doesn't modify R/O files/directories
>    
>    Reviewed-by: almatvee
>  - 8356562: SigningAppImageTwoStepsTest test fails
>    
>    Reviewed-by: almatvee
>  - Remove clean_stashed_files.sh
>  - ... and 502 more: https://git.openjdk.org/jdk/compare/43696030...011eb710

All findings fixed.

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

PR Comment: https://git.openjdk.org/jdk/pull/19668#issuecomment-2887850571

Reply via email to