airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ramin...@apache.org
Subject svn commit: r1345314 - in /incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac: external/GridFtp.java provider/impl/GramProvider.java provider/utils/GramRSLGenerator.java utils/OutputUtils.java
Date Fri, 01 Jun 2012 19:00:26 GMT
Author: raminder
Date: Fri Jun  1 19:00:24 2012
New Revision: 1345314

URL: http://svn.apache.org/viewvc?rev=1345314&view=rev
Log:
merged the changes with the trunk

Modified:
    incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/external/GridFtp.java
    incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/impl/GramProvider.java
    incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java
    incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/OutputUtils.java

Modified: incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/external/GridFtp.java
URL: http://svn.apache.org/viewvc/incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/external/GridFtp.java?rev=1345314&r1=1345313&r2=1345314&view=diff
==============================================================================
--- incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/external/GridFtp.java
(original)
+++ incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/external/GridFtp.java
Fri Jun  1 19:00:24 2012
@@ -28,17 +28,24 @@ import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Vector;
 
 import org.apache.airavata.core.gfac.exception.GfacException;
 import org.apache.airavata.core.gfac.exception.ToolsException;
 import org.apache.airavata.core.gfac.utils.GFacConstants;
+import org.apache.airavata.core.gfac.utils.GfacUtils;
 import org.apache.airavata.core.gfac.utils.GridFTPContactInfo;
 import org.globus.ftp.DataChannelAuthentication;
 import org.globus.ftp.DataSourceStream;
+import org.globus.ftp.FileInfo;
 import org.globus.ftp.GridFTPClient;
 import org.globus.ftp.HostPort;
 import org.globus.ftp.Marker;
 import org.globus.ftp.MarkerListener;
+import org.globus.ftp.MlsxEntry;
 import org.globus.ftp.Session;
 import org.globus.ftp.exception.ClientException;
 import org.globus.ftp.exception.ServerException;
