You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by pa...@apache.org on 2011/08/31 22:17:34 UTC

svn commit: r1163789 - in /incubator/airavata/trunk/modules/gfac-core/src: main/java/org/apache/airavata/core/gfac/notification/ main/java/org/apache/airavata/core/gfac/notification/impl/ main/java/org/apache/airavata/core/gfac/provider/ main/java/org/...

Author: patanachai
Date: Wed Aug 31 20:17:34 2011
New Revision: 1163789

URL: http://svn.apache.org/viewvc?rev=1163789&view=rev
Log:
prototype Notification Interface

Added:
    incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/
    incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/DummyNotification.java
    incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/StandardOutNotification.java
Modified:
    incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/DummyNotification.java
    incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/NotificationService.java
    incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/EC2Provider.java
    incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/GramProvider.java
    incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/LocalProvider.java
    incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/SSHProvider.java
    incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/JobSubmissionListener.java
    incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/AbstractSimpleService.java
    incubator/airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/PropertiesBasedServiceImplTest.java

Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/NotificationService.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/NotificationService.java?rev=1163789&r1=1163788&r2=1163789&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/NotificationService.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/NotificationService.java Wed Aug 31 20:17:34 2011
@@ -21,56 +21,37 @@
 
 package org.apache.airavata.core.gfac.notification;
 
-import java.net.URI;
-
-import org.apache.airavata.core.gfac.context.MessageContext;
-import org.apache.airavata.core.gfac.exception.GfacException;
-
-import edu.indiana.extreme.lead.workflow_tracking.common.DataDurationObj;
-import edu.indiana.extreme.lead.workflow_tracking.common.DataObj;
-import edu.indiana.extreme.lead.workflow_tracking.common.DurationObj;
+import org.apache.airavata.core.gfac.context.InvocationContext;
+import org.apache.airavata.core.gfac.provider.Provider;
+import org.apache.airavata.core.gfac.scheduler.Scheduler;
 
 public interface NotificationService {
-
-    DataDurationObj dataReceiveFinished(DataDurationObj dataObj, String... descriptionAndAnnotation);
-
-    DataDurationObj dataReceiveStarted(URI dataID, URI remoteLocation, URI localLocation);
-
-    DataDurationObj dataSendFinished(DataDurationObj dataObj, String... descriptionAndAnnotation);
-
-    DataDurationObj dataSendStarted(DataObj dataObj, URI remoteLocation);
-
-    void dataConsumed(URI dataID, URI replica, String type, String soapElementName);
-
-    void dataProduced(URI dataID, URI replica, String type, String soapElementName);
-
-    DurationObj computationDuration(long durationMillis);
-
-    DurationObj computationFinished(DurationObj compObj);
-
-    DurationObj computationStarted();
-
-    void exception(String... descriptionAndAnnotation);
-
-    void flush();
-
-    void info(String... descriptionAndAnnotation);
-
-    void sendingResponseFailed(Throwable trace, String... descriptionAndAnnotation);
-
-    void sendingResponseSucceeded(String... descriptionAndAnnotation);
-
-    void sendingResult(MessageContext messageContext) throws GfacException;
-
-    void warning(String... descriptionAndAnnotation);
-
-    void sendingFault(String... descriptionAndAnnotation);
-
-    void publishURL(String title, String url, String... descriptionAndAnnotation);
-
-    void appAudit(String name, URI jobHandle, String host, String queueName, String jobId, String dName,
-            String projectId, String rsl, String... descriptionAndAnnotation);
-
-    void sendResourceMappingNotifications(String hostName, String... descriptionAndAnnotation);
-
+    /*
+     * 
+     */
+    void startSchedule(Object notifer, InvocationContext context, Scheduler scheduler);
+    void finishSchedule(Object notifer, InvocationContext context, Scheduler scheduler, Provider provider);
+    
+    /*
+     * 
+     */
+    void input(Object notifier, InvocationContext context, String... data);
+    void output(Object notifier, InvocationContext context, String... data);
+    
+    /*
+     * 
+     */
+    void startExecution(Object notifer, InvocationContext context);
+    void applicationInfo(Object notifier, InvocationContext context, String... data);
+    void finishExecution(Object notifer, InvocationContext context);
+    void statusChanged(Object notifer, InvocationContext context, String... data);
+    void executionFail(Object notifer, InvocationContext context, Exception e, String... data);    
+
+    /*
+     * Interface for developer to use
+     */
+    void debug(Object notifer, InvocationContext context, String... data);
+    void info(Object notifer, InvocationContext context, String... data);
+    void warning(Object notifer, InvocationContext context, String... data);
+    void exception(Object notifer, InvocationContext context, String... data);        
 }

