[yocto] [PATCH 07/12] Move RemoteShellExec to separate plugin

Ioana Grigoropol ioanax.grigoropol at intel.com
Thu May 9 00:47:09 PDT 2013


- RemoteShellExec is a wrapper over a remote executiong of a command in a shell and it belongs to org.yocto.remote.utils plugin
- remove RemoteShellExec from remotetools plugin and add it to org.yocto.remote.utils
- modify org.yocto.sdk.remotetools to use implementation from org.yocto.remote.utils

Signed-off-by: Ioana Grigoropol <ioanax.grigoropol at intel.com>
---
 .../org/yocto/remote/utils}/RemoteShellExec.java   |   95 +++++++++-----------
 .../yocto/sdk/remotetools/actions/BaseModel.java   |    2 +-
 2 files changed, 44 insertions(+), 53 deletions(-)
 rename plugins/{org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/remote => org.yocto.remote.utils/src/org/yocto/remote/utils}/RemoteShellExec.java (69%)

diff --git a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/remote/RemoteShellExec.java b/plugins/org.yocto.remote.utils/src/org/yocto/remote/utils/RemoteShellExec.java
similarity index 69%
rename from plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/remote/RemoteShellExec.java
rename to plugins/org.yocto.remote.utils/src/org/yocto/remote/utils/RemoteShellExec.java
index bfcbbfc..48b4f4d 100644
--- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/remote/RemoteShellExec.java
+++ b/plugins/org.yocto.remote.utils/src/org/yocto/remote/utils/RemoteShellExec.java
@@ -8,7 +8,7 @@
  * Contributors:
  * Intel - initial API and implementation
  *******************************************************************************/
-package org.yocto.sdk.remotetools.remote;
+package org.yocto.remote.utils;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -17,60 +17,53 @@ import java.io.InputStreamReader;
 import java.io.OutputStream;
 
 import org.eclipse.core.runtime.IProgressMonitor;
-//import org.eclipse.tcf.protocol.IToken;
-//import org.eclipse.tcf.services.IStreams;
-//import org.eclipse.tcf.services.IProcesses;
-//import org.eclipse.tcf.util.TCFTask;
 import org.eclipse.rse.core.model.IHost;
-import org.yocto.remote.utils.RSEHelper;
 
 public class RemoteShellExec {
-	
+
 	public static final int
     STATE_NULL = 0,
     STATE_RUNNING = 1,
     STATE_EXITED = 2;
-	
-	private String command;
-	private IHost host;
-	
+
+	private final String command;
+	private final IHost host;
+
 	private InputStream fInStream;
     private OutputStream fOutStream;
     private InputStream fErrStream;
     private Process remoteShellProcess;
-	
-	private int exit_code=0;
-	private int status=STATE_NULL;
-	
-	private String RETURN_VALUE_TAG = "org.yocto.sdk.remotetools.RVTAG";
-	private String RETURN_VALUE_CMD = ";echo \"" + RETURN_VALUE_TAG + "$?\"";
-	
+
+	private int exitCode = 0;
+	private int status = STATE_NULL;
+
+	private final String RETURN_VALUE_TAG = "org.yocto.sdk.remotetools.RVTAG";
+	private final String RETURN_VALUE_CMD = ";echo \"" + RETURN_VALUE_TAG + "$?\"";
+
 	public RemoteShellExec(IHost host, String command) {
 		assert(host != null);
 		this.host = host;
-		this.command=command;
+		this.command = command;
 	}
-	
-	public int getStatus()
-	{
+
+	public int getStatus() {
 		return status;
 	}
-	
-	public int getExitCode()
-	{
-		return exit_code;
+
+	public int getExitCode() {
+		return exitCode;
 	}
-	
+
 	private void reset() {
-		fInStream=null;
-		fOutStream=null;
-		fErrStream=null;
-		
-		remoteShellProcess=null;
-		exit_code=0;
-		status=STATE_NULL;
+		fInStream = null;
+		fOutStream = null;
+		fErrStream = null;
+
+		remoteShellProcess = null;
+		exitCode = 0;
+		status = STATE_NULL;
 	}
-	
+
 	public InputStream getInputStream() {
         return fInStream;
     }
@@ -78,15 +71,15 @@ public class RemoteShellExec {
     public OutputStream getOutputStream() {
         return fOutStream;
     }
-    
+
     public InputStream getErrStream() {
         return fErrStream;
     }
-    
+
 	public synchronized void start(String prelaunchCmd, String argument, IProgressMonitor monitor) throws Exception {
 		if(status == STATE_RUNNING)
 				return;
-	
+
 		reset();
 		argument = (argument == null ? RETURN_VALUE_CMD : argument + RETURN_VALUE_CMD);
 		remoteShellProcess = RSEHelper.remoteShellExec(this.host, prelaunchCmd, this.command, argument, monitor);
@@ -95,41 +88,39 @@ public class RemoteShellExec {
 		fErrStream = remoteShellProcess.getErrorStream();
 		status = STATE_RUNNING;
 	}
-	
+
 	 public synchronized void terminate() throws Exception {
-		 
 		 if(status != STATE_RUNNING || remoteShellProcess != null)
 			 return;
-		 
+
 		 remoteShellProcess.destroy();
 		 reset();
 	 }
-	 
+
 	 public int waitFor(IProgressMonitor monitor) throws InterruptedException {
-		 while(status==STATE_RUNNING) {
-			 if(monitor!=null) {
+		 while(status == STATE_RUNNING) {
+			 if(monitor != null) {
 	    			if(monitor.isCanceled()) {
 	    				throw new InterruptedException("User Cancelled");
 	    			}
  			 }
-			 
+
 			 try {
 				 remoteShellProcess.waitFor();
 			 }catch(InterruptedException e){
 				 //get the return value
 				 try {
 					 if(fInStream.available() != 0) {
-						 BufferedReader in=new BufferedReader(new InputStreamReader(fInStream));
+						 BufferedReader in = new BufferedReader(new InputStreamReader(fInStream));
 						 String thisline;
 						 int idx;
-						 while((thisline=in.readLine()) != null) {
-							    if(thisline.indexOf(RETURN_VALUE_CMD)==-1) {
-									idx=thisline.indexOf(RETURN_VALUE_TAG);
+						 while((thisline = in.readLine()) != null) {
+							    if(thisline.indexOf(RETURN_VALUE_CMD) == -1) {
+									idx = thisline.indexOf(RETURN_VALUE_TAG);
 									if(idx != -1) {
 										try {
-											exit_code=(new Integer(thisline.substring(idx+RETURN_VALUE_TAG.length()))).intValue();
+											exitCode=(new Integer(thisline.substring(idx+RETURN_VALUE_TAG.length()))).intValue();
 										}catch(NumberFormatException e2) {
-											//
 										}
 										break;
 									}
@@ -143,7 +134,7 @@ public class RemoteShellExec {
 				 status=STATE_EXITED;
 			 }
 		 }
-		 return exit_code;
+		 return exitCode;
 	 }
 }
 
diff --git a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/BaseModel.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/BaseModel.java
index 08cb873..dacd192 100644
--- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/BaseModel.java
+++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/BaseModel.java
@@ -19,7 +19,7 @@ import org.eclipse.core.runtime.SubProgressMonitor;
 import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.rse.core.model.IHost;
 import org.yocto.remote.utils.RSEHelper;
-import org.yocto.sdk.remotetools.remote.RemoteShellExec;
+import org.yocto.remote.utils.RemoteShellExec;
 
 abstract public class BaseModel implements IRunnableWithProgress {
 	protected IHost host;
-- 
1.7.9.5




More information about the yocto mailing list