Instrumentation for redisson 3.17.2 - #6096
Conversation
| versions.set("[3.17.2,)") | ||
| } |
There was a problem hiding this comment.
can you add assertInverse and cross-test against the earlier instrumentation?
I'm wondering if the version split will be cleaner at 3.16.8
There was a problem hiding this comment.
I initially used 3.16.8 and decided to go with 3.17.2 because testing for org.redisson.misc.RPromise seemed better than using an arbitrary class. assertInverse is problematic, apparently it is hard to distinguish 3.x from earlier versions. If I didn't mess anything up then 3.0.0 and 2.5.0 contain exactly the same classes, even all the inner class names match.
Our current approach of detecting version based on the presence or absence of some class resources is slightly flawed. It fails when a child class loader has a different version of the library than what the parent class loader has or if multiple versions of the same library are present in the same class loader.
There was a problem hiding this comment.
I initially used 3.16.8 and decided to go with 3.17.2 because testing for
org.redisson.misc.RPromiseseemed better than using an arbitrary class
I almost find using RPromise more confusing because it was really dropped from our instrumentation in 3.16.8
how about breaking it on 3.17.0 (which would be a bonus to avoid breaking it on patch version)? looks like RFunction might be a good option for that detection: https://github.com/redisson/redisson/releases/tag/redisson-3.17.0
assertInverseis problematic, apparently it is hard to distinguish 3.x from earlier versions
we could add it to the 3.17 instrumentation module though?
There was a problem hiding this comment.
Agreed, 3.17 is the most reasonable option. Thanks for tracking down RFunction.
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
No description provided.