Search in sources :

Example 1 with BaseForkOptionsConverter

use of org.gradle.api.internal.tasks.compile.BaseForkOptionsConverter in project gradle by gradle.

the class DaemonGroovyCompiler method toInvocationContext.

@Override
protected InvocationContext toInvocationContext(GroovyJavaJointCompileSpec spec) {
    ForkOptions javaOptions = spec.getCompileOptions().getForkOptions();
    GroovyForkOptions 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> groovyFiles = Iterables.concat(spec.getGroovyClasspath(), antFiles);
    JavaForkOptions javaForkOptions = new BaseForkOptionsConverter(fileResolver).transform(mergeForkOptions(javaOptions, groovyOptions));
    File invocationWorkingDir = javaForkOptions.getWorkingDir();
    javaForkOptions.setWorkingDir(daemonWorkingDir);
    DaemonForkOptions daemonForkOptions = new DaemonForkOptionsBuilder(fileResolver).javaForkOptions(javaForkOptions).classpath(groovyFiles).sharedPackages(SHARED_PACKAGES).keepAliveMode(KeepAliveMode.SESSION).build();
    return new InvocationContext(invocationWorkingDir, daemonForkOptions);
}
Also used : DaemonForkOptionsBuilder(org.gradle.workers.internal.DaemonForkOptionsBuilder) BaseForkOptionsConverter(org.gradle.api.internal.tasks.compile.BaseForkOptionsConverter) DaemonForkOptions(org.gradle.workers.internal.DaemonForkOptions) ForkOptions(org.gradle.api.tasks.compile.ForkOptions) DaemonForkOptions(org.gradle.workers.internal.DaemonForkOptions) JavaForkOptions(org.gradle.process.JavaForkOptions) GroovyForkOptions(org.gradle.api.tasks.compile.GroovyForkOptions) JavaForkOptions(org.gradle.process.JavaForkOptions) GroovyForkOptions(org.gradle.api.tasks.compile.GroovyForkOptions) File(java.io.File)

Example 2 with BaseForkOptionsConverter

use of org.gradle.api.internal.tasks.compile.BaseForkOptionsConverter in project gradle by gradle.

the class DaemonPlayCompiler method toInvocationContext.

@Override
protected InvocationContext toInvocationContext(PlayCompileSpec spec) {
    BaseForkOptions forkOptions = spec.getForkOptions();
    JavaForkOptions javaForkOptions = new BaseForkOptionsConverter(fileResolver).transform(forkOptions);
    File invocationWorkingDir = javaForkOptions.getWorkingDir();
    javaForkOptions.setWorkingDir(daemonWorkingDir);
    DaemonForkOptions daemonForkOptions = new DaemonForkOptionsBuilder(fileResolver).javaForkOptions(javaForkOptions).classpath(compilerClasspath).sharedPackages(classLoaderPackages).keepAliveMode(KeepAliveMode.SESSION).build();
    return new InvocationContext(invocationWorkingDir, daemonForkOptions);
}
Also used : DaemonForkOptionsBuilder(org.gradle.workers.internal.DaemonForkOptionsBuilder) BaseForkOptionsConverter(org.gradle.api.internal.tasks.compile.BaseForkOptionsConverter) DaemonForkOptions(org.gradle.workers.internal.DaemonForkOptions) JavaForkOptions(org.gradle.process.JavaForkOptions) File(java.io.File) BaseForkOptions(org.gradle.api.tasks.compile.BaseForkOptions)

Example 3 with BaseForkOptionsConverter

use of org.gradle.api.internal.tasks.compile.BaseForkOptionsConverter in project gradle by gradle.

the class DaemonScalaCompiler method toInvocationContext.

@Override
protected InvocationContext toInvocationContext(T spec) {
    ForkOptions javaOptions = spec.getCompileOptions().getForkOptions();
    ScalaForkOptions scalaOptions = spec.getScalaCompileOptions().getForkOptions();
    JavaForkOptions javaForkOptions = new BaseForkOptionsConverter(fileResolver).transform(mergeForkOptions(javaOptions, scalaOptions));
    File invocationWorkingDir = javaForkOptions.getWorkingDir();
    javaForkOptions.setWorkingDir(daemonWorkingDir);
    DaemonForkOptions daemonForkOptions = new DaemonForkOptionsBuilder(fileResolver).javaForkOptions(javaForkOptions).classpath(zincClasspath).sharedPackages(SHARED_PACKAGES).keepAliveMode(KeepAliveMode.SESSION).build();
    return new InvocationContext(invocationWorkingDir, daemonForkOptions);
}
Also used : DaemonForkOptionsBuilder(org.gradle.workers.internal.DaemonForkOptionsBuilder) BaseForkOptionsConverter(org.gradle.api.internal.tasks.compile.BaseForkOptionsConverter) DaemonForkOptions(org.gradle.workers.internal.DaemonForkOptions) ScalaForkOptions(org.gradle.api.tasks.scala.ScalaForkOptions) ForkOptions(org.gradle.api.tasks.compile.ForkOptions) DaemonForkOptions(org.gradle.workers.internal.DaemonForkOptions) JavaForkOptions(org.gradle.process.JavaForkOptions) ScalaForkOptions(org.gradle.api.tasks.scala.ScalaForkOptions) JavaForkOptions(org.gradle.process.JavaForkOptions) File(java.io.File)

