aglinxinyuan commented on code in PR #6227:
URL: https://github.com/apache/texera/pull/6227#discussion_r3555725147
##########
amber/build.sbt:
##########
@@ -158,16 +158,31 @@ val luceneDependencies = Seq(
/////////////////////////////////////////////////////////////////////////////
// Hadoop related
-val hadoopVersion = "3.4.3"
+val hadoopVersion = "3.5.0"
val excludeHadoopJersey = ExclusionRule(organization = "com.sun.jersey")
// Hadoop 3.3.2+ ships jersey-json via the com.github.pjfanning fork; its
Jersey 1.x
// providers break Jersey 2 auto-discovery at startup, so exclude it as well.
val excludeHadoopJerseyJsonFork = ExclusionRule(organization =
"com.github.pjfanning", name = "jersey-json")
+// Hadoop 3.5.0 moved its web stack to Jersey 2.x
(org.glassfish.jersey.{core,containers,
+// inject}) plus the glassfish JAXB runtime, istack-commons, and the Jakarta
JSP API. Left
+// in, Jersey 2.46 would evict Dropwizard 1.3.23's Jersey 2.25.1 (dropping the
+// AbstractValueFactoryProvider that dropwizard-auth needs). Texera uses
hadoop only as a
+// filesystem client, so exclude the whole servlet/JAX-RS/JAXB web stack.
Review Comment:
Reworded — but a clarification: this service (amber /
WorkflowExecutionService) is actually still on Dropwizard 1.3.23
(`dropwizardVersion` a few lines up), which bundles Jersey 2.25.1. That's the
whole reason the break is real here — Hadoop 3.5.0's Jersey 2.x evicts 2.25.1
and drops `AbstractValueFactoryProvider`. The 4.x / Jersey 3.x (jakarta) stack
lives in the other services. I kept the version-specific detail since it's the
actionable bit for future debugging, but scoped it explicitly to "this service"
so it's clear it's not a repo-wide claim.
##########
common/workflow-core/build.sbt:
##########
@@ -160,7 +160,21 @@ val excludeJersey = ExclusionRule(organization =
"com.sun.jersey")
// Hadoop 3.3.2+ ships jersey-json via the com.github.pjfanning fork; its
Jersey 1.x
// providers break Jersey 2 auto-discovery at startup, so exclude it as well.
val excludeJerseyJsonFork = ExclusionRule(organization =
"com.github.pjfanning", name = "jersey-json")
-val excludeGlassfishJersey = ExclusionRule(organization =
"org.glassfish.jersey")
+// Hadoop 3.5.0 moved its web stack from Jersey 1.x (com.sun.jersey) to Jersey
2.x
+// (org.glassfish.jersey.{core,containers,inject}) plus the glassfish JAXB
runtime,
+// istack-commons, and the Jakarta JSP API. ExclusionRule matches the
organization string
+// exactly, so a bare "org.glassfish.jersey" rule matches none of the real
artifacts.
+// Texera uses hadoop only as a filesystem client, so none of this
servlet/JAX-RS/JAXB
+// web stack is needed; excluding it keeps Dropwizard's Jersey 2.25.1 from
being evicted
+// and keeps these jars out of every service dist.
Review Comment:
Reworded here too. workflow-core is a plain library with no Dropwizard of
its own, so I dropped the hardcoded versions and reframed it: the exclusion
keeps the unused web-stack jars out of every downstream dist, and for the one
downstream service still on a Jersey 2.x server (amber) it avoids evicting the
Jersey its auth wiring needs. The org-string exactness note stays since that's
version-independent.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]