Re: Guava

2014-11-10 Thread Colin McCabe
I'm usually an advocate for getting rid of unnecessary dependencies (cough, jetty, cough), but a lot of the things in Guava are really useful. Immutable collections, BiMap, Multisets, Arrays#asList, the stuff for writing hashCode() and equals(), String#Joiner, the list goes on. We particularly us

Re: Guava

2014-11-10 Thread Sangjin Lee
FYI, we have an existing ApplicationClassLoader implementation that is used to isolate client/task classes from the rest. If we're going down the route of classloader isolation on this, it would be good to come up with a coherent strategy regarding both of these. As a more practical step, I like t

Re: Guava

2014-11-10 Thread Alejandro Abdelnur
IMO we should: 1* have a clean and thin client API JAR (which does not drag any 3rd party dependencies, or a well defined small set -i.e. slf4j & log4j-) 2* have a client implementation that uses a classloader to isolate client impl 3rd party deps from app dependencies. #2 can be done using a sto

Re: Guava

2014-11-10 Thread Steve Loughran
Yes, Guava is a constant pain; there's lots of open JIRAs related to it, as its the one we can't seamlessly upgrade. Not unless we do our own fork and reinsert the missing classes. The most common uses in the code are @VisibleForTesting (easily replicated) and the Precondition.check() operations

Re: Guava

2014-11-09 Thread Haohui Mai
Guava did make the lives of Hadoop development easier in many cases -- What I've been consistently hearing is that the version of Guava used is Hadoop is so old that it starts to hurt the application developers. I appreciate the value of Guava -- things like CacheMap are fairly difficult to implem