jakartaee / jakartaee/jaf-api

jakarta.activation-api is not a Multi Release JAR

Open
#122 5 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.