MavenBuildExtension Class — spring-boot Architecture
Architecture documentation for the MavenBuildExtension class in MavenBuildExtension.java from the spring-boot codebase.
Entity Profile
Source Code
build-plugin/spring-boot-maven-plugin/src/intTest/java/org/springframework/boot/maven/MavenBuildExtension.java lines 40–99
class MavenBuildExtension implements TestTemplateInvocationContextProvider {
@Override
public boolean supportsTestTemplate(ExtensionContext context) {
return true;
}
@Override
public Stream<TestTemplateInvocationContext> provideTestTemplateInvocationContexts(ExtensionContext context) {
try {
// Returning a stream which must be closed here is fine, as JUnit will take
// care of closing it
return Files.list(Paths.get("build/maven-binaries")).map(MavenVersionTestTemplateInvocationContext::new);
}
catch (IOException ex) {
throw new RuntimeException(ex);
}
}
private static final class MavenVersionTestTemplateInvocationContext implements TestTemplateInvocationContext {
private final Path mavenHome;
private MavenVersionTestTemplateInvocationContext(Path mavenHome) {
this.mavenHome = mavenHome;
}
@Override
public String getDisplayName(int invocationIndex) {
return this.mavenHome.getFileName().toString();
}
@Override
public List<Extension> getAdditionalExtensions() {
return Arrays.asList(new MavenBuildParameterResolver(this.mavenHome));
}
}
private static final class MavenBuildParameterResolver implements ParameterResolver {
private final Path mavenHome;
private MavenBuildParameterResolver(Path mavenHome) {
this.mavenHome = mavenHome;
}
@Override
public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) {
return parameterContext.getParameter().getType().equals(MavenBuild.class);
}
@Override
public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) {
return new MavenBuild(this.mavenHome.toFile());
}
}
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free