Gergely Harmadás created KAFKA-21274:
----------------------------------------
Summary: Remove unused javax jaxb-api and activation dependencies
Key: KAFKA-21274
URL: https://issues.apache.org/jira/browse/KAFKA-21274
Project: Kafka
Issue Type: Task
Components: connect
Reporter: Gergely Harmadás
Assignee: Gergely Harmadás
{{javax.activation:activation}} and {{javax.xml.bind:jaxb-api}} are declared in
a few places in build.gradle with the comment
{quote}Jersey dependency that was available in the JDK before Java 9
{quote}
This is a stale comment as Jersey is 3.1.x uses the jakarta namespace and
already resolves (transitively) {{com.sun.activation:jakarta.activation}} and
{{{}jakarta.xml.bind:jakarta.xml.bind-api{}}}.
In Kafka 4.0 the project was migrated to Jakarta with
[KIP-1032|https://cwiki.apache.org/confluence/spaces/KAFKA/pages/298781371/KIP-1032+Upgrade+to+Jakarta+and+JavaEE+10+in+Kafka+4.0]
and KAFKA-16437 so the two remaining javax dependencies should be safe to
remove. Verified with :trogdor:test, :connect:mirror:test (including
the MirrorMaker integration tests) and the :connect:runtime REST tests.
Next to the benefit of handling less dependencies we can remove 3 jars from the
released artifact and shave off around ~247 KB in size.
* {{jaxb-api-2.3.1.jar}}
* {{activation-1.1.1.jar}}
* {{javax.activation-api-1.2.0.jar}}
Note that in theory there can be a few connector which relied on having jaxb
and activation on the classpath from Kafka. However
[KIP-1032|https://cwiki.apache.org/confluence/spaces/KAFKA/pages/298781371/KIP-1032+Upgrade+to+Jakarta+and+JavaEE+10+in+Kafka+4.0]
already calls out this scenario
{quote}Users that use the Connect framework will need to upgrade their custom
connectors to use the new jakarta namespace (if they rely on it) or else will
need to use an isolated classloader.
{quote}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)