@@ -55,6 +62,7 @@ public class GridFtp {
     public static final Logger log = LoggerFactory.getLogger(GridFtp.class);
 
     public static final String GSIFTP_SCHEME = "gsiftp";
+    public static final String HOST = "host";
 
     /**
      * Make directory at remote location
@@ -77,7 +85,7 @@ public class GridFtp {
             int tryCount = 0;
             while (true) {
                 try {
-                    destClient.setAuthorization(new HostAuthorization("host"));
+                    destClient.setAuthorization(new HostAuthorization(GridFtp.HOST));
                     destClient.authenticate(gssCred);
                     destClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
 
@@ -110,7 +118,7 @@ public class GridFtp {
                 try {
                     destClient.close();
                 } catch (Exception e) {
-                    log.warn("Cannot close GridFTP client connection");
+                    log.warn("Cannot close GridFTP client connection",e);
                 }
             }
         }
@@ -136,7 +144,7 @@ public class GridFtp {
             log.debug("Setup GridFTP Client");
 
             ftpClient = new GridFTPClient(contactInfo.hostName, contactInfo.port);
-            ftpClient.setAuthorization(new HostAuthorization("host"));
+            ftpClient.setAuthorization(new HostAuthorization(GridFtp.HOST));
             ftpClient.authenticate(gsCredential);
             ftpClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
 
@@ -160,7 +168,7 @@ public class GridFtp {
                 try {
                     ftpClient.close();
                 } catch (Exception e) {
-                    log.warn("Cannot close GridFTP client connection");
+                    log.warn("Cannot close GridFTP client connection",e);
                 }
             }
         }
@@ -175,12 +183,12 @@ public class GridFtp {
             log.info("The remote file is " + remoteFile);
             log.debug("Setup GridFTP Client");
             srcClient = new GridFTPClient(srcContactInfo.hostName, srcContactInfo.port);
-            srcClient.setAuthorization(new HostAuthorization("host"));
+            srcClient.setAuthorization(new HostAuthorization(GridFtp.HOST));
             srcClient.authenticate(gsCredential);
             srcClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
 
             GridFTPClient destClient = new GridFTPClient(srcContactInfo.hostName, srcContactInfo.port);
-            destClient.setAuthorization(new HostAuthorization("host"));
+            destClient.setAuthorization(new HostAuthorization(GridFtp.HOST));
             destClient.authenticate(gsCredential);
             destClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
 
@@ -201,7 +209,7 @@ public class GridFtp {
                 try {
                     srcClient.close();
                 } catch (Exception e) {
-                    log.warn("Cannot close GridFTP client connection");
+                    log.warn("Cannot close GridFTP client connection",e);
                 }
             }
         }
@@ -228,7 +236,7 @@ public class GridFtp {
             log.debug("Setup GridFTP Client");
 
             ftpClient = new GridFTPClient(contactInfo.hostName, contactInfo.port);
-            ftpClient.setAuthorization(new HostAuthorization("host"));
+            ftpClient.setAuthorization(new HostAuthorization(GridFtp.HOST));
             ftpClient.authenticate(gsCredential);
             ftpClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
 
@@ -249,7 +257,7 @@ public class GridFtp {
                 try {
                     ftpClient.close();
                 } catch (Exception e) {
-                    log.warn("Cannot close GridFTP client connection");
+                    log.warn("Cannot close GridFTP client connection",e);
                 }
             }
         }
@@ -275,7 +283,7 @@ public class GridFtp {
             log.debug("Setup GridFTP Client");
 
             ftpClient = new GridFTPClient(contactInfo.hostName, contactInfo.port);
-            ftpClient.setAuthorization(new HostAuthorization("host"));
+            ftpClient.setAuthorization(new HostAuthorization(GridFtp.HOST));
             ftpClient.authenticate(gsCredential);
             ftpClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
 
@@ -296,7 +304,7 @@ public class GridFtp {
                 try {
                     ftpClient.close();
                 } catch (Exception e) {
-                    log.warn("Cannot close GridFTP client connection");
+                    log.warn("Cannot close GridFTP client connection",e);
                 }
             }
         }
@@ -346,7 +354,7 @@ public class GridFtp {
                 try {
                     instream.close();
                 } catch (Exception e) {
-                    log.warn("Cannot close GridFTP client connection");
+                    log.warn("Cannot close GridFTP client connection",e);
                 }
             }
         }
@@ -369,13 +377,13 @@ public class GridFtp {
 
         try {
             destClient = new GridFTPClient(desthost.getHost(), desthost.getPort());
-            destClient.setAuthorization(new HostAuthorization("host"));
+            destClient.setAuthorization(new HostAuthorization(GridFtp.HOST));
             destClient.authenticate(gssCred);
             destClient.setType(Session.TYPE_IMAGE);
 
 
             srcClient = new GridFTPClient(srchost.getHost(), srchost.getPort());
-            srcClient.setAuthorization(new HostAuthorization("host"));
+            srcClient.setAuthorization(new HostAuthorization(GridFtp.HOST));
             srcClient.authenticate(gssCred);
             srcClient.setType(Session.TYPE_IMAGE);
 
@@ -422,9 +430,74 @@ public class GridFtp {
                 try {
                     srcClient.close();
                 } catch (Exception e) {
-                    log.warn("Cannot close GridFTP client connection at Source:" + srchost.toString());
+                    log.warn("Cannot close GridFTP client connection at Source:" + srchost.toString(),e);
                 }
             }
         }
     }
+
+	/**
+	 * List files in a GridFTP directory
+	 * @param dirURI
+	 * @param gssCred
+	 * @return
+	 * @throws ToolsException
+	 */
+    @SuppressWarnings("unchecked")
+	public List<String> listDir(URI dirURI, GSSCredential gssCred) throws ToolsException
{
+    	List<String> files = new  ArrayList<String>();
+	    GridFTPClient srcClient = null;
+			try {
+				GridFTPContactInfo contactInfo = new GridFTPContactInfo(dirURI.getHost(), dirURI.getPort());
+
+				srcClient = new GridFTPClient(contactInfo.hostName, contactInfo.port);
+				srcClient.setAuthorization(new HostAuthorization(GridFtp.HOST));
+				srcClient.authenticate(gssCred);
+				srcClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
+				srcClient.setType(Session.TYPE_ASCII);
+				srcClient.changeDir(dirURI.getPath());
+
+				Vector<Object> fileInfo = null;
+				try {
+					fileInfo = srcClient.mlsd();
+				} catch (Throwable e) {
+					fileInfo = srcClient.list();
+				}
+
+				if (!fileInfo.isEmpty()) {
+					for (int j = 0; j < fileInfo.size(); ++j) {
+						String name = null;
+						if (fileInfo.get(j) instanceof MlsxEntry) {
+							name = ((MlsxEntry) fileInfo.get(j)).getFileName();
+						} else if (fileInfo.get(j) instanceof FileInfo) {
+							name = ((FileInfo) fileInfo.get(j)).getName();
+						} else {
+							throw new ToolsException("Unsupported type returned by gridftp " + fileInfo.get(j));
+						}
+
+						if (!name.equals(".") && !name.equals("..")) {
+							URI uri = GfacUtils.createGsiftpURI(contactInfo.hostName, dirURI.getPath() + File.separator
+ name);
+							files.add(uri.getPath());
+						}
+					}
+				}
+				return files;
+			} catch (IOException e) {
+				throw new ToolsException("Could not list directory: " + dirURI.toString() ,e);
+			} catch (ServerException e) {
+				throw new ToolsException("Could not list directory: " + dirURI.toString() ,e);
+			} catch (ClientException e) {
+				throw new ToolsException("Could not list directory: " + dirURI.toString() ,e);
+			} catch (URISyntaxException e) {
+				throw new ToolsException("Error creating URL of listed files: " + dirURI.toString() ,e);
+			} finally {
+				if (srcClient != null) {
+	                try {
+	                    srcClient.close();
+	                } catch (Exception e) {
+	                    log.warn("Cannot close GridFTP client connection", e);
+	                }
+	            }
+		}
+	}
 }

