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


Reply via email to