Added: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/DummyNotification.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/DummyNotification.java?rev=1163789&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/DummyNotification.java (added)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/DummyNotification.java Wed Aug 31 20:17:34 2011
@@ -0,0 +1,49 @@
+package org.apache.airavata.core.gfac.notification.impl;
+
+import org.apache.airavata.core.gfac.context.InvocationContext;
+import org.apache.airavata.core.gfac.notification.NotificationService;
+import org.apache.airavata.core.gfac.provider.Provider;
+import org.apache.airavata.core.gfac.scheduler.Scheduler;
+
+public class DummyNotification implements NotificationService {
+
+    public void startSchedule(Object notifer, InvocationContext context, Scheduler scheduler) {
+    }
+
+    public void finishSchedule(Object notifer, InvocationContext context, Scheduler scheduler, Provider provider) {
+    }
+
+    public void input(Object notifier, InvocationContext context, String... data) {
+    }
+
+    public void output(Object notifier, InvocationContext context, String... data) {
+    }
+
+    public void startExecution(Object notifer, InvocationContext context) {
+    }
+
+    public void applicationInfo(Object notifier, InvocationContext context, String... data) {
+    }
+
+    public void finishExecution(Object notifer, InvocationContext context) {
+    }
+
+    public void statusChanged(Object notifer, InvocationContext context, String... data) {
+    }
+
+    public void executionFail(Object notifer, InvocationContext context, Exception e, String... data) {
+    }
+
+    public void debug(Object notifer, InvocationContext context, String... data) {
+    }
+
+    public void info(Object notifer, InvocationContext context, String... data) {
+    }
+
+    public void warning(Object notifer, InvocationContext context, String... data) {
+    }
+
+    public void exception(Object notifer, InvocationContext context, String... data) {
+    }
+
+}

Added: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/StandardOutNotification.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/StandardOutNotification.java?rev=1163789&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/StandardOutNotification.java (added)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/notification/impl/StandardOutNotification.java Wed Aug 31 20:17:34 2011
@@ -0,0 +1,49 @@
+package org.apache.airavata.core.gfac.notification.impl;
+
+import org.apache.airavata.core.gfac.context.InvocationContext;
+import org.apache.airavata.core.gfac.notification.NotificationService;
+import org.apache.airavata.core.gfac.provider.Provider;
+import org.apache.airavata.core.gfac.scheduler.Scheduler;
+
+public class StandardOutNotification implements NotificationService {
+
+    public void startSchedule(Object notifer, InvocationContext context, Scheduler scheduler) {
+    }
+
+    public void finishSchedule(Object notifer, InvocationContext context, Scheduler scheduler, Provider provider) {
+    }
+
+    public void input(Object notifier, InvocationContext context, String... data) {
+    }
+
+    public void output(Object notifier, InvocationContext context, String... data) {
+    }
+
+    public void startExecution(Object notifer, InvocationContext context) {
+    }
+
+    public void applicationInfo(Object notifier, InvocationContext context, String... data) {
+    }
+
+    public void finishExecution(Object notifer, InvocationContext context) {
+    }
+
+    public void statusChanged(Object notifer, InvocationContext context, String... data) {
+    }
+
+    public void executionFail(Object notifer, InvocationContext context, Exception e, String... data) {
+    }
+
+    public void debug(Object notifer, InvocationContext context, String... data) {
+    }
+
+    public void info(Object notifer, InvocationContext context, String... data) {
+    }
+
+    public void warning(Object notifer, InvocationContext context, String... data) {
+    }
+
+    public void exception(Object notifer, InvocationContext context, String... data) {
+    }
+
+}

Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/EC2Provider.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/EC2Provider.java?rev=1163789&r1=1163788&r2=1163789&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/EC2Provider.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/EC2Provider.java Wed Aug 31 20:17:34 2011
@@ -45,7 +45,6 @@ import net.schmizz.sshj.connection.chann
 import net.schmizz.sshj.connection.channel.direct.Session.Command;
 import net.schmizz.sshj.xfer.scp.SCPFileTransfer;
 
-import org.apache.airavata.core.gfac.context.ExecutionContext;
 import org.apache.airavata.core.gfac.context.InvocationContext;
 import org.apache.airavata.core.gfac.context.impl.AmazonSecurityContext;
 import org.apache.airavata.core.gfac.exception.GfacException;
@@ -76,8 +75,6 @@ import com.amazonaws.services.ec2.model.
 import com.amazonaws.services.ec2.model.RunInstancesRequest;
 import com.amazonaws.services.ec2.model.RunInstancesResult;
 
