- add a plain getter in the AbstractHostShell class:
        - the compilation is not broken for subclasses of this class since it 
always returns null
        - the targeted classes (local and remote) can implement the getter 
(local implementation is already there)
        - the reader can be accessed and the output can be read in a 
synchronous way
- add implementation of getReader in TerminaServiceHostShell
        - store the underlying reader as a field of this class & return it
Signed-off-by: Ioana Grigoropol <ioanax.grigoro...@intel.com>
---
 .../services/shells/TerminalServiceHostShell.java  |   20 ++++++++++++--------
 .../rse/services/shells/AbstractHostShell.java     |    9 +++++++--
 2 files changed, 19 insertions(+), 10 deletions(-)

diff --git 
a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/internal/services/shells/TerminalServiceHostShell.java
 
b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/internal/services/shells/TerminalServiceHostShell.java
index 2a461ad..0775894 100644
--- 
a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/internal/services/shells/TerminalServiceHostShell.java
+++ 
b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/internal/services/shells/TerminalServiceHostShell.java
@@ -22,6 +22,7 @@
  * Anna Dushistova  (MontaVista) - [258720] SshHostShell fails to run command 
if initialWorkingDirectory supplied
  * Rob Stryker (JBoss) - [335059] TerminalServiceShellOutputReader logs error 
when hostShell.exit() is called
  * Martin Oberhuber (Wind River) - [356132] wait for initial output
+ * Ioana Grigoropol (Intel)      - [411343] Provide access to readers in host 
shell
  
*******************************************************************************/
 
 package org.eclipse.rse.internal.services.shells;
@@ -47,7 +48,7 @@ public class TerminalServiceHostShell extends 
AbstractHostShell {
        public static final String SHELL_INVOCATION = ">"; //$NON-NLS-1$
 
        ITerminalShell fTerminalShell;
-       
+       BufferedReader fBufReader;
        private TerminalServiceShellOutputReader fStdoutHandler;
        
        private TerminalServiceShellOutputReader fStderrHandler;
@@ -60,21 +61,21 @@ public class TerminalServiceHostShell extends 
AbstractHostShell {
                try {
                        fTerminalShell = terminalShell;
                        String encoding = fTerminalShell.getDefaultEncoding();
-                       BufferedReader bufReader;
+
                        if (encoding != null) {
-                               bufReader = new BufferedReader(new 
InputStreamReader(fTerminalShell
+                               fBufReader = new BufferedReader(new 
InputStreamReader(fTerminalShell
                                                .getInputStream(), encoding)); 
                        } else {
-                               bufReader = new BufferedReader(new 
InputStreamReader(fTerminalShell
+                               fBufReader = new BufferedReader(new 
InputStreamReader(fTerminalShell
                                                                
.getInputStream()));
                        }
                        //bug 356132: wait for initial output before sending 
any command
                        //FIXME this should likely move into the 
TerminalServiceShellWriterThread, so wait can be canceled
-                       bufReader.mark(1);
-                       bufReader.read();
-                       bufReader.reset();
+                       fBufReader.mark(1);
+                       fBufReader.read();
+                       fBufReader.reset();
                        
-                       fStdoutHandler = new 
TerminalServiceShellOutputReader(this, bufReader, false);
+                       fStdoutHandler = new 
TerminalServiceShellOutputReader(this, fBufReader, false);
                        fStderrHandler = new 
TerminalServiceShellOutputReader(this, null, true);
                        OutputStream outputStream = 
fTerminalShell.getOutputStream();
                        if (encoding != null) {
@@ -170,4 +171,7 @@ public class TerminalServiceHostShell extends 
AbstractHostShell {
                return "echo $PWD'>'"; //$NON-NLS-1$
        }
 
+       public BufferedReader getReader(boolean isErrorReader) {
+               return fBufReader;
+       }
 }
diff --git 
a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/shells/AbstractHostShell.java
 
b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/shells/AbstractHostShell.java
index 0ac8e3f..4d189b6 100644
--- 
a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/shells/AbstractHostShell.java
+++ 
b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/shells/AbstractHostShell.java
@@ -11,11 +11,13 @@
  * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
  * 
  * Contributors:
- * {Name} (company) - description of contribution.
+ *   Ioana Grigoropol (Intel)      - [411343] Provide access to readers in 
host shell
  
********************************************************************************/
 
 package org.eclipse.rse.services.shells;
 
+import java.io.BufferedReader;
+
 
 public abstract class AbstractHostShell implements IHostShell
 {
@@ -34,4 +36,7 @@ public abstract class AbstractHostShell implements IHostShell
                }
        }
 
-}
\ No newline at end of file
+       public BufferedReader getReader(boolean isErrorReader){
+               return null;
+       }
+}
-- 
1.7.10.4

_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to