# Copyright (C) 2015 The Android Open Source Project
#
# 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.

antlr_runtime = org.antlr:antlr-runtime:3.5.2
asm_all = org.ow2.asm:asm-debug-all:5.0.4
freemarker = org.freemarker:freemarker:2.3.25-incubating
guava = com.google.guava:guava:18.0
java_allocation_intrumenter = com.google.code.java-allocation-instrumenter:java-allocation-instrumenter:3.0.1
jsr305 = com.google.code.findbugs:jsr305:3.0.1
junit = junit:junit:4.12
maths = io.gatling.uncommons.maths:uncommons-maths:1.2.3
watchmaker = org.uncommons.watchmaker:watchmaker-framework:0.7.1

gradle_processors_plugin = gradle.plugin.org.inferred:gradle-processors:1.2.5
jarjar_plugin = org.anarres.jarjar:jarjar-gradle:1.0.0
shadow_plugin = com.github.jengelman.gradle.plugins:shadow:1.2.4
