gharris1727 opened a new pull request, #14195: URL: https://github.com/apache/kafka/pull/14195
This is the secondary component of KIP-898, a command to migrate released artifacts to include ServiceLoader manifests. In order to provide dry-run functionality and to reduce the number of write operations to the filesystem, the script will accumulate the changes to the manifests in-memory. Once the changes to manifests are completely known, the script can then generate the new manifest files, dry run the sync, and if the dry-run flag is omitted, actually write the changes to disk. In order to model the state of the manifests in-memory and the operations on manifest files, replace the existing ManifestEntry and Map system with the `ManifestWorkspace`. Each overall workspace has several `SourceWorkspace` objects, one corresponding to each PluginSource. The `SourceWorkspace` is an abstraction over the several different types of plugin sources, which each have different semantics around reading and writing manifests. The actual JAR editing is done by opening the JAR files as a FileSystem, and then using normal file write operations on the internal URL. This allows code reuse between the Class Hierarchy and Single/Multi jar cases, and means that we're using the existing zip/jar libraries instead of binary editing. ### Committer Checklist (excluded from commit message) - [ ] Verify design and implementation - [ ] Verify test coverage and CI build status - [ ] Verify documentation (including upgrade notes) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org