blob: 68622224ee7e117f7237f28e7935c70e35b0823b [file] [log] [blame]
Guillaume Nodet05fac962009-04-27 10:01:58 +00001/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17package org.apache.servicemix.jpm;
18
19import java.io.File;
20import java.io.IOException;
21
22/**
23 * Interface used to create new processes.
24 */
25public interface ProcessBuilder {
26
27 /**
28 * Specified the current directory to run the command from
29 *
30 * @param dir the directory to run the command from
31 * @return the ProcessBuilder instance
32 */
33 ProcessBuilder directory(File dir);
34
35 /**
36 * Set the command to execute
37 *
38 * @param command the command to execute
39 * @return the ProcessBuilder instance
40 */
41 ProcessBuilder command(String command);
42
43 /**
44 * Create and start the process
45 *
46 * @return the process that has been started
47 * @throws IOException if the process can not be created
48 */
49 Process start() throws IOException;
50
51 /**
52 * Attach to an existing process
53 *
54 * @return the process that has been attached
55 * @throws IOException if the process can not be attached to
56 */
57 Process attach(int pid) throws IOException;
58
59}