Home / Class/ PluginClasspathGradleBuild Class — spring-boot Architecture

PluginClasspathGradleBuild Class — spring-boot Architecture

Architecture documentation for the PluginClasspathGradleBuild class in PluginClasspathGradleBuild.java from the spring-boot codebase.

Entity Profile

Relationship Graph

Source Code

build-plugin/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/testkit/PluginClasspathGradleBuild.java lines 56–144

public class PluginClasspathGradleBuild extends GradleBuild {

	private boolean kotlin;

	public PluginClasspathGradleBuild(BuildOutput buildOutput) {
		super(buildOutput);
	}

	public PluginClasspathGradleBuild(BuildOutput buildOutput, Dsl dsl) {
		super(buildOutput, dsl);
	}

	public PluginClasspathGradleBuild kotlin() {
		this.kotlin = true;
		return this;
	}

	@Override
	public GradleRunner prepareRunner(String... arguments) throws IOException {
		return super.prepareRunner(arguments).withPluginClasspath(pluginClasspath());
	}

	private List<File> pluginClasspath() {
		List<File> classpath = new ArrayList<>();
		classpath.add(new File("bin/main"));
		classpath.add(new File("build/classes/java/main"));
		classpath.add(new File("build/resources/main"));
		classpath.add(new File(pathOfJarContaining(Layers.class)));
		classpath.add(new File(pathOfJarContaining(ClassVisitor.class)));
		classpath.add(new File(pathOfJarContaining(DependencyManagementPlugin.class)));
		if (this.kotlin) {
			classpath.add(new File(pathOfJarContaining("org.jetbrains.kotlin.cli.common.PropertiesKt")));
			classpath.add(new File(pathOfJarContaining(KotlinToolingVersion.class)));
			classpath.add(new File(pathOfJarContaining("org.jetbrains.kotlin.build.report.metrics.BuildTime")));
			classpath.add(new File(pathOfJarContaining("org.jetbrains.kotlin.buildtools.api.CompilationService")));
			classpath.add(new File(pathOfJarContaining("org.jetbrains.kotlin.daemon.client.KotlinCompilerClient")));
			classpath.add(new File(pathOfJarContaining("org.jetbrains.kotlin.konan.library.KonanLibrary")));
			classpath.add(new File(pathOfJarContaining(KotlinCompilerPluginSupportPlugin.class)));
			classpath.add(new File(pathOfJarContaining(LanguageSettings.class)));
			classpath.add(new File(pathOfJarContaining(BuildUidService.class)));
		}
		classpath.add(new File(pathOfJarContaining("org.apache.commons.lang3.ArrayFill")));
		classpath.add(new File(pathOfJarContaining("org.apache.commons.io.Charsets")));
		classpath.add(new File(pathOfJarContaining(ArchiveEntry.class)));
		classpath.add(new File(pathOfJarContaining(BuildRequest.class)));
		classpath.add(new File(pathOfJarContaining(HttpClientConnectionManager.class)));
		classpath.add(new File(pathOfJarContaining(HttpRequest.class)));
		classpath.add(new File(pathOfJarContaining(HttpVersionPolicy.class)));
		classpath.add(new File(pathOfJarContaining(JacksonModule.class)));
		classpath.add(new File(pathOfJarContaining(JsonParser.class)));
		classpath.add(new File(pathOfJarContaining("com.github.openjson.JSONObject")));
		classpath.add(new File(pathOfJarContaining(JsonView.class)));
		classpath.add(new File(pathOfJarContaining(Platform.class)));
		classpath.add(new File(pathOfJarContaining(Toml.class)));
		classpath.add(new File(pathOfJarContaining(Lexer.class)));
		classpath.add(new File(pathOfJarContaining("org.graalvm.buildtools.gradle.NativeImagePlugin")));
		classpath.add(new File(pathOfJarContaining("org.graalvm.reachability.GraalVMReachabilityMetadataRepository")));
		classpath.add(new File(pathOfJarContaining("org.graalvm.buildtools.utils.SharedConstants")));
		// Cyclonedx dependencies
		classpath.add(new File(pathOfJarContaining(CyclonedxPlugin.class)));
		classpath.add(new File(pathOfJarContaining("com.ctc.wstx.api.WriterConfig")));
		classpath.add(new File(pathOfJarContaining("com.fasterxml.jackson.core.Versioned")));
		classpath.add(new File(pathOfJarContaining("com.fasterxml.jackson.databind.JsonSerializer")));
		classpath.add(new File(pathOfJarContaining("com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator")));
		classpath.add(new File(pathOfJarContaining("com.github.packageurl.MalformedPackageURLException")));
		classpath.add(new File(pathOfJarContaining("com.google.common.collect.ImmutableMap")));
		classpath.add(new File(pathOfJarContaining("com.networknt.schema.resource.SchemaMappers")));
		classpath.add(new File(pathOfJarContaining("org.apache.commons.collections4.CollectionUtils")));
		classpath.add(new File(pathOfJarContaining("org.apache.maven.model.building.ModelBuildingException")));
		classpath.add(new File(pathOfJarContaining("org.codehaus.plexus.util.xml.pull.XmlPullParserException")));
		classpath.add(new File(pathOfJarContaining("org.codehaus.stax2.ri.Stax2WriterAdapter")));
		classpath.add(new File(pathOfJarContaining("org.cyclonedx.model.ExternalReference")));
		return classpath;
	}

	private String pathOfJarContaining(String className) {
		try {
			return pathOfJarContaining(Class.forName(className));
		}
		catch (ClassNotFoundException ex) {
			throw new IllegalArgumentException(ex);
		}
	}

	private String pathOfJarContaining(Class<?> type) {
		return type.getProtectionDomain().getCodeSource().getLocation().getPath();
	}

}

Domain

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free