#   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.

#  **** External jars (not built as part of JMeter) and needed for build/release ****

# N.B.
#    When updating this file, please also update the versions in
#    - res/maven/ApacheJMeter_parent.pom
#    - eclipse.classpath
#    - licenses/ - file name and contents
#    - xdocs/changes.xml
#
#    Also, please update the lib/ directory ignore list
#    [Please don't use wild-card versions, because that makes it harder to detect obsolete jars]

# property name conventions:
#
# xxx.jar - name of the jar as used in JMeter
#
# The following properties are used to download the jars if necessary.
#
# xxx.loc - example location where the jar or zip can be found (omit trailing /)
# xxx.md5 - MD5 hash of the jar (used to check downloads)
#
# xxx.zip - name of zip file (if the jar is not available as an independent download)
# xxx.ent - the jar entry name in Zip file

# Note that all the jars (apart from velocity and the Geronimo API jars)
# are contained in the JMeter binary release.

maven2.repo                 = https://repo1.maven.org/maven2

accessors-smart.version     = 1.1
accessors-smart.jar         = accessors-smart-${accessors-smart.version}.jar
accessors-smart.loc         = ${maven2.repo}/net/minidev/accessors-smart/${accessors-smart.version}
accessors-smart.md5         = b75cda0d7dadff9e6c20f4e7f3c3bc82

apache-bsf.version          = 2.4.0
apache-bsf.jar              = bsf-${apache-bsf.version}.jar
apache-bsf.loc              = ${maven2.repo}/bsf/bsf/${apache-bsf.version}
apache-bsf.md5              = 16e82d858c648962fb5c959f21959039

asm.version                 = 5.1
asm.jar                     = asm-${asm.version}.jar
asm.loc                     = ${maven2.repo}/org/ow2/asm/asm/${asm.version}
asm.md5                     = 3770466405f163d6616b65c32e16a3cd

avalon-framework.version    = 4.1.4
avalon-framework.jar        = avalon-framework-${avalon-framework.version}.jar
avalon-framework.loc        = ${maven2.repo}/avalon-framework/avalon-framework/${avalon-framework.version}
avalon-framework.md5        = 2C5306A09B22BD06A78343C0B55D021F

beanshell.version           = 2.0b5
beanshell.jar               = bsh-${beanshell.version}.jar
beanshell.loc               = ${maven2.repo}/org/beanshell/bsh/${beanshell.version}
beanshell.md5               = 02F72336919D06A8491E82346E10B4D5

# Bouncy Castle jars (compile and test only - not distributed)
# Currently only needed for SMIMEAssertion
# N.B. hashes should be obtained from the page: http://www.bouncycastle.org/checksums.html
bcmail.version              = 1.49
bcmail.jar                  = bcmail-jdk15on-${bcmail.version}.jar
bcmail.loc                  = ${maven2.repo}/org/bouncycastle/bcmail-jdk15on/${bcmail.version}
bcmail.md5                  = 25686fe5c9fc984ee7c63b8e1a3f6509

bcprov.version              = 1.49
bcprov.jar                  = bcprov-jdk15on-${bcprov.version}.jar
bcprov.loc                  = ${maven2.repo}/org/bouncycastle/bcprov-jdk15on/${bcprov.version}
bcprov.md5                  = 20f367d41a546f2c844314da5d97ea12

bcpkix.version              = 1.49
bcpkix.jar                  = bcpkix-jdk15on-${bcprov.version}.jar
bcpkix.loc                  = ${maven2.repo}/org/bouncycastle/bcpkix-jdk15on/${bcprov.version}
bcpkix.md5                  = cb025ef84fb991e14fdf62f6bef7be53

commons-codec.version       = 1.10
commons-codec.jar           = commons-codec-${commons-codec.version}.jar
commons-codec.loc           = ${maven2.repo}/commons-codec/commons-codec/${commons-codec.version}
commons-codec.md5           = 353cf6a2bdba09595ccfa073b78c7fcb

commons-collections.version = 3.2.2
commons-collections.jar     = commons-collections-${commons-collections.version}.jar
commons-collections.loc     = ${maven2.repo}/commons-collections/commons-collections/${commons-collections.version}
commons-collections.md5     = f54a8510f834a1a57166970bfc982e94

commons-dbcp2.version       = 2.1.1
commons-dbcp2.jar           = commons-dbcp2-${commons-dbcp2.version}.jar
commons-dbcp2.loc           = ${maven2.repo}/org/apache/commons/commons-dbcp2/${commons-dbcp2.version}
commons-dbcp2.md5           = 298897b1e785b933b0522351871cf7ae

