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]

Reply via email to