-
Notifications
You must be signed in to change notification settings - Fork 14
Conversation
Codecov Report
@@ Coverage Diff @@
## develop #2054 +/- ##
=============================================
+ Coverage 57.77% 62.62% +4.85%
- Complexity 4066 4068 +2
=============================================
Files 754 754
Lines 37240 37240
Branches 4028 4028
=============================================
+ Hits 21514 23322 +1808
+ Misses 14295 12387 -1908
- Partials 1431 1531 +100
Continue to review full report at Codecov.
|
timelock-server/versions.lock
Outdated
@@ -1153,12 +1156,6 @@ | |||
"com.netflix.feign:feign-core" | |||
] | |||
}, | |||
"org.mortbay.jetty.alpn:jetty-alpn-agent": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to add this back as a runtime dep
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(or not, already added in the distribution project)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! As discussed offline, would be good to document how exactly the dagger/remoting shading works with feign shading!
This won't actually work because clients often pull in multiple AtlasDB jars, so will have multiple copies of the Feign classes. Also there's a lot of hackery with getting the nebula dependency recommender and the shadow plugin to play nicely with each other. Was hoping not to have to do some surgery on the src/java itself, but looks like we'll have to! The plan going forward is to set up a new atlas-feign project and use that instead. Closing out. 😞 I guess I've learned a fair bit about shadowing and Gradle though! |
(N.B. Please don't delete the branch until the new fix merges.) |
Goals (and why): Shade Feign, so that several internal products (including shopping and blob store) will not explode from dependency conflicts. In the current state this is largely an outline of how I intend to implement this across Feign-using AtlasDB projects.
Implementation Description (bullets):
feign-shading.gradle
plus possibly other dependency rules in projects that already publish shadow jars (atlasdb-cassandra
andatlasdb-config
, most notably).explicitShadow
configuration (be used both at compile time and at runtime in the shadow jar). The Feign dependencies, however, should use thecompile
configuration (they should not be present at runtime in the shadow jar, because they are being shaded away).daggerShadowJar
andremotingShadowJar
basically shade these components, but not Feign.Concerns (what feedback would you like?):
publish-jars.gradle
suggests that it's able to pick the shadow jar if one exists. Publication was a bit funky because of an API break in Shadow in 2.0.0, but looking at my Maven caches after a publishToMavenLocal we do indeed publish the right jars.Where should we start reviewing?:
feign-shading.gradle
Priority (whenever / two weeks / yesterday): ASAP; is a release-blocker.
This change is