Merge branch '3.2.x' into 3.3.x
This commit is contained in:
commit
e086439e51
|
@ -36,8 +36,19 @@ def apply(settings) {
|
||||||
}
|
}
|
||||||
|
|
||||||
private def property(settings, name) {
|
private def property(settings, name) {
|
||||||
def parentValue = settings.gradle.parent?.rootProject?.findProperty(name)
|
def value = settings.gradle.parent?.rootProject?.findProperty(name)
|
||||||
return (parentValue != null) ? parentValue : settings.ext[name]
|
value = (value != null) ? value : settings.ext.find(name)
|
||||||
|
value = (value != null) ? value : loadProperty(settings, name)
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
|
||||||
|
private def loadProperty(settings, name) {
|
||||||
|
def scriptDir = new File(getClass().protectionDomain.codeSource.location.path).parent
|
||||||
|
new File(scriptDir, "../gradle.properties").withInputStream {
|
||||||
|
def properties = new Properties()
|
||||||
|
properties.load(it)
|
||||||
|
return properties.get(name)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this
|
return this
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
package org.springframework.boot.testsupport.gradle.testkit;
|
package org.springframework.boot.testsupport.gradle.testkit;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
@ -25,6 +26,7 @@ import org.junit.jupiter.api.extension.BeforeEachCallback;
|
||||||
import org.junit.jupiter.api.extension.Extension;
|
import org.junit.jupiter.api.extension.Extension;
|
||||||
import org.junit.jupiter.api.extension.ExtensionContext;
|
import org.junit.jupiter.api.extension.ExtensionContext;
|
||||||
|
|
||||||
|
import org.springframework.util.Assert;
|
||||||
import org.springframework.util.ReflectionUtils;
|
import org.springframework.util.ReflectionUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -43,6 +45,7 @@ public class GradleBuildExtension implements BeforeEachCallback, AfterEachCallba
|
||||||
@Override
|
@Override
|
||||||
public void beforeEach(ExtensionContext context) throws Exception {
|
public void beforeEach(ExtensionContext context) throws Exception {
|
||||||
GradleBuild gradleBuild = extractGradleBuild(context);
|
GradleBuild gradleBuild = extractGradleBuild(context);
|
||||||
|
gradleBuild.scriptProperty("parentRootDir", findParentRootDir().getAbsolutePath());
|
||||||
URL scriptUrl = findDefaultScript(context);
|
URL scriptUrl = findDefaultScript(context);
|
||||||
if (scriptUrl != null) {
|
if (scriptUrl != null) {
|
||||||
gradleBuild.script(scriptUrl.getFile());
|
gradleBuild.script(scriptUrl.getFile());
|
||||||
|
@ -54,6 +57,22 @@ public class GradleBuildExtension implements BeforeEachCallback, AfterEachCallba
|
||||||
gradleBuild.before();
|
gradleBuild.before();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private File findParentRootDir() {
|
||||||
|
File dir = new File("").getAbsoluteFile();
|
||||||
|
int depth = 0;
|
||||||
|
while (dir != null && !hasGradleBuildFiles(dir)) {
|
||||||
|
Assert.state(depth++ < 5, "Unable to find parent root");
|
||||||
|
dir = dir.getParentFile();
|
||||||
|
}
|
||||||
|
Assert.state(dir != null, "Unable to find parent root");
|
||||||
|
return dir;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean hasGradleBuildFiles(File dir) {
|
||||||
|
return new File(dir, "settings.gradle").exists() && new File(dir, "build.gradle").exists()
|
||||||
|
&& new File(dir, "gradle.properties").exists();
|
||||||
|
}
|
||||||
|
|
||||||
private GradleBuild extractGradleBuild(ExtensionContext context) throws Exception {
|
private GradleBuild extractGradleBuild(ExtensionContext context) throws Exception {
|
||||||
Object testInstance = context.getRequiredTestInstance();
|
Object testInstance = context.getRequiredTestInstance();
|
||||||
Field gradleBuildField = ReflectionUtils.findField(testInstance.getClass(), "gradleBuild");
|
Field gradleBuildField = ReflectionUtils.findField(testInstance.getClass(), "gradleBuild");
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
pluginManagement {
|
pluginManagement {
|
||||||
|
evaluate(new File("{parentRootDir}/buildSrc/SpringRepositorySupport.groovy")).apply(this)
|
||||||
repositories {
|
repositories {
|
||||||
exclusiveContent {
|
exclusiveContent {
|
||||||
forRepository {
|
forRepository {
|
||||||
|
|
Loading…
Reference in New Issue