mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-05-02 20:09:31 +01:00
e3aa5b6b11
This commit removes the previous implementation in favor of the new PlaceholderParser. The only noticeable side effect is that the exception is no longer an IllegalArgumentException, but rather the dedicated PlaceholderResolutionException. See gh-9628
162 lines
5.2 KiB
Groovy
162 lines
5.2 KiB
Groovy
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
|
import org.springframework.build.shadow.ShadowSource
|
|
|
|
plugins {
|
|
id 'me.champeau.mrjar'
|
|
}
|
|
|
|
description = "Spring Core"
|
|
|
|
apply plugin: "kotlin"
|
|
apply plugin: "kotlinx-serialization"
|
|
|
|
multiRelease {
|
|
targetVersions 17, 21
|
|
}
|
|
|
|
def javapoetVersion = "1.13.0"
|
|
def objenesisVersion = "3.3"
|
|
|
|
configurations {
|
|
java21Api.extendsFrom(api)
|
|
java21Implementation.extendsFrom(implementation)
|
|
javapoet
|
|
objenesis
|
|
graalvm
|
|
}
|
|
|
|
task javapoetRepackJar(type: ShadowJar) {
|
|
archiveBaseName = 'spring-javapoet-repack'
|
|
archiveVersion = javapoetVersion
|
|
configurations = [project.configurations.javapoet]
|
|
relocate('com.squareup.javapoet', 'org.springframework.javapoet')
|
|
}
|
|
|
|
task javapoetSource(type: ShadowSource) {
|
|
configurations = [project.configurations.javapoet]
|
|
relocate('com.squareup.javapoet', 'org.springframework.javapoet')
|
|
outputDirectory = file("build/shadow-source/javapoet")
|
|
}
|
|
|
|
task javapoetSourceJar(type: Jar) {
|
|
archiveBaseName = 'spring-javapoet-repack'
|
|
archiveVersion = javapoetVersion
|
|
archiveClassifier = 'sources'
|
|
from javapoetSource
|
|
}
|
|
|
|
task objenesisRepackJar(type: ShadowJar) {
|
|
archiveBaseName = 'spring-objenesis-repack'
|
|
archiveVersion = objenesisVersion
|
|
configurations = [project.configurations.objenesis]
|
|
relocate('org.objenesis', 'org.springframework.objenesis')
|
|
}
|
|
|
|
task objenesisSource(type: ShadowSource) {
|
|
configurations = [project.configurations.objenesis]
|
|
relocate('org.objenesis', 'org.springframework.objenesis')
|
|
outputDirectory = file("build/shadow-source/objenesis")
|
|
}
|
|
|
|
task objenesisSourceJar(type: Jar) {
|
|
archiveBaseName = 'spring-objenesis-repack'
|
|
archiveVersion = objenesisVersion
|
|
archiveClassifier = 'sources'
|
|
from objenesisSource
|
|
}
|
|
|
|
dependencies {
|
|
javapoet("com.squareup:javapoet:${javapoetVersion}@jar")
|
|
objenesis("org.objenesis:objenesis:${objenesisVersion}@jar")
|
|
api(files(javapoetRepackJar))
|
|
api(files(objenesisRepackJar))
|
|
api(project(":spring-jcl"))
|
|
compileOnly("io.projectreactor.tools:blockhound")
|
|
compileOnly("org.graalvm.sdk:graal-sdk")
|
|
optional("io.micrometer:context-propagation")
|
|
optional("io.netty:netty-buffer")
|
|
optional("io.netty:netty5-buffer")
|
|
optional("io.projectreactor:reactor-core")
|
|
optional("io.reactivex.rxjava3:rxjava")
|
|
optional("io.smallrye.reactive:mutiny")
|
|
optional("net.sf.jopt-simple:jopt-simple")
|
|
optional("org.aspectj:aspectjweaver")
|
|
optional("org.jetbrains.kotlin:kotlin-reflect")
|
|
optional("org.jetbrains.kotlin:kotlin-stdlib")
|
|
optional("org.jetbrains.kotlinx:kotlinx-coroutines-core")
|
|
optional("org.jetbrains.kotlinx:kotlinx-coroutines-reactor")
|
|
testFixturesImplementation("com.google.code.findbugs:jsr305")
|
|
testFixturesImplementation("io.projectreactor:reactor-test")
|
|
testFixturesImplementation("org.assertj:assertj-core")
|
|
testFixturesImplementation("org.junit.platform:junit-platform-launcher")
|
|
testFixturesImplementation("org.junit.jupiter:junit-jupiter-api")
|
|
testFixturesImplementation("org.junit.jupiter:junit-jupiter-params")
|
|
testFixturesImplementation("org.xmlunit:xmlunit-assertj")
|
|
testImplementation("com.fasterxml.jackson.core:jackson-databind")
|
|
testImplementation("com.fasterxml.woodstox:woodstox-core")
|
|
testImplementation("com.google.code.findbugs:jsr305")
|
|
testImplementation("com.squareup.okhttp3:mockwebserver")
|
|
testImplementation("io.projectreactor:reactor-test")
|
|
testImplementation("io.projectreactor.tools:blockhound")
|
|
testImplementation("jakarta.annotation:jakarta.annotation-api")
|
|
testImplementation("jakarta.xml.bind:jakarta.xml.bind-api")
|
|
testImplementation("org.jetbrains.kotlinx:kotlinx-serialization-json")
|
|
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor")
|
|
testImplementation("org.mockito:mockito-core")
|
|
testImplementation("org.skyscreamer:jsonassert")
|
|
testImplementation("org.xmlunit:xmlunit-assertj")
|
|
testImplementation("org.xmlunit:xmlunit-matchers")
|
|
}
|
|
|
|
jar {
|
|
manifest.attributes["Dependencies"] = "jdk.unsupported,org.jboss.vfs" // for WildFly (Objenesis and VfsUtils)
|
|
|
|
dependsOn javapoetRepackJar
|
|
from(zipTree(javapoetRepackJar.archiveFile)) {
|
|
include "org/springframework/javapoet/**"
|
|
}
|
|
|
|
dependsOn objenesisRepackJar
|
|
from(zipTree(objenesisRepackJar.archiveFile)) {
|
|
include "org/springframework/objenesis/**"
|
|
}
|
|
}
|
|
|
|
test {
|
|
// Make sure the classes dir is used on the test classpath (required by ResourceTests).
|
|
// When test fixtures are involved, the JAR is used by default.
|
|
classpath = sourceSets.main.output.classesDirs + files(sourceSets.main.output.resourcesDir) + classpath - files(jar.archiveFile)
|
|
|
|
// Ensure that BlockHound tests run on JDK 13+. For details, see:
|
|
// https://github.com/reactor/BlockHound/issues/33
|
|
jvmArgs += [
|
|
"-XX:+AllowRedefinitionToAddDeleteMethods"
|
|
]
|
|
}
|
|
|
|
sourcesJar {
|
|
dependsOn javapoetSourceJar
|
|
dependsOn objenesisSourceJar
|
|
from javapoetSource
|
|
from objenesisSource
|
|
}
|
|
|
|
eclipse {
|
|
synchronizationTasks javapoetSourceJar, objenesisSourceJar
|
|
classpath {
|
|
file {
|
|
whenMerged {
|
|
def pattern = ~/\/spring-\w+-repack-/
|
|
entries.forEach {
|
|
if (pattern.matcher(it.path).find()) {
|
|
def sourcesJar = it.path.replace('.jar', '-sources.jar')
|
|
it.sourcePath = fileReference(file(sourcesJar))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
tasks['eclipse'].dependsOn(javapoetRepackJar, javapoetSourceJar, objenesisRepackJar, objenesisSourceJar)
|