# This file is shared currently between this Gradle build and the
# Ant builds for fd303 and JavaScript. Keep the dotted notation for
# the properties to minimize the changes in the dependencies.
thrift.version=0.12.0
thrift.groupid=org.apache.thrift
release=true

# Local Install paths
install.path=/usr/local/lib
install.javadoc.path=/usr/local/lib

# Test execution properties
testPort=9090

# Test with Clover Code coverage (disabled by default)
cloverEnabled=false

# Maven dependency download locations
mvn.repo=http://repo1.maven.org/maven2
apache.repo=https://repository.apache.org/content/repositories/releases

# Apache Maven publish
license=http://www.apache.org/licenses/LICENSE-2.0.txt
maven-repository-url=https://repository.apache.org/service/local/staging/deploy/maven2
maven-repository-id=apache.releases.https

# Dependency versions
httpclient.version=4.4.1
httpcore.version=4.4.1
slf4j.version=1.7.12
servlet.version=2.5
junit.version=4.12
mockito.version=1.9.5
