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 2013/09/13 19:09:21 UTC

svn commit: r1523017 - in /airavata/sandbox/api-mock: airavata-mock-core/src/main/java/org/apache/airavata/core/application/ airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/help/ airavata-mock-service-utils/src/main/java/org...

Author: samindaw
Date: Fri Sep 13 17:09:20 2013
New Revision: 1523017

URL: http://svn.apache.org/r1523017
Log:
updates on help

Added:
    airavata/sandbox/api-mock/airavata-mock-core/src/main/java/org/apache/airavata/core/application/GramApplicationDescriptor.java   (with props)
    airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/help/HTMLHelpData.java   (with props)
    airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/
    airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/ApplicationPath.java   (with props)
    airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/ExperimentPath.java   (with props)
    airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/MainHelpPath.java   (with props)
Modified:
    airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/help/MethodUtils.java
    airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/model/ApplicationDescriptorJSONFacotry.java
    airavata/sandbox/api-mock/airavata-mock-service/src/main/java/org/apache/airavata/service/ApplicationService.java
    airavata/sandbox/api-mock/airavata-mock-service/src/main/java/org/apache/airavata/service/ExperimentService.java
    airavata/sandbox/api-mock/airavata-mock-service/src/main/java/org/apache/airavata/service/HelpService.java

Added: airavata/sandbox/api-mock/airavata-mock-core/src/main/java/org/apache/airavata/core/application/GramApplicationDescriptor.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/api-mock/airavata-mock-core/src/main/java/org/apache/airavata/core/application/GramApplicationDescriptor.java?rev=1523017&view=auto
==============================================================================
--- airavata/sandbox/api-mock/airavata-mock-core/src/main/java/org/apache/airavata/core/application/GramApplicationDescriptor.java (added)
+++ airavata/sandbox/api-mock/airavata-mock-core/src/main/java/org/apache/airavata/core/application/GramApplicationDescriptor.java Fri Sep 13 17:09:20 2013
@@ -0,0 +1,35 @@
+package org.apache.airavata.core.application;
+
+public class GramApplicationDescriptor extends ApplicationDescriptor {
+	private String executablePath;
+	private String scratchLocation;
+	private String gramHost;
+	private String gridFTPEndpoint;
+	
+	public String getGramHost() {
+		return gramHost;
+	}
+	public void setGramHost(String gramHost) {
+		this.gramHost = gramHost;
+	}
+	public String getGridFTPEndpoint() {
+		return gridFTPEndpoint;
+	}
+	public void setGridFTPEndpoint(String gridFTPEndpoint) {
+		this.gridFTPEndpoint = gridFTPEndpoint;
+	}
+	public String getExecutablePath() {
+		return executablePath;
+	}
+	public void setExecutablePath(String executablePath) {
+		this.executablePath = executablePath;
+	}
+	public String getScratchLocation() {
+		return scratchLocation;
+	}
+	public void setScratchLocation(String scratchLocation) {
+		this.scratchLocation = scratchLocation;
+	}
+	
+
+}

Propchange: airavata/sandbox/api-mock/airavata-mock-core/src/main/java/org/apache/airavata/core/application/GramApplicationDescriptor.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/help/HTMLHelpData.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/help/HTMLHelpData.java?rev=1523017&view=auto
==============================================================================
--- airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/help/HTMLHelpData.java (added)
+++ airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/help/HTMLHelpData.java Fri Sep 13 17:09:20 2013
@@ -0,0 +1,9 @@
+package org.apache.airavata.service.utils.help;
+
+public class HTMLHelpData extends HelpData{
+
+	public HTMLHelpData(String tile, String description) {
+		super(tile, description);
+	}
+
+}