Example 4 with BaseForkOptionsConverter

use of org.gradle.api.internal.tasks.compile.BaseForkOptionsConverter 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();
}
Also used : DaemonForkOptionsBuilder(org.gradle.workers.internal.DaemonForkOptionsBuilder) BaseForkOptionsConverter(org.gradle.api.internal.tasks.compile.BaseForkOptionsConverter) VisitableURLClassLoader(org.gradle.internal.classloader.VisitableURLClassLoader) MinimalGroovyCompilerDaemonForkOptions(org.gradle.api.internal.tasks.compile.MinimalGroovyCompilerDaemonForkOptions) FilteringClassLoader(org.gradle.internal.classloader.FilteringClassLoader) HierarchicalClassLoaderStructure(org.gradle.workers.internal.HierarchicalClassLoaderStructure) JavaForkOptions(org.gradle.process.JavaForkOptions) GroovyJavaJointCompileSpec(org.gradle.api.internal.tasks.compile.GroovyJavaJointCompileSpec) File(java.io.File) MinimalJavaCompilerDaemonForkOptions(org.gradle.api.internal.tasks.compile.MinimalJavaCompilerDaemonForkOptions)

Example 5 with BaseForkOptionsConverter

use of org.gradle.api.internal.tasks.compile.BaseForkOptionsConverter in project gradle by gradle.

the class DaemonScalaCompiler method toDaemonForkOptions.

@Override
protected DaemonForkOptions toDaemonForkOptions(T spec) {
    MinimalJavaCompilerDaemonForkOptions javaOptions = spec.getCompileOptions().getForkOptions();
    MinimalScalaCompilerDaemonForkOptions scalaOptions = spec.getScalaCompileOptions().getForkOptions();
    JavaForkOptions javaForkOptions = new BaseForkOptionsConverter(forkOptionsFactory).transform(mergeForkOptions(javaOptions, scalaOptions));
    javaForkOptions.setWorkingDir(daemonWorkingDir);
    String javaExecutable = javaOptions.getExecutable();
    if (javaExecutable != null) {
        javaForkOptions.setExecutable(javaExecutable);
    }
    ClassPath compilerClasspath = classPathRegistry.getClassPath("SCALA-COMPILER").plus(DefaultClassPath.of(zincClasspath));
    HierarchicalClassLoaderStructure classLoaderStructure = new HierarchicalClassLoaderStructure(classLoaderRegistry.getGradleWorkerExtensionSpec()).withChild(getScalaFilterSpec()).withChild(new VisitableURLClassLoader.Spec("compiler", compilerClasspath.getAsURLs()));
    return new DaemonForkOptionsBuilder(forkOptionsFactory).javaForkOptions(javaForkOptions).withClassLoaderStructure(classLoaderStructure).keepAliveMode(KeepAliveMode.SESSION).build();
}
Also used : DaemonForkOptionsBuilder(org.gradle.workers.internal.DaemonForkOptionsBuilder) DefaultClassPath(org.gradle.internal.classpath.DefaultClassPath) ClassPath(org.gradle.internal.classpath.ClassPath) BaseForkOptionsConverter(org.gradle.api.internal.tasks.compile.BaseForkOptionsConverter) VisitableURLClassLoader(org.gradle.internal.classloader.VisitableURLClassLoader) HierarchicalClassLoaderStructure(org.gradle.workers.internal.HierarchicalClassLoaderStructure) JavaForkOptions(org.gradle.process.JavaForkOptions) MinimalJavaCompilerDaemonForkOptions(org.gradle.api.internal.tasks.compile.MinimalJavaCompilerDaemonForkOptions)

Aggregations

BaseForkOptionsConverter (org.gradle.api.internal.tasks.compile.BaseForkOptionsConverter)5 JavaForkOptions (org.gradle.process.JavaForkOptions)5 DaemonForkOptionsBuilder (org.gradle.workers.internal.DaemonForkOptionsBuilder)5 File (java.io.File)4 DaemonForkOptions (org.gradle.workers.internal.DaemonForkOptions)3 MinimalJavaCompilerDaemonForkOptions (org.gradle.api.internal.tasks.compile.MinimalJavaCompilerDaemonForkOptions)2 ForkOptions (org.gradle.api.tasks.compile.ForkOptions)2 VisitableURLClassLoader (org.gradle.internal.classloader.VisitableURLClassLoader)2 HierarchicalClassLoaderStructure (org.gradle.workers.internal.HierarchicalClassLoaderStructure)2 GroovyJavaJointCompileSpec (org.gradle.api.internal.tasks.compile.GroovyJavaJointCompileSpec)1 MinimalGroovyCompilerDaemonForkOptions (org.gradle.api.internal.tasks.compile.MinimalGroovyCompilerDaemonForkOptions)1 BaseForkOptions (org.gradle.api.tasks.compile.BaseForkOptions)1 GroovyForkOptions (org.gradle.api.tasks.compile.GroovyForkOptions)1 ScalaForkOptions (org.gradle.api.tasks.scala.ScalaForkOptions)1 FilteringClassLoader (org.gradle.internal.classloader.FilteringClassLoader)1 ClassPath (org.gradle.internal.classpath.ClassPath)1 DefaultClassPath (org.gradle.internal.classpath.DefaultClassPath)1