You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2011/10/25 23:52:49 UTC

svn commit: r1188938 - in /incubator/airavata/trunk: modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/ modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/exception/ modules/commons/registry-api/src/ma...

Author: lahiru
Date: Tue Oct 25 21:52:47 2011
New Revision: 1188938

URL: http://svn.apache.org/viewvc?rev=1188938&view=rev
Log:
https://issues.apache.org/jira/browse/AIRAVATA-159

Added:
    incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/   (with props)
    incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/WorkflowIOData.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/InputParameters.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/OutputParameters.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/ServiceParameter.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/ServiceParameters.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/XBayaWorkflowTemplate.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/XBayaWorkflowTemplates.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/InputParametersNode.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/OutputParametersNode.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterNode.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterValueNode.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParametersNode.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/XBayaWorkflowTemplateNode.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/XBayaWorkflowTemplatesNode.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/resources/images/input_para.png   (with props)
    incubator/airavata/trunk/modules/xbaya-gui/src/main/resources/images/output_para.png   (with props)
    incubator/airavata/trunk/modules/xbaya-gui/src/main/resources/images/parameter.png   (with props)
Modified:
    incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/Axis2Registry.java
    incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/Registry.java
    incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/exception/DeploymentDescriptionRetrieveException.java
    incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/JCRRegistry.java
    incubator/airavata/trunk/modules/gfac-axis2/src/main/java/org/apache/airavata/services/gfac/axis2/reciever/GFacMessageReciever.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ServiceDescriptionDialog.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/JCRComponentRegistry.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/provenance/ProvenanceWrite.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/AiravataTreeNodeFactory.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/RegistryNode.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ServiceDescriptionNode.java
    incubator/airavata/trunk/samples/simple-math-service/   (props changed)

Modified: incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/Axis2Registry.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/Axis2Registry.java?rev=1188938&r1=1188937&r2=1188938&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/Axis2Registry.java (original)
+++ incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/Axis2Registry.java Tue Oct 25 21:52:47 2011
@@ -22,30 +22,24 @@
 package org.apache.airavata.registry.api;
 
 import org.apache.airavata.commons.gfac.type.ServiceDescription;
+import org.apache.airavata.registry.api.exception.RegistryException;
 
-public interface Axis2Registry extends Registry {
+public interface Axis2Registry extends Registry{
 
     /**
-     * Save WSDL for Axis2
-     * 
-     * @param service
-     * @param WSDL
-     */
-    public String saveWSDL(ServiceDescription service, String WSDL);
-
-    /**
-     * Save WSDL for Axis2
+     * Load WSDL for Axis2
      * 
-     * @param serviceName
-     * @param service
+     * @param serviceId
+     * @return WSDL
+     * @throws RegistryException 
      */
-    public String saveWSDL(ServiceDescription service);
-
+    public String getWSDL(String serviceId) throws RegistryException;
+    
     /**
      * Load WSDL for Axis2
      * 
      * @param serviceId
      * @return WSDL
      */
-    public String getWSDL(String serviceId);
+    public String getWSDL(ServiceDescription service);
 }

Modified: incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/Registry.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/Registry.java?rev=1188938&r1=1188937&r2=1188938&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/Registry.java (original)
+++ incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/Registry.java Tue Oct 25 21:52:47 2011
@@ -36,6 +36,7 @@ import org.apache.airavata.registry.api.
 import org.apache.airavata.registry.api.exception.HostDescriptionRetrieveException;
 import org.apache.airavata.registry.api.exception.RegistryException;
 import org.apache.airavata.registry.api.exception.ServiceDescriptionRetrieveException;
+import org.apache.airavata.registry.api.workflow.WorkflowIOData;
 
 public interface Registry {
     /**
@@ -221,7 +222,11 @@ public interface Registry {
      */
     public String getName();
 
-    public boolean saveWorkflowInput(String data, String experimentId, String nodeId,String workflowName);
+    public boolean saveWorkflowInput(WorkflowIOData workflowInputData);
 
-    public boolean saveWorkflowOutput(String data,String experimentId,String nodeId,String workflowName);
+    public boolean saveWorkflowOutput(WorkflowIOData workflowOutputData);
+    
+    public List<WorkflowIOData> searchWorkflowInput(String experimentIdRegEx, String workflowNameRegEx, String nodeNameRegEx);
+
+    public List<WorkflowIOData> searchWorkflowOutput(String experimentIdRegEx, String workflowNameRegEx, String nodeNameRegEx);
 }

Modified: incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/exception/DeploymentDescriptionRetrieveException.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/exception/DeploymentDescriptionRetrieveException.java?rev=1188938&r1=1188937&r2=1188938&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/exception/DeploymentDescriptionRetrieveException.java (original)
+++ incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/exception/DeploymentDescriptionRetrieveException.java Tue Oct 25 21:52:47 2011
@@ -29,7 +29,7 @@ public class DeploymentDescriptionRetrie
     private static final long serialVersionUID = -2849422320139467602L;
 
     public DeploymentDescriptionRetrieveException(Exception e) {
-        super(e);
+        super(ERROR_MESSAGE,e);
     }
 
 }

Modified: incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/JCRRegistry.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/JCRRegistry.java?rev=1188938&r1=1188937&r2=1188938&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/JCRRegistry.java (original)
+++ incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/JCRRegistry.java Tue Oct 25 21:52:47 2011
@@ -59,6 +59,7 @@ import org.apache.airavata.registry.api.
 import org.apache.airavata.registry.api.exception.ServiceDescriptionRetrieveException;
 import org.apache.airavata.registry.api.user.UserManager;
 import org.apache.airavata.registry.api.util.WebServiceUtil;
+import org.apache.airavata.registry.api.workflow.WorkflowIOData;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -74,6 +75,10 @@ public class JCRRegistry extends Observa
 	private static final String WSDL_PROPERTY_NAME = "WSDL";
 	private static final String GFAC_URL_PROPERTY_NAME = "GFAC_URL_LIST";
 	private static final String LINK_NAME = "LINK";
+    private static final String PROPERTY_WORKFLOW_NAME = "workflowName";
+    private static final String PROPERTY_WORKFLOW_IO_CONTENT = "content";
+
+	
 	public static final String WORKFLOWS = "WORKFLOWS";
 	public static final String PUBLIC = "PUBLIC";
 	public static final String REGISTRY_TYPE_WORKFLOW = "workflow";
@@ -555,51 +560,44 @@ public class JCRRegistry extends Observa
 		return result;
 	}
 
