Search in sources :

Example 21 with Timer

use of org.gradle.internal.time.Timer in project gradle by gradle.

the class DefaultDaemonStarter method startProcess.

private DaemonStartupInfo startProcess(List<String> args, File workingDir, InputStream stdInput) {
    LOGGER.debug("Starting daemon process: workingDir = {}, daemonArgs: {}", workingDir, args);
    Timer clock = Time.startTimer();
    try {
        GFileUtils.mkdirs(workingDir);
        DaemonOutputConsumer outputConsumer = new DaemonOutputConsumer();
        // This factory should be injected but leaves non-daemon threads running when used from the tooling API client
        DefaultExecActionFactory execActionFactory = new DefaultExecActionFactory(new IdentityFileResolver());
        try {
            ExecHandle handle = new DaemonExecHandleBuilder().build(args, workingDir, outputConsumer, stdInput, execActionFactory.newExec());
            handle.start();
            LOGGER.debug("Gradle daemon process is starting. Waiting for the daemon to detach...");
            handle.waitForFinish();
            LOGGER.debug("Gradle daemon process is now detached.");
        } finally {
            execActionFactory.stop();
        }
        return daemonGreeter.parseDaemonOutput(outputConsumer.getProcessOutput());
    } catch (GradleException e) {
        throw e;
    } catch (Exception e) {
        throw new GradleException("Could not start Gradle daemon.", e);
    } finally {
        LOGGER.info("An attempt to start the daemon took {}.", clock.getElapsed());
    }
}
Also used : DaemonOutputConsumer(org.gradle.launcher.daemon.bootstrap.DaemonOutputConsumer) DefaultExecActionFactory(org.gradle.process.internal.DefaultExecActionFactory) IdentityFileResolver(org.gradle.api.internal.file.IdentityFileResolver) Timer(org.gradle.internal.time.Timer) DaemonExecHandleBuilder(org.gradle.launcher.daemon.DaemonExecHandleBuilder) GradleException(org.gradle.api.GradleException) UncheckedIOException(org.gradle.api.UncheckedIOException) IOException(java.io.IOException) GradleException(org.gradle.api.GradleException) ExecHandle(org.gradle.process.internal.ExecHandle)

Aggregations

Timer (org.gradle.internal.time.Timer)21 IOException (java.io.IOException)4 File (java.io.File)3 HashMap (java.util.HashMap)2 LinkedHashMap (java.util.LinkedHashMap)2 GradleException (org.gradle.api.GradleException)2 DefaultResolvedDependency (org.gradle.api.internal.artifacts.DefaultResolvedDependency)2 DependencyGraphNodeResult (org.gradle.api.internal.artifacts.DependencyGraphNodeResult)2 ResolvedConfigurationIdentifier (org.gradle.api.internal.artifacts.ResolvedConfigurationIdentifier)2 ClassSetAnalysisData (org.gradle.api.internal.tasks.compile.incremental.deps.ClassSetAnalysisData)2 JavaExecHandleBuilder (org.gradle.process.internal.JavaExecHandleBuilder)2 WorkerProcess (org.gradle.process.internal.worker.WorkerProcess)2 FilenameFilter (java.io.FilenameFilter)1 LinkedHashSet (java.util.LinkedHashSet)1 CompilerConfiguration (org.codehaus.groovy.control.CompilerConfiguration)1 Action (org.gradle.api.Action)1 Task (org.gradle.api.Task)1 UncheckedIOException (org.gradle.api.UncheckedIOException)1 Dependency (org.gradle.api.artifacts.Dependency)1 ModuleDependency (org.gradle.api.artifacts.ModuleDependency)1