#   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 Hive
# and components.
#
# It drives Ivy, the generation of a maven POM, and the generation of Eclipse
# project configuration files.

# These are the versions of our dependencies (in alphabetical order)
apacheant.version=1.8.4
ant-contrib.version=1.0b3
ant-task.version=2.0.10
antlr.version=3.4
antlr-runtime.version=3.4
avro.version=1.7.1
datanucleus-api-jdo.version=3.2.1
datanucleus-core.version=3.2.2
datanucleus-rdbms.version=3.2.1
checkstyle.version=5.0
findbugs.version=1.3.9
BoneCP.version=0.7.1.RELEASE
commons-cli.version=1.2
commons-codec.version=1.4
commons-collections.version=3.2.1
commons-compress.version=1.4.1
commons-configuration.version=1.6
commons-httpclient.version=3.0.1
commons-io.version=2.4
commons-lang.version=2.4
commons-logging.version=1.1.1
commons-logging-api.version=1.0.4
commons-pool.version=1.5.4
derby.version=10.4.2.0
guava.version=11.0.2
groovy.version=2.1.6
hbase.version=0.94.6.1
httpclient.version=4.1.3
httpcore.version=4.1.3
jackson.version=1.8.8
javaewah.version=0.3.2
jdo-api.version=3.0.1
jdom.version=1.1
jetty.version=6.1.26
jline.version=0.9.94
json.version=20090211
junit.version=4.10
kryo.version=2.22
libfb303.version=0.9.0
libthrift.version=0.9.0
log4j.version=1.2.16
maven-ant-tasks.version=2.1.0
mockito-all.version=1.8.2
protobuf.version=2.5.0
rat.version=0.8
slf4j-api.version=1.6.1
slf4j-log4j12.version=1.6.1
ST4.version=4.0.4
tempus-fugit.version=1.1
snappy.version=0.2
velocity.version=1.5
metrics-core.version=2.1.2
zookeeper.version=3.4.3
javolution.version=5.5.1
mina.version=2.0.0-M5