-	public String saveWSDL(ServiceDescription service, String WSDL) {
-		Session session = null;
-		String result = null;
-		try {
-			session = getSession();
-			Node serviceNode = getServiceNode(session);
-			Node node = getOrAddNode(serviceNode, service.getId());
-			node.setProperty(WSDL_PROPERTY_NAME, WSDL);
-			session.save();
-
-			result = node.getIdentifier();
-			triggerObservers(this);
-		} catch (Exception e) {
-			System.out.println(e);
-			e.printStackTrace();
-			// TODO propagate
-		} finally {
-			closeSession(session);
+//	public String saveWSDL(ServiceDescription service, String WSDL) {
+//		Session session = null;
+//		String result = null;
+//		try {
+//			session = getSession();
+//			Node serviceNode = getServiceNode(session);
+//			Node node = getOrAddNode(serviceNode, service.getId());
+//			node.setProperty(WSDL_PROPERTY_NAME, WSDL);
+//			session.save();
+//
+//			result = node.getIdentifier();
+//			triggerObservers(this);
+//		} catch (Exception e) {
+//			System.out.println(e);
+//			e.printStackTrace();
+//			// TODO propagate
+//		} finally {
+//			closeSession(session);
+//		}
+//		return result;
+//	}
+//
+//	public String saveWSDL(ServiceDescription service) {
+//		return saveWSDL(service, WebServiceUtil.generateWSDL(service));
+//	}
+
+	public String getWSDL(String serviceName) throws RegistryException {
+		List<ServiceDescription> searchServiceDescription = searchServiceDescription(serviceName);
+		if (searchServiceDescription.size()>0){
+			return getWSDL(searchServiceDescription.get(0));
 		}
-		return result;
-	}
-
-	public String saveWSDL(ServiceDescription service) {
-		return saveWSDL(service, WebServiceUtil.generateWSDL(service));
+		throw new ServiceDescriptionRetrieveException(new Exception("No service description from the name "+serviceName));
 	}
 
-	public String getWSDL(String serviceName) {
-		Session session = null;
-		String result = null;
-		try {
-			session = getSession();
-			Node serviceNode = getServiceNode(session);
-			Node node = serviceNode.getNode(serviceName);
-			Property prop = node.getProperty(WSDL_PROPERTY_NAME);
-			result = prop.getString();
-		} catch (Exception e) {
-			System.out.println(e);
-			e.printStackTrace();
-			// TODO propagate
-		} finally {
-			closeSession(session);
-		}
-		return result;
+	public String getWSDL(ServiceDescription service) {
+		return WebServiceUtil.generateWSDL(service);
 	}
-
+	
 	public boolean saveGFacDescriptor(String gfacURL) {
 		java.util.Date today = Calendar
 				.getInstance(TimeZone.getTimeZone("GMT")).getTime();
@@ -858,46 +856,89 @@ public class JCRRegistry extends Observa
 		return repository.getDescriptor(Repository.REP_NAME_DESC);
 	}
 
-	public boolean saveWorkflowInput(String data, String experimentId,
-                                     String nodeId,String workflowName) {
-			Session session = null;
+	public boolean saveWorkflowInput(WorkflowIOData workflowInputData) {
+		return saveWorkflowIO(workflowInputData, OUTPUT);
+	}
+
+    public boolean saveWorkflowOutput(WorkflowIOData workflowOutputData) {
+		return saveWorkflowIO(workflowOutputData, INPUT);
+	}
+
+	private boolean saveWorkflowIO(WorkflowIOData workflowOutputData, String type) {
+		Session session = null;
+		boolean isSaved=true;
 		try {
 			session = getSession();
 			Node workflowDataNode =
 					getOrAddNode(getOrAddNode(
 							getOrAddNode(session.getRootNode(), WORKFLOW_DATA),
-							experimentId),experimentId);
-            workflowDataNode.setProperty("workflowName",workflowName);
-            workflowDataNode = getOrAddNode(getOrAddNode(workflowDataNode,nodeId), OUTPUT);
-            workflowDataNode.setProperty("content", data);
+							workflowOutputData.getExperimentId()),workflowOutputData.getExperimentId());
+			workflowDataNode.setProperty(PROPERTY_WORKFLOW_NAME,workflowOutputData.getWorkflowName());
+            workflowDataNode = getOrAddNode(getOrAddNode(workflowDataNode,workflowOutputData.getNodeId()), type);
+			workflowDataNode.setProperty(PROPERTY_WORKFLOW_IO_CONTENT, workflowOutputData.getData());
             session.save();
 		} catch (Exception e) {
+			isSaved=false;
 			e.printStackTrace();
 		} finally {
 			closeSession(session);
-			return true;
 		}
+		return isSaved;
 	}
+    
+    public List<WorkflowIOData> searchWorkflowInput(String experimentIdRegEx, String workflowNameRegEx, String nodeNameRegEx){
+    	return searchWorkflowIO(experimentIdRegEx, workflowNameRegEx,
+				nodeNameRegEx, INPUT);
+    }
 
-    public boolean saveWorkflowOutput(String data, String experimentId,
-                                     String nodeId,String workflowName) {
-		Session session = null;
+    public List<WorkflowIOData> searchWorkflowOutput(String experimentIdRegEx, String workflowNameRegEx, String nodeNameRegEx){
+    	return searchWorkflowIO(experimentIdRegEx, workflowNameRegEx,
+				nodeNameRegEx, OUTPUT);
+    }
+    
+	private List<WorkflowIOData> searchWorkflowIO(String experimentIdRegEx,
+			String workflowNameRegEx, String nodeNameRegEx, String type) {
+		List<WorkflowIOData> workflowIODataList=new ArrayList<WorkflowIOData>();
+    	Session session = null;
 		try {
 			session = getSession();
-			Node workflowDataNode =
-					getOrAddNode(getOrAddNode(
-							getOrAddNode(session.getRootNode(), WORKFLOW_DATA),
-							experimentId),experimentId);
-            workflowDataNode.setProperty("workflowName",workflowName);
-            workflowDataNode = getOrAddNode(getOrAddNode(workflowDataNode,nodeId), INPUT);
-            workflowDataNode.setProperty("content", data);
-            session.save();
+			Node experimentsNode = getOrAddNode(session.getRootNode(), WORKFLOW_DATA);
+			NodeIterator experimentNodes = experimentsNode.getNodes();
+			for (; experimentNodes.hasNext();) {
+				Node experimentNode = experimentNodes.nextNode();
+				if (experimentIdRegEx!=null && !experimentNode.getName().matches(experimentIdRegEx)){
+					continue;
+				}
+				NodeIterator workflowNodes = experimentNode.getNodes();
+				for (; workflowNodes.hasNext();) {
+					Node workflowNode = workflowNodes.nextNode();
+					String workflowName = workflowNode.getProperty(PROPERTY_WORKFLOW_NAME).getString();
+					if (workflowNameRegEx!=null && !workflowName.matches(workflowNameRegEx)){
+						continue;
+					}
+					NodeIterator serviceNodes = workflowNode.getNodes();
+					for (; serviceNodes.hasNext();) {
+						Node serviceNode = serviceNodes.nextNode();
+						if (nodeNameRegEx!=null && !serviceNode.getName().matches(nodeNameRegEx)){
+							continue;
+						}
+						Node ioNode = getOrAddNode(serviceNode,type);
+						WorkflowIOData workflowIOData = new WorkflowIOData();
+						workflowIOData.setExperimentId(experimentNode.getName());
+						workflowIOData.setWorkflowId(workflowNode.getName());
+						workflowIOData.setWorkflowName(workflowName);
+						workflowIOData.setNodeId(ioNode.getName());
+						workflowIOData.setData(ioNode.getProperty(PROPERTY_WORKFLOW_IO_CONTENT).getString());
+						workflowIODataList.add(workflowIOData);
+					}
+				}
+			}
 		} catch (Exception e) {
 			e.printStackTrace();
 		} finally {
 			closeSession(session);
-			return true;
 		}
-
+		return workflowIODataList;
 	}
+    
 }

Propchange: incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/WorkflowIOData.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/WorkflowIOData.java?rev=1188938&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/WorkflowIOData.java (added)
+++ incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/WorkflowIOData.java Tue Oct 25 21:52:47 2011
@@ -0,0 +1,65 @@
+package org.apache.airavata.registry.api.workflow;
+
+public class WorkflowIOData {
+	private String data; 
+	private String experimentId;
+    private String nodeId;
+    private String workflowName;
+    private String workflowId;
+    
+    public WorkflowIOData() {
+	}
+    
+	public WorkflowIOData(String data, String experimentId, String workflowId,
+            String nodeId,String workflowName) {
+		setData(data);
+		setExperimentId(experimentId);
+		setWorkflowId(workflowId);
+		setNodeId(nodeId);
+		setWorkflowName(workflowName);
+	}
+
+	public WorkflowIOData(String data, String experimentId,
+            String nodeId,String workflowName) {
+		this(data, experimentId, experimentId, nodeId, workflowName);
+	}
+	public String getData() {
+		return data;
+	}
+
+	public void setData(String data) {
+		this.data = data;
+	}
+
+	public String getExperimentId() {
+		return experimentId;
+	}
+
+	public void setExperimentId(String experimentId) {
+		this.experimentId = experimentId;
+	}
+
+	public String getNodeId() {
+		return nodeId;
+	}
+
+	public void setNodeId(String nodeId) {
+		this.nodeId = nodeId;
+	}
+
+	public String getWorkflowName() {
+		return workflowName;
+	}
+
+	public void setWorkflowName(String workflowName) {
+		this.workflowName = workflowName;
+	}
+
+	public String getWorkflowId() {
+		return workflowId;
+	}
+
+	public void setWorkflowId(String workflowId) {
+		this.workflowId = workflowId;
+	}
+}

Modified: incubator/airavata/trunk/modules/gfac-axis2/src/main/java/org/apache/airavata/services/gfac/axis2/reciever/GFacMessageReciever.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-axis2/src/main/java/org/apache/airavata/services/gfac/axis2/reciever/GFacMessageReciever.java?rev=1188938&r1=1188937&r2=1188938&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-axis2/src/main/java/org/apache/airavata/services/gfac/axis2/reciever/GFacMessageReciever.java (original)
+++ incubator/airavata/trunk/modules/gfac-axis2/src/main/java/org/apache/airavata/services/gfac/axis2/reciever/GFacMessageReciever.java Tue Oct 25 21:52:47 2011
@@ -46,6 +46,7 @@ import org.apache.airavata.core.gfac.not
 import org.apache.airavata.core.gfac.notification.impl.WorkflowTrackingNotification;
 import org.apache.airavata.core.gfac.services.GenericService;
 import org.apache.airavata.registry.api.Axis2Registry;
+import org.apache.airavata.registry.api.exception.RegistryException;
 import org.apache.airavata.schemas.wec.ContextHeaderDocument;
 import org.apache.airavata.services.gfac.axis2.GFacService;
 import org.apache.airavata.services.gfac.axis2.util.GFacServiceOperations;
@@ -321,7 +322,13 @@ public class GFacMessageReciever impleme
      * @throws XMLStreamException
      */
     private OMElement getWSDL(ConfigurationContext context, String serviceName) throws XMLStreamException {
-        String WSDL = getRegistry(context).getWSDL(serviceName);
+        String WSDL = null;
+		try {
+			WSDL = getRegistry(context).getWSDL(serviceName);
+		} catch (RegistryException e) {
+			//TODO this scenario occur if the service is not present in the registry.
+			//someone should handle this 
+		}
         XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(WSDL));
         StAXOMBuilder builder = new StAXOMBuilder(reader);
         OMElement wsdlElement = builder.getDocumentElement();

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ServiceDescriptionDialog.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ServiceDescriptionDialog.java?rev=1188938&r1=1188937&r2=1188938&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ServiceDescriptionDialog.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ServiceDescriptionDialog.java Tue Oct 25 21:52:47 2011
@@ -12,13 +12,15 @@ import java.awt.event.KeyAdapter;
 import java.awt.event.KeyEvent;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.regex.Pattern;
 
+import javax.jcr.PathNotFoundException;
 import javax.swing.DefaultCellEditor;
 import javax.swing.GroupLayout;
 import javax.swing.GroupLayout.Alignment;
 import javax.swing.JButton;
-import javax.swing.JCheckBox;
 import javax.swing.JComboBox;
 import javax.swing.JDialog;
 import javax.swing.JLabel;
@@ -29,8 +31,6 @@ import javax.swing.JTable;
 import javax.swing.JTextField;
 import javax.swing.LayoutStyle.ComponentPlacement;
 import javax.swing.ListSelectionModel;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
 import javax.swing.event.TableModelEvent;
@@ -41,7 +41,6 @@ import javax.swing.table.TableColumn;
 import org.apache.airavata.commons.gfac.type.DataType;
 import org.apache.airavata.commons.gfac.type.ServiceDescription;
 import org.apache.airavata.commons.gfac.type.parameter.ParameterFactory;
-import org.apache.airavata.registry.api.Axis2Registry;
 import org.apache.airavata.registry.api.Registry;
 import org.apache.airavata.registry.api.exception.RegistryException;
 import org.apache.airavata.schemas.gfac.Parameter;
@@ -57,12 +56,9 @@ public class ServiceDescriptionDialog ex
     private boolean serviceCreated = false;
     private JLabel lblError;
     private ServiceDescription serviceDescription;
-    private ServiceDescriptionType serviceDescriptionType;
     private JButton okButton;
     private JButton btnDeleteParameter;
     private DefaultTableModel defaultTableModel;
-    private JCheckBox chckbxAutoGenerateWsdl;
-    private JButton btnWSDL;
     private Registry registry;
 
     /**
@@ -150,117 +146,47 @@ public class ServiceDescriptionDialog ex
             }
         });
         btnDeleteParameter.setEnabled(false);
-
-        chckbxAutoGenerateWsdl = new JCheckBox("Auto generate WSDL");
-        chckbxAutoGenerateWsdl.setEnabled(false);
-        chckbxAutoGenerateWsdl.setSelected(true);
-
-        btnWSDL = new JButton("Specify WSDL...");
-        btnWSDL.setEnabled(false);
-        chckbxAutoGenerateWsdl.addChangeListener(new ChangeListener() {
-            public void stateChanged(ChangeEvent arg0) {
-                // btnWSDL.setEnabled(!chckbxAutoGenerateWsdl.isSelected());
-            }
-        });
         GroupLayout gl_contentPanel = new GroupLayout(contentPanel);
-        gl_contentPanel
-                .setHorizontalGroup(gl_contentPanel
-                        .createParallelGroup(Alignment.TRAILING)
-                        .addGroup(
-                                gl_contentPanel
-                                        .createSequentialGroup()
-                                        .addGap(181)
-                                        .addComponent(separator, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
-                                                GroupLayout.PREFERRED_SIZE).addContainerGap())
-                        .addGroup(
-                                gl_contentPanel
-                                        .createSequentialGroup()
-                                        .addContainerGap(212, Short.MAX_VALUE)
-                                        .addGroup(
-                                                gl_contentPanel
-                                                        .createParallelGroup(Alignment.LEADING, false)
-                                                        .addGroup(
-                                                                gl_contentPanel
-                                                                        .createSequentialGroup()
-                                                                        .addGroup(
-                                                                                gl_contentPanel
-                                                                                        .createParallelGroup(
-                                                                                                Alignment.TRAILING)
-                                                                                        .addComponent(
-                                                                                                scrollPane,
-                                                                                                GroupLayout.PREFERRED_SIZE,
-                                                                                                380,
-                                                                                                GroupLayout.PREFERRED_SIZE)
-                                                                                        .addGroup(
-                                                                                                gl_contentPanel
-                                                                                                        .createSequentialGroup()
-                                                                                                        .addComponent(
-                                                                                                                chckbxAutoGenerateWsdl)
-                                                                                                        .addPreferredGap(
-                                                                                                                ComponentPlacement.RELATED,
-                                                                                                                91,
-                                                                                                                Short.MAX_VALUE)
-                                                                                                        .addGroup(
-                                                                                                                gl_contentPanel
-                                                                                                                        .createParallelGroup(
-                                                                                                                                Alignment.LEADING,
-                                                                                                                                false)
-                                                                                                                        .addComponent(
-                                                                                                                                btnWSDL,
-                                                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                                                Short.MAX_VALUE)
-                                                                                                                        .addComponent(
-                                                                                                                                btnDeleteParameter,
-                                                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                                                Short.MAX_VALUE))))
-                                                                        .addGap(27))
-                                                        .addGroup(
-                                                                Alignment.TRAILING,
-                                                                gl_contentPanel
-                                                                        .createSequentialGroup()
-                                                                        .addGroup(
-                                                                                gl_contentPanel
-                                                                                        .createParallelGroup(
-                                                                                                Alignment.LEADING)
-                                                                                        .addComponent(
-                                                                                                lblInputParameters)
-                                                                                        .addGroup(
-                                                                                                gl_contentPanel
-                                                                                                        .createSequentialGroup()
-                                                                                                        .addComponent(
-                                                                                                                lblServiceName)
-                                                                                                        .addGap(18)
-                                                                                                        .addComponent(
-                                                                                                                txtServiceName,
-                                                                                                                GroupLayout.PREFERRED_SIZE,
-                                                                                                                309,
-                                                                                                                GroupLayout.PREFERRED_SIZE)))
-                                                                        .addGap(30)))));
-        gl_contentPanel.setVerticalGroup(gl_contentPanel.createParallelGroup(Alignment.LEADING).addGroup(
-                gl_contentPanel
-                        .createSequentialGroup()
-                        .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                        .addGroup(
-                                gl_contentPanel
-                                        .createParallelGroup(Alignment.BASELINE)
-                                        .addComponent(lblServiceName)
-                                        .addComponent(txtServiceName, GroupLayout.PREFERRED_SIZE,
-                                                GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
-                        .addPreferredGap(ComponentPlacement.UNRELATED)
-                        .addComponent(separator, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
-                                GroupLayout.PREFERRED_SIZE)
-                        .addGap(12)
-                        .addComponent(lblInputParameters)
-                        .addPreferredGap(ComponentPlacement.RELATED)
-                        .addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 182, GroupLayout.PREFERRED_SIZE)
-                        .addPreferredGap(ComponentPlacement.RELATED)
-                        .addComponent(btnDeleteParameter)
-                        .addPreferredGap(ComponentPlacement.UNRELATED)
-                        .addGroup(
-                                gl_contentPanel.createParallelGroup(Alignment.BASELINE).addComponent(btnWSDL)
-                                        .addComponent(chckbxAutoGenerateWsdl)).addGap(44)));
+        gl_contentPanel.setHorizontalGroup(
+        	gl_contentPanel.createParallelGroup(Alignment.TRAILING)
+        		.addGroup(gl_contentPanel.createSequentialGroup()
+        			.addContainerGap(212, Short.MAX_VALUE)
+        			.addGroup(gl_contentPanel.createParallelGroup(Alignment.LEADING)
+        				.addGroup(gl_contentPanel.createSequentialGroup()
+        					.addComponent(separator, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
+        					.addContainerGap())
+        				.addGroup(gl_contentPanel.createParallelGroup(Alignment.TRAILING, false)
+        					.addGroup(gl_contentPanel.createSequentialGroup()
+        						.addGroup(gl_contentPanel.createParallelGroup(Alignment.TRAILING)
+        							.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 380, GroupLayout.PREFERRED_SIZE)
+        							.addComponent(btnDeleteParameter))
+        						.addGap(27))
+        					.addGroup(gl_contentPanel.createSequentialGroup()
+        						.addGroup(gl_contentPanel.createParallelGroup(Alignment.LEADING)
+        							.addComponent(lblInputParameters)
+        							.addGroup(gl_contentPanel.createSequentialGroup()
+        								.addComponent(lblServiceName)
+        								.addGap(18)
+        								.addComponent(txtServiceName, GroupLayout.PREFERRED_SIZE, 309, GroupLayout.PREFERRED_SIZE)))
+        						.addGap(30)))))
+        );
+        gl_contentPanel.setVerticalGroup(
+        	gl_contentPanel.createParallelGroup(Alignment.LEADING)
+        		.addGroup(gl_contentPanel.createSequentialGroup()
+        			.addContainerGap(42, Short.MAX_VALUE)
+        			.addGroup(gl_contentPanel.createParallelGroup(Alignment.BASELINE)
+        				.addComponent(lblServiceName)
+        				.addComponent(txtServiceName, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+        			.addPreferredGap(ComponentPlacement.UNRELATED)
+        			.addComponent(separator, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
+        			.addGap(12)
+        			.addComponent(lblInputParameters)
+        			.addPreferredGap(ComponentPlacement.RELATED)
+        			.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 182, GroupLayout.PREFERRED_SIZE)
+        			.addPreferredGap(ComponentPlacement.RELATED)
+        			.addComponent(btnDeleteParameter)
+        			.addGap(78))
+        );
 
         tblParameters = new JTable();
         tblParameters.setFillsViewportHeight(true);
@@ -387,10 +313,7 @@ public class ServiceDescriptionDialog ex
     }
 
     public ServiceDescriptionType getServiceDescriptionType() {
-        if (serviceDescriptionType == null) {
-            serviceDescriptionType = new ServiceDescription().getServiceDescriptionType();
-        }
-        return serviceDescriptionType;
+        return getServiceDescription().getServiceDescriptionType();
     }
 
     public String getServiceName() {
@@ -401,7 +324,16 @@ public class ServiceDescriptionDialog ex
         getServiceDescription().setId(serviceName);
         updateDialogStatus();
     }
-
+    private void updateDialogStatus() {
+        String message = null;
+        try {
+            validateDialog();
+        } catch (Exception e) {
+            message = e.getLocalizedMessage();
+        }
+        okButton.setEnabled(message == null);
+        setError(message);
+    }
     private void validateDialog() throws Exception {
         if (getServiceName() == null || getServiceName().trim().equals("")) {
             throw new Exception("Name of the service cannot be empty!!!");
@@ -411,60 +343,83 @@ public class ServiceDescriptionDialog ex
         try {
             serviceDescription2 = getRegistry().getServiceDescription(Pattern.quote(getServiceName()));
         } catch (RegistryException e) {
-            throw e;
+        	if (e.getCause() instanceof PathNotFoundException){
+        		//non-existant name. just want we want
+        	}else{
+        		throw e;
+        	}
         }
         if (serviceDescription2 != null) {
             throw new Exception("Service descriptor with the given name already exists!!!");
         }
+	}
 
-    }
-
-    private void updateDialogStatus() {
-        String message = null;
-        try {
-            validateDialog();
-        } catch (Exception e) {
-            message = e.getLocalizedMessage();
-        }
-        okButton.setEnabled(message == null);
-        setError(message);
-    }
+	public void saveServiceDescription() {
+		List<Parameter> inputParameters=new ArrayList<Parameter>();
+		List<Parameter> outputParameters=new ArrayList<Parameter>();
+		
+		for(int i=0;i<defaultTableModel.getRowCount();i++){
+			Parameter parameter = Parameter.Factory.newInstance();
+			String parameterName = (String)defaultTableModel.getValueAt(i, 1);
+			if (parameterName!=null && !parameterName.trim().equals("")) {
+				DataType parameterDataType = (DataType) defaultTableModel
+						.getValueAt(i, 2);
+				String parameterDescription = (String) defaultTableModel
+						.getValueAt(i, 3);
+				parameter.setName(parameterName);
+				parameter.setDescription(parameterDescription);
+
+				parameter.addNewType().setType(org.apache.airavata.schemas.gfac.DataType.Enum.forString(parameterDataType.toString()));
+				if (getIOStringList()[0].equals(defaultTableModel.getValueAt(i,
+						0))) {
+					inputParameters.add(parameter);
+				} else {
+					outputParameters.add(parameter);
+				}
+			}
+		}
+		getServiceDescriptionType().setInputParametersArray(inputParameters.toArray(new Parameter[]{}));
+		getServiceDescriptionType().setOutputParametersArray(outputParameters.toArray(new Parameter[]{}));
+		
+		getRegistry().saveServiceDescription(getServiceDescription());
+		setServiceCreated(true);
+	}
 
     public void close() {
         getDialog().setVisible(false);
     }
 
-    public void saveServiceDescription() {
-        for (int i = 0; i < defaultTableModel.getRowCount(); i++) {
-            Parameter parameter = Parameter.Factory.newInstance();
-            String parameterName = (String) defaultTableModel.getValueAt(i, 1);
-            if (parameterName != null) {
-                DataType parameterDataType = (DataType) defaultTableModel.getValueAt(i, 2);
-                String parameterDescription = (String) defaultTableModel.getValueAt(i, 3);
-                parameter.setName(parameterName);
-                parameter.setDescription(parameterDescription);
-
-                parameter.addNewType().setType(
-                        org.apache.airavata.schemas.gfac.DataType.Enum.forString(parameterDataType.toString()));
-                if (getIOStringList()[0].equals(defaultTableModel.getValueAt(i, 0))) {
-                    getServiceDescriptionType().setInputParametersArray(0, parameter);
-                    // getServiceDescription().getInputParameters().add(parameter);
-                } else {
-                    getServiceDescriptionType().setOutputParametersArray(0, parameter);
-                    // getServiceDescription().getOutputParameters().add(parameter);
-                }
-            }
-        }
-
-        getRegistry().saveServiceDescription(getServiceDescription());
-        if (chckbxAutoGenerateWsdl.isSelected()) {
-
-            if (getRegistry() instanceof Axis2Registry) {
-                ((Axis2Registry) getRegistry()).saveWSDL(getServiceDescription());
-            }
-        }
-        setServiceCreated(true);
-    }
+//    public void saveServiceDescription() {
+//        for (int i = 0; i < defaultTableModel.getRowCount(); i++) {
+//            Parameter parameter = Parameter.Factory.newInstance();
+//            String parameterName = (String) defaultTableModel.getValueAt(i, 1);
+//			if (parameterName!=null && !parameterName.trim().equals("")) {
+//                DataType parameterDataType = (DataType) defaultTableModel.getValueAt(i, 2);
+//                String parameterDescription = (String) defaultTableModel.getValueAt(i, 3);
+//                parameter.setName(parameterName);
+//                parameter.setDescription(parameterDescription);
+//
+//                parameter.addNewType().setType(
+//                        org.apache.airavata.schemas.gfac.DataType.Enum.forString(parameterDataType.toString()));
+//                if (getIOStringList()[0].equals(defaultTableModel.getValueAt(i, 0))) {
+//                    getServiceDescriptionType().setInputParametersArray(0, parameter);
+//                    // getServiceDescription().getInputParameters().add(parameter);
+//                } else {
+//                    getServiceDescriptionType().setOutputParametersArray(0, parameter);
+//                    // getServiceDescription().getOutputParameters().add(parameter);
+//                }
+//            }
+//        }
+//
+//        getRegistry().saveServiceDescription(getServiceDescription());
+//        if (chckbxAutoGenerateWsdl.isSelected()) {
+//
+//            if (getRegistry() instanceof Axis2Registry) {
+//                ((Axis2Registry) getRegistry()).saveWSDL(getServiceDescription());
+//            }
+//        }
+//        setServiceCreated(true);
+//    }
 
     private void setError(String errorMessage) {
         if (errorMessage == null || errorMessage.trim().equals("")) {

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/JCRComponentRegistry.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/JCRComponentRegistry.java?rev=1188938&r1=1188937&r2=1188938&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/JCRComponentRegistry.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/JCRComponentRegistry.java Tue Oct 25 21:52:47 2011
@@ -76,7 +76,7 @@ public class JCRComponentRegistry extend
      */
     @Override
     public ComponentTreeNode getComponentTree() {
-        ComponentTreeNode tree = new ComponentTreeNode(this);
+    	ComponentTreeNode tree = new ComponentTreeNode(this);
         try {
             List<ServiceDescription> services = this.registry.searchServiceDescription("");
             for (ServiceDescription serviceDescription : services) {
@@ -152,8 +152,4 @@ public class JCRComponentRegistry extend
     public Registry getRegistry() {
         return registry;
     }
-
-    public String saveWSDL(ServiceDescription service) {
-        return registry.saveWSDL(service);
-    }
 }
\ No newline at end of file

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/provenance/ProvenanceWrite.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/provenance/ProvenanceWrite.java?rev=1188938&r1=1188937&r2=1188938&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/provenance/ProvenanceWrite.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/provenance/ProvenanceWrite.java Tue Oct 25 21:52:47 2011
@@ -26,6 +26,7 @@ import java.util.Map;
 
 import org.apache.airavata.common.utils.XMLUtil;
 import org.apache.airavata.registry.api.Registry;
+import org.apache.airavata.registry.api.workflow.WorkflowIOData;
 import org.apache.airavata.xbaya.XBayaException;
 import org.apache.airavata.xbaya.concurrent.PredicatedExecutable;
 import org.apache.airavata.xbaya.graph.DataPort;
@@ -169,7 +170,7 @@ public final class ProvenanceWrite imple
 				}
 
 			}
-            this.registry.saveWorkflowInput(xsul5.XmlConstants.BUILDER.serializeToString(elem), experimentId, node.getID(),this.workflowName);
+            this.registry.saveWorkflowInput(new WorkflowIOData(xsul5.XmlConstants.BUILDER.serializeToString(elem), experimentId, node.getID(),this.workflowName));
 			// deal with the outputs
 
 			XmlElement outputs = elem.newElement("outputs");
@@ -195,7 +196,7 @@ public final class ProvenanceWrite imple
 					outputParamElement.addChild("null");
 				}
 			}
