You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sa...@apache.org on 2012/05/18 04:05:16 UTC

svn commit: r1339952 - in /incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider: impl/LocalProvider.java utils/InputStreamToFileWriter.java

Author: samindaw
Date: Fri May 18 02:05:16 2012
New Revision: 1339952

URL: http://svn.apache.org/viewvc?rev=1339952&view=rev
Log:
https://issues.apache.org/jira/browse/AIRAVATA-415: patch by milinda

Added:
    incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/InputStreamToFileWriter.java
Modified:
    incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/impl/LocalProvider.java

Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/impl/LocalProvider.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/impl/LocalProvider.java?rev=1339952&r1=1339951&r2=1339952&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/impl/LocalProvider.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/impl/LocalProvider.java Fri May 18 02:05:16 2012
@@ -38,6 +38,7 @@ import org.apache.airavata.commons.gfac.
 import org.apache.airavata.core.gfac.context.invocation.InvocationContext;
 import org.apache.airavata.core.gfac.exception.ProviderException;
 import org.apache.airavata.core.gfac.provider.AbstractProvider;
+import org.apache.airavata.core.gfac.provider.utils.InputStreamToFileWriter;
 import org.apache.airavata.core.gfac.utils.GFacConstants;
 import org.apache.airavata.core.gfac.utils.GfacUtils;
 import org.apache.airavata.core.gfac.utils.InputUtils;
@@ -48,51 +49,12 @@ import org.apache.xmlbeans.XmlException;
 
 /**
  * {@link LocalProvider} will execute jobs (application) on local machine.
- *
  */
 public class LocalProvider extends AbstractProvider {
 
     private ProcessBuilder builder;
     private List<String> cmdList;
 
-    private class ReadStreamWriteFile extends Thread {
-        private BufferedReader in;
-        private BufferedWriter out;
-
-        public ReadStreamWriteFile(InputStream in, String out) throws IOException {
-            this.in = new BufferedReader(new InputStreamReader(in));
-            this.out = new BufferedWriter(new FileWriter(out));
-        }
-
-        public void run() {
-            try {
-                String line = null;
-                while ((line = in.readLine()) != null) {
-                    log.debug(line);
-                    out.write(line);
-                    out.newLine();
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            } finally {
-                if (in != null) {
-                    try {
-                        in.close();
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                }
-                if (out != null) {
-                    try {
-                        out.close();
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                }
-            }
-        }
-    }
-
     private void makeFileSystemDir(String dir) throws ProviderException {
         File f = new File(dir);
         if (f.isDirectory() && f.exists()) {
@@ -119,7 +81,7 @@ public class LocalProvider extends Abstr
 
         // input parameter
         ArrayList<String> tmp = new ArrayList<String>();
-        for (Iterator<String> iterator = context.getInput().getNames(); iterator.hasNext();) {
+        for (Iterator<String> iterator = context.getInput().getNames(); iterator.hasNext(); ) {
             String key = iterator.next();
             tmp.add(context.getInput().getStringValue(key));
         }
@@ -174,8 +136,8 @@ public class LocalProvider extends Abstr
             // running cmd
             Process process = builder.start();
 
-            Thread t1 = new ReadStreamWriteFile(process.getInputStream(), app.getStandardOutput());
-            Thread t2 = new ReadStreamWriteFile(process.getErrorStream(), app.getStandardError());
+            Thread t1 = new InputStreamToFileWriter(process.getInputStream(), app.getStandardOutput());
+            Thread t2 = new InputStreamToFileWriter(process.getErrorStream(), app.getStandardError());
 
             // start output threads
             t1.setDaemon(true);
@@ -223,7 +185,7 @@ public class LocalProvider extends Abstr
             String stdOutStr = GfacUtils.readFileToString(app.getStandardOutput());
 
             // set to context
-            return OutputUtils.fillOutputFromStdout(context.<ActualParameter> getOutput(), stdOutStr);
+            return OutputUtils.fillOutputFromStdout(context.<ActualParameter>getOutput(), stdOutStr);
         } catch (XmlException e) {
             throw new ProviderException("Cannot read output:" + e.getMessage(), e);
         } catch (IOException io) {
@@ -231,10 +193,10 @@ public class LocalProvider extends Abstr
         }
     }
 
-	@Override
-	protected Map<String, ?> processInput(InvocationContext invocationContext)
-			throws ProviderException {
-		// TODO Auto-generated method stub
-		return null;
-	}
+    @Override
+    protected Map<String, ?> processInput(InvocationContext invocationContext)
+            throws ProviderException {
+        // TODO Auto-generated method stub
+        return null;
+    }
 }

Added: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/InputStreamToFileWriter.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/InputStreamToFileWriter.java?rev=1339952&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/InputStreamToFileWriter.java (added)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/InputStreamToFileWriter.java Fri May 18 02:05:16 2012
@@ -0,0 +1,48 @@
+package org.apache.airavata.core.gfac.provider.utils;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.*;
+
+public class InputStreamToFileWriter extends Thread {
+    protected final Logger log = LoggerFactory.getLogger(this.getClass());
+
+    private BufferedReader in;
+    private BufferedWriter out;
+
+    public InputStreamToFileWriter(InputStream in, String out) throws IOException {
+        this.in = new BufferedReader(new InputStreamReader(in));
+        this.out = new BufferedWriter(new FileWriter(out));
+    }
+
+    public void run() {
+        try {
+            String line = null;
+            while ((line = in.readLine()) != null) {
+                if (log.isDebugEnabled()) {
+                    log.debug(line);
+                }
+                out.write(line);
+                out.newLine();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (in != null) {
+                try {
+                    in.close();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+            if (out != null) {
+                try {
+                    out.close();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+}