commons-httpclient.version  = 3.1
commons-httpclient.jar      = commons-httpclient-${commons-httpclient.version}.jar
commons-httpclient.loc      = ${maven2.repo}/commons-httpclient/commons-httpclient/${commons-httpclient.version}
commons-httpclient.md5      = 8AD8C9229EF2D59AB9F59F7050E846A5

commons-io.version          = 2.4
commons-io.jar              = commons-io-${commons-io.version}.jar
commons-io.loc              = ${maven2.repo}/commons-io/commons-io/${commons-io.version}
commons-io.md5              = 7f97854dc04c119d461fed14f5d8bb96

commons-jexl.version        = 1.1
commons-jexl.jar            = commons-jexl-${commons-jexl.version}.jar
commons-jexl.loc            = ${maven2.repo}/commons-jexl/commons-jexl/${commons-jexl.version}
commons-jexl.md5            = 3F7735D20FCE1DBE05F62FF7A7B178DC

commons-jexl2.version       = 2.1.1
commons-jexl2.jar           = commons-jexl-${commons-jexl2.version}.jar
commons-jexl2.loc           = ${maven2.repo}/org/apache/commons/commons-jexl/${commons-jexl2.version}
commons-jexl2.md5           = 4ad8f5c161dd3a50e190334555675db9

commons-jexl3.version       = 3.0
commons-jexl3.jar           = commons-jexl3-${commons-jexl3.version}.jar
commons-jexl3.loc           = ${maven2.repo}/org/apache/commons/commons-jexl3/${commons-jexl3.version}
commons-jexl3.md5           = 81041b5b058a2ccff0046386bc7e23f8

commons-lang3.version       = 3.4
commons-lang3.jar           = commons-lang3-${commons-lang3.version}.jar
commons-lang3.loc           = ${maven2.repo}/org/apache/commons/commons-lang3/${commons-lang3.version}
commons-lang3.md5           = 8667a442ee77e509fbe8176b94726eb2

commons-logging.version     = 1.2
commons-logging.jar         = commons-logging-${commons-logging.version}.jar
commons-logging.loc         = ${maven2.repo}/commons-logging/commons-logging/${commons-logging.version}
# Checksum from binary release and Maven differ, but contents of jar are identical
#commons-logging.md5         = E2C390FE739B2550A218262B28F290CE
commons-logging.md5         = 040b4b4d8eac886f6b4a2a3bd2f31b00

commons-math3.version         = 3.6.1
commons-math3.jar             = commons-math3-${commons-math3.version}.jar
commons-math3.loc             = ${maven2.repo}/org/apache/commons/commons-math3/${commons-math3.version}
commons-math3.md5             = 5b730d97e4e6368069de1983937c508e

commons-net.version         = 3.4
commons-net.jar             = commons-net-${commons-net.version}.jar
commons-net.loc             = ${maven2.repo}/commons-net/commons-net/${commons-net.version}
commons-net.md5             = afb89b9e27d1cf972c7235683c681d81

commons-pool2.version         = 2.4.2
commons-pool2.jar             = commons-pool2-${commons-pool2.version}.jar
commons-pool2.loc             = ${maven2.repo}/org/apache/commons/commons-pool2/${commons-pool2.version}
commons-pool2.md5             = 62727a85e2e1bf6a756f5571d19cc71c

# dnsjava for DNSCacheManager (http://www.dnsjava.org/ BSD license)
dnsjava.version             = 2.1.7
dnsjava.jar                 = dnsjava-${dnsjava.version}.jar
dnsjava.loc                 = ${maven2.repo}/dnsjava/dnsjava/${dnsjava.version}
dnsjava.md5                 = 11363bd58696feae207a992da2ce7a90

excalibur-logger.version    = 1.1
excalibur-logger.jar        = excalibur-logger-${excalibur-logger.version}.jar
excalibur-logger.loc        = ${maven2.repo}/excalibur-logger/excalibur-logger/${excalibur-logger.version}
excalibur-logger.md5        = E8246C546B7B0CAFD65947E9B80BB884

# Freemarker
freemarker.version          = 2.3.23
freemarker.loc               = ${maven2.repo}/org/freemarker/freemarker/${freemarker.version}
freemarker.jar               = freemarker-${freemarker.version}.jar
freemarker.md5               = cbb1cec300ca98eea3c855cf395d4951

