#   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
apacherat.version=0.8
automaton.version=1.11-8
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-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
groovy.version=1.8.6
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
httpcomponents.version=4.1
jackson.version=1.8.8
jackson-pig-3039-test.version=1.9.9
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.11
jruby.version=1.6.7
jython.version=2.5.3
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=2.10.0
xalan.version=2.7.1
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
mockito.version=1.8.4
jansi.version=1.9