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)