[
https://issues.apache.org/jira/browse/HADOOP-20013?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18139857#comment-18139857
]
ASF GitHub Bot commented on HADOOP-20013:
-----------------------------------------
joseluisll commented on code in PR #8891:
URL: https://github.com/apache/hadoop/pull/8891#discussion_r4496805389
##########
LICENSE-binary:
##########
@@ -625,7 +625,6 @@ CDDL 1.1 + GPLv2 with classpath exception
-----------------------------------------
com.sun.xml.bind:jaxb-impl:2.2.3-1
-javax.annotation:javax.annotation-api:1.3.2
Review Comment:
Ran the check, and you were right to ask — `javax.annotation-api-1.3.2.jar`
**does** still end up in the dist:
```
mvn --projects
hadoop-cloud-storage-project/hadoop-gcp,hadoop-cloud-storage-project/hadoop-cloud-storage-dist
\
package -Pdist -Dhadoop-gcp-package -DskipTests
```
`hadoop-cloud-storage-dist-3.6.0-SNAPSHOT/share/hadoop/common/lib/` contains
it (105 jars). It arrives through `google-cloud-storage:2.52.0`'s direct
compile-scope dep, which this PR's exclusion (on `javax-websocket-server-impl`)
doesn't touch — so the entry was load-bearing and stays. Restored it in
c9e39dad18e, in both `LICENSE-binary` (CDDL 1.1 + GPLv2 CE) and `NOTICE-binary`
(Oracle stanza); that part of the diff is now identical to trunk, and the only
license change left is the `jakarta.annotation-api:1.3.5` addition under EPL
2.0.
On (2): the shaded `hadoop-gcp` jar bundles **zero** `javax/annotation`
entries (the `artifactSet` you point at doesn't include it), and scanning every
class in it, all `javax.annotation.*` references are jsr305-style annotations
(`Nullable`, `CheckForNull`, `Nonnull`, `concurrent.*`, `meta.*`) — not one
class from `javax.annotation-api` (`PostConstruct`, `Resource`, `Generated`,
...). The dist's `hadoop-gcp` runtime classpath also gets
`jakarta.annotation-api-1.3.5.jar` through `hadoop-common`, which provides
those classes anyway. So nothing needs the jar; it ships as a redundant extra
either way, same as it does on trunk today.
> HADOOP - Remove the duplicate javax.annotation-api from the classpath
> ---------------------------------------------------------------------
>
> Key: HADOOP-20013
> URL: https://issues.apache.org/jira/browse/HADOOP-20013
> Project: Hadoop Common
> Issue Type: Sub-task
> Components: build, common
> Reporter: Jose Luis López
> Assignee: Jose Luis López
> Priority: Major
> Labels: pull-request-available
>
> *Scope*:
> * hadoop-project/pom.xml: on javax-websocket-server-impl, exclude
> javax.annotation:javax.annotation-api, which arrives through
> jetty-annotations. jakarta.annotation-api 1.3.5 already provides the same
> javax.annotation classes.
> * LICENSE-binary and NOTICE-binary: replace
> javax.annotation:javax.annotation-api:1.3.2 with
> jakarta.annotation:jakarta.annotation-api:1.3.5. The jakarta jar is already
> bundled (through jersey-common) but is missing from LICENSE-binary.
> * hadoop-yarn-server-nodemanager: add TestAnnotationApiClasspath, which
> checks that javax/annotation/PostConstruct.class comes from exactly one jar,
> jakarta.annotation-api. With trunk's poms it fails: both jars provide the
> class. It is self-contained and does not depend on HADOOP-19970.
> *Why*: two jars publish the javax.annotation packages, and which one a module
> sees depends on jar order.
> *Impact on Jetty 9*: none. Same classes.
> *Downstream*:
> * hadoop-yarn-server-nodemanager, the only module that declares
> javax-websocket-server-impl: its consumers no longer get javax.annotation-api
> 1.3.2. jakarta.annotation-api 1.3.5 provides the same javax.annotation
> classes.
> * hadoop-client-minicluster: loses its relocated copy of javax.annotation-api
> and keeps the relocated jakarta.annotation-api. Not API.
> * hadoop-client-api, hadoop-client-runtime: unchanged.
> *CI*: touches hadoop-project, so a full build.
> *PR*: https://github.com/apache/hadoop/pull/8891
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]