The msi bundler is stateful and holds data specific to the current packaging parameters [1]. This makes the exe bundler stateful too, because it references an instance of the msi bundler [2].
Rework both of these bundles to make them stateless like other bundlers.
Additionally, move code validating bundling tools (dpkg, rpmbuild, wix, etc.) into separate entities with a lifecycle independent from the lifecycle of the code doing package bundling.
[1] https://github.com/openjdk/jdk/blob/6e4e966d9b71ec04618e19784b5a661f34595ef6/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinMsiBundler.java#L556
[2] https://github.com/openjdk/jdk/blob/6e4e966d9b71ec04618e19784b5a661f34595ef6/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinExeBundler.java#L138
Rework both of these bundles to make them stateless like other bundlers.
Additionally, move code validating bundling tools (dpkg, rpmbuild, wix, etc.) into separate entities with a lifecycle independent from the lifecycle of the code doing package bundling.
[1] https://github.com/openjdk/jdk/blob/6e4e966d9b71ec04618e19784b5a661f34595ef6/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinMsiBundler.java#L556
[2] https://github.com/openjdk/jdk/blob/6e4e966d9b71ec04618e19784b5a661f34595ef6/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinExeBundler.java#L138
- links to
-
Commit(master)
openjdk/jdk/ca03080c
-
Review(master)
openjdk/jdk/27377