Files
spring-cloud-app-broker/build.gradle
dependabot[bot] 4b045755d5 (2.1.x): Bump org.wiremock:wiremock-standalone from 3.11.0 to 3.13.0
Bumps [org.wiremock:wiremock-standalone](https://github.com/wiremock/wiremock) from 3.11.0 to 3.13.0.
- [Release notes](https://github.com/wiremock/wiremock/releases)
- [Commits](https://github.com/wiremock/wiremock/compare/3.11.0...3.13.0)

---
updated-dependencies:
- dependency-name: org.wiremock:wiremock-standalone
  dependency-version: 3.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-30 10:24:47 -04:00

437 lines
11 KiB
Groovy

import java.util.concurrent.ConcurrentHashMap
/*
* Copyright 2002-2020 the original author or authors.
*
* 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
*
* https://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.
*/
buildscript {
ext {
blockHoundVersion = "1.0.13.RELEASE"
cfJavaClientVersion = "5.13.0.RELEASE"
commonsTextVersion = "1.13.1"
immutablesVersion = "2.10.1"
openServiceBrokerVersion = "4.1.2"
springFrameworkVersion = "6.0.0"
wiremockVersion = "3.13.0"
}
}
plugins {
id "io.spring.nohttp"
id 'distribution'
id 'jacoco'
}
ext {
javaApi = "https://docs.oracle.com/en/java/javase/17/docs/api/"
javadocLinks = [
javaApi,
"https://docs.spring.io/spring-framework/docs/${springFrameworkVersion}/javadoc-api/"
] as String[]
}
description = "Spring Cloud App Broker"
allprojects {
afterEvaluate { project ->
if (project.description == null || project.description.isEmpty()) {
throw new InvalidUserDataException("A project description is required for publishing to maven central")
}
}
}
configure(javaProjects) {
apply plugin: 'java-library'
task allDependencyInsight(type: DependencyInsightReportTask)
task dependencyReport(type: DependencyReportTask)
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
[compileJava, compileTestJava]*.options*.encoding = "UTF-8"
[compileJava, compileTestJava]*.options*.compilerArgs = [
"-Xlint:serial",
"-Xlint:varargs",
"-Xlint:cast",
"-Xlint:classfile",
"-Xlint:dep-ann",
"-Xlint:divzero",
"-Xlint:empty",
"-Xlint:finally",
"-Xlint:overrides",
"-Xlint:path",
"-Xlint:-processing",
"-Xlint:static",
"-Xlint:try",
"-Xlint:fallthrough",
"-Xlint:rawtypes",
"-Xlint:deprecation",
"-Xlint:unchecked",
"-Xlint:-options",
"-Werror"
]
tasks.withType(Test).forEach { Test task ->
task.with {
// enable JUnit 5
useJUnitPlatform()
scanForTestClasses = true
group = "verification"
// add jvm arg to resolve BlockHound issues, see https://github.com/reactor/BlockHound/issues/33
jvmArgs += [
"-XX:+AllowRedefinitionToAddDeleteMethods"
]
testLogging {
exceptionFormat = "full"
events = ["passed", "skipped", "failed"]
showStandardStreams = !project.onlyShowStandardStreamsOnTestFailure
}
if (project.onlyShowStandardStreamsOnTestFailure) {
Map<String, StringBuilder> testOutput = new ConcurrentHashMap<>()
onOutput { TestDescriptor descriptor, TestOutputEvent event ->
testOutput.compute(descriptor.displayName, { k, v ->
v == null ? new StringBuilder(event.message) : v.append(event.message)
})
}
afterTest { TestDescriptor descriptor, TestResult result ->
if (result.resultType == TestResult.ResultType.FAILURE && testOutput.containsKey(descriptor.displayName)) {
logger.lifecycle("\n\n${testOutput.get(descriptor.displayName)}")
testOutput.remove(descriptor.displayName)
}
}
}
// print failed tests after the execution
def failedTests = []
afterTest { test, result ->
if (result.resultType == TestResult.ResultType.FAILURE) {
failedTests << test
}
}
// create a summary after the execution
afterSuite { desc, result ->
if (!desc.parent) {
println "\nTest result: ${result.resultType}"
println "Test summary: ${result.testCount} tests, " +
"${result.successfulTestCount} succeeded, " +
"${result.failedTestCount} failed, " +
"${result.skippedTestCount} skipped"
failedTests.each { test -> println "FAILED test: ${test.className} > ${test.name}" }
}
}
}
}
configurations {
compileOnly.defaultDependencies { dependencies ->
dependencies.add project.dependencies.create("org.immutables:value:${immutablesVersion}")
}
testCompileOnly.extendsFrom(compileOnly)
}
}
configure(testProjects) {
javadoc {
enabled = false
}
}
configure(libraryProjects) {
java {
withJavadocJar()
withSourcesJar()
}
jar {
manifest.attributes["Created-By"] = "${System.getProperty("java.version")} (${System.getProperty("java.specification.vendor")})"
manifest.attributes["Implementation-Title"] = project.name
manifest.attributes["Implementation-Version"] = project.version
from("${rootProject.projectDir}/src/dist") {
include "license.txt"
include "notice.txt"
into "META-INF"
expand(copyright: new Date().format("yyyy"), version: project.version)
}
}
javadoc {
description = "Generates project-level javadoc for use in -javadoc jar"
options.memberLevel = JavadocMemberLevel.PROTECTED
options.author = true
options.header = project.name
options.links(javadocLinks)
options.addStringOption('Xdoclint:none', '-quiet')
}
sourcesJar {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
archiveClassifier.set "sources"
from sourceSets.main.allJava
}
javadocJar {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
archiveClassifier.set "javadoc"
from javadoc
}
}
configure(staticAnalysisProjects) {
apply plugin: "checkstyle"
apply plugin: "pmd"
apply plugin: "jacoco"
checkstyle {
configDirectory = rootProject.file("src/checkstyle")
showViolations = true
}
checkstyleMain {
source = "src/main/java"
}
checkstyleTest {
source = "src/test/java"
}
pmd {
consoleOutput = true
}
pmdMain {
ruleSets = []
ruleSetFiles = files("${project.rootDir}/src/pmd/pmdRuleSet.xml")
source = "src/main/java"
}
pmdTest {
ruleSets = []
ruleSetFiles = files("${project.rootDir}/src/pmd/pmdTestRuleSet.xml")
source = "src/test/java"
}
}
configure(publishedProjects) {
apply plugin: 'maven-publish'
publishing {
repositories {
maven {
url = project.properties.getOrDefault('publicationRepository', "${System.getenv('HOME')}/.m2/repository")
}
}
publications {
mavenJava(MavenPublication) {
suppressAllPomMetadataWarnings()
from components.findByName('java')
pom {
afterEvaluate {
name = project.description
description = project.description
}
packaging = starterProjects.contains(project) ? "pom" : null
url = "https://spring.io/projects/spring-cloud-app-broker"
organization {
name = "Pivotal Software, Inc."
url = "https://www.spring.io"
}
licenses {
license {
name = "The Apache Software License, Version 2.0"
url = "https://www.apache.org/licenses/LICENSE-2.0.txt"
distribution = "repo"
}
}
scm {
url = "https://github.com/spring-cloud/spring-cloud-app-broker"
connection = "scm:git:https://github.com/spring-cloud/spring-cloud-app-broker.git"
developerConnection = "scm:git:https://github.com/spring-cloud/spring-cloud-app-broker.git"
}
issueManagement {
system = "GitHub"
url = "https://github.com/spring-cloud/spring-cloud-app-broker/issues"
}
developers {
developer {
id = "sfrederick"
name = "Scott Frederick"
email = "sfrederick@pivotal.io"
}
developer {
id = "royclarkson"
name = "Roy Clarkson"
email = "rclarkson@pivotal.io"
}
}
withXml {
def pomNode = asNode()
def dependencyManagementNode = pomNode.get('dependencyManagement')
if (dependencyManagementNode) pomNode.remove(dependencyManagementNode)
}
}
// Published pom will use fully-qualified dependency versions and no BOMs
versionMapping {
usage('java-api') {
fromResolutionOf('runtimeClasspath')
}
usage('java-runtime') {
fromResolutionResult()
}
}
}
}
}
}
task api(type: Javadoc) {
group = "Documentation"
description = "Generates aggregated Javadoc API documentation."
title = "${rootProject.description} ${version} API"
options.memberLevel = JavadocMemberLevel.PROTECTED
options.author = true
options.header = rootProject.description
options.links(javadocLinks)
options.addStringOption('Xdoclint:none', '-quiet')
source libraryProjects.collect { project ->
project.sourceSets.main.allJava
}
classpath = files(libraryProjects.collect { project ->
project.sourceSets.main.compileClasspath
})
maxMemory = "1024m"
destinationDir = new File(buildDir, "api")
}
distributions {
def documentation = project.copySpec {
into('reference') {
from(project.tasks.findByPath(':spring-cloud-app-broker-docs:asciidoctor'),
project.tasks.findByPath(':spring-cloud-app-broker-docs:asciidoctorPdf'))
}
into('api') { from api }
}
docs {
contents {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
with documentation
into '/'
}
}
main {
contents {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
into('docs') { with documentation }
libraryProjects.each { Project subproject ->
into ("libs") {
from subproject.jar
if (subproject.tasks.findByPath("sourcesJar")) {
from subproject.sourcesJar
}
if (subproject.tasks.findByPath("javadocJar")) {
from subproject.javadocJar
}
}
}
}
}
}
publishing {
publications {
mavenJava(MavenPublication) {
artifact source:docsDistZip, classifier: 'docs'
}
}
}
task codeCoverageReport(type: JacocoReport) {
dependsOn staticAnalysisProjects*.test
executionData fileTree(project.rootDir.absolutePath).include("**/build/jacoco/*.exec")
staticAnalysisProjects.each { subproject ->
if (testProjects.contains(subproject)) {
// Work-around for issue with jacoco and multiple-release jar files
// (like Log4J 2.10 and above)
// see https://github.com/jacoco/jacoco/issues/407
getSourceDirectories().from(subproject.sourceSets.main.java)
getClassDirectories().from(subproject.sourceSets.main.output.classesDirs)
} else {
sourceSets subproject.sourceSets.main
}
}
reports {
xml.required = true
xml.destination new File("${buildDir}/reports/jacoco/report.xml")
html.required = false
csv.required = false
}
}
wrapper {
gradleVersion = "8.14.1"
}
nohttp {
source.exclude "**/build/**"
source.exclude "**/gradle/**"
}
def getDocumentationProjects() {
[project(":spring-cloud-app-broker-docs")] as Set
}
def getJavaProjects() {
subprojects
}
def getStaticAnalysisProjects() {
javaProjects - documentationProjects
}
def getTestProjects() {
[project(":spring-cloud-app-broker-integration-tests"),
project(":spring-cloud-app-broker-acceptance-tests")] as Set
}
def getStarterProjects() {
[project(":spring-cloud-starter-app-broker"),
project(":spring-cloud-starter-app-broker-cloudfoundry")] as Set
}
def getLibraryProjects() {
javaProjects - documentationProjects - starterProjects - testProjects
}
def getPublishedProjects() {
libraryProjects + starterProjects + rootProject
}