This is an automated email from the ASF dual-hosted git repository.

duncangrant pushed a commit to branch fix-collect-winrm-streams
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git

commit 7e6fd0cbd84cc73d634c44d7f843b48a8098a7ff
Author: Duncan Grant <[email protected]>
AuthorDate: Tue Feb 9 15:54:35 2021 +0000

    Pass newly created streams to winrm
---
 .../ssh/internal/AbstractSshExecTaskFactory.java   |  4 +++-
 .../util/core/task/system/ProcessTaskWrapper.java  | 24 +++++++++++-----------
 2 files changed, 15 insertions(+), 13 deletions(-)

diff --git 
a/core/src/main/java/org/apache/brooklyn/util/core/task/ssh/internal/AbstractSshExecTaskFactory.java
 
b/core/src/main/java/org/apache/brooklyn/util/core/task/ssh/internal/AbstractSshExecTaskFactory.java
index 776f7a7..a2e5b93 100644
--- 
a/core/src/main/java/org/apache/brooklyn/util/core/task/ssh/internal/AbstractSshExecTaskFactory.java
+++ 
b/core/src/main/java/org/apache/brooklyn/util/core/task/ssh/internal/AbstractSshExecTaskFactory.java
@@ -71,12 +71,14 @@ public abstract class AbstractSshExecTaskFactory<T extends 
AbstractProcessTaskFa
                 richStreamProvider = getRichStreamProvider(tb);
                 if (richStreamProvider==null) {
                     super.initStreams(tb);
+                } else {
+                    super.initStreams(richStreamProvider);
                 }
             }
 
             @Override
             protected ByteArrayOutputStream stderrForReading() {
-                if (richStreamProvider!=null) return 
richStreamProvider.stderrForReading;
+            if (richStreamProvider!=null) return 
richStreamProvider.stderrForReading;
                 return super.stderrForReading();
             }
 
diff --git 
a/core/src/main/java/org/apache/brooklyn/util/core/task/system/ProcessTaskWrapper.java
 
b/core/src/main/java/org/apache/brooklyn/util/core/task/system/ProcessTaskWrapper.java
index eef70c1..03ca591 100644
--- 
a/core/src/main/java/org/apache/brooklyn/util/core/task/system/ProcessTaskWrapper.java
+++ 
b/core/src/main/java/org/apache/brooklyn/util/core/task/system/ProcessTaskWrapper.java
@@ -24,7 +24,6 @@ import java.util.concurrent.Callable;
 
 import org.apache.brooklyn.api.mgmt.Task;
 import org.apache.brooklyn.api.mgmt.TaskWrapper;
-import org.apache.brooklyn.core.mgmt.BrooklynTaskTags;
 import org.apache.brooklyn.util.core.config.ConfigBag;
 import org.apache.brooklyn.util.core.internal.ssh.ShellTool;
 import org.apache.brooklyn.util.core.task.TaskBuilder;
@@ -33,7 +32,6 @@ import 
org.apache.brooklyn.util.core.task.ssh.internal.AbstractSshExecTaskFactor
 import 
org.apache.brooklyn.util.core.task.system.internal.AbstractProcessTaskFactory;
 import org.apache.brooklyn.util.stream.Streams;
 import org.apache.brooklyn.util.text.Strings;
-import org.apache.commons.lang3.tuple.Pair;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -49,10 +47,9 @@ public abstract class ProcessTaskWrapper<RET> extends 
ProcessTaskStub implements
     private final Task<RET> task;
 
     // execution details
-    private ByteArrayOutputStream stdout;
-    private ByteArrayOutputStream stderr;
     protected Integer exitCode = null;
-    
+    private Std2x2StreamProvider streamProvider;
+
     @SuppressWarnings("unchecked")
     protected ProcessTaskWrapper(AbstractProcessTaskFactory<?,RET> 
constructor) {
         super(constructor);
@@ -62,16 +59,18 @@ public abstract class ProcessTaskWrapper<RET> extends 
ProcessTaskStub implements
     }
 
     protected void initStreams(TaskBuilder<Object> tb) {
-        Std2x2StreamProvider r = Std2x2StreamProvider.newDefault(tb);
-        stdout = r.stdoutForReading;
-        stderr = r.stdoutForReading;
+        streamProvider = Std2x2StreamProvider.newDefault(tb);
     }
 
-    protected ByteArrayOutputStream stdoutForReading() { return stdout; }
-    protected OutputStream stdoutForWriting() { return stdout; }
+    protected void initStreams(Std2x2StreamProvider r) {
+        streamProvider = r;
+    }
 
-    protected ByteArrayOutputStream stderrForReading() { return stderr; }
-    protected OutputStream stderrForWriting() { return stderr; }
+    protected ByteArrayOutputStream stdoutForReading() { return 
streamProvider.stdoutForReading; }
+    protected OutputStream stdoutForWriting() { return 
streamProvider.stdoutForWriting; }
+
+    protected ByteArrayOutputStream stderrForReading() { return 
streamProvider.stderrForReading; }
+    protected OutputStream stderrForWriting() { return 
streamProvider.stderrForWriting; }
 
     @Override
     public Task<RET> asTask() {
@@ -107,6 +106,7 @@ public abstract class ProcessTaskWrapper<RET> extends 
ProcessTaskStub implements
         return stderrForReading().toString();
     }
 
+
     protected class ProcessTaskInternalJob implements Callable<Object> {
         @Override
         public Object call() throws Exception {

Reply via email to