Author: samindaw
Date: Tue Aug 20 01:26:48 2013
New Revision: 1515683
URL: http://svn.apache.org/r1515683
Log:
updating delimiter use & data array creation using manual parsing
Modified:
airavata/trunk/modules/commons/gfac-schema/pom.xml
airavata/trunk/modules/commons/gfac-schema/src/main/java/org/apache/airavata/commons/gfac/type/MappingFactory.java
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/StringUtil.java
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/GridFTPInputHandler.java
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/GridFTPOutputHandler.java
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/SCPInputHandler.java
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GFacUtils.java
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/utils/OutputUtils.java
airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/NodeExecutionData.java
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/WorkflowInterpreter.java
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/WorkflowInputUtil.java
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/descriptors/HostDescriptionDialog.java
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/util/InterpreterUtil.java
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/util/XBayaUtil.java
Modified: airavata/trunk/modules/commons/gfac-schema/pom.xml
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/commons/gfac-schema/pom.xml?rev=1515683&r1=1515682&r2=1515683&view=diff
==============================================================================
--- airavata/trunk/modules/commons/gfac-schema/pom.xml (original)
+++ airavata/trunk/modules/commons/gfac-schema/pom.xml Tue Aug 20 01:26:48 2013
@@ -26,6 +26,11 @@
<dependencies>
<dependency>
+ <groupId>org.apache.airavata</groupId>
+ <artifactId>airavata-common-utils</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>${xmlbeans.version}</version>
Modified:
airavata/trunk/modules/commons/gfac-schema/src/main/java/org/apache/airavata/commons/gfac/type/MappingFactory.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/commons/gfac-schema/src/main/java/org/apache/airavata/commons/gfac/type/MappingFactory.java?rev=1515683&r1=1515682&r2=1515683&view=diff
==============================================================================
---
airavata/trunk/modules/commons/gfac-schema/src/main/java/org/apache/airavata/commons/gfac/type/MappingFactory.java
(original)
+++
airavata/trunk/modules/commons/gfac-schema/src/main/java/org/apache/airavata/commons/gfac/type/MappingFactory.java
Tue Aug 20 01:26:48 2013
@@ -21,12 +21,30 @@
package org.apache.airavata.commons.gfac.type;
-import org.apache.airavata.schemas.gfac.*;
-
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import org.apache.airavata.common.utils.StringUtil;
+import org.apache.airavata.schemas.gfac.BooleanArrayType;
+import org.apache.airavata.schemas.gfac.BooleanParameterType;
+import org.apache.airavata.schemas.gfac.DataType;
+import org.apache.airavata.schemas.gfac.DoubleArrayType;
+import org.apache.airavata.schemas.gfac.DoubleParameterType;
+import org.apache.airavata.schemas.gfac.FileArrayType;
+import org.apache.airavata.schemas.gfac.FileParameterType;
+import org.apache.airavata.schemas.gfac.FloatArrayType;
+import org.apache.airavata.schemas.gfac.FloatParameterType;
+import org.apache.airavata.schemas.gfac.IntegerArrayType;
+import org.apache.airavata.schemas.gfac.IntegerParameterType;
+import org.apache.airavata.schemas.gfac.StdErrParameterType;
+import org.apache.airavata.schemas.gfac.StdOutParameterType;
+import org.apache.airavata.schemas.gfac.StringArrayType;
+import org.apache.airavata.schemas.gfac.StringParameterType;
+import org.apache.airavata.schemas.gfac.URIArrayType;
+import org.apache.airavata.schemas.gfac.URIParameterType;
+
+import com.sun.org.apache.xpath.internal.operations.Quo;
+
/*
* TODO use XML meta data instead of static coding
*
@@ -101,7 +119,7 @@ public class MappingFactory {
} else if (param.hasType(DataType.URI)) {
return String.valueOf(((URIParameterType)
param.getType()).getValue());
} else if (param.hasType(DataType.STRING_ARRAY)) {
- return join(Arrays.asList(((StringArrayType)
param.getType()).getValueArray()), ",");
+ return join(Arrays.asList(((StringArrayType)
param.getType()).getValueArray()), StringUtil.DELIMETER);
} else if (param.hasType(DataType.STD_OUT)) {
return String.valueOf(((StdOutParameterType)
param.getType()).getValue());
} else if (param.hasType(DataType.STD_ERR)) {
@@ -114,11 +132,11 @@ public class MappingFactory {
} else if (param.hasType(DataType.BOOLEAN_ARRAY)) {
return String.valueOf(((BooleanArrayType)
param.getType()).getValueArray());
} else if (param.hasType(DataType.FILE_ARRAY)) {
- return join(Arrays.asList(((FileArrayType)
param.getType()).getValueArray()), ",");
+ return join(Arrays.asList(((FileArrayType)
param.getType()).getValueArray()), StringUtil.DELIMETER );
} else if (param.hasType(DataType.FLOAT_ARRAY)) {
return String.valueOf(((FloatArrayType)
param.getType()).getValueArray());
} else if (param.hasType(DataType.URI_ARRAY)) {
- return join(Arrays.asList(((URIArrayType)
param.getType()).getValueArray()), ",");
+ return join(Arrays.asList(((URIArrayType)
param.getType()).getValueArray()), StringUtil.DELIMETER );
}
return null;
}
@@ -156,7 +174,7 @@ public class MappingFactory {
for (String s : list) {
sb.append(loopDelim);
- sb.append(s);
+ sb.append(StringUtil.quoteString(s));
loopDelim = delim;
}
Modified:
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/StringUtil.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/StringUtil.java?rev=1515683&r1=1515682&r2=1515683&view=diff
==============================================================================
---
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/StringUtil.java
(original)
+++
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/StringUtil.java
Tue Aug 20 01:26:48 2013
@@ -27,33 +27,43 @@ import java.util.ArrayList;
import java.util.List;
public class StringUtil {
- private static final String DELIMETER=",";
- private static final String QUOTE="\"";
+ public static final String DELIMETER=",";
+ public static final String QUOTE="\"";
private static boolean isQuoted(String s){
- //chk if we need quotes
+ //Check if we need quotes
if (s.contains(DELIMETER)){
- //chk if its already quoted
+ //Check if its already quoted
s=s.replaceAll("\"\"", "");
return (s.substring(0,1).equals(QUOTE) &&
s.subSequence(s.length()-1, s.length()).equals(QUOTE));
}
- //no delimeters present, so already in proper form
+ //no delimiters present, so already in proper form
return true;
}
- public static String createDelimeteredString(String[] list){
+ /**
+ * Create a delimiter separated string out of a list
+ * @param list
+ * @return
+ */
+ public static String createDelimiteredString(String[] list){
String s=null;
for (String ss : list) {
ss=quoteString(ss);
if (s==null){
s=ss;
}else{
- s+=","+ss;
+ s+=DELIMETER +ss;
}
}
return s;
}
+ /**
+ * Return a proper quoted string if the string contains the delimiter
character
+ * @param s
+ * @return
+ */
public static String quoteString(String s){
if (isQuoted(s)){
return s;
@@ -62,6 +72,11 @@ public class StringUtil {
}
}
+ /**
+ * Parse the delimitered string and return elements as a string array
+ * @param s
+ * @return
+ */
public static String[] getElementsFromString(String s) {
List<String> list=new ArrayList<String>();
String currentItem="";
@@ -70,24 +85,30 @@ public class StringUtil {
for(int i=0;i<s.length();i++){
String c=s.substring(i,i+1);
if (c.equals(DELIMETER)){
- if (!insideQuote) {
+ //if not inside a quoted string ignore the
delimiter character
+ if (insideQuote) {
+ currentItem+=c;
+ }else{
list.add(currentItem);
currentItem = "";
- }else{
- currentItem+=c;
}
}else if (c.equals(QUOTE)){
if (QUOTE.equals(previousChar)){
+ //which means previousChar was an
escape character, not a quote for the string
+ currentItem+=QUOTE+QUOTE;
if (insideQuote){
+ //mistakenly thought previous
char was opening quote char, thus need to make this false
insideQuote=false;
}else{
- currentItem+=QUOTE+QUOTE;
+ //mistakenly thought previous
char was closing quote char, thus need to make this true
insideQuote=true;
}
} else{
if (insideQuote){
+ //quote ended
insideQuote=false;
}else{
+ //quote beginning
insideQuote=true;
}
}
Modified:
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/GridFTPInputHandler.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/GridFTPInputHandler.java?rev=1515683&r1=1515682&r2=1515683&view=diff
==============================================================================
---
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/GridFTPInputHandler.java
(original)
+++
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/GridFTPInputHandler.java
Tue Aug 20 01:26:48 2013
@@ -28,6 +28,7 @@ import java.net.URI;
import java.net.URISyntaxException;
import java.util.*;
+import org.apache.airavata.common.utils.StringUtil;
import org.apache.airavata.commons.gfac.type.ActualParameter;
import org.apache.airavata.commons.gfac.type.MappingFactory;
import org.apache.airavata.gfac.GFacException;
@@ -65,7 +66,7 @@ public class GridFTPInputHandler impleme
if
("URI".equals(actualParameter.getType().getType().toString())) {
((URIParameterType)
actualParameter.getType()).setValue(stageInputFiles(jobExecutionContext,
paramValue));
} else if
("URIArray".equals(actualParameter.getType().getType().toString())) {
- List<String> split = Arrays.asList(paramValue.split(","));
+ List<String> split =
Arrays.asList(StringUtil.getElementsFromString(paramValue));
List<String> newFiles = new ArrayList<String>();
for (String paramValueEach : split) {
newFiles.add(stageInputFiles(jobExecutionContext,
paramValueEach));
Modified:
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/GridFTPOutputHandler.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/GridFTPOutputHandler.java?rev=1515683&r1=1515682&r2=1515683&view=diff
==============================================================================
---
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/GridFTPOutputHandler.java
(original)
+++
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/GridFTPOutputHandler.java
Tue Aug 20 01:26:48 2013
@@ -35,6 +35,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.apache.airavata.common.utils.StringUtil;
import org.apache.airavata.commons.gfac.type.ActualParameter;
import org.apache.airavata.commons.gfac.type.ApplicationDescription;
import org.apache.airavata.commons.gfac.type.MappingFactory;
@@ -281,7 +282,7 @@ public class GridFTPOutputHandler implem
MappingFactory.toString(actualParameter), ftp,
gssCred, endpoint));
}
} else if
("URIArray".equals(actualParameter.getType().getType().toString())) {
- List<String> split =
Arrays.asList(MappingFactory.toString(actualParameter).split(","));
+ List<String> split =
Arrays.asList(StringUtil.getElementsFromString(MappingFactory.toString(actualParameter)));
List<String> newFiles = new ArrayList<String>();
for (String endpoint : gridFTPEndpointArray) {
for (String paramValueEach : split) {
Modified:
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/SCPInputHandler.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/SCPInputHandler.java?rev=1515683&r1=1515682&r2=1515683&view=diff
==============================================================================
---
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/SCPInputHandler.java
(original)
+++
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/SCPInputHandler.java
Tue Aug 20 01:26:48 2013
@@ -26,6 +26,7 @@ import java.util.*;
import net.schmizz.sshj.xfer.scp.SCPFileTransfer;
+import org.apache.airavata.common.utils.StringUtil;
import org.apache.airavata.commons.gfac.type.ActualParameter;
import org.apache.airavata.commons.gfac.type.MappingFactory;
import org.apache.airavata.gfac.GFacException;
@@ -59,7 +60,7 @@ public class SCPInputHandler implements
if
("URI".equals(actualParameter.getType().getType().toString())) {
((URIParameterType)
actualParameter.getType()).setValue(stageInputFiles(jobExecutionContext,
paramValue));
} else if
("URIArray".equals(actualParameter.getType().getType().toString())) {
- List<String> split =
Arrays.asList(paramValue.split(","));
+ List<String> split =
Arrays.asList(StringUtil.getElementsFromString(paramValue));
List<String> newFiles = new ArrayList<String>();
for (String paramValueEach : split) {
newFiles.add(stageInputFiles(jobExecutionContext, paramValueEach));
Modified:
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GFacUtils.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GFacUtils.java?rev=1515683&r1=1515682&r2=1515683&view=diff
==============================================================================
---
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GFacUtils.java
(original)
+++
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GFacUtils.java
Tue Aug 20 01:26:48 2013
@@ -23,6 +23,7 @@ package org.apache.airavata.gfac.utils;
import org.apache.airavata.client.api.AiravataAPI;
import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
import org.apache.airavata.common.utils.DBUtil;
+import org.apache.airavata.common.utils.StringUtil;
import org.apache.airavata.commons.gfac.type.ActualParameter;
import org.apache.airavata.credential.store.store.CredentialReader;
import org.apache.airavata.gfac.Constants;
@@ -217,7 +218,7 @@ public class GFacUtils {
Iterator value = element.getChildrenWithLocalName("value");
int i = 0;
if (!"".equals(element.getText())) {
- String[] list = element.getText().split(",");
+ String[] list =
StringUtil.getElementsFromString(element.getText());
for (String arrayValue : list) {
((StringArrayType)
actualParameter.getType()).insertValue(i++, arrayValue);
}
@@ -232,7 +233,7 @@ public class GFacUtils {
Iterator value = element.getChildrenWithLocalName("value");
int i = 0;
if (!"".equals(element.getText())) {
- String[] list = element.getText().split(",");
+ String[] list =
StringUtil.getElementsFromString(element.getText());
for (String arrayValue : list) {
((DoubleArrayType)
actualParameter.getType()).insertValue(i++, new Double(arrayValue));
}
@@ -248,7 +249,7 @@ public class GFacUtils {
Iterator value = element.getChildrenWithLocalName("value");
int i = 0;
if (!"".equals(element.getText())) {
- String[] list = element.getText().split(",");
+ String[] list =
StringUtil.getElementsFromString(element.getText());
for (String arrayValue : list) {
((IntegerArrayType)
actualParameter.getType()).insertValue(i++, new Integer(arrayValue));
}
@@ -263,7 +264,7 @@ public class GFacUtils {
Iterator value = element.getChildrenWithLocalName("value");
int i = 0;
if (!"".equals(element.getText())) {
- String[] list = element.getText().split(",");
+ String[] list =
StringUtil.getElementsFromString(element.getText());
for (String arrayValue : list) {
((FloatArrayType)
actualParameter.getType()).insertValue(i++, new Float(arrayValue));
}
@@ -279,7 +280,7 @@ public class GFacUtils {
Iterator value = element.getChildrenWithLocalName("value");
int i = 0;
if (!"".equals(element.getText())) {
- String[] list = element.getText().split(",");
+ String[] list =
StringUtil.getElementsFromString(element.getText());
for (String arrayValue : list) {
((BooleanArrayType)
actualParameter.getType()).insertValue(i++, new Boolean(arrayValue));
}
@@ -295,7 +296,7 @@ public class GFacUtils {
Iterator value = element.getChildrenWithLocalName("value");
int i = 0;
if (!"".equals(element.getText())) {
- String[] list = element.getText().split(",");
+ String[] list =
StringUtil.getElementsFromString(element.getText());
for (String arrayValue : list) {
((FileArrayType)
actualParameter.getType()).insertValue(i++, arrayValue);
}
@@ -311,7 +312,7 @@ public class GFacUtils {
Iterator value = element.getChildrenWithLocalName("value");
int i = 0;
if (!"".equals(element.getText())) {
- String[] list = element.getText().split(",");
+ String[] list =
StringUtil.getElementsFromString(element.getText());
for (String arrayValue : list) {
((URIArrayType)
actualParameter.getType()).insertValue(i++, arrayValue);
}
@@ -352,7 +353,7 @@ public class GFacUtils {
((URIParameterType) actualParameter.getType()).setValue(inputVal);
} else if
("StringArray".equals(parameter.getParameterType().getName())) {
actualParameter = new ActualParameter(StringArrayType.type);
- Iterator iterator = Arrays.asList(inputVal.split(",")).iterator();
+ Iterator iterator =
Arrays.asList(StringUtil.getElementsFromString(inputVal)).iterator();
int i = 0;
while (iterator.hasNext()) {
innerelement = (OMElement) iterator.next();
@@ -360,7 +361,7 @@ public class GFacUtils {
}
} else if
("DoubleArray".equals(parameter.getParameterType().getName())) {
actualParameter = new ActualParameter(DoubleArrayType.type);
- Iterator value = Arrays.asList(inputVal.split(",")).iterator();
+ Iterator value =
Arrays.asList(StringUtil.getElementsFromString(inputVal)).iterator();
int i = 0;
while (value.hasNext()) {
innerelement = (OMElement) value.next();
@@ -368,7 +369,7 @@ public class GFacUtils {
}
} else if
("IntegerArray".equals(parameter.getParameterType().getName())) {
actualParameter = new ActualParameter(IntegerArrayType.type);
- Iterator value = Arrays.asList(inputVal.split(",")).iterator();
+ Iterator value =
Arrays.asList(StringUtil.getElementsFromString(inputVal)).iterator();
int i = 0;
while (value.hasNext()) {
innerelement = (OMElement) value.next();
@@ -376,7 +377,7 @@ public class GFacUtils {
}
} else if
("FloatArray".equals(parameter.getParameterType().getName())) {
actualParameter = new ActualParameter(FloatArrayType.type);
- Iterator value = Arrays.asList(inputVal.split(",")).iterator();
+ Iterator value =
Arrays.asList(StringUtil.getElementsFromString(inputVal)).iterator();
int i = 0;
while (value.hasNext()) {
innerelement = (OMElement) value.next();
@@ -384,7 +385,7 @@ public class GFacUtils {
}
} else if
("BooleanArray".equals(parameter.getParameterType().getName())) {
actualParameter = new ActualParameter(BooleanArrayType.type);
- Iterator value = Arrays.asList(inputVal.split(",")).iterator();
+ Iterator value =
Arrays.asList(StringUtil.getElementsFromString(inputVal)).iterator();
int i = 0;
while (value.hasNext()) {
innerelement = (OMElement) value.next();
@@ -392,7 +393,7 @@ public class GFacUtils {
}
} else if ("FileArray".equals(parameter.getParameterType().getName()))
{
actualParameter = new ActualParameter(FileArrayType.type);
- Iterator value = Arrays.asList(inputVal.split(",")).iterator();
+ Iterator value =
Arrays.asList(StringUtil.getElementsFromString(inputVal)).iterator();
int i = 0;
while (value.hasNext()) {
innerelement = (OMElement) value.next();
@@ -400,7 +401,7 @@ public class GFacUtils {
}
} else if ("URIArray".equals(parameter.getParameterType().getName())) {
actualParameter = new ActualParameter(URIArrayType.type);
- Iterator value = Arrays.asList(inputVal.split(",")).iterator();
+ Iterator value =
Arrays.asList(StringUtil.getElementsFromString(inputVal)).iterator();
int i = 0;
while (value.hasNext()) {
innerelement = (OMElement) value.next();
Modified:
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/utils/OutputUtils.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/utils/OutputUtils.java?rev=1515683&r1=1515682&r2=1515683&view=diff
==============================================================================
---
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/utils/OutputUtils.java
(original)
+++
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/utils/OutputUtils.java
Tue Aug 20 01:26:48 2013
@@ -26,6 +26,7 @@ import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.apache.airavata.common.utils.StringUtil;
import org.apache.airavata.commons.gfac.type.ActualParameter;
import org.apache.airavata.commons.gfac.type.MappingFactory;
import org.apache.airavata.gfac.handler.GFacHandlerException;
@@ -94,10 +95,10 @@ public class OutputUtils {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(stdout);
while (matcher.find()) {
- match.append(matcher.group(1) + ",");
+ match.append(matcher.group(1) + StringUtil.DELIMETER);
}
if (match != null) {
- return match.toString().split(",");
+ return StringUtil.getElementsFromString(match.toString());
} else {
throw new Exception("Data for the output parameter '" + outParam +
"' was not found");
}
Modified:
airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/NodeExecutionData.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/NodeExecutionData.java?rev=1515683&r1=1515682&r2=1515683&view=diff
==============================================================================
---
airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/NodeExecutionData.java
(original)
+++
airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/NodeExecutionData.java
Tue Aug 20 01:26:48 2013
@@ -25,6 +25,7 @@ import javax.xml.bind.annotation.XmlAcce
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
+import org.apache.airavata.common.utils.StringUtil;
import org.apache.airavata.registry.api.workflow.WorkflowExecutionStatus.State;
import java.util.ArrayList;
@@ -213,7 +214,7 @@ public class NodeExecutionData {
private static List<NameValue> getIOParameterData(String data){
List<NameValue> parameters=new ArrayList<NameValue>();
if (data!=null) {
- String[] pairs = data.split(",");
+ String[] pairs = StringUtil.getElementsFromString(data);
for (String paras : pairs) {
String name=paras.trim();
String value="";
@@ -222,9 +223,9 @@ public class NodeExecutionData {
if (i!=-1){
value=name.substring(i+1);
name=name.substring(0,i);
- parameters.add(new
NameValue(name,value));
+ parameters.add(new
NameValue(name,StringUtil.quoteString(value)));
}else{
-
parameters.get(parameters.size()-1).value=parameters.get(parameters.size()-1).value+","+name;
+
parameters.get(parameters.size()-1).value=parameters.get(parameters.size()-1).value+","+StringUtil.quoteString(name);
}
}
Modified:
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/WorkflowInterpreter.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/WorkflowInterpreter.java?rev=1515683&r1=1515682&r2=1515683&view=diff
==============================================================================
---
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/WorkflowInterpreter.java
(original)
+++
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/WorkflowInterpreter.java
Tue Aug 20 01:26:48 2013
@@ -42,6 +42,7 @@ import javax.xml.xpath.XPathFactory;
import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
import org.apache.airavata.common.utils.Pair;
+import org.apache.airavata.common.utils.StringUtil;
import org.apache.airavata.common.utils.WSDLUtil;
import org.apache.airavata.common.utils.XMLUtil;
import
org.apache.airavata.common.workflow.execution.context.WorkflowContextHeaderBuilder;
@@ -1217,7 +1218,7 @@ public class WorkflowInterpreter {
if (inputNumber.length == 1) {
inputArray = listOfValues.toArray(new
String[listOfValues.size()]);
} else {
- inputArray = input.split(",");
+ inputArray = StringUtil.getElementsFromString(input);
}
int index = 0;
for (DataPort port : inputPorts) {
@@ -1265,7 +1266,7 @@ public class WorkflowInterpreter {
if (this.config.isRunWithCrossProduct()) {
for (int i = 0; i < inputNumbers[0]; i++) {
for (int j = 0; j < inputNumbers[1];
j++) {
-
inputValues.add(listOfValues.get(i) + "," + listOfValues.get(inputNumbers[0] +
j));
+
inputValues.add(listOfValues.get(i) + StringUtil.DELIMETER +
listOfValues.get(inputNumbers[0] + j));
}
}
@@ -1300,9 +1301,9 @@ public class WorkflowInterpreter {
for (int i = 0; i < inputSize; i++) {
String inputValue = "";
for (String[] array : finalInputList) {
- inputValue = inputValue + "," +
array[i];
+ inputValue = inputValue +
StringUtil.DELIMETER + StringUtil.quoteString(array[i]);
}
- inputValue =
inputValue.replaceFirst(",", "");
+ inputValue =
inputValue.replaceFirst(StringUtil.DELIMETER , "");
inputValues.add(inputValue);
}
Modified:
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/WorkflowInputUtil.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/WorkflowInputUtil.java?rev=1515683&r1=1515682&r2=1515683&view=diff
==============================================================================
---
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/WorkflowInputUtil.java
(original)
+++
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/WorkflowInputUtil.java
Tue Aug 20 01:26:48 2013
@@ -20,6 +20,7 @@
*/
package org.apache.airavata.xbaya.invoker;
+import org.apache.airavata.common.utils.StringUtil;
import org.apache.airavata.common.utils.XMLUtil;
import org.apache.airavata.workflow.model.component.ws.WSComponentPort;
import org.apache.airavata.workflow.model.exceptions.WorkflowRuntimeException;
@@ -41,7 +42,7 @@ public class WorkflowInputUtil {
append(getValueElement(input)).append("</").append(port.getName()).append(">");
}else if(paramType.endsWith("ArrayType")){
inputString.append(port.getName()).append(">");
- String[] valueList = input.split(",");
+ String[] valueList = StringUtil.getElementsFromString(input);
for(String inputValue:valueList){
inputString.append(getValueElement(inputValue));
}
Modified:
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/descriptors/HostDescriptionDialog.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/descriptors/HostDescriptionDialog.java?rev=1515683&r1=1515682&r2=1515683&view=diff
==============================================================================
---
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/descriptors/HostDescriptionDialog.java
(original)
+++
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/descriptors/HostDescriptionDialog.java
Tue Aug 20 01:26:48 2013
@@ -41,6 +41,7 @@ import javax.swing.SwingConstants;
import org.apache.airavata.client.api.AiravataAPI;
import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
import
org.apache.airavata.client.api.exception.DescriptorAlreadyExistsException;
+import org.apache.airavata.common.utils.StringUtil;
import org.apache.airavata.common.utils.SwingUtil;
import org.apache.airavata.commons.gfac.type.HostDescription;
import org.apache.airavata.schemas.gfac.Ec2HostType;
@@ -310,31 +311,20 @@ public class HostDescriptionDialog exten
SwingUtil.layoutToGrid(globusPanel.getSwingComponent(), 2, 2,
SwingUtil.WEIGHT_NONE, 1);
return globusPanel;
}
- private String arrayToString(String[] list) {
- String result="";
- for (String s : list) {
- if (result.equals("")){
- result=s;
- }else{
- result+=","+s;
- }
- }
- return result;
- }
private void loadData() {
HostDescriptionType t = getOriginalHostDescription().getType();
hostIdTextField.setText(t.getHostName());
hostAddressTextField.setText(t.getHostAddress());
if (t instanceof GlobusHostType){
cmbResourceProtocol.setSelectedItem(REMOTE_PROTOCOL_STR_GLOBUS);
-
gateKeeperTextField.setText(arrayToString(((GlobusHostType)
t).getGlobusGateKeeperEndPointArray()));
-
gridFTPTextField.setText(arrayToString(((GlobusHostType)
t).getGridFTPEndPointArray()));
+
gateKeeperTextField.setText(StringUtil.createDelimiteredString(((GlobusHostType)
t).getGlobusGateKeeperEndPointArray()));
+
gridFTPTextField.setText(StringUtil.createDelimiteredString(((GlobusHostType)
t).getGridFTPEndPointArray()));
}else if (t instanceof SSHHostType){
cmbResourceProtocol.setSelectedItem(REMOTE_PROTOCOL_STR_SSH);
}else if (t instanceof UnicoreHostType){
cmbResourceProtocol.setSelectedItem(REMOTE_PROTOCOL_STR_UNICORE);
-
gateKeeperTextField.setText(arrayToString(((UnicoreHostType)
t).getUnicoreBESEndPointArray()));
-
gridFTPTextField.setText(arrayToString(((UnicoreHostType)
t).getGridFTPEndPointArray()));
+
gateKeeperTextField.setText(StringUtil.createDelimiteredString(((UnicoreHostType)
t).getUnicoreBESEndPointArray()));
+
gridFTPTextField.setText(StringUtil.createDelimiteredString(((UnicoreHostType)
t).getGridFTPEndPointArray()));
}else if (t instanceof Ec2HostType){
cmbResourceProtocol.setSelectedItem(REMOTE_PROTOCOL_STR_AMAZON_EC2);
}
Modified:
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/util/InterpreterUtil.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/util/InterpreterUtil.java?rev=1515683&r1=1515682&r2=1515683&view=diff
==============================================================================
---
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/util/InterpreterUtil.java
(original)
+++
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/util/InterpreterUtil.java
Tue Aug 20 01:26:48 2013
@@ -189,7 +189,7 @@ public class InterpreterUtil {
if (object2 instanceof XmlElement) {
if (((XmlElement)
object2).children().iterator().hasNext()) {
- outputVal = outputVal + "," + ((XmlElement)
object2).children().iterator().next().toString();
+ outputVal = outputVal + StringUtil.DELIMETER +
StringUtil.quoteString(((XmlElement)
object2).children().iterator().next().toString());
}
}
}
Modified:
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/util/XBayaUtil.java
URL:
http://svn.apache.org/viewvc/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/util/XBayaUtil.java?rev=1515683&r1=1515682&r2=1515683&view=diff
==============================================================================
---
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/util/XBayaUtil.java
(original)
+++
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/util/XBayaUtil.java
Tue Aug 20 01:26:48 2013
@@ -38,6 +38,7 @@ import java.util.Map;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.airavata.client.stub.interpretor.NameValue;
+import org.apache.airavata.common.utils.StringUtil;
import org.apache.airavata.workflow.model.exceptions.WorkflowException;
import org.apache.airavata.workflow.model.exceptions.WorkflowRuntimeException;
import org.apache.airavata.workflow.model.graph.DataPort;
@@ -174,7 +175,7 @@ public class XBayaUtil {
"Unable to find input
for the node:"
+
forEachNode.getID());
}
- String[] vals =
returnValForProvenance.toString().split(",");
+ String[] vals =
StringUtil.getElementsFromString(returnValForProvenance.toString());
listOfValues.addAll(Arrays.asList(vals));
}
} else {
@@ -275,9 +276,9 @@ public class XBayaUtil {
Object object2 = valItr.next();
if (object2 instanceof XmlElement) {
outputVal = outputVal
- + ","
- + ((XmlElement)
object2).children().iterator()
-
.next().toString();
+ + StringUtil.DELIMETER
+ +
StringUtil.quoteString(((XmlElement) object2).children().iterator()
+
.next().toString());
}
}
outputVal = ((String) outputVal).substring(1,