You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Frode Carlsen (Jira)" <ji...@apache.org> on 2021/07/02 06:33:00 UTC

[jira] [Created] (KAFKA-13027) Support for Jakarta EE 9.x to allow applications to migrate

Frode Carlsen created KAFKA-13027:
-------------------------------------

             Summary: Support for Jakarta EE 9.x to allow applications to migrate
                 Key: KAFKA-13027
                 URL: https://issues.apache.org/jira/browse/KAFKA-13027
             Project: Kafka
          Issue Type: Improvement
    Affects Versions: 2.8.0
            Reporter: Frode Carlsen


Some of the kafka libraries (such as connect-api) have direct dependencies on older Java EE 8 specifications (e.g. javax.ws.rs:javax.ws.rs-api:2.1.1).

This creates issues in environments upgrading to Jakarta 9.0 and beyond (9.1 requires minimum Java 11).  For example upgrading web application servers such as migrating to Jetty 11.

The  main thing preventing backwards compatibility is that the package namespace has moved from "*javax.**" to "*jakarta.**", along with a few namespace changes in XML configuration files. (new specifications are published here [https://jakarta.ee/specifications/,] along with references to official artifacts and compliant implementations).

From KAFKA-12894 (KIP-705) it appears dropping support for java 8 won't happen till Q4 2022, which makes it harder to migrate to Jakarta 9.1, but 9.0 is still Java 8 compatible.

Therefore, to allow projects that use Kafka client libraries to migrate prior to the full work being completed in a future Kafka version, would it be possible to generate Jakarta 9 compatible artifacts and dual publish these for libraries that now depend on javax.ws.rs / javax.servlet and similar? This is done by a number of open source libraries, as an alternative to having different release branches for the time being.   Other than the namespace change in 9.0 and minimum java LTS version in 9.1, the apis are fully compatible with Java EE 8.

As a suggestion, this fairly easy to do automaticallly using the [https://github.com/eclipse/transformer/] for migration (most projects end up publishing under artifacts with a either "-jakarta" as a suffix on the artifactId or classifier)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)