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=<JSONString>");
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()+"/<templateName>?experimentTemplate=<Template_String>");
+ 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()+"/<TemplateName>?experimentInput=<InputDataArray>");
+ 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()+"/<ExperimentId>");
+ 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);
}