# Groovy
groovy-all.version        = 2.4.6
groovy-all.loc            = ${maven2.repo}/org/codehaus/groovy/groovy-all/${groovy-all.version}
groovy-all.jar            = groovy-all-${groovy-all.version}.jar
groovy-all.md5            = 6e5ccee6c126ae6a920f496ec8d72dc6

# hamcrest-core
hamcrest-core.version        = 1.3
hamcrest-core.loc            = ${maven2.repo}/org/hamcrest/hamcrest-core/${hamcrest-core.version}
hamcrest-core.jar            = hamcrest-core-${hamcrest-core.version}.jar
hamcrest-core.md5            = 6393363b47ddcbba82321110c3e07519

# Apache HttpClient 4.x
httpclient.version          = 4.5.2
#
httpclient.jar              = httpclient-${httpclient.version}.jar
httpclient.loc              = ${maven2.repo}/org/apache/httpcomponents/httpclient/${httpclient.version}
httpclient.md5              = e0a45df625cb96b69505e59bb25a0189

# Required for HttpClient
httpmime.jar                = httpmime-${httpclient.version}.jar
httpmime.loc                = ${maven2.repo}/org/apache/httpcomponents/httpmime/${httpclient.version}
httpmime.md5                = 336fa980f7527be719fa997f5df8046f

# Required for HttpClient
httpcore.version            = 4.4.4
httpcore.jar                = httpcore-${httpcore.version}.jar
httpcore.loc                = ${maven2.repo}/org/apache/httpcomponents/httpcore/${httpcore.version}
httpcore.md5                = e7776f2b03a4c62d691a90d3c68c93c0

jakarta-oro.version         = 2.0.8
jakarta-oro.jar             = oro-${jakarta-oro.version}.jar
jakarta-oro.loc             = ${maven2.repo}/oro/oro/${jakarta-oro.version}
jakarta-oro.md5             = 42E940D5D2D822F4DC04C65053E630AB

jcharts.version             = 0.7.5
jcharts.jar                 = jcharts-${jcharts.version}.jar
jcharts.loc                 = ${maven2.repo}/jcharts/jcharts/${jcharts.version}
jcharts.md5                 = 13927D8077C991E7EBCD8CB284746A7A

rhino.version               = 1.7.7.1
rhino.jar                   = rhino-${rhino.version}.jar
rhino.loc                   = ${maven2.repo}/org/mozilla/rhino/${rhino.version}
rhino.md5                   = 5fc9c6b622cf1f669d00a3792db717e7

jodd-core.version           = 3.6.7
jodd-core.jar               = jodd-core-${jodd-core.version}.jar
jodd-core.loc               = ${maven2.repo}/org/jodd/jodd-core/${jodd-core.version}
jodd-core.md5               = 5f5a6f352bcbd27db047787f64b7d681

jodd-lagarto.version        = 3.6.7
jodd-lagarto.jar            = jodd-lagarto-${jodd-lagarto.version}.jar
jodd-lagarto.loc            = ${maven2.repo}/org/jodd/jodd-lagarto/${jodd-lagarto.version}
jodd-lagarto.md5            = c8c460ba54c73eabe752639f7b770c23

jodd-log.version            = 3.6.7
jodd-log.jar                = jodd-log-${jodd-log.version}.jar
jodd-log.loc                = ${maven2.repo}/org/jodd/jodd-log/${jodd-log.version}
jodd-log.md5                = f9f96f41a2950873276194b84c4efe06

jodd-props.version          = 3.6.7
jodd-props.jar              = jodd-props-${jodd-props.version}.jar
jodd-props.loc              = ${maven2.repo}/org/jodd/jodd-props/${jodd-props.version}
jodd-props.md5              = 11eaa04967debd7507fc3d6471759482

json-path.version           = 2.2.0
json-path.jar               = json-path-${json-path.version}.jar
json-path.loc               = ${maven2.repo}/com/jayway/jsonpath/json-path/${json-path.version}
json-path.md5               = 98ec1b51b19c21a32845ba3498df6629

json-smart.version          = 2.2.1
json-smart.jar              = json-smart-${json-smart.version}.jar
json-smart.loc              = ${maven2.repo}/net/minidev/json-smart/${json-smart.version}
json-smart.md5              = 4c82c537eb0ba92adad494283711cc11