Propchange: airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/help/HTMLHelpData.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/help/MethodUtils.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/help/MethodUtils.java?rev=1523017&r1=1523016&r2=1523017&view=diff
==============================================================================
--- airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/help/MethodUtils.java (original)
+++ airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/help/MethodUtils.java Fri Sep 13 17:09:20 2013
@@ -5,16 +5,16 @@ public class MethodUtils {
 	
 	public static String getHelpString(HelpData data){
 		if (data instanceof HTMLHelpData){
-			return getHTMLHelp(data);
+			return getHTMLHelp((HTMLHelpData)data);
 		}else{
 			return getPlainHelp(data);
 		}
 	}
 	
-	private static String getHTMLHelp(HelpData data) {
+	private static String getHTMLHelp(HTMLHelpData data) {
 		String help="<html><body>";
 		help+="<h1>"+data.getTitle()+"</h1>"+"\n\n";
-		help+="<p>Usage: "+data.getDescription()+"</p>\n\n";
+		help+="<p>"+data.getDescription()+"</p>\n\n";
 		help+="<br />";
 		if (data.getSyntax().size()>0){
 			help+="<p>"+"Syntax:\n<br />";
@@ -23,22 +23,28 @@ public class MethodUtils {
 			}
 		}
 		help+="\n\n";
-		help+="Supported Parameters/Operations\n\n";
-		for (String parameterName : data.getParameters().keySet()) {
-			help+=parameterName+"\t\t"+data.getParameters().get(parameterName)+"\n";
-		} 
+		if (data.getParameters().size()>0){
+			help+="<h2>Supported Parameters/Operations</h2>\n\n";
+			help+="<table>";
+			for (String parameterName : data.getParameters().keySet()) {
+				help+="<tr>";
+				help+="<td><b>"+parameterName+"</b></td><td>"+data.getParameters().get(parameterName)+"</td>\n";
+				help+="</tr>";
+			}
+			help+="</table>";
+		}
 		help+="\n";
 		if (data.getExamples().size()>0){
-			help+="Examples:\n";
+			help+="<h2>Examples</h2>\n";
 			for (String example : data.getExamples()) {
-				help+="\t"+example+"\n";
+				help+="\t<p>"+example+"</p>\n";
 			}
 			help+="\n";
 		}
 		if (data.getNotes().size()>0){
-			help+="Notes:\n";
+			help+="<h2>Notes</h2>\n";
 			for (String note : data.getNotes()) {
-				help+=note+"\n";
+				help+="<p>"+note+"</p>\n";
 			}
 		}
 		help+="</body></html>";

Modified: airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/model/ApplicationDescriptorJSONFacotry.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/model/ApplicationDescriptorJSONFacotry.java?rev=1523017&r1=1523016&r2=1523017&view=diff
==============================================================================
--- airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/model/ApplicationDescriptorJSONFacotry.java (original)
+++ airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/model/ApplicationDescriptorJSONFacotry.java Fri Sep 13 17:09:20 2013
@@ -5,6 +5,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.airavata.core.application.ApplicationParameter;
+import org.apache.airavata.core.application.GramApplicationDescriptor;
 import org.apache.airavata.core.application.LocalApplicationDescriptor;
 import org.apache.airavata.core.application.ParameterType;
 import org.apache.airavata.service.utils.json.ConversionUtils;
@@ -17,6 +18,7 @@ public class ApplicationDescriptorJSONFa
 	
 	static{
 		applicationClasses.add(LocalApplicationDescriptor.class);
+		applicationClasses.add(GramApplicationDescriptor.class);
 	}
 	
 	private ApplicationDescriptorJSONFacotry() {
@@ -47,6 +49,18 @@ public class ApplicationDescriptorJSONFa
 			String jsonString = ConversionUtils.getJSONString(app); 
 			jsonString=jsonString.replaceAll("STRING", "{parameter.type}");
 			result=jsonString;
+		} else if (cl==GramApplicationDescriptor.class){
+			GramApplicationDescriptor app = new GramApplicationDescriptor();
+			app.setApplicationName("{application.name}");
+			app.getInputs().add(new ApplicationParameter("{input.parameter.name}","{input.parameter.value}",ParameterType.STRING));
+			app.getOutputs().add(new ApplicationParameter("{output.parameter.name}","{output.parameter.value}",ParameterType.STRING));
+			app.setExecutablePath("{application.executable.location}");
+			app.setScratchLocation("{scratch.directory.location}");
+			app.setGramHost("{gram.host.ip.location}");
+			app.setGridFTPEndpoint("{grid.ftp.url}");
+			String jsonString = ConversionUtils.getJSONString(app); 
+			jsonString=jsonString.replaceAll("STRING", "{parameter.type}");
+			result=jsonString;
 		}
 		return result;
 	}
@@ -60,6 +74,8 @@ public class ApplicationDescriptorJSONFa
 		String result=null;
 		if (cl==LocalApplicationDescriptor.class){
 			result="Defines computational resource residing in the host which Airavata server is running";
+		}else if (cl==GramApplicationDescriptor.class){
+			result="Defines computational resource residing in a GRAM host";
 		}
 		return result;
 	}

Added: airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/ApplicationPath.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/ApplicationPath.java?rev=1523017&view=auto
==============================================================================
--- airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/ApplicationPath.java (added)
+++ airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/ApplicationPath.java Fri Sep 13 17:09:20 2013
@@ -0,0 +1,7 @@
+package org.apache.airavata.service.utils.path;
+
+public class ApplicationPath {
+	public static final String SERVICE_PATH="/applications/";
+	public static final String ADD_APPLICATION="add";
+	public static final String ADD_APPLICATION_HELP="add/help";
+}

Propchange: airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/ApplicationPath.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/ExperimentPath.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/ExperimentPath.java?rev=1523017&view=auto
==============================================================================
--- airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/ExperimentPath.java (added)
+++ airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/ExperimentPath.java Fri Sep 13 17:09:20 2013
@@ -0,0 +1,16 @@
+package org.apache.airavata.service.utils.path;
+
+public class ExperimentPath {
+	public static final String SERVICE_PATH="/experiments/";
+	public static final String ADD_TEMPLATE="add";
+	public static final String LIST_TEMPLATES="templates";
+	public static final String LIST_EXPERIMENTS="list";
+	public static final String RUN_EXPERIMENTS="run";
+	public static final String GET_RESULTS="results";
+	
+	public static final String ADD_TEMPLATE_HELP="add/help";
+	public static final String LIST_TEMPLATES_HELP="templates/help";
+	public static final String LIST_EXPERIMENTS_HELP="list/help";
+	public static final String RUN_EXPERIMENTS_HELP="run/help";
+	public static final String GET_RESULTS_HELP="results/help";
+}

Propchange: airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/ExperimentPath.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/MainHelpPath.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/MainHelpPath.java?rev=1523017&view=auto
==============================================================================
--- airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/MainHelpPath.java (added)
+++ airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/MainHelpPath.java Fri Sep 13 17:09:20 2013
@@ -0,0 +1,6 @@
+package org.apache.airavata.service.utils.path;
+
+public class MainHelpPath {
+	public static final String SERVICE_PATH="/help/";
+	public static final String ENTRY="";
+}

Propchange: airavata/sandbox/api-mock/airavata-mock-service-utils/src/main/java/org/apache/airavata/service/utils/path/MainHelpPath.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: airavata/sandbox/api-mock/airavata-mock-service/src/main/java/org/apache/airavata/service/ApplicationService.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/api-mock/airavata-mock-service/src/main/java/org/apache/airavata/service/ApplicationService.java?rev=1523017&r1=1523016&r2=1523017&view=diff
==============================================================================
--- airavata/sandbox/api-mock/airavata-mock-service/src/main/java/org/apache/airavata/service/ApplicationService.java (original)
+++ airavata/sandbox/api-mock/airavata-mock-service/src/main/java/org/apache/airavata/service/ApplicationService.java Fri Sep 13 17:09:20 2013
@@ -20,6 +20,7 @@ import org.apache.airavata.core.applicat
 import org.apache.airavata.core.application.LocalApplicationDescriptor;
 import org.apache.airavata.core.application.ParameterType;
 import org.apache.airavata.service.utils.ServiceUtils;
+import org.apache.airavata.service.utils.help.HTMLHelpData;
 import org.apache.airavata.service.utils.help.HelpData;
 import org.apache.airavata.service.utils.help.MethodUtils;
 import org.apache.airavata.service.utils.json.ConversionUtils;
@@ -54,23 +55,22 @@ public class ApplicationService {
 		} catch (Exception e) {
 			throw new WebApplicationException(e);
 		}
-		
 	}
 	
 	@Path(ApplicationPath.ADD_APPLICATION_HELP)
 	@GET
