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 2012/01/18 20:30:38 UTC
svn commit: r1233012 - in
/incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api:
AiravataRegistry.java impl/AiravataJCRRegistry.java
Author: lahiru
Date: Wed Jan 18 19:30:37 2012
New Revision: 1233012
URL: http://svn.apache.org/viewvc?rev=1233012&view=rev
Log:
adding more methods to registry api to query using regexs rather giving exact names.
Modified:
incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry.java
incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/AiravataJCRRegistry.java
Modified: incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry.java?rev=1233012&r1=1233011&r2=1233012&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry.java (original)
+++ incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry.java Wed Jan 18 19:30:37 2012
@@ -224,9 +224,15 @@ public interface AiravataRegistry extend
public String getWorkflowStatus(String experimentId);
+ public Map<String,String> getWorkflowStatusWithRegex(String regex) throws RegistryException;
+
public boolean saveWorkflowOutputData(String experimentId,String outputNodeName,String output) throws RegistryException;
public String getWorkflowOutputData(String experimentId,String outputNodeName) throws RegistryException;
+ public Map<String,String> getWorkflowOutputDataWithRegix(String experimentIdRegex,String outputName)throws RegistryException;
+
public String[] getWorkflowOutputNames(String exeperimentId) throws RegistryException;
+
+ public Map<String,String[]> getWorkflowOutputNamesWithRegex(String experiementId) throws RegistryException;
}
Modified: incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/AiravataJCRRegistry.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/AiravataJCRRegistry.java?rev=1233012&r1=1233011&r2=1233012&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/AiravataJCRRegistry.java (original)
+++ incubator/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/AiravataJCRRegistry.java Wed Jan 18 19:30:37 2012
@@ -30,6 +30,8 @@ import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.TimeZone;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import javax.jcr.Node;
import javax.jcr.NodeIterator;
@@ -995,4 +997,74 @@ public class AiravataJCRRegistry extends
Node resultNode = getOrAddNode(workflowExperimentDataNode,RESULT);
return resultNode;
}
+ private List<String> getMatchingExperimentIds(String regex,Session session)throws RepositoryException{
+ Node orAddNode = getOrAddNode(session.getRootNode(), WORKFLOW_DATA);
+ List<String> matchList = new ArrayList<String>();
+ NodeIterator nodes = orAddNode.getNodes();
+ Pattern compile = Pattern.compile(regex);
+ while(nodes.hasNext()){
+ Node node = nodes.nextNode();
+ String name = node.getName();
+ if(compile.matcher(name).find()){
+ matchList.add(name);
+ }
+ }
+ return matchList;
+ }
+ public Map<String, String> getWorkflowStatusWithRegex(String regex) throws RegistryException {
+ Session session=null;
+ Map<String,String> workflowStatusMap = new HashMap<String, String>();
+ try {
+ session = getSession();
+ List<String> matchingExperimentIds = getMatchingExperimentIds(regex, session);
+ for(String experimentId:matchingExperimentIds){
+ String workflowStatus = getWorkflowStatus(experimentId);
+ workflowStatusMap.put(experimentId,workflowStatus);
+ }
+ } catch (RepositoryException e) {
+ e.printStackTrace();
+ throw new RegistryException(e);
+ }finally{
+ closeSession(session);
+ }
+ return workflowStatusMap;
+ }
+
+ public Map<String, String> getWorkflowOutputDataWithRegix(String regex, String outputName) throws RegistryException {
+ Session session=null;
+ Map<String,String> workflowStatusMap = new HashMap<String, String>();
+ try {
+ session = getSession();
+ List<String> matchingExperimentIds = getMatchingExperimentIds(regex, session);
+ for(String experimentId:matchingExperimentIds){
+ String workflowOutputData = getWorkflowOutputData(experimentId,outputName);
+ workflowStatusMap.put(experimentId,workflowOutputData);
+ }
+ } catch (RepositoryException e) {
+ e.printStackTrace();
+ throw new RegistryException(e);
+ }finally{
+ closeSession(session);
+ }
+ return workflowStatusMap;
+ }
+
+ public Map<String, String[]> getWorkflowOutputNamesWithRegex(String regex) throws RegistryException {
+ Session session = null;
+ Map<String,String[]> workflowStatusMap = new HashMap<String, String[]>();
+ try {
+ session = getSession();
+ List<String> matchingExperimentIds = getMatchingExperimentIds(regex, session);
+ for(String experimentId:matchingExperimentIds){
+ String[] workflowOutputData = getWorkflowOutputNames(experimentId);
+ workflowStatusMap.put(experimentId,workflowOutputData);
+ }
+ } catch (RepositoryException e) {
+ e.printStackTrace();
+ throw new RegistryException(e);
+ }finally{
+ closeSession(session);
+ }
+ return workflowStatusMap;
+ }
}