jsoup.version               = 1.9.2
jsoup.jar                   = jsoup-${jsoup.version}.jar
jsoup.loc                   = ${maven2.repo}/org/jsoup/jsoup/${jsoup.version}
jsoup.md5                   = a8627c801e0d16169ef9ca83cf89861a

junit.version               = 4.12
junit.jar                   = junit-${junit.version}.jar
junit.loc                   = ${maven2.repo}/junit/junit/${junit.version}
junit.md5                   = 5b38c40c97fbd0adee29f91e60405584

logkit.version              = 2.0
logkit.jar                  = logkit-${logkit.version}.jar
logkit.loc                  = ${maven2.repo}/logkit/logkit/${logkit.version}
logkit.md5                  = 8D82A3E91AAE216D0A2A40B837A232FF

mongo-java-driver.version   = 2.11.3
mongo-java-driver.jar       = mongo-java-driver-${mongo-java-driver.version}.jar
mongo-java-driver.loc       = ${maven2.repo}/org/mongodb/mongo-java-driver/${mongo-java-driver.version}
mongo-java-driver.md5       = 90647a53231eb75715fda30759ff4ff7

ph-css.version              = 4.1.4
ph-css.jar                  = ph-css-${ph-css.version}.jar
ph-css.loc                  = ${maven2.repo}/com/helger/ph-css/${ph-css.version}
ph-css.md5                  = efa8de6ffc0f3968fe87adf3ce23ed9b

ph-commons.version          = 6.2.4
ph-commons.jar              = ph-commons-${ph-commons.version}.jar
ph-commons.loc              = ${maven2.repo}/com/helger/ph-commons/${ph-commons.version}
ph-commons.md5              = 344fc45ad36dd7f8ddc98141afad0cfe

rsyntaxtextarea.version     = 2.5.8
rsyntaxtextarea.jar         = rsyntaxtextarea-${rsyntaxtextarea.version}.jar
rsyntaxtextarea.loc         = ${maven2.repo}/com/fifesoft/rsyntaxtextarea/${rsyntaxtextarea.version}
rsyntaxtextarea.md5         = cf6f067aede0f740dc553558639fa05f

slf4j-api.version           = 1.7.13
slf4j-api.jar               = slf4j-api-${slf4j-api.version}.jar
slf4j-api.loc               = ${maven2.repo}/org/slf4j/slf4j-api/${slf4j-api.version}
slf4j-api.md5               = a5168034046d95e07f4aae3f5e2d1c67

jtidy.version               = r938
jtidy.jar                   = jtidy-${jtidy.version}.jar
jtidy.loc                   = ${maven2.repo}/net/sf/jtidy/jtidy/${jtidy.version}
jtidy.md5                   = 6A9121561B8F98C0A8FB9B6E57F50E6B

# Apache Tika to extract text from various documents
tika-core.version           = 1.13
tika-core.jar               = tika-core-${tika-core.version}.jar
tika-core.loc               = ${maven2.repo}/org/apache/tika/tika-core/${tika-core.version}
tika-core.md5               = 74b4e3b970ba2989ebeb9a45857dbe68

tika-parsers.version        = 1.13
tika-parsers.jar            = tika-parsers-${tika-parsers.version}.jar
tika-parsers.loc            = ${maven2.repo}/org/apache/tika/tika-parsers/${tika-parsers.version}
tika-parsers.md5            = 6858c2989b5f19b4b4aed0b9ff83e548

# XStream can be found at: http://x-stream.github.io
xstream.version             = 1.4.8
xstream.jar                 = xstream-${xstream.version}.jar
xstream.loc                 = ${maven2.repo}/com/thoughtworks/xstream/xstream/${xstream.version}
xstream.md5                 = 4551a29c38f22ed25eaf109eda50ff03

# XMLPull is required by XStream 1.4.x
xmlpull.version             = 1.1.3.1
xmlpull.jar                 = xmlpull-${xmlpull.version}.jar
xmlpull.loc                 = ${maven2.repo}/xmlpull/xmlpull/${xmlpull.version}
xmlpull.md5                 = cc57dacc720eca721a50e78934b822d2

xpp3.version                = 1.1.4c
xpp3.jar                    = xpp3_min-${xpp3.version}.jar
xpp3.loc                    = ${maven2.repo}/xpp3/xpp3_min/${xpp3.version}
xpp3.md5                    = DCD95BCB84B09897B2B66D4684C040DA