Modified: incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/impl/GramProvider.java
URL: http://svn.apache.org/viewvc/incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/impl/GramProvider.java?rev=1345314&r1=1345313&r2=1345314&view=diff
==============================================================================
--- incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/impl/GramProvider.java
(original)
+++ incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/impl/GramProvider.java
Fri Jun  1 19:00:24 2012
@@ -47,6 +47,7 @@ import org.apache.airavata.schemas.gfac.
 import org.apache.airavata.schemas.gfac.URIArrayType;
 import org.apache.airavata.schemas.gfac.URIParameterType;
 import org.apache.airavata.schemas.wec.WorkflowOutputDataHandlingDocument;
+import org.apache.xmlbeans.XmlException;
 import org.globus.gram.GramAttributes;
 import org.globus.gram.GramException;
 import org.globus.gram.GramJob;
@@ -100,6 +101,7 @@ public class GramProvider extends Abstra
                     ftp.makeDir(tmpdirURI, gssCred);
                     ftp.makeDir(workingDirURI, gssCred);
                     ftp.makeDir(inputURI, gssCred);
+                    ftp.makeDir(outputURI, gssCred);
                     success = true;
                     break;
                 } catch (URISyntaxException e) {
@@ -203,38 +205,20 @@ public class GramProvider extends Abstra
              */
             int jobStatus = listener.getStatus();
 
-            if(job.getExitCode() != 0){
+            if(job.getExitCode() != 0 || jobStatus == GramJob.STATUS_FAILED){
                 int errCode = listener.getError();
                 String errorMsg = "Job " + job.getID() + " on host " + host.getHostAddress()
+ " Job Exit Code = "
-                        + job.getExitCode();
+                        + listener.getError();
                 JobSubmissionFault error = new JobSubmissionFault(this, new Exception(errorMsg),
"GFAC HOST",
                         gateKeeper, job.getRSL());
-                if (errCode == 8) {
-                    error.setReason(JobSubmissionFault.JOB_CANCEL);
-                } else {
-                    error.setReason(JobSubmissionFault.JOB_FAILED + " With Exit Code:" +
job.getExitCode());
-                }
-                invocationContext.getExecutionContext().getNotifier().executionFail(invocationContext,error,errorMsg);
-                throw error;
-            }
-            if (jobStatus == GramJob.STATUS_FAILED) {
-                int errCode = listener.getError();
-                String errorMsg = "Job " + job.getID() + " on host " + host.getHostAddress()
+ " Error Code = "
-                        + errCode;
-                JobSubmissionFault error = new JobSubmissionFault(this, new Exception(errorMsg),
"GFAC HOST",
-                        gateKeeper, job.getRSL());
-                if (errCode == 8) {
-                    error.setReason(JobSubmissionFault.JOB_CANCEL);
-                } else {
-                    error.setReason(JobSubmissionFault.JOB_FAILED);
-                }
+                errorReason(errCode, error);
                 invocationContext.getExecutionContext().getNotifier().executionFail(invocationContext,error,errorMsg);
                 throw error;
             }
-
-        } catch (GramException e) {
-            invocationContext.getExecutionContext().getNotifier().executionFail(invocationContext,e,e.getMessage());
-            throw new ProviderException(e.getMessage(), e);
+         } catch (GramException e) {
+            JobSubmissionFault error = new JobSubmissionFault(this, e, host.getHostAddress(),
gateKeeper, job.getRSL());
+            int errCode = listener.getError();
+		    throw errorReason(errCode, error);
         } catch (GSSException e) {
             invocationContext.getExecutionContext().getNotifier().executionFail(invocationContext,e,e.getMessage());
             throw new ProviderException(e.getMessage(), e);
@@ -244,20 +228,20 @@ public class GramProvider extends Abstra
         } catch (SecurityException e) {
             invocationContext.getExecutionContext().getNotifier().executionFail(invocationContext,e,e.getMessage());
             throw new ProviderException(e.getMessage(), e);
-        } finally {
-            if (job != null) {
-                try {
-                    job.cancel();
-                } catch (Exception e) {
-//                    invocationContext.getExecutionContext().getNotifier().executionFail(invocationContext,e,e.getMessage());
-//                    throw new ProviderException(e.getMessage(), e);
-                }
-            }
-        }
+        } 
 
     }