-import edu.indiana.extreme.lead.workflow_tracking.common.DurationObj;
-
 public class EC2Provider extends AbstractProvider {
 
     public static final String AMAZON_SECURITY_CONTEXT = "amazon";
@@ -156,7 +153,7 @@ public class EC2Provider extends Abstrac
             context
                     .getExecutionContext()
                     .getNotificationService()
-                    .sendResourceMappingNotifications(
+                    .info(this, null, 
                             this.instance.getPublicDnsName(),
                             "EC2 Instance " + this.instance.getInstanceId() + " is running with public name "
                                     + this.instance.getPublicDnsName(), this.instance.getInstanceId());
@@ -284,7 +281,7 @@ public class EC2Provider extends Abstrac
             }
 
             // notify start
-            DurationObj compObj = notifier.computationStarted();
+            notifier.startExecution(this, context);
 
             /*
              * Create ssh connection
@@ -317,7 +314,7 @@ public class EC2Provider extends Abstrac
                 cmd.join(5, TimeUnit.SECONDS);
 
                 // notify end
-                notifier.computationFinished(compObj);
+                notifier.finishExecution(this, context);
 
                 /*
                  * check return value. usually not very helpful to draw conclusions based on return values so don't
@@ -398,7 +395,7 @@ public class EC2Provider extends Abstrac
 
             // notify the status
             for (Instance ins : instances) {
-                notifier.info("EC2 Instance " + ins.getInstanceId() + " is " + ins.getState().getName().toString());
+                notifier.info(this, null, "EC2 Instance " + ins.getInstanceId() + " is " + ins.getState().getName().toString());
             }
 
             try {

Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/GramProvider.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/GramProvider.java?rev=1163789&r1=1163788&r2=1163789&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/GramProvider.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/GramProvider.java Wed Aug 31 20:17:34 2011
@@ -23,7 +23,6 @@ package org.apache.airavata.core.gfac.pr
 
 import java.io.File;
 import java.net.URI;
-import java.net.URISyntaxException;
 
 import javax.xml.namespace.QName;
 
@@ -49,8 +48,6 @@ import org.globus.gram.GramJob;
 import org.ietf.jgss.GSSCredential;
 import org.ietf.jgss.GSSException;
 
-import edu.indiana.extreme.lead.workflow_tracking.common.DurationObj;
-
 public class GramProvider extends AbstractProvider {
 
     public static final String MYPROXY_SECURITY_CONTEXT = "myproxy";
@@ -120,7 +117,7 @@ public class GramProvider extends Abstra
             log.info("RSL = " + rsl);
 
             NotificationService notifier = invocationContext.getExecutionContext().getNotificationService();
-            DurationObj compObj = notifier.computationStarted();
+            notifier.startExecution(this, invocationContext);
             StringBuffer buf = new StringBuffer();
 
             JobSubmissionListener listener = new JobSubmissionListener(job, invocationContext);
@@ -146,12 +143,12 @@ public class GramProvider extends Abstra
                     .append(app.getTmpDir())
                     .append(" Globus GateKeeper cantact = ")
                     .append(gatekeeper);
-            invocationContext.getExecutionContext().getNotificationService().info(buf.toString());
+            notifier.info(this, invocationContext, buf.toString());
             String gramJobid = job.getIDAsString();
-            invocationContext.getExecutionContext().getNotificationService().info("JobID=" + gramJobid);
+            notifier.info(this, invocationContext, "JobID=" + gramJobid);
             log.info(buf.toString());
-            // Send Audit Notifications
-            notifier.appAudit(invocationContext.getServiceName(), new URI(job.getIDAsString()), gatekeeper, null, null,
+            
+            notifier.applicationInfo(this, invocationContext, gramJobid, gatekeeper, null, null,
                     gssCred.getName().toString(), null, job.getRSL());
 
             listener.waitFor();
@@ -169,7 +166,7 @@ public class GramProvider extends Abstra
                 }
                 throw error;
             }
-            notifier.computationFinished(compObj);
+            notifier.finishExecution(this, invocationContext);
 
             /*
              * Stdout and Stderror
@@ -215,9 +212,7 @@ public class GramProvider extends Abstra
             }
             throw error;
         } catch (GSSException e) {
-            throw new JobSubmissionFault(e, "GFAC HOST", gatekeeper, rsl, this);
-        } catch (URISyntaxException e) {
-            throw new GfacException(e, FaultCode.ErrorAtDependentService);
+            throw new JobSubmissionFault(e, "GFAC HOST", gatekeeper, rsl, this);        
         } catch (InterruptedException e) {
             throw new GfacException(e, FaultCode.ErrorAtDependentService);
         } finally {

Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/LocalProvider.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/LocalProvider.java?rev=1163789&r1=1163788&r2=1163789&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/LocalProvider.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/LocalProvider.java Wed Aug 31 20:17:34 2011
@@ -35,6 +35,7 @@ import java.util.Map;
 import org.apache.airavata.core.gfac.context.InvocationContext;
 import org.apache.airavata.core.gfac.exception.GfacException;
 import org.apache.airavata.core.gfac.exception.GfacException.FaultCode;
+import org.apache.airavata.core.gfac.notification.NotificationService;
 import org.apache.airavata.core.gfac.type.ApplicationDeploymentDescription;
 import org.apache.airavata.core.gfac.type.HostDescription;
 import org.apache.airavata.core.gfac.type.ServiceDescription;
@@ -109,6 +110,9 @@ public class LocalProvider extends Abstr
                 log.info("Env[" + key + "] = " + builder.environment().get(key));
             }
 
+            NotificationService notifier = context.getExecutionContext().getNotificationService();
+            notifier.startExecution(this, context);
+            
             // running cmd
             Process process = builder.start();
 
@@ -190,6 +194,8 @@ public class LocalProvider extends Abstr
 
             // wait for the process (application) to finish executing
             int returnValue = process.waitFor();
+            
+            notifier.finishExecution(this, context);
 
             // make sure other two threads are done
             t1.join();

Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/SSHProvider.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/SSHProvider.java?rev=1163789&r1=1163788&r2=1163789&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/SSHProvider.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/SSHProvider.java Wed Aug 31 20:17:34 2011
@@ -138,12 +138,7 @@ public class SSHProvider extends Abstrac
         List<String> cmdList = new ArrayList<String>();
 
         SSHClient ssh = new SSHClient();
-        try {
-
-            /*
-             * Notifier
-             */
-            NotificationService notifier = context.getExecutionContext().getNotificationService();
+        try {            
 
             /*
              * Builder Command
@@ -172,7 +167,8 @@ public class SSHProvider extends Abstrac
             }
 
             // notify start
-            DurationObj compObj = notifier.computationStarted();
+            NotificationService notifier = context.getExecutionContext().getNotificationService();
+            notifier.startExecution(this, context);
 
             initSSHSecurity(context, ssh);
             ssh.connect(host.getName());
@@ -200,7 +196,7 @@ public class SSHProvider extends Abstrac
                 cmd.join(5, TimeUnit.SECONDS);
 
                 // notify end
-                notifier.computationFinished(compObj);
+                notifier.finishExecution(this, context);
 
                 /*
                  * check return value. usually not very helpful to draw

Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/JobSubmissionListener.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/JobSubmissionListener.java?rev=1163789&r1=1163788&r2=1163789&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/JobSubmissionListener.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/JobSubmissionListener.java Wed Aug 31 20:17:34 2011
@@ -86,7 +86,7 @@ public class JobSubmissionListener imple
         String jobStatusMessage = GfacUtils.formatJobStatus(jobId, statusString);
         log.info(jobStatusMessage);
         status = jobStatus;
-        context.getExecutionContext().getNotificationService().info(jobStatusMessage);
+        context.getExecutionContext().getNotificationService().statusChanged(this, this.context, jobStatusMessage);
         if (jobStatus == GramJob.STATUS_DONE) {
             finished = true;
         } else if (jobStatus == GramJob.STATUS_FAILED) {

Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/AbstractSimpleService.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/AbstractSimpleService.java?rev=1163789&r1=1163788&r2=1163789&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/AbstractSimpleService.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/services/impl/AbstractSimpleService.java Wed Aug 31 20:17:34 2011
@@ -62,8 +62,11 @@ public abstract class AbstractSimpleServ
 
         /*
          * Determine provider
-         */
-        Provider provider = getScheduler(context).schedule(context);
+         */        
+        Scheduler scheduler = getScheduler(context); 
+        context.getExecutionContext().getNotificationService().startSchedule(this, context, scheduler);
+        Provider provider = scheduler.schedule(context);
+        context.getExecutionContext().getNotificationService().finishSchedule(this, context, scheduler, provider);
         
         log.debug("After scheduling, try to run data chain");
 

Modified: incubator/airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/PropertiesBasedServiceImplTest.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/PropertiesBasedServiceImplTest.java?rev=1163789&r1=1163788&r2=1163789&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/PropertiesBasedServiceImplTest.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/PropertiesBasedServiceImplTest.java Wed Aug 31 20:17:34 2011
@@ -31,7 +31,7 @@ import org.apache.airavata.core.gfac.api
 import org.apache.airavata.core.gfac.context.InvocationContext;
 import org.apache.airavata.core.gfac.context.impl.ExecutionContextImpl;
 import org.apache.airavata.core.gfac.context.impl.ParameterContextImpl;
-import org.apache.airavata.core.gfac.notification.DummyNotification;
+import org.apache.airavata.core.gfac.notification.impl.DummyNotification;
 import org.apache.airavata.core.gfac.type.DataType;
 import org.apache.airavata.core.gfac.type.HostDescription;
 import org.apache.airavata.core.gfac.type.Parameter;