# Xalan can be found at: http://xml.apache.org/xalan-j/
xalan.version               = 2.7.2
xalan.jar                   = xalan-${xalan.version}.jar
xalan.loc                   = ${maven2.repo}/xalan/xalan/${xalan.version}
xalan.md5                   = 6aa6607802502c8016b676f25f8e4873

serializer.version          = 2.7.2
serializer.jar              = serializer-${serializer.version}.jar
serializer.loc              = ${maven2.repo}/xalan/serializer/${serializer.version}
serializer.md5              = e8325763fd4235f174ab7b72ed815db1

# Xerces can be found at: http://xerces.apache.org/xerces2-j/
xerces.version              = 2.11.0
xerces.jar                  = xercesImpl-${xerces.version}.jar
xerces.loc                  = ${maven2.repo}/xerces/xercesImpl/${xerces.version}
# Checksum from binary release and Maven differ, but contents of jar are identical (apart from EOLs in text files)
#xerces.md5                  = DA09B75B562CA9A8E9A535D2148BE8E4
xerces.md5                  = 43584adc1f895628055bad0aa98a1007

xml-apis.version            = 1.4.01
xml-apis.jar                = xml-apis-${xml-apis.version}.jar
xml-apis.loc                = ${maven2.repo}/xml-apis/xml-apis/${xml-apis.version}
xml-apis.md5                = 7eaad6fea5925cca6c36ee8b3e02ac9d

# Codecs were previously provided by Batik
xmlgraphics-commons.version = 2.0.1
xmlgraphics-commons.jar     = xmlgraphics-commons-${xmlgraphics-commons.version}.jar
xmlgraphics-commons.loc     = ${maven2.repo}/org/apache/xmlgraphics/xmlgraphics-commons/${xmlgraphics-commons.version}
xmlgraphics-commons.md5     = 3e2f94121bc01655e4064a5f1a05a21f

# JavaMail jars (N.B. these are available under CDDL)
javamail.version            = 1.5.0-b01
javamail.jar                = mail-${javamail.version}.jar
javamail.loc                = ${maven2.repo}/javax/mail/mail/${javamail.version}
javamail.md5                = 7b56e34995f7f1cb55d7806b935f90a4

# Geronimo JMS jar
jms.version                 = 1.1.1
jms.jar                     = geronimo-jms_1.1_spec-${jms.version}.jar
jms.loc                     = ${maven2.repo}/org/apache/geronimo/specs/geronimo-jms_1.1_spec/${jms.version}
jms.md5                     = d80ce71285696d36c1add1989b94f084

# The following jars are only needed for source distributions
# They are used for building the documentation
velocity.version            = 1.7
velocity.jar                = velocity-${velocity.version}.jar
velocity.loc                = ${maven2.repo}/org/apache/velocity/velocity/${velocity.version}
velocity.md5                = 3692dd72f8367cb35fb6280dc2916725

# required by Velocity
commons-lang.version        = 2.6
commons-lang.jar            = commons-lang-${commons-lang.version}.jar
commons-lang.loc            = ${maven2.repo}/commons-lang/commons-lang/${commons-lang.version}
commons-lang.md5            = 4d5c1693079575b362edf41500630bbd

# required by anakia
jdom.version                = 1.1.3
jdom.jar                    = jdom-${jdom.version}.jar
jdom.loc                    = ${maven2.repo}/org/jdom/jdom/${jdom.version}
jdom.md5                    = 140bfed13341fe2039eee0f26a16d705

# Optional for use by checkstyle
checkstyle-all.version       = 6.13
checkstyle-all.jar           = checkstyle-${checkstyle-all.version}-all.jar
checkstyle-all.loc           = http://downloads.sourceforge.net/checkstyle/checkstyle/${checkstyle-all.version}/checkstyle-${checkstyle-all.version}-all.jar?ts=${EPOCHSECONDS}&use_mirror=autoselect
checkstyle-all.md5           = ac6e1e81d09bcaf4c0c22181e9bda1d9

# Optional for use by rat
rat.version                  = 0.12
rat.jar                      = apache-rat-${rat.version}.jar
rat.loc                      = ${maven2.repo}/org/apache/rat/apache-rat/${rat.version}
rat.md5                      = f4cc7b4de337e9f250a949467c5e1b42

rat-tasks.jar                = apache-rat-tasks-${rat.version}.jar
rat-tasks.loc                = ${maven2.repo}/org/apache/rat/apache-rat-tasks/${rat.version}
rat-tasks.md5                = 96b699581b4475ed5756a0c24af745e8

