# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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.

# Dependency versions
activation.version = 1.1.1
annotations.version = 3.0.0
antlr.version = 2.7.7
asm.version = 5.1
assertj-core.version = 3.4.1
awaitility.version = 1.7.0
bcel.version = 5.2
catch-exception.version = 1.4.4
catch-throwable.version = 1.4.4
cdi-api.version = 1.2
cglib.version = 3.2.2
classmate.version = 0.9.0
commons-collections.version = 3.2.2
commons-configuration.version = 1.6
commons-fileupload.version = 1.3.1
commons-io.version = 2.3
commons-lang.version = 2.5
commons-logging.version = 1.1.1
commons-modeler.version = 2.0
commons-beanutils.version = 1.8.0
commons-digester.version=2.1
commons-exec.version=1.3
derby.version = 10.2.2.0
dom4j.version = 1.6.1
fastutil.version = 7.0.2
google-gson.version=2.3.1
guava.version = 15.0
hadoop.version = 2.4.1
hamcrest-all.version = 1.3
hbase.version = 0.94.27
hibernate.version = 3.5.5-Final
hibernate-commons-annotations.version = 3.2.0.Final
httpclient.version = 4.5.1
httpcore.version = 4.4.3
httpunit.version = 1.7.2
hsqldb.version = 2.0.0
jackson.version = 2.8.2
jackson-module-scala_2.10.version = 2.8.2
jansi.version = 1.8
javassist.version = 3.20.0-GA
javax.ejb-api.version = 3.0
javax.jsr250-api.version = 1.0
javax.mail-api.version = 1.4.5
javax.persistence-api.version = 2.0.0
javax.resource-api.version = 1.7
javax.servlet-api.version = 3.1.0
javax.transaction-api.version = 1.2
jedis.version = 2.7.2
jetty.version = 9.3.6.v20151106
jgroups.version = 3.6.10.Final
jline.version = 2.12
jmock.version = 2.8.2
jna.version = 4.0.0
jopt-simple.version = 5.0.1
json-path.version = 1.2.0
json4s.version = 3.2.4
jsr305.version = 3.0.1
junit.version = 4.12
JUnitParams.version = 1.0.5
log4j.version = 2.6.1
lucene.version = 6.0.0
mockito-core.version = 1.10.19
mockrunner.version = 1.0.8
mortbay-jetty-servlet-api.version=2.5-20081211
multithreadedtc.version = 1.01
mx4j.version = 3.0.1
mx4j-remote.version = 3.0.1
mx4j-tools.version = 3.0.1
netty-all.version = 4.0.4.Final
paranamer.version = 2.3
powermock.version = 1.6.4
quartz.version = 2.2.1
scala.version = 2.10.0
selenium.version=2.53.1
shiro.version=1.3.1
slf4j-api.version = 1.7.21
snappy-java.version=0.4
spring-hateoas.version = 0.21.0.RELEASE
spring-shell.version = 1.2.0.RELEASE
spring-ldap-core.version = 2.1.0.RELEASE
spring-security.version = 4.1.3.RELEASE
spring-tx.version = 4.3.2.RELEASE
springframework.version = 4.3.2.RELEASE
stephenc-findbugs.version = 1.3.9-1
spymemcached.version = 2.9.0
swagger.version = 1.3.2
swagger-springmvc.version = 0.8.2
system-rules.version = 1.16.0
tempus-fugit.version = 1.1
tomcat6.version = 6.0.37
tomcat7.version = 7.0.70
tomcat8.version = 8.5.4
