RFR: 8365555: Cleanup redundancies in jpackage implementation [v2]

Alexey Semenyuk asemenyuk at openjdk.org
Fri Aug 15 14:48:13 UTC 2025


> - Remove AppImageDesc class. It was supposed to bind an AppImageLayout instance with a root directory, but since AppImageLayout has `rootDirectory()` method it is redundant.
>  - Remove redundant `Package.packageLayout()` and `Package.asPackageApplicationLayout()` methods from the model, 
>  - Add tests for PackagingPipeline class.
>  - Move JUnitAdapter.java from "/test/jdk/tools/jpackage/helpers-test" to "/test/jdk/tools/jpackage/junit/tools" directory, support running platform-specific JUnit tests.
>  - Enhance AppImageLayout class, add unit tests for derived MacApplicationLayout and LinuxApplicationLayout classes.
>  - Add tests for BuildEnv class.

Alexey Semenyuk has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 16 additional commits since the last revision:

 - ResourceLocator: make ctor private. This class is not supposed to be instantiated. Improves the coverage.
 - Add a test case to JavaAppDescTest
 - MacDmgPackageBuilder: remove unused variable
 - Use MacBundle with AppImageSigner
 - BuildEnvFromParams: bugfix
 - Rename RuntimeBuilder.createRuntime() to RuntimeBuilder.create()
 - Test for PackagingPipeline
 - Get rid of AppImageDesc. It became redundant when AppImageLayout.rootDirectory() was added. Support using an external app image with a custom app image layout. Add ApplicationBuilder.overrideAppImageLayout(). Remove Package.packageLayout() and Package.asPackageApplicationLayout(). Create Linux and Mac packages with app image layout configured for packaging making PackagingPipeline.Builder.appImageLayoutForPackaging() redundant. Simplify PackagingPipeline. It always builds with application's app image layout. Don't wrap RuntimeException-s in PackagerException-s. Merge PackagingPipeline.appContextMapper and PackagingPipeline.pkgContextMapper into PackagingPipeline.contextMapper. Remove PackagingPipeline.Builder.appImageLayoutForPackaging(). Add MacPackage.guessRuntimeLayout()
 - Implementation Tweaks #1
 - Support custom runtime image layout in BuildEnvFromParams. Support custom runtime image layout for application in FromParams.createApplicationBuilder(). Set correct layout for predefined runtime image on macosx
 - ... and 6 more: https://git.openjdk.org/jdk/compare/2a0a46d5...9f33d8e2

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/26778/files
  - new: https://git.openjdk.org/jdk/pull/26778/files/0d2b451e..9f33d8e2

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=26778&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=26778&range=00-01

  Stats: 10205 lines in 296 files changed: 4593 ins; 4395 del; 1217 mod
  Patch: https://git.openjdk.org/jdk/pull/26778.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26778/head:pull/26778

PR: https://git.openjdk.org/jdk/pull/26778


More information about the core-libs-dev mailing list