+    private JobSubmissionFault errorReason(int errCode, JobSubmissionFault error) {
+		if (errCode == 8) {
+		    error.setReason(JobSubmissionFault.JOB_CANCEL);
+		} else {
+		    error.setReason(JobSubmissionFault.JOB_FAILED + " With Exit Code:" + job.getExitCode());
+		}
+		return error;
+	}
 
-    public Map<String, ?> processOutput(InvocationContext invocationContext) throws
ProviderException {
+    @Override
+    protected Map<String, ?> processOutput(InvocationContext invocationContext) throws
ProviderException {
         GlobusHostType host = (GlobusHostType) invocationContext.getExecutionDescription().getHost().getType();
         ApplicationDeploymentDescriptionType app = invocationContext.getExecutionDescription().getApp().getType();
         GridFtp ftp = new GridFtp();
@@ -268,18 +252,13 @@ public class GramProvider extends Abstra
             if (hostgridFTP == null || hostgridFTP.length == 0) {
                 hostgridFTP = new String[] { host.getHostAddress() };
             }
-
             boolean success = false;
             ProviderException pe = new ProviderException("");
-
             for (String endpoint : host.getGridFTPEndPointArray()) {
-
                 try {
-
                     /*
-                     * Stdout and Stderror
+                     *  Read Stdout and Stderror
                      */
-
                     URI stdoutURI = GfacUtils.createGsiftpURI(endpoint, app.getStandardOutput());
                     URI stderrURI = GfacUtils.createGsiftpURI(endpoint, app.getStandardError());
 
@@ -291,7 +270,6 @@ public class GramProvider extends Abstra
                         logDir.mkdir();
                     }
 
-                    // Get the Stdouts and StdErrs
                     String timeStampedServiceName = GfacUtils.createUniqueNameForService(invocationContext
                             .getServiceName());
                     File localStdOutFile = File.createTempFile(timeStampedServiceName, "stdout");
@@ -299,40 +277,38 @@ public class GramProvider extends Abstra
 
                     String stdout = ftp.readRemoteFile(stdoutURI, gssCred, localStdOutFile);
                     String stderr = ftp.readRemoteFile(stderrURI, gssCred, localStdErrFile);
-                    Map<String,?> stringMap = null;
-                    // This is to handle exception during the output parsing.
-                    try{
-                         stringMap = OutputUtils.fillOutputFromStdout(invocationContext.<ActualParameter>getOutput(),
stdout);
-                    }catch(Exception e){
-                        int errCode = listener.getError();
-                            String errorMsg = "Job " + job.getID() + " on host " + host.getHostAddress();
-                            JobSubmissionFault error = new JobSubmissionFault(this, new Exception(errorMsg),
"GFAC HOST",
-                                    gateKeeper, job.getRSL());
-                            if (errCode == 8) {
-                                error.setReason(JobSubmissionFault.JOB_CANCEL);
-                            } else {
-                                error.setReason(JobSubmissionFault.JOB_FAILED + " With Null
Output Value :");
-                            }
-                            invocationContext.getExecutionContext().getNotifier().executionFail(invocationContext,error,errorMsg);
-                            throw error;
-                    }
-                    MessageContext<Object> input = invocationContext.getOutput();
-                    for (Iterator<String> iterator = input.getNames(); iterator.hasNext();
) {
+                    Map<String,ActualParameter> stringMap = null;
+                    MessageContext<Object> output = invocationContext.getOutput();
+                    for (Iterator<String> iterator = output.getNames(); iterator.hasNext();
) {
                         String paramName = iterator.next();
-                        String paramValue = input.getStringValue(paramName);
-                        if("".equals(paramValue) || paramValue == null){
+                        ActualParameter actualParameter = (ActualParameter) output.getValue(paramName);
+						if ("URIArray".equals(actualParameter.getType().getType().toString())) {
+							URI outputURI = GfacUtils.createGsiftpURI(endpoint,app.getOutputDataDirectory());
+							List<String> outputList = ftp.listDir(outputURI,gssCred);
+							String[] valueList = outputList.toArray(new String[outputList.size()]);
+							((URIArrayType) actualParameter.getType()).setValueArray(valueList);
+							stringMap = new HashMap<String, ActualParameter>();
+							stringMap.put(paramName, actualParameter);
+						}
+                    	else{
+                    	// This is to handle exception during the output parsing.
+                        stringMap = OutputUtils.fillOutputFromStdout(invocationContext.<ActualParameter>getOutput(),
stdout);
+                        String paramValue = output.getStringValue(paramName);
+                        if(paramValue == null || paramValue.isEmpty()){
                             int errCode = listener.getError();
                             String errorMsg = "Job " + job.getID() + " on host " + host.getHostAddress();
                             JobSubmissionFault error = new JobSubmissionFault(this, new Exception(errorMsg),
"GFAC HOST",
                                     gateKeeper, job.getRSL());
-                            if (errCode == 8) {
-                                error.setReason(JobSubmissionFault.JOB_CANCEL);
-                            } else {
-                                error.setReason(JobSubmissionFault.JOB_FAILED + " With Exit
Code:" + job.getExitCode());
-                            }
+                            errorReason(errCode, error);
                             invocationContext.getExecutionContext().getNotifier().executionFail(invocationContext,error,errorMsg);
                             throw error;
                         }
+                        }
+                    }
+                    if(stringMap == null || stringMap.isEmpty()){
+                    	ProviderException exception = new ProviderException("Error creating
job output");
+                    	 invocationContext.getExecutionContext().getNotifier().executionFail(invocationContext,exception,exception.getLocalizedMessage());
+                         throw exception;
                     }
                     // If users has given an output DAta poth we download the output files
in to that directory, this will be apath in the machine where GFac is installed
                     if(WorkflowContextHeaderBuilder.getCurrentContextHeader()
@@ -347,7 +323,11 @@ public class GramProvider extends Abstra
                         }
                     }
                     return stringMap;
-                } catch (ToolsException e) {
+                }catch (XmlException e) {
+                    invocationContext.getExecutionContext().getNotifier().executionFail(invocationContext,e,e.getMessage());
+                    throw new ProviderException(e.getMessage(), e);
+                }
+                catch (ToolsException e) {
                     invocationContext.getExecutionContext().getNotifier().executionFail(invocationContext,e,e.getMessage());
                     throw new ProviderException(e.getMessage(), e);
                 } catch (URISyntaxException e) {
@@ -370,7 +350,6 @@ public class GramProvider extends Abstra
         }
 
     }
-
 	@Override
 	protected Map<String, ?> processInput(InvocationContext invocationContext)
             throws ProviderException {

Modified: incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java
URL: http://svn.apache.org/viewvc/incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java?rev=1345314&r1=1345313&r2=1345314&view=diff
==============================================================================
--- incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java
(original)
+++ incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java
Fri Jun  1 19:00:24 2012
@@ -72,7 +72,7 @@ public class GramRSLGenerator {
             }
         }
         jobAttr.addEnvVariable(GFacConstants.INPUT_DATA_DIR_VAR_NAME, app.getInputDataDirectory());
-        jobAttr.addEnvVariable(GFacConstants.INPUT_DATA_DIR_VAR_NAME, app.getOutputDataDirectory());
+        jobAttr.addEnvVariable(GFacConstants.OUTPUT_DATA_DIR_VAR_NAME, app.getOutputDataDirectory());
 
         if (app.getMaxWallTime() > 0) {
             log.info("Setting max wall clock time to " + app.getMaxWallTime());

Modified: incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/OutputUtils.java
URL: http://svn.apache.org/viewvc/incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/OutputUtils.java?rev=1345314&r1=1345313&r2=1345314&view=diff
==============================================================================
--- incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/OutputUtils.java
(original)
+++ incubator/airavata/branches/0.3-incubating-snapshot/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/OutputUtils.java
Fri Jun  1 19:00:24 2012
@@ -37,7 +37,7 @@ public class OutputUtils {
     private OutputUtils() {
     }
 
-    public static Map<String, ?> fillOutputFromStdout(MessageContext<ActualParameter>
outMessage, String stdout) throws XmlException{
+    public static Map<String, ActualParameter> fillOutputFromStdout(MessageContext<ActualParameter>
outMessage, String stdout) throws XmlException{
 
         Map<String, ActualParameter> result = new HashMap<String, ActualParameter>();
 



Mime
View raw message