use of org.gradle.api.internal.tasks.compile.MinimalGroovyCompilerDaemonForkOptions in project gradle by gradle.
the class DaemonGroovyCompiler method toDaemonForkOptions.
@Override
protected DaemonForkOptions toDaemonForkOptions(GroovyJavaJointCompileSpec spec) {
MinimalJavaCompilerDaemonForkOptions javaOptions = spec.getCompileOptions().getForkOptions();
MinimalGroovyCompilerDaemonForkOptions groovyOptions = spec.getGroovyCompileOptions().getForkOptions();
// Ant is optional dependency of groovy(-all) module but mandatory dependency of Groovy compiler;
// that's why we add it here. The following assumes that any Groovy compiler version supported by Gradle
// is compatible with Gradle's current Ant version.
Collection<File> antFiles = classPathRegistry.getClassPath("ANT").getAsFiles();
Iterable<File> classpath = Iterables.concat(spec.getGroovyClasspath(), antFiles);
VisitableURLClassLoader.Spec targetGroovyClasspath = new VisitableURLClassLoader.Spec("worker-loader", DefaultClassPath.of(classpath).getAsURLs());
Collection<File> languageGroovyFiles = classPathRegistry.getClassPath("GROOVY-COMPILER").getAsFiles();
VisitableURLClassLoader.Spec compilerClasspath = new VisitableURLClassLoader.Spec("compiler-loader", DefaultClassPath.of(languageGroovyFiles).getAsURLs());
FilteringClassLoader.Spec gradleAndUserFilter = getMinimalGradleFilter();
for (String sharedPackage : SHARED_PACKAGES) {
gradleAndUserFilter.allowPackage(sharedPackage);
}
HierarchicalClassLoaderStructure classLoaderStructure = new HierarchicalClassLoaderStructure(classLoaderRegistry.getGradleWorkerExtensionSpec()).withChild(getMinimalGradleFilter()).withChild(targetGroovyClasspath).withChild(gradleAndUserFilter).withChild(compilerClasspath);
JavaForkOptions javaForkOptions = new BaseForkOptionsConverter(forkOptionsFactory).transform(mergeForkOptions(javaOptions, groovyOptions));
javaForkOptions.setWorkingDir(daemonWorkingDir);
javaForkOptions.setExecutable(javaOptions.getExecutable());
if (jvmVersionDetector.getJavaVersion(javaForkOptions.getExecutable()).isJava9Compatible()) {
javaForkOptions.jvmArgs(JpmsConfiguration.GROOVY_JPMS_ARGS);
}
return new DaemonForkOptionsBuilder(forkOptionsFactory).javaForkOptions(javaForkOptions).keepAliveMode(KeepAliveMode.SESSION).withClassLoaderStructure(classLoaderStructure).build();
}
Aggregations