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();
+ }
+ }
+ }
+ }
+}