aboutsummaryrefslogtreecommitdiffstats
path: root/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/process/TerminalImpl.java
blob: e13e30d9c751bf3b6b58ac46ccdd744315245279 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.node.admin.task.util.process;

import com.yahoo.jdisc.Timer;
import com.yahoo.vespa.hosted.node.admin.component.TaskContext;

/**
 * @author hakonhall
 */
public class TerminalImpl implements Terminal {
    private final ProcessFactory processFactory;

    public TerminalImpl(Timer timer) {
        this(new ProcessFactoryImpl(new ProcessStarterImpl(), timer));
    }

    /** For testing. */
    public TerminalImpl(ProcessFactory processFactory) {
        this.processFactory = processFactory;
    }

    @Override
    public CommandLine newCommandLine(TaskContext taskContext) {
        return new CommandLine(taskContext, processFactory);
    }
}