-	@Produces(MediaType.TEXT_PLAIN)
+	@Produces(MediaType.TEXT_HTML)
 	public String showHelp() {
-		HelpData helpData = new HelpData("Add Application Description","Add the details of how to access an application from Airavata");
+		HelpData helpData = new HTMLHelpData("New Application","Add the details of how to access an application from Airavata");
 		try {
 			URI uri = ServiceUtils.getServiceOperationURIFromHelpURI(uriInfo);
-			helpData.getSyntax().add(uri.toString()+"?application=<JSONString>");
+			helpData.getSyntax().add(uri.toString()+"?application=&ltJSONString&gt");
 			helpData.getParameters().put("application", "Describes the application access data in JSON format. The supported JSON types are listed in the 'Notes' section.");
 			List<Class<?>> types = ApplicationDescriptorJSONFacotry.getInstance().getTypes();
 			for (Class<?> cl : types) {
 				String help="";
-				help+=ApplicationDescriptorJSONFacotry.getInstance().getTypeName(cl)+"\n";
-				help+="\t "+ApplicationDescriptorJSONFacotry.getInstance().getTypeDescription(cl)+"\n";
+				help+="<h3>"+ApplicationDescriptorJSONFacotry.getInstance().getTypeName(cl)+"</h3>\n";
+				help+="\t "+ApplicationDescriptorJSONFacotry.getInstance().getTypeDescription(cl)+"<br />\n";
 				help+="\t JSON template:\n"+"\t\t"+ApplicationDescriptorJSONFacotry.getInstance().getJSONTypeTemplate(cl)+"\n";
 				helpData.getNotes().add(help);
 			}
@@ -105,7 +105,10 @@ public class ApplicationService {
 		String s = mapper.writeValueAsString(aa);
 		System.out.println(s);
 		DataList d = new DataList();
-		d.setList(new ArrayList<String>());
+		ArrayList<String> list = new ArrayList<String>();
+		list.add("msg_part1=Hello");
+		list.add("msg_part2=World");
+		d.setList(list);
 		System.out.println(mapper.writeValueAsString(d));
 		// A bb = mapper.readValue(s, AA.class);
 		// System.out.println(bb.getValue());

Modified: airavata/sandbox/api-mock/airavata-mock-service/src/main/java/org/apache/airavata/service/ExperimentService.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/api-mock/airavata-mock-service/src/main/java/org/apache/airavata/service/ExperimentService.java?rev=1523017&r1=1523016&r2=1523017&view=diff
==============================================================================
--- airavata/sandbox/api-mock/airavata-mock-service/src/main/java/org/apache/airavata/service/ExperimentService.java (original)
+++ airavata/sandbox/api-mock/airavata-mock-service/src/main/java/org/apache/airavata/service/ExperimentService.java Fri Sep 13 17:09:20 2013
@@ -1,5 +1,7 @@
 package org.apache.airavata.service;
 
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.util.Arrays;
 import java.util.Calendar;
 import java.util.HashMap;
@@ -13,9 +15,15 @@ import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 import javax.ws.rs.QueryParam;
 import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.UriInfo;
 
 import org.apache.airavata.core.application.ExperimentData;
+import org.apache.airavata.service.utils.ServiceUtils;
+import org.apache.airavata.service.utils.help.HTMLHelpData;
+import org.apache.airavata.service.utils.help.HelpData;
+import org.apache.airavata.service.utils.help.MethodUtils;
 import org.apache.airavata.service.utils.path.ExperimentPath;
 
 @Path(ExperimentPath.SERVICE_PATH)
@@ -23,28 +31,62 @@ public class ExperimentService {
 	private static Map<String,String> templates=new HashMap<String, String>();
 	private static Map<String,String> experiments=new HashMap<String, String>();
 	private static Map<String,ExperimentData> experimentData=new HashMap<String, ExperimentData>();
-
-	@Path(ExperimentPath.ADD_TEMPLATE+"/{templateId}")
+	@Context
+	UriInfo uriInfo;
+	
+	@Path(ExperimentPath.ADD_TEMPLATE+"/{templateName}")
 	@GET
 	@Produces(MediaType.TEXT_PLAIN)
-	public String addTemplate(@PathParam("templateId") String templateId, @QueryParam("experimentTemplate") String experimentTemplate) {
+	public String addTemplate(@PathParam("templateName") String templateId, @QueryParam("experimentTemplate") String experimentTemplate) {
 		templates.put(templateId, experimentTemplate);
 		String message=templateId+" added as an experiment template.";
 		System.out.println(message);
 		return templateId;
 	}
 	
+	@Path(ExperimentPath.ADD_TEMPLATE_HELP)
+	@GET
+	@Produces(MediaType.TEXT_HTML)
+	public String addTemplateHelp() {
+		HelpData helpData = new HTMLHelpData("Add Experiment","Add a experiment template (aka workflow) to Airavata");
+		try {
+			URI uri = ServiceUtils.getServiceOperationURIFromHelpURI(uriInfo);
+			helpData.getSyntax().add(uri.toString()+"/&lttemplateName&gt?experimentTemplate=&ltTemplate_String&gt");
+			helpData.getParameters().put("templateName", "Name of this experiment.");
+			helpData.getParameters().put("experimentTemplate", "Describes the template for the experiment.");
+//			helpData.getExamples().add(uri.toString()+"?application={%22applicationName%22:%22echoApp%22,%22inputs%22:[{%22name%22:%22input_val%22,%22value%22:%22test%22,%22type%22:%22STRING%22}],%22outputs%22:[{%22name%22:%22output_val%22,%22value%22:%22test%22,%22type%22:%22STRING%22}],%22executablePath%22:null,%22scratchLocation%22:null}");
+		} catch (URISyntaxException e) {
+			e.printStackTrace();
+		}
+		return MethodUtils.getHelpString(helpData);
+	}
+	
 	@Path(ExperimentPath.LIST_TEMPLATES)
 	@GET
 	@Produces(MediaType.APPLICATION_JSON)
 	public List<String> getTemplates() {
 		return (Arrays.asList(templates.keySet().toArray(new String[]{})));
 	}
+	
+	@Path(ExperimentPath.LIST_TEMPLATES_HELP)
+	@GET
+	@Produces(MediaType.TEXT_HTML)
+	public String getTemplatesHelp() {
+		HelpData helpData = new HTMLHelpData("List Experiment Templates","Return a list of registered experiment templates");
+		try {
+			URI uri = ServiceUtils.getServiceOperationURIFromHelpURI(uriInfo);
+			helpData.getSyntax().add(uri.toString());
+			helpData.getExamples().add(uri.toString());
+		} catch (URISyntaxException e) {
+			e.printStackTrace();
+		}
+		return MethodUtils.getHelpString(helpData);
+	}
 
-	@Path(ExperimentPath.RUN_EXPERIMENTS+"/{templateId}")
+	@Path(ExperimentPath.RUN_EXPERIMENTS+"/{templateName}")
 	@GET
 	@Produces(MediaType.TEXT_PLAIN)
-	public String runExperiment(@PathParam("templateId") String templateId, @QueryParam("experimentInput") String experimentInput) {
+	public String runExperiment(@PathParam("templateName") String templateId, @QueryParam("experimentInput") String experimentInput) {
 		if (!templates.containsKey(templateId)){
 			throw new WebApplicationException(new Exception("The experiment template "+templateId+" does not exist!!!"));
 		}
@@ -56,6 +98,24 @@ public class ExperimentService {
 		return uuid.toString();
 	}
 	
+	@Path(ExperimentPath.RUN_EXPERIMENTS_HELP)
+	@GET
+	@Produces(MediaType.TEXT_HTML)
+	public String runExperimentHelp() {
+		HelpData helpData = new HTMLHelpData("Launch Experiments","Provide input data and configuration data to instantiate an experiment from an experiment template");
+		try {
+			URI uri = ServiceUtils.getServiceOperationURIFromHelpURI(uriInfo);
+			helpData.getSyntax().add(uri.toString()+"/&ltTemplateName&gt?experimentInput=&ltInputDataArray&gt");
+			helpData.getParameters().put("TemplateName", "Name of the experiment template to instantiate.");
+			helpData.getParameters().put("experimentInput", "List of input values to passed on to the intantiated experiment template");
+			helpData.getParameters().put("<RETURN_VALUE>", "A unique id identifying the experiment launched");
+			helpData.getExamples().add(uri.toString()+"/echo_workflow?experimentInput={\"list\":[\"msg_part1=Hello\",\"msg_part2=World\"]}");
+		} catch (URISyntaxException e) {
+			e.printStackTrace();
+		}
+		return MethodUtils.getHelpString(helpData);
+	}
+	
 	@Path(ExperimentPath.LIST_EXPERIMENTS)
 	@GET
 	@Produces(MediaType.APPLICATION_JSON)
@@ -63,6 +123,22 @@ public class ExperimentService {
 		return (Arrays.asList(experiments.keySet().toArray(new String[]{})));
 	}
 	
+	
+	@Path(ExperimentPath.LIST_EXPERIMENTS_HELP)
+	@GET
+	@Produces(MediaType.TEXT_HTML)
+	public String getExperimentsHelp() {
+		HelpData helpData = new HTMLHelpData("List Experiments Instantiated","Return a list of launched experiments");
+		try {
+			URI uri = ServiceUtils.getServiceOperationURIFromHelpURI(uriInfo);
+			helpData.getSyntax().add(uri.toString());
+			helpData.getExamples().add(uri.toString());
+		} catch (URISyntaxException e) {
+			e.printStackTrace();
+		}
+		return MethodUtils.getHelpString(helpData);
+	}
+	
 	@Path(ExperimentPath.GET_RESULTS+"/{experimentId}")
 	@GET
 	@Produces(MediaType.APPLICATION_JSON)
@@ -72,4 +148,20 @@ public class ExperimentService {
 		}
 		throw new WebApplicationException(new Exception("no data for experiment id "+experimentId));
 	}
+	
+	@Path(ExperimentPath.GET_RESULTS_HELP)
+	@GET
+	@Produces(MediaType.TEXT_HTML)
+	public String getExperimentDataHelp() {
+		HelpData helpData = new HTMLHelpData("Get Experiment Results","Retrieve execution results of the experiment");
+		try {
+			URI uri = ServiceUtils.getServiceOperationURIFromHelpURI(uriInfo);
+			helpData.getSyntax().add(uri.toString()+"/&ltExperimentId&gt");
+			helpData.getParameters().put("ExperimentId","The id of the experiment");
+			helpData.getExamples().add(uri.toString()+"/UUID1328414123o12o321");
+		} catch (URISyntaxException e) {
+			e.printStackTrace();
+		}
+		return MethodUtils.getHelpString(helpData);
+	}
 }
\ No newline at end of file

Modified: airavata/sandbox/api-mock/airavata-mock-service/src/main/java/org/apache/airavata/service/HelpService.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/api-mock/airavata-mock-service/src/main/java/org/apache/airavata/service/HelpService.java?rev=1523017&r1=1523016&r2=1523017&view=diff
==============================================================================
--- airavata/sandbox/api-mock/airavata-mock-service/src/main/java/org/apache/airavata/service/HelpService.java (original)
+++ airavata/sandbox/api-mock/airavata-mock-service/src/main/java/org/apache/airavata/service/HelpService.java Fri Sep 13 17:09:20 2013
@@ -31,7 +31,7 @@ public class HelpService {
 	
 	@Path(MainHelpPath.ENTRY)
 	@GET
-	@Produces(MediaType.TEXT_PLAIN)
+	@Produces(MediaType.TEXT_HTML)
 	public String add() throws URISyntaxException {
 		URI url = ServiceUtils.getServiceOperationURIFromHelpURI(uriInfo);
 		HelpData helpData = new HTMLHelpData("Airavata Mock API", "Welcome to Airavata API!!!");
@@ -39,7 +39,7 @@ public class HelpService {
 		helpData.getParameters().put("<a href='"+url.toString()+ExperimentPath.SERVICE_PATH+ExperimentPath.ADD_TEMPLATE_HELP+"'>New Experiment Template</a>", "Add new application to Airavata system");
 		helpData.getParameters().put("<a href='"+url.toString()+ExperimentPath.SERVICE_PATH+ExperimentPath.RUN_EXPERIMENTS_HELP+"'>Launch Experiment</a>", "Launch an experiment from a experiment template in Airavata system");
 		helpData.getParameters().put("<a href='"+url.toString()+ExperimentPath.SERVICE_PATH+ExperimentPath.GET_RESULTS_HELP+"'>Get Experiment Results</a>", "Return the results of launching the experiment");
-		helpData.getParameters().put("<a href='"+url.toString()+ExperimentPath.SERVICE_PATH+ExperimentPath.LIST_TEMPLATES_HELP+"'>Templates</a>", "List of templates available.");
+		helpData.getParameters().put("<a href='"+url.toString()+ExperimentPath.SERVICE_PATH+ExperimentPath.LIST_TEMPLATES_HELP+"'>Experiment Template List</a>", "List of templates available.");
 		helpData.getParameters().put("<a href='"+url.toString()+ExperimentPath.SERVICE_PATH+ExperimentPath.LIST_EXPERIMENTS_HELP+"'>Experiments</a>", "List of experiments available.");
 		return MethodUtils.getHelpString(helpData);
 	}