Skip to content

Commit 14f8017

Browse files
authored
feat: AppiumDriverLocalService can handle outputStreams (#1709)
1 parent 101a2e2 commit 14f8017

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import java.time.Duration;
4545
import java.util.List;
4646
import java.util.Map;
47+
import java.util.Optional;
4748
import java.util.concurrent.TimeUnit;
4849
import java.util.concurrent.locks.ReentrantLock;
4950
import java.util.function.BiConsumer;
@@ -70,7 +71,7 @@ public final class AppiumDriverLocalService extends DriverService {
7071
private final ListOutputStream stream = new ListOutputStream().add(System.out);
7172
private final URL url;
7273
private String basePath;
73-
74+
7475
private CommandLine process = null;
7576

7677
AppiumDriverLocalService(String ipAddress, File nodeJSExec,
@@ -294,6 +295,16 @@ public void addOutPutStreams(List<OutputStream> outputStreams) {
294295
}
295296
}
296297

298+
/**
299+
* Remove the outputStream which is receiving server output data.
300+
*
301+
* @return the outputStream has been removed if it is present
302+
*/
303+
public Optional<OutputStream> removeOutPutStream(OutputStream outputStream) {
304+
checkNotNull(outputStream, "outputStream parameter is NULL!");
305+
return stream.remove(outputStream);
306+
}
307+
297308
/**
298309
* Remove all existing server output streams.
299310
*

src/main/java/io/appium/java_client/service/local/ListOutputStream.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.io.OutputStream;
2121
import java.util.ArrayList;
2222
import java.util.List;
23+
import java.util.Optional;
2324

2425
class ListOutputStream extends OutputStream {
2526

@@ -30,6 +31,10 @@ ListOutputStream add(OutputStream stream) {
3031
return this;
3132
}
3233

34+
Optional<OutputStream> remove(OutputStream stream) {
35+
return streams.remove(stream) ? Optional.of(stream) : Optional.empty();
36+
}
37+
3338
@Override public void write(int i) throws IOException {
3439
for (OutputStream stream : streams) {
3540
stream.write(i);

0 commit comments

Comments
 (0)