chore: create separate BOM for dependencies used in tests

Moving test versions for testing dependencies to a separate BOM
would make it slightly easier for the consumers to work with regular JMeter dependencies.

In other words, JMeter should not require a specific JUnit 5 version,
so JUnit5 should not be a part of the regular dependencies.
This commit is contained in:
Vladimir Sitnikov 2023-04-28 19:59:34 +03:00
parent dba4383af6
commit d50c11e8ec
5 changed files with 57 additions and 12 deletions

View File

@ -45,6 +45,9 @@ dependencies {
findProject(":src:bom")?.let {
api(platform(it))
}
findProject(":src:bom-testing")?.let{
testImplementation(platform(it))
}
findProject(":src:bom-thirdparty")?.let{
api(platform(it))
}

View File

@ -46,6 +46,7 @@ includeBuild("build-logic")
include(
"src:bom",
"src:bom-testing",
"src:bom-thirdparty",
"src:bshclient",
"src:launcher",

View File

@ -0,0 +1,51 @@
/*
* 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.
*/
plugins {
id("build-logic.java-published-platform")
}
description = "A collection of versions of third-party libraries used for testing purposes by Apache JMeter"
javaPlatform {
allowDependencies()
}
dependencies {
api(platform("org.junit:junit-bom:5.9.3"))
constraints {
// api means "the dependency is for both compilation and runtime"
// runtime means "the dependency is only for runtime, not for compilation"
// In other words, marking dependency as "runtime" would avoid accidental
// dependency on it during compilation
// Note: if there's at least single chance for the dependency to be needed on the
// compilation classpath (e.g. it is used as a transitive by a third-party library)
// then it should be declared as "api" here since we use useCompileClasspathVersions
// to make runtime classpath consistent with the compile one.
api("com.github.tomakehurst:wiremock-jre8:2.32.0")
api("junit:junit:4.13.2")
api("nl.jqno.equalsverifier:equalsverifier:3.14.1")
api("org.hamcrest:hamcrest:2.2")
api("org.hamcrest:hamcrest-core:2.2")
api("org.hamcrest:hamcrest-library:2.2")
api("org.objenesis:objenesis:3.3")
api("org.spockframework:spock-core:2.2-groovy-3.0")
}
}

View File

@ -38,7 +38,6 @@ dependencies {
// compilation classpath (e.g. it is used as a transitive by a third-party library)
// then it should be declared as "api" here since we use useCompileClasspathVersions
// to make runtime classpath consistent with the compile one.
api("org.apache.tika:tika-parsers:1.28.5")
api("org.ow2.asm:asm:9.5")
// activemq-all should not be used as it provides secondary slf4j binding
@ -56,7 +55,6 @@ dependencies {
api("com.fifesoft:rsyntaxtextarea:3.2.0")
api("com.formdev:svgSalamander:1.1.2.4")
api("com.github.ben-manes.caffeine:caffeine:2.9.3")
api("com.github.tomakehurst:wiremock-jre8:2.32.0")
api("com.github.weisj:darklaf-core:2.7.3")
api("com.github.weisj:darklaf-theme:2.7.3")
api("com.github.weisj:darklaf-property-loader:2.7.3")
@ -84,14 +82,10 @@ dependencies {
api("org.jetbrains:annotations:23.0.0")
api("org.jetbrains.lets-plot:lets-plot-batik:3.1.0")
api("org.jetbrains.lets-plot:lets-plot-kotlin-jvm:4.3.0")
api("org.junit.jupiter:junit-jupiter:5.9.3")
api("org.junit.jupiter:junit-jupiter-api:5.9.3")
api("org.junit.jupiter:junit-jupiter-params:5.9.3")
api("net.minidev:accessors-smart:2.4.8")
api("net.minidev:json-smart:2.4.8")
api("net.sf.jtidy:jtidy:r938")
api("net.sf.saxon:Saxon-HE:11.3")
api("nl.jqno.equalsverifier:equalsverifier:3.14.1")
api("org.apache-extras.beanshell:bsh:2.0b6")
api("org.apache.commons:commons-collections4:4.4")
api("org.apache.commons:commons-dbcp2:2.9.0")
@ -116,6 +110,7 @@ dependencies {
api("org.apache.mina:mina-core:2.1.6")
api("org.apache.rat:apache-rat:0.15")
api("org.apache.tika:tika-core:1.28.5")
api("org.apache.tika:tika-parsers:1.28.5")
api("org.apache.velocity:velocity:1.7")
api("org.apache.xmlgraphics:xmlgraphics-commons:2.7")
api("org.apiguardian:apiguardian-api:1.1.2")
@ -125,9 +120,6 @@ dependencies {
api("org.brotli:dec:0.1.2")
api("org.exparity:hamcrest-date:2.0.8")
api("org.freemarker:freemarker:2.3.32")
api("org.hamcrest:hamcrest:2.2")
api("org.hamcrest:hamcrest-core:2.2")
api("org.hamcrest:hamcrest-library:2.2")
api("org.hsqldb:hsqldb:2.5.2")
api("org.jdom:jdom:1.1.3")
api("org.jodd:jodd-core:5.0.13")
@ -138,16 +130,13 @@ dependencies {
api("org.mongodb:mongo-java-driver:2.11.3")
api("org.mozilla:rhino:1.7.14")
api("org.neo4j.driver:neo4j-java-driver:4.4.6")
api("org.objenesis:objenesis:3.3")
api("org.slf4j:jcl-over-slf4j:1.7.36")
api("org.slf4j:slf4j-api:1.7.36")
api("org.spockframework:spock-core:2.2-groovy-3.0")
api("oro:oro:2.0.8")
api("xalan:serializer:2.7.2")
api("xalan:xalan:2.7.2")
api("xerces:xercesImpl:2.12.2")
api("xml-apis:xml-apis:1.4.01")
api("xmlpull:xmlpull:1.1.3.1")
api("xpp3:xpp3_min:1.1.4c")
}
}

View File

@ -21,6 +21,7 @@ plugins {
}
dependencies {
api(platform(projects.src.bomTesting))
api("com.github.tomakehurst:wiremock-jre8")
api("org.junit.jupiter:junit-jupiter-api")
}