#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.

#This properties file lists the versions of the various artifacts used by pig and components.
#It drives ivy and the generation of a maven POM

#These are the versions of our dependencies (in alphabetical order)
apacheant.version=1.7.1
avro.version=1.5.3
commons-beanutils.version=1.7.0
commons-cli.version=1.0
commons-codec.version=1.4
commons-io.version=2.3
commons-el.version=1.0
commons-logging.version=1.1.1
commons-lang.version=2.4
commons-configuration.version=1.6
commons-httpclient.version=3.1
commons-collections.version=3.2.1
commons-httpclient.version=3.1
xmlenc.version=0.52
jersey.version=1.8
checkstyle.version=4.2
ivy.version=2.2.0
jasper.version=6.1.14
guava.version=11.0
jersey-core.version=1.8
hadoop-core.version=1.0.0
hadoop-test.version=1.0.0
hadoop-common.version=2.0.0-alpha
hadoop-hdfs.version=2.0.0-alpha
hadoop-mapreduce.version=2.0.0-alpha
hbase.version=0.90.0
hsqldb.version=1.8.0.10
hive.version=0.8.0
jackson.version=1.8.8
javacc.version=4.2
javax-inject.version=1
jaxb-api.version=2.2.2
jaxb-impl.version=2.2.3-1
jdeb.version=0.8
jdiff.version=1.0.9
jetty.version=6.1.26
jetty-util.version=6.1.26
jline.version=0.9.94
joda-time.version=1.6
jsch.version=0.1.38
json-simple.version=1.1
junit.version=4.5
jruby.version=1.6.7
jython.version=2.5.0
rhino.version=1.7R2
antlr.version=3.4
stringtemplate.version=4.0.4
log4j.version=1.2.16
netty.version=3.2.2
rats-lib.version=0.5.1
slf4j-api.version=1.6.1
slf4j-log4j12.version=1.6.1
xerces.version=1.4.4
wagon-http.version=1.0-beta-2
zookeeper.version=3.3.3
servlet.version=4.0.6
servlet-api.version=2.5
protobuf-java.version=2.4.0a
guice.version=3.0
guice-servlet.version=3.0
aopalliance.version=1.0
jsr311-api.version=1.1.1
