jakarta.activation-api is not a Multi Release JAR
- Dominant language
- Java
- Stars
- 43
- Forks
- 34
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 2
Description
**Describe the bug**
Latest jakarta.activation-api (`2.1.1`) includes 3 classes compiled to bytecode 53 and 44 classes compiled to bytecode 52. All classes are found in the unversioned space which means enforcer rules for both [Maven](https://www.mojohaus.org/extra-enforcer-rules/enforceBytecodeVersion.html) and [Gradle](https://kordamp.org/enforcer-gradle-plugin/#_enforcebytecodeversion) will trigger and fail a build.
**To Reproduce**
Steps to reproduce the behavior:
1. Get [jarviz](https://github.com/kordamp/jarviz/releases)
```
$ jarviz bytecode show --gav jakarta.activation:jakarta.activation-api:2.1.1
Unversioned classes. Bytecode version: 52 total: 44
Unversioned classes. Bytecode version: 53 total: 3
```
If the `--details` flag is added you get the names of the 3 classes causing trouble
```
Unversioned classes. Bytecode version: 53 total: 3
jakarta.activation.spi.package-info
jakarta.activation.package-info
module-info
```
**Expected behavior**
These 3 classes should be inside `/META-INF/versions/9`. The JAR's manifest should have a manifest entry such as `Multi-Release: true`
https://docs.oracle.com/javase/10/docs/specs/jar/jar.html#multi-release-jar-files
Contributor guide
Research direction
Start by inspecting how the jakarta.activation:jakarta.activation-api:2.1.1 JAR is assembled and how its manifest is produced. Use jarviz bytecode show --gav jakarta.activation:jakarta.activation-api:2.1.1 --details to verify that the three Java 9 classes are versioned and that the manifest marks the JAR as multi-release.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100