We have a custom User Defined Function that extends UDF - I'll admit some ignorance, as I inherited this code, but UDF is a class that comes from hive-exec, so it doesn't seem true that hive-exec is not intended for external usage. That having been said, my original question is why there are classes from commons-lang that are simply duplicated in the code base. This is bad form at best, but causes class collisions and thus duplicate class warnings.
On Mon, Mar 25, 2013 at 2:48 PM, Owen O'Malley <omal...@apache.org> wrote: > Hive-exec isn't meant for external usage. It is the bundled jar of Hive's > runtime dependencies that are required for Hive's MapReduce tasks. It > consists of : > > hive-common > hive-ql > hive-serde > hive-shims > thrift > commons-lang > json > avro > avro-mapred > java-ewah > javolution > protobuf-java > > -- Owen > > > On Mon, Mar 25, 2013 at 11:42 AM, Dave Winterbourne < > dave.winterbou...@gmail.com> wrote: > > > I have been working on eliminating duplicate class warnings in my maven > > build, and in the end discovered that there are two classes from apache > > commons-lang that are bundled with hive-exec: > > > > jar tf hive-0.10.0-bin//lib/hive-exec-0.10.0.jar | grep > > org/apache/commons/lang/ > > org/apache/commons/lang/ > > org/apache/commons/lang/StringUtils.class > > org/apache/commons/lang/WordUtils.class > > > > Why are these classes bundled with hive as opposed to just using > > commons-lang? If there truly is a need for custom functionality, why not > > put it in a different class to avoid this collision? > > >