Closed codefromthecrypt closed 11 years ago
refactored route53 to no longer depend on guava. live tests pass.
refactored ultradns to no longer depend on guava. live tests pass.
update android example to not use guava. This brought the install size from 4.3MB down to 1.5MB, and the resident ram from settling at 8MB to between 4 and 6MB on my galaxy S.
refactored dynect to no longer depend on guava. live tests pass.
final commits are in and being live tested now.
utilities added are consolidated here (558 lines, mostly tests) https://github.com/Netflix/denominator/commit/4b8079e137408551ef16f1e0bfabd654ad5771c2
passed
BUILD SUCCESSFUL
Total time: 12 mins 33.533 secs
denominator-pull-requests #265 SUCCESS This pull request looks good
relating to https://groups.google.com/forum/#!topic/denominator-dev/WrGkuZEMikw
This pull request breaks compatibility relating to interfaces that expose guava (ex.
Optional<X>
tonullable X
, and fromMultimap<String, String>
toMap<String, Collection<String>>
). There are two major reasons to permit this:Optional
andMultimap
don't serialize by default in gson, yaml, or jackson. Moving off these types makes serialization a lot easier.Both of these issues relate directly to more adoption of Denominator in Netflix. For example, we'd like to reuse denominator for registration and deregistration of EC2 instances to route53. This implies packaging denominator into the default classpath of our platform. "Denominatrix" is frequently complicated only because denominator uses Multimaps and Optional fields. The additional type-conversion is an unnecessary pain to maintain.
If guava significantly reduced our code complexity, or the structures we used were unmappable without it, I'd suggest we retain it. As you can see from this pull request, at least in core, the codebase is actually smaller and not significantly more or less complex.