Netflix / denominator

Portably control DNS clouds using java or bash
Apache License 2.0
580 stars 110 forks source link

No guava #196

Closed codefromthecrypt closed 11 years ago

codefromthecrypt commented 11 years ago

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> to nullable X, and from Multimap<String, String> to Map<String, Collection<String>>). There are two major reasons to permit this:

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.

codefromthecrypt commented 11 years ago

refactored route53 to no longer depend on guava. live tests pass.

codefromthecrypt commented 11 years ago

refactored ultradns to no longer depend on guava. live tests pass.

codefromthecrypt commented 11 years ago

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.

codefromthecrypt commented 11 years ago

refactored dynect to no longer depend on guava. live tests pass.

codefromthecrypt commented 11 years ago

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

codefromthecrypt commented 11 years ago

passed

BUILD SUCCESSFUL

Total time: 12 mins 33.533 secs
cloudbees-pull-request-builder commented 11 years ago

denominator-pull-requests #265 SUCCESS This pull request looks good