RFR: 8374219: Fix issues in jpackage's Executor class
Alexey Semenyuk
asemenyuk at openjdk.org
Fri Jan 2 20:46:08 UTC 2026
- Move code shared between jpackage's Executor and jpackage's test lib Executor into `jdk.jpackage.internal.util.CommandOutputControl` class using the latter one as the baseline for the new class; [CommandOutputControl class javadoc](https://alexeysemenyukoracle.github.io/jpackage-javadoc/jdk.jpackage/jdk/jpackage/internal/util/CommandOutputControl.html).
- Place "execute with retries" logic into `jdk.jpackage.internal.util.RetryExecutor` class and use it from both jpackage and jpackage's test lib. Use `jdk.jpackage.internal.RetryExecutor` class as the baseline.
- Add `ObjectFactory`, `ExecutorFactory`, and `RetryExecutorFactory` interfaces to the "jdk.jpackage.internal" package. They enable the use of command mocks with jpackage.
- Add `jdk.jpackage.test.mock` package. It facilitates creating command mocks. Use it to test LibProvidersLookup, LinuxSystemEnvironment, LinuxPackageArch, MacDmgSystemEnvironment, and MacDmgPackager classes.
Supplementary changes:
- Make `jdk.jpackage.internal.SystemEnvironment` and all implementing classes package private
-------------
Commit messages:
- Copyright year update
- IOUtils: remove getPID()
- CommandOutputControl: processNotifier() -> processListener()
- Executor-s: add missing functions
- Make SystemEnvironment and related classes package-private
- Rework the fix using ScopedValue
- CommandOutputControlTest: test charset; add a stress test
- CommandOutputControl: fix javadoc
- CommandOutputControl: remove dead code based on code coverage
- CommandOutputControlTest: disable test_close_streams() on macOS
- ... and 41 more: https://git.openjdk.org/jdk/compare/2daf12ed...70d7de8d
Changes: https://git.openjdk.org/jdk/pull/28733/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=28733&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8374219
Stats: 10507 lines in 87 files changed: 8461 ins; 1644 del; 402 mod
Patch: https://git.openjdk.org/jdk/pull/28733.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/28733/head:pull/28733
PR: https://git.openjdk.org/jdk/pull/28733
More information about the core-libs-dev
mailing list