-            this.registry.saveWorkflowOutput(xsul5.XmlConstants.BUILDER.serializeToString(outputs), experimentId, node.getID(),this.workflowName);
+            this.registry.saveWorkflowOutput(new WorkflowIOData(xsul5.XmlConstants.BUILDER.serializeToString(outputs), experimentId, node.getID(),this.workflowName));
 		}
 	}
 }

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/InputParameters.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/InputParameters.java?rev=1188938&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/InputParameters.java (added)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/InputParameters.java Tue Oct 25 21:52:47 2011
@@ -0,0 +1,15 @@
+package org.apache.airavata.xbaya.registrybrowser.model;
+
+import org.apache.airavata.commons.gfac.type.Parameter;
+
+public class InputParameters extends ServiceParameters {
+
+	public InputParameters(ServiceParameter[] parameters) {
+		super(parameters);
+	}
+	
+	public InputParameters(Parameter[] parameters) {
+		super(parameters);
+	}
+
+}

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/OutputParameters.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/OutputParameters.java?rev=1188938&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/OutputParameters.java (added)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/OutputParameters.java Tue Oct 25 21:52:47 2011
@@ -0,0 +1,15 @@
+package org.apache.airavata.xbaya.registrybrowser.model;
+
+import org.apache.airavata.commons.gfac.type.Parameter;
+
+public class OutputParameters extends ServiceParameters {
+
+	public OutputParameters(ServiceParameter[] parameters) {
+		super(parameters);
+	}
+	
+	public OutputParameters(Parameter[] parameters) {
+		super(parameters);
+	}
+
+}

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/ServiceParameter.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/ServiceParameter.java?rev=1188938&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/ServiceParameter.java (added)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/ServiceParameter.java Tue Oct 25 21:52:47 2011
@@ -0,0 +1,44 @@
+package org.apache.airavata.xbaya.registrybrowser.model;
+
+import org.apache.airavata.commons.gfac.type.Parameter;
+import org.apache.airavata.schemas.gfac.ParameterType;
+
+
+public class ServiceParameter {
+	private Parameter parameter;
+	private Object value;
+	
+	public ServiceParameter(Parameter parameter) {
+		this(parameter,null);
+	}
+	
+	public ServiceParameter(Parameter parameter, Object value) {
+		setParameter(parameter);
+		setValue(value);
+	}
+	public Parameter getParameter() {
+		return parameter;
+	}
+	public void setParameter(Parameter parameter) {
+		this.parameter = parameter;
+	}
+	public Object getValue() {
+		return value;
+	}
+	public void setValue(Object value) {
+		this.value = value;
+	}
+	
+	public String getName(){
+		return getParameter().getName();
+	}
+	
+	public String getDescription(){
+		return getParameter().getDescription();
+	}
+	
+	public ParameterType getType(){
+		return getParameter().getParameterType().getType();
+	}
+}
+

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/ServiceParameters.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/ServiceParameters.java?rev=1188938&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/ServiceParameters.java (added)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/ServiceParameters.java Tue Oct 25 21:52:47 2011
@@ -0,0 +1,28 @@
+package org.apache.airavata.xbaya.registrybrowser.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.airavata.commons.gfac.type.Parameter;
+
+public class ServiceParameters {
+	private ServiceParameter[] parameters;
+	
+	public ServiceParameters(Parameter[] parameters) {
+		List<ServiceParameter> serviceParaList=new ArrayList<ServiceParameter>();
+		for (Parameter parameter : parameters) {
+			serviceParaList.add(new ServiceParameter(parameter));
+		}
+		setParameters(serviceParaList.toArray(new ServiceParameter[]{}));
+	}
+	
+	public ServiceParameters(ServiceParameter[] parameters) {
+		setParameters(parameters);
+	}
+	public ServiceParameter[] getParameters() {
+		return parameters;
+	}
+	public void setParameters(ServiceParameter[] parameters) {
+		this.parameters = parameters;
+	}
+}

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/XBayaWorkflowTemplate.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/XBayaWorkflowTemplate.java?rev=1188938&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/XBayaWorkflowTemplate.java (added)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/XBayaWorkflowTemplate.java Tue Oct 25 21:52:47 2011
@@ -0,0 +1,29 @@
+package org.apache.airavata.xbaya.registrybrowser.model;
+
+import javax.jcr.Node;
+import javax.jcr.RepositoryException;
+
+public class XBayaWorkflowTemplate {
+    private Node workflowNode;
+
+    public XBayaWorkflowTemplate(Node workflowNode) {
+        setWorkflowNode(workflowNode);
+    }
+
+    public Node getWorkflowNode() {
+        return workflowNode;
+    }
+
+    public void setWorkflowNode(Node workflowNode) {
+        this.workflowNode = workflowNode;
+    }
+
+    public String getWorkflowName() {
+        try {
+            return getWorkflowNode().getName();
+        } catch (RepositoryException e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+}

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/XBayaWorkflowTemplates.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/XBayaWorkflowTemplates.java?rev=1188938&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/XBayaWorkflowTemplates.java (added)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/model/XBayaWorkflowTemplates.java Tue Oct 25 21:52:47 2011
@@ -0,0 +1,35 @@
+package org.apache.airavata.xbaya.registrybrowser.model;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.jcr.Node;
+import javax.xml.namespace.QName;
+
+import org.apache.airavata.registry.api.Registry;
+
+public class XBayaWorkflowTemplates {
+    private Registry registry;
+
+    public XBayaWorkflowTemplates(Registry registry) {
+        setRegistry(registry);
+    }
+
+    public Registry getRegistry() {
+        return registry;
+    }
+
+    public void setRegistry(Registry registry) {
+        this.registry = registry;
+    }
+
+    public List<XBayaWorkflowTemplate> getWorkflows() {
+        List<XBayaWorkflowTemplate> workflows = new ArrayList<XBayaWorkflowTemplate>();
+        Map<QName, Node> workflowMap = registry.getWorkflows(registry.getUsername());
+        for (Node xBayaWorkflowNode : workflowMap.values()) {
+            workflows.add(new XBayaWorkflowTemplate(xBayaWorkflowNode));
+        }
+        return workflows;
+    }
+}

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/AiravataTreeNodeFactory.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/AiravataTreeNodeFactory.java?rev=1188938&r1=1188937&r2=1188938&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/AiravataTreeNodeFactory.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/AiravataTreeNodeFactory.java Tue Oct 25 21:52:47 2011
@@ -11,36 +11,48 @@ import org.apache.airavata.xbaya.registr
 import org.apache.airavata.xbaya.registrybrowser.model.GFacURL;
 import org.apache.airavata.xbaya.registrybrowser.model.GFacURLs;
 import org.apache.airavata.xbaya.registrybrowser.model.HostDescriptions;
+import org.apache.airavata.xbaya.registrybrowser.model.InputParameters;
+import org.apache.airavata.xbaya.registrybrowser.model.OutputParameters;
 import org.apache.airavata.xbaya.registrybrowser.model.ServiceDescriptions;
-import org.apache.airavata.xbaya.registrybrowser.model.XBayaWorkflow;
-import org.apache.airavata.xbaya.registrybrowser.model.XBayaWorkflows;
+import org.apache.airavata.xbaya.registrybrowser.model.ServiceParameter;
+import org.apache.airavata.xbaya.registrybrowser.model.ServiceParameters;
+import org.apache.airavata.xbaya.registrybrowser.model.XBayaWorkflowTemplate;
+import org.apache.airavata.xbaya.registrybrowser.model.XBayaWorkflowTemplates;
 
 public class AiravataTreeNodeFactory {
-    public static TreeNode getTreeNode(Object o, TreeNode parent) {
-        if (o instanceof Registry) {
-            return new RegistryNode((Registry) o, parent);
-        } else if (o instanceof GFacURLs) {
-            return new GFacURLsNode((GFacURLs) o, parent);
-        } else if (o instanceof GFacURL) {
-            return new GFacURLNode((GFacURL) o, parent);
-        } else if (o instanceof HostDescriptions) {
-            return new HostDescriptionsNode((HostDescriptions) o, parent);
-        } else if (o instanceof HostDescription) {
-            return new HostDescriptionNode((HostDescription) o, parent);
-        } else if (o instanceof ServiceDescriptions) {
-            return new ServiceDescriptionsNode((ServiceDescriptions) o, parent);
-        } else if (o instanceof ServiceDescription) {
-            return new ServiceDescriptionNode((ServiceDescription) o, parent);
-        } else if (o instanceof ApplicationDeploymentDescriptions) {
-            return new ApplicationDeploymentDescriptionsNode((ApplicationDeploymentDescriptions) o, parent);
-        } else if (o instanceof ApplicationDeploymentDescriptionWrap) {
-            return new ApplicationDeploymentDescriptionNode((ApplicationDeploymentDescriptionWrap) o, parent);
-        } else if (o instanceof XBayaWorkflows) {
-            return new XBayaWorkflowsNode((XBayaWorkflows) o, parent);
-        } else if (o instanceof XBayaWorkflow) {
-            return new XBayaWorkflowNode((XBayaWorkflow) o, parent);
-        } else {
-            return new DefaultMutableTreeNode(o);
-        }
-    }
+	public static TreeNode getTreeNode(Object o,TreeNode parent){
+		if (o instanceof Registry){
+			return new RegistryNode((Registry)o,parent);
+		}else if (o instanceof GFacURLs){
+			return new GFacURLsNode((GFacURLs)o,parent);
+		}else if (o instanceof GFacURL){
+			return new GFacURLNode((GFacURL)o,parent);
+		}else if (o instanceof HostDescriptions){
+			return new HostDescriptionsNode((HostDescriptions)o,parent);
+		}else if (o instanceof HostDescription){
+			return new HostDescriptionNode((HostDescription)o,parent);
+		}else if (o instanceof ServiceDescriptions){
+			return new ServiceDescriptionsNode((ServiceDescriptions)o,parent);
+		}else if (o instanceof ServiceDescription){
+			return new ServiceDescriptionNode((ServiceDescription)o,parent);
+		}else if (o instanceof ApplicationDeploymentDescriptions){
+			return new ApplicationDeploymentDescriptionsNode((ApplicationDeploymentDescriptions)o,parent);
+		}else if (o instanceof ApplicationDeploymentDescriptionWrap){
+			return new ApplicationDeploymentDescriptionNode((ApplicationDeploymentDescriptionWrap)o,parent);
+		}else if (o instanceof XBayaWorkflowTemplates){
+			return new XBayaWorkflowTemplatesNode((XBayaWorkflowTemplates)o,parent);
+		}else if (o instanceof XBayaWorkflowTemplate){
+			return new XBayaWorkflowTemplateNode((XBayaWorkflowTemplate)o,parent);
+		}else if (o instanceof ServiceParameter){
+			return new ParameterNode((ServiceParameter)o,parent);
+		}else if (o instanceof InputParameters){
+			return new InputParametersNode((InputParameters)o,parent);
+		}else if (o instanceof OutputParameters){
+			return new OutputParametersNode((OutputParameters)o,parent);
+		}else if (o instanceof ServiceParameters){
+			return new ParametersNode((ServiceParameters)o,parent);
+		}else{
+			return new DefaultMutableTreeNode(o);
+		}
+	}
 }

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/InputParametersNode.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/InputParametersNode.java?rev=1188938&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/InputParametersNode.java (added)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/InputParametersNode.java Tue Oct 25 21:52:47 2011
@@ -0,0 +1,26 @@
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import javax.swing.Icon;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.common.utils.SwingUtil;
+import org.apache.airavata.xbaya.registrybrowser.model.InputParameters;
+
+public class InputParametersNode extends ParametersNode {
+
+	public InputParametersNode(InputParameters parameters, TreeNode parent) {
+		super(parameters, parent);
+	}
+
+	@Override
+	public String getCaption(boolean selected, boolean expanded, boolean leaf,
+			boolean hasFocus) {
+		return "Input";
+	}
+	
+	@Override
+	public Icon getIcon(boolean selected, boolean expanded, boolean leaf,
+			boolean hasFocus) {
+		return SwingUtil.createImageIcon("input_para.png");
+	}
+}

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/OutputParametersNode.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/OutputParametersNode.java?rev=1188938&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/OutputParametersNode.java (added)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/OutputParametersNode.java Tue Oct 25 21:52:47 2011
@@ -0,0 +1,26 @@
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import javax.swing.Icon;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.common.utils.SwingUtil;
+import org.apache.airavata.xbaya.registrybrowser.model.OutputParameters;
+
+public class OutputParametersNode extends ParametersNode {
+
+	public OutputParametersNode(OutputParameters parameters, TreeNode parent) {
+		super(parameters, parent);
+	}
+
+	@Override
+	public String getCaption(boolean selected, boolean expanded, boolean leaf,
+			boolean hasFocus) {
+		return "Output";
+	}
+	
+	@Override
+	public Icon getIcon(boolean selected, boolean expanded, boolean leaf,
+			boolean hasFocus) {
+		return SwingUtil.createImageIcon("output_para.png");
+	}
+}

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterNode.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterNode.java?rev=1188938&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterNode.java (added)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterNode.java Tue Oct 25 21:52:47 2011
@@ -0,0 +1,75 @@
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.common.utils.SwingUtil;
+import org.apache.airavata.schemas.gfac.Parameter;
+import org.apache.airavata.xbaya.registrybrowser.menu.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.registrybrowser.model.ServiceParameter;
+
+public class ParameterNode extends AbstractAiravataTreeNode {
+	private ServiceParameter parameter;
+	
+	public ParameterNode(ServiceParameter parameter, TreeNode parent) {
+		super(parent);
+		setParameter(parameter);
+	}
+
+	@Override
+	protected List<TreeNode> getChildren() {
+		return emptyList();
+	}
+
+	@Override
+	public String getCaption(boolean selected, boolean expanded, boolean leaf,
+			boolean hasFocus) {
+		if (getParameter().getValue()==null){
+			return getParameter().getName()+":"+getParameter().getValue().toString();
+		}else{
+			return getParameter().getName()+":<"+getParameter().getType().toString()+">";
+		}
+	}
+
+	@Override
+	public Icon getIcon(boolean selected, boolean expanded, boolean leaf,
+			boolean hasFocus) {
+		return SwingUtil.createImageIcon("parameter.png");
+	}
+
+	@Override
+	public List<String> getSupportedActions() {
+		return Arrays.asList();
+	}
+
+	public boolean triggerAction(JTree tree,String action) throws Exception{
+		return super.triggerAction(tree, action);
+	}
+
+	@Override
+	public String getActionCaption(AbstractBrowserActionItem action) {
+		return action.getDefaultCaption();
+	}
+
+	@Override
+	public Icon getActionIcon(AbstractBrowserActionItem action) {
+		return null;
+	}
+
+	@Override
+	public String getActionDescription(AbstractBrowserActionItem action) {
+		return null;
+	}
+
+	public ServiceParameter getParameter() {
+		return parameter;
+	}
+
+	public void setParameter(ServiceParameter parameter) {
+		this.parameter = parameter;
+	}
+}

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterValueNode.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterValueNode.java?rev=1188938&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterValueNode.java (added)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParameterValueNode.java Tue Oct 25 21:52:47 2011
@@ -0,0 +1,70 @@
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.common.utils.SwingUtil;
+import org.apache.airavata.schemas.gfac.Parameter;
+import org.apache.airavata.xbaya.registrybrowser.menu.AbstractBrowserActionItem;
+
+public class ParameterValueNode extends AbstractAiravataTreeNode {
+	private Parameter parameter;
+	
+	public ParameterValueNode(Parameter parameter, TreeNode parent) {
+		super(parent);
+		setParameter(parameter);
+	}
+
+	@Override
+	protected List<TreeNode> getChildren() {
+		return emptyList();
+	}
+
+	@Override
+	public String getCaption(boolean selected, boolean expanded, boolean leaf,
+			boolean hasFocus) {
+		return getParameter().getName()+":"+getParameter().getType().toString();
+	}
+
+	@Override
+	public Icon getIcon(boolean selected, boolean expanded, boolean leaf,
+			boolean hasFocus) {
+		return SwingUtil.createImageIcon("parameter.png");
+	}
+
+	@Override
+	public List<String> getSupportedActions() {
+		return Arrays.asList();
+	}
+
+	public boolean triggerAction(JTree tree,String action) throws Exception{
+		return super.triggerAction(tree, action);
+	}
+
+	@Override
+	public String getActionCaption(AbstractBrowserActionItem action) {
+		return action.getDefaultCaption();
+	}
+
+	@Override
+	public Icon getActionIcon(AbstractBrowserActionItem action) {
+		return null;
+	}
+
+	@Override
+	public String getActionDescription(AbstractBrowserActionItem action) {
+		return null;
+	}
+
+	public Parameter getParameter() {
+		return parameter;
+	}
+
+	public void setParameter(Parameter parameter) {
+		this.parameter = parameter;
+	}
+}

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParametersNode.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParametersNode.java?rev=1188938&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParametersNode.java (added)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ParametersNode.java Tue Oct 25 21:52:47 2011
@@ -0,0 +1,70 @@
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.common.utils.SwingUtil;
+import org.apache.airavata.xbaya.registrybrowser.menu.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.registrybrowser.model.ServiceParameters;
+
+public class ParametersNode extends AbstractAiravataTreeNode {
+	private ServiceParameters parametersList;
+	public ParametersNode(ServiceParameters parameters,TreeNode parent) {
+		super(parent);
+		setParametersList(parameters);
+	}
+
+	@Override
+	protected List<TreeNode> getChildren() {
+		return getTreeNodeList(getParametersList().getParameters(), this);
+	}
+
+	@Override
+	public String getCaption(boolean selected, boolean expanded, boolean leaf,
+			boolean hasFocus) {
+		return "Parameters";
+	}
+
+	@Override
+	public Icon getIcon(boolean selected, boolean expanded, boolean leaf,
+			boolean hasFocus) {
+		return SwingUtil.createImageIcon("parameter.png");
+	}
+
+	@Override
+	public List<String> getSupportedActions() {
+		return Arrays.asList();
+	}
+	
+	public boolean triggerAction(JTree tree,String action) throws Exception{
+		return super.triggerAction(tree, action);
+	}
+
+	@Override
+	public String getActionCaption(AbstractBrowserActionItem action) {
+		return action.getDefaultCaption();
+	}
+
+	@Override
+	public Icon getActionIcon(AbstractBrowserActionItem action) {
+		return null;
+	}
+
+	@Override
+	public String getActionDescription(AbstractBrowserActionItem action) {
+		return null;
+	}
+
+	public ServiceParameters getParametersList() {
+		return parametersList;
+	}
+
+	public void setParametersList(ServiceParameters parametersList) {
+		this.parametersList = parametersList;
+	}
+
+}

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/RegistryNode.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/RegistryNode.java?rev=1188938&r1=1188937&r2=1188938&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/RegistryNode.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/RegistryNode.java Tue Oct 25 21:52:47 2011
@@ -15,7 +15,7 @@ import org.apache.airavata.xbaya.registr
 import org.apache.airavata.xbaya.registrybrowser.model.GFacURLs;
 import org.apache.airavata.xbaya.registrybrowser.model.HostDescriptions;
 import org.apache.airavata.xbaya.registrybrowser.model.ServiceDescriptions;
-import org.apache.airavata.xbaya.registrybrowser.model.XBayaWorkflows;
+import org.apache.airavata.xbaya.registrybrowser.model.XBayaWorkflowTemplates;
 
 public class RegistryNode extends AbstractAiravataTreeNode {
     private Registry registry;
@@ -36,7 +36,7 @@ public class RegistryNode extends Abstra
         ApplicationDeploymentDescriptions applicationDeploymentDescriptions = new ApplicationDeploymentDescriptions(
                 getRegistry());
         children.add(applicationDeploymentDescriptions);
-        XBayaWorkflows xBayaWorkflows = new XBayaWorkflows(getRegistry());
+        XBayaWorkflowTemplates xBayaWorkflows = new XBayaWorkflowTemplates(getRegistry());
         children.add(xBayaWorkflows);
         return getTreeNodeList(children.toArray(), this);
     }

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ServiceDescriptionNode.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ServiceDescriptionNode.java?rev=1188938&r1=1188937&r2=1188938&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ServiceDescriptionNode.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/ServiceDescriptionNode.java Tue Oct 25 21:52:47 2011
@@ -1,9 +1,9 @@
 package org.apache.airavata.xbaya.registrybrowser.nodes;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
-import javax.jcr.PathNotFoundException;
 import javax.swing.Icon;
 import javax.swing.JOptionPane;
 import javax.swing.JTree;
@@ -12,24 +12,32 @@ import javax.swing.tree.TreeNode;
 import org.apache.airavata.common.utils.SwingUtil;
 import org.apache.airavata.commons.gfac.type.ServiceDescription;
 import org.apache.airavata.registry.api.exception.RegistryException;
-import org.apache.airavata.registry.api.exception.ServiceDescriptionRetrieveException;
 import org.apache.airavata.xbaya.registrybrowser.menu.AbstractBrowserActionItem;
 import org.apache.airavata.xbaya.registrybrowser.menu.DeleteAction;
 import org.apache.airavata.xbaya.registrybrowser.menu.EditAction;
+import org.apache.airavata.xbaya.registrybrowser.model.InputParameters;
+import org.apache.airavata.xbaya.registrybrowser.model.OutputParameters;
+import org.apache.airavata.xbaya.registrybrowser.model.ServiceParameters;
 
 public class ServiceDescriptionNode extends AbstractAiravataTreeNode {
-    private ServiceDescription serviceDescription;
+	private ServiceDescription serviceDescription;
 
-    public ServiceDescriptionNode(ServiceDescription serviceDescription, TreeNode parent) {
-        super(parent);
-        setServiceDescription(serviceDescription);
-    }
-
-    @Override
-    protected List<TreeNode> getChildren() {
-        // TODO perhaps we should show the parameters as children
-        return emptyList();
-    }
+	public ServiceDescriptionNode(ServiceDescription serviceDescription, TreeNode parent) {
+		super(parent);
+		setServiceDescription(serviceDescription);
+	}
+
+	@Override
+	protected List<TreeNode> getChildren() {
+		List<ServiceParameters> parameterTypeList=new ArrayList<ServiceParameters>();
+		if (getServiceDescription().getInputParameters().length>0){
+			parameterTypeList.add(new InputParameters(getServiceDescription().getInputParameters()));
+		}
+		if (getServiceDescription().getOutputParameters().length>0){
+			parameterTypeList.add(new OutputParameters(getServiceDescription().getOutputParameters()));
+		}
+		return getTreeNodeList(parameterTypeList.toArray(), this);
+	}
 
     @Override
     public String getCaption(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/XBayaWorkflowTemplateNode.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/XBayaWorkflowTemplateNode.java?rev=1188938&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/XBayaWorkflowTemplateNode.java (added)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/XBayaWorkflowTemplateNode.java Tue Oct 25 21:52:47 2011
@@ -0,0 +1,96 @@
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.jcr.PathNotFoundException;
+import javax.swing.Icon;
+import javax.swing.JOptionPane;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+import javax.xml.namespace.QName;
+
+import org.apache.airavata.common.utils.SwingUtil;
+import org.apache.airavata.registry.api.exception.ServiceDescriptionRetrieveException;
+import org.apache.airavata.xbaya.registrybrowser.menu.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.registrybrowser.menu.DeleteAction;
+import org.apache.airavata.xbaya.registrybrowser.menu.EditAction;
+import org.apache.airavata.xbaya.registrybrowser.model.XBayaWorkflowTemplate;
+
+public class XBayaWorkflowTemplateNode extends AbstractAiravataTreeNode {
+    private XBayaWorkflowTemplate xbayaWorkflow;
+
+    public XBayaWorkflowTemplateNode(XBayaWorkflowTemplate xbayaWorkflow, TreeNode parent) {
+        super(parent);
+        setXbayaWorkflow(xbayaWorkflow);
+    }
+
+    @Override
+    protected List<TreeNode> getChildren() {
+        return emptyList();
+    }
+
+    @Override
+    public String getCaption(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+        return getXbayaWorkflow().getWorkflowName();
+    }
+
+    @Override
+    public Icon getIcon(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+        return SwingUtil.createImageIcon("workflow.png");
+    }
+
+    public XBayaWorkflowTemplate getXbayaWorkflow() {
+        return xbayaWorkflow;
+    }
+
+    public void setXbayaWorkflow(XBayaWorkflowTemplate xbayaWorkflow) {
+        this.xbayaWorkflow = xbayaWorkflow;
+    }
+
+    @Override
+    public List<String> getSupportedActions() {
+        return Arrays.asList(DeleteAction.ID);
+    }
+
+    public boolean triggerAction(JTree tree, String action) throws Exception {
+        if (action.equals(DeleteAction.ID)) {
+            deleteHostDescription(tree);
+            return true;
+        } else if (action.equals(EditAction.ID)) {
+            JOptionPane.showMessageDialog(null, "TODO");
+            // TODO
+            return true;
+        }
+        return super.triggerAction(tree, action);
+    }
+
+    private void deleteHostDescription(JTree tree) throws PathNotFoundException, ServiceDescriptionRetrieveException {
+        if (askQuestion("XBaya Workflow", "Are you sure that you want to remove the workflow \""
+                + getXbayaWorkflow().getWorkflowName() + "\"?")) {
+            getRegistry().deleteWorkflow(new QName(getXbayaWorkflow().getWorkflowName()), getRegistry().getUsername());
+            ((AbstractAiravataTreeNode) getParent()).refresh();
+            reloadTreeNode(tree, getParent());
+        }
+    }
+
+    @Override
+    public String getActionCaption(AbstractBrowserActionItem action) {
+        if (action.getID().equals(DeleteAction.ID)) {
+            return "Remove";
+        } else if (action.getID().equals(EditAction.ID)) {
+            return "Edit";
+        }
+        return action.getDefaultCaption();
+    }
+
+    @Override
+    public Icon getActionIcon(AbstractBrowserActionItem action) {
+        return null;
+    }
+
+    @Override
+    public String getActionDescription(AbstractBrowserActionItem action) {
+        return null;
+    }
+}

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/XBayaWorkflowTemplatesNode.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/XBayaWorkflowTemplatesNode.java?rev=1188938&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/XBayaWorkflowTemplatesNode.java (added)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/registrybrowser/nodes/XBayaWorkflowTemplatesNode.java Tue Oct 25 21:52:47 2011
@@ -0,0 +1,79 @@
+package org.apache.airavata.xbaya.registrybrowser.nodes;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.swing.JOptionPane;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+
+import org.apache.airavata.common.utils.SwingUtil;
+import org.apache.airavata.xbaya.registrybrowser.menu.AbstractBrowserActionItem;
+import org.apache.airavata.xbaya.registrybrowser.menu.AddAction;
+import org.apache.airavata.xbaya.registrybrowser.menu.RefreshAction;
+import org.apache.airavata.xbaya.registrybrowser.model.XBayaWorkflowTemplates;
+
+public class XBayaWorkflowTemplatesNode extends AbstractAiravataTreeNode {
+    private XBayaWorkflowTemplates xbayaWorkflows;
+
+    public XBayaWorkflowTemplatesNode(XBayaWorkflowTemplates xbayaWorkflows, TreeNode parent) {
+        super(parent);
+        setXbayaWorkflows(xbayaWorkflows);
+    }
+
+    @Override
+    protected List<TreeNode> getChildren() {
+        return getTreeNodeList(getXbayaWorkflows().getWorkflows().toArray(), this);
+    }
+
+    @Override
+    public String getCaption(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+        return "Workflow templates";
+    }
+
+    @Override
+    public Icon getIcon(boolean selected, boolean expanded, boolean leaf, boolean hasFocus) {
+        return SwingUtil.createImageIcon("workflows.png");
+    }
+
+    public XBayaWorkflowTemplates getXbayaWorkflows() {
+        return xbayaWorkflows;
+    }
+
+    public void setXbayaWorkflows(XBayaWorkflowTemplates xbayaWorkflows) {
+        this.xbayaWorkflows = xbayaWorkflows;
+    }
+
+    @Override
+    public List<String> getSupportedActions() {
+        return Arrays.asList(AddAction.ID, RefreshAction.ID);
+    }
+
+    public boolean triggerAction(JTree tree, String action) throws Exception {
+        if (action.equals(AddAction.ID)) {
+            JOptionPane.showMessageDialog(null, "TODO");
+            // TODO
+            return true;
+        }
+        return super.triggerAction(tree, action);
+    }
+
+    @Override
+    public String getActionCaption(AbstractBrowserActionItem action) {
+        if (action.getID().equals(AddAction.ID)) {
+            return "New workflow...";
+        }
+        return action.getDefaultCaption();
+    }
+
+    @Override
+    public Icon getActionIcon(AbstractBrowserActionItem action) {
+        return null;
+    }
+
+    @Override
+    public String getActionDescription(AbstractBrowserActionItem action) {
+        return null;
+    }
+}

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/resources/images/input_para.png
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/resources/images/input_para.png?rev=1188938&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/airavata/trunk/modules/xbaya-gui/src/main/resources/images/input_para.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/resources/images/output_para.png
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/resources/images/output_para.png?rev=1188938&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/airavata/trunk/modules/xbaya-gui/src/main/resources/images/output_para.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/airavata/trunk/modules/xbaya-gui/src/main/resources/images/parameter.png
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/resources/images/parameter.png?rev=1188938&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/airavata/trunk/modules/xbaya-gui/src/main/resources/images/parameter.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Propchange: incubator/airavata/trunk/samples/simple-math-service/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Oct 25 21:52:47 2011
@@ -1 +1,4 @@
 target
+.classpath
+.project
+.settings