Search in sources :

Example 1 with DaemonOutputConsumer

use of org.gradle.launcher.daemon.bootstrap.DaemonOutputConsumer in project gradle by gradle.

the class DefaultDaemonStarter method startProcess.

private DaemonStartupInfo startProcess(List<String> args, File workingDir, InputStream stdInput) {
    LOGGER.info("Starting daemon process: workingDir = {}, daemonArgs: {}", workingDir, args);
    Timer clock = Timers.startTimer();
    try {
        GFileUtils.mkdirs(workingDir);
        DaemonOutputConsumer outputConsumer = new DaemonOutputConsumer(stdInput);
        ExecHandle handle = new DaemonExecHandleBuilder().build(args, workingDir, outputConsumer);
        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.");
        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) 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

IOException (java.io.IOException)1 GradleException (org.gradle.api.GradleException)1 UncheckedIOException (org.gradle.api.UncheckedIOException)1 Timer (org.gradle.internal.time.Timer)1 DaemonExecHandleBuilder (org.gradle.launcher.daemon.DaemonExecHandleBuilder)1 DaemonOutputConsumer (org.gradle.launcher.daemon.bootstrap.DaemonOutputConsumer)1 ExecHandle (org.gradle.process.internal.ExecHandle)1