[ https://issues.apache.org/jira/browse/HIVE-487?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12734795#action_12734795 ]
Todd Lipcon commented on HIVE-487: ---------------------------------- bq. @Todd - Where were you a few weeks ago? Chillin' over on the HADOOP jira ;-) We're gearing up for release of our distribution that includes Hadoop 0.20.0, so just started watching this one more carefully. bq. The jars are upstream in Hadoop core. I did not look into this closely but the talk about 'Sealing exceptions' above led me to believe I should not try this. Sorry, what I meant here is that the hive tarball would include lib/hive-0.4.0.jar, lib/jetty-shims/hive-jetty-shim-v6.jar and lib/jetty-shims/hive-jetty-shim-v5.jar In those jars we'd have two different implementations of the shim. The hive wrapper script would then do something like: {code} HADOOP_JAR=$HADOOP_HOME/hadoop*core*jar if [[ $HADOOP_JAR =~ 0.1[789] ]]; then JETTY_SHIM=lib/jetty-shims/jetty-shim-v5.jar else JETTY_SHIM=lib/jetty-shims/jetty-shim-v6.jar fi CLASSPATH=$CLASSPATH:$JETTY_SHIM {code} To generate the shim jars at compile time, we'd compile two different JettyShim.java files - one against the v5 API, and one against the v6 API. As for eclipse properly completing/warning for the right versions for the right files, I haven't the foggiest idea. But I am pretty sure it's not going to warn if your reflective calls are broken either ;-) bq. My only concern is will the ant process cooperate? I don't see why not - my example build here is just to show how it works in a self contained way. The stuff inside v1-classes and v2-classes in the example are the equivalent of the two jetty jar versions - we don't have to compile them. The only code that has to compile is DynamicProxy.java which is completely normal code. bq. If you/we can tackle the ant/eclipse issues I would be happy to use the 'Dynamic Proxy', but maybe we tackle it in a different Jira because this is a pretty big blocker and I am sure many people want to see this in the trunk. As for committing now and not worrying, that sounds pretty reasonable, as long as there's some kind of deprecation timeline set out. (e.g "in Hive 0.5.0 we will drop support for versions of Hadoop that use Jetty v5" or whatever). As someone who isn't a major Hive contributor, I'll defer to you guys completely -- I just wanted to throw the idea up on the JIRA. > Hive does not compile with Hadoop 0.20.0 > ---------------------------------------- > > Key: HIVE-487 > URL: https://issues.apache.org/jira/browse/HIVE-487 > Project: Hadoop Hive > Issue Type: Bug > Affects Versions: 0.3.0 > Reporter: Aaron Kimball > Assignee: Justin Lynn > Fix For: 0.4.0 > > Attachments: dynamic-proxy.tar.gz, HIVE-487-2.patch, > hive-487-jetty-2.diff, hive-487-jetty.patch, hive-487.3.patch, > hive-487.4.patch, HIVE-487.patch, jetty-patch.patch, junit-patch1.html > > > Attempting to compile Hive with Hadoop 0.20.0 fails: > aa...@jargon:~/src/ext/svn/hive-0.3.0$ ant -Dhadoop.version=0.20.0 package > (several lines elided) > compile: > [echo] Compiling: hive > [javac] Compiling 261 source files to > /home/aaron/src/ext/svn/hive-0.3.0/build/ql/classes > [javac] > /home/aaron/src/ext/svn/hive-0.3.0/build/ql/java/org/apache/hadoop/hive/ql/exec/ExecDriver.java:94: > cannot find symbol > [javac] symbol : method getCommandLineConfig() > [javac] location: class org.apache.hadoop.mapred.JobClient > [javac] Configuration commandConf = > JobClient.getCommandLineConfig(); > [javac] ^ > [javac] > /home/aaron/src/ext/svn/hive-0.3.0/build/ql/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java:241: > cannot find symbol > [javac] symbol : method validateInput(org.apache.hadoop.mapred.JobConf) > [javac] location: interface org.apache.hadoop.mapred.InputFormat > [javac] inputFormat.validateInput(newjob); > [javac] ^ > [javac] Note: Some input files use or override a deprecated API. > [javac] Note: Recompile with -Xlint:deprecation for details. > [javac] Note: Some input files use unchecked or unsafe operations. > [javac] Note: Recompile with -Xlint:unchecked for details. > [javac] 2 errors > BUILD FAILED > /home/aaron/src/ext/svn/hive-0.3.0/build.xml:145: The following error > occurred while executing this line: > /home/aaron/src/ext/svn/hive-0.3.0/ql/build.xml:135: Compile failed; see the > compiler error output for details. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.