diff --git a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/FlattenerUtils.java b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/FlattenerUtils.java index d45014f..0f7e6ed 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/FlattenerUtils.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/FlattenerUtils.java @@ -9,7 +9,10 @@ public static String filter(String string, String regexpFilter) { return string.replaceAll(regexpFilter, ""); } - public static String noWhitespace(String mixedString) { - return mixedString.replaceAll("\\s", "_"); + public static String toVariableName(String mixedString) { + if (mixedString == null) { + return null; + } + return mixedString.replaceAll("\\s", "_").replaceAll("-", "_"); } } diff --git a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/JsonFlattener.java b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/JsonFlattener.java index a51f6ba..b672971 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/JsonFlattener.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/JsonFlattener.java @@ -2,7 +2,7 @@ import static com.google.common.collect.Maps.newHashMap; import static org.jenkinsci.plugins.gwt.resolvers.FlattenerUtils.filter; -import static org.jenkinsci.plugins.gwt.resolvers.FlattenerUtils.noWhitespace; +import static org.jenkinsci.plugins.gwt.resolvers.FlattenerUtils.toVariableName; import java.util.List; import java.util.Map; @@ -26,7 +26,7 @@ public Map flatternJson(String key, String regexFilter, Object r flatternJson(key + "_" + entry.getKey(), regexFilter, entry.getValue())); } } else if (resolved != null) { - String noWhitespaces = noWhitespace(key); + String noWhitespaces = toVariableName(key); resolvedVariables.put(noWhitespaces, filter(resolved.toString(), regexFilter)); } return resolvedVariables; diff --git a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/RequestHeaderResolver.java b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/RequestHeaderResolver.java index 59f5850..d0a36e8 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/RequestHeaderResolver.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/RequestHeaderResolver.java @@ -3,13 +3,13 @@ import static com.google.common.base.Optional.absent; import static com.google.common.base.Optional.of; import static org.jenkinsci.plugins.gwt.resolvers.FlattenerUtils.filter; +import static org.jenkinsci.plugins.gwt.resolvers.FlattenerUtils.toVariableName; import java.util.Enumeration; import java.util.HashMap; import java.util.List; import java.util.Map; -import org.apache.commons.lang.StringUtils; import org.jenkinsci.plugins.gwt.GenericHeaderVariable; import com.google.common.base.Optional; @@ -33,11 +33,11 @@ public Map getRequestHeaders( String headerValue = headerEnumeration.nextElement(); String regexpFilter = configuredVariable.get().getRegexpFilter(); String filteredValue = filter(headerValue, regexpFilter); - found.put(StringUtils.replace(headerName, "-", "_") + "_" + i, filteredValue); + found.put(toVariableName(headerName) + "_" + i, filteredValue); boolean firstAndOnlyValue = i == 0 && !headerEnumeration.hasMoreElements(); if (firstAndOnlyValue) { //Users will probably expect this variable for parameters that are never a list - found.put(StringUtils.replace(headerName, "-", "_"), filteredValue); + found.put(toVariableName(headerName), filteredValue); } i++; } diff --git a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/RequestParameterResolver.java b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/RequestParameterResolver.java index 22e88b0..6e30796 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/RequestParameterResolver.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/RequestParameterResolver.java @@ -3,6 +3,7 @@ import static com.google.common.base.Optional.absent; import static com.google.common.collect.Maps.newHashMap; import static org.jenkinsci.plugins.gwt.resolvers.FlattenerUtils.filter; +import static org.jenkinsci.plugins.gwt.resolvers.FlattenerUtils.toVariableName; import java.util.List; import java.util.Map; @@ -28,11 +29,11 @@ public Map getRequestParameters( String[] values = incomingParameterMap.get(requestParamName); for (int i = 0; i < values.length; i++) { String filteredValue = filter(values[i], configuredVariable.get().getRegexpFilter()); - resolvedVariables.put(requestParamName + "_" + i, filteredValue); + resolvedVariables.put(toVariableName(requestParamName) + "_" + i, filteredValue); boolean firstAndOnlyValue = i == 0 && values.length == 1; if (firstAndOnlyValue) { //Users will probably expect this variable for parameters that are never a list - resolvedVariables.put(requestParamName, filteredValue); + resolvedVariables.put(toVariableName(requestParamName), filteredValue); } } } diff --git a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/XmlFlattener.java b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/XmlFlattener.java index bedde91..9874354 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/resolvers/XmlFlattener.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/resolvers/XmlFlattener.java @@ -2,7 +2,7 @@ import static com.google.common.collect.Maps.newHashMap; import static org.jenkinsci.plugins.gwt.resolvers.FlattenerUtils.filter; -import static org.jenkinsci.plugins.gwt.resolvers.FlattenerUtils.noWhitespace; +import static org.jenkinsci.plugins.gwt.resolvers.FlattenerUtils.toVariableName; import java.util.Map; @@ -31,7 +31,7 @@ private Map flattenXmlNode( String parentKey, String regexFilter, Node node, int level, boolean fromRootLevel) { Map resolvedVariables = newHashMap(); if (isXmlLeafNode(node)) { - String noWhitespaces = noWhitespace(parentKey); + String noWhitespaces = toVariableName(parentKey); resolvedVariables.put(noWhitespaces, filter(node.getTextContent(), regexFilter)); } else { for (int i = 0; i < node.getChildNodes().getLength(); i++) { @@ -39,7 +39,7 @@ private Map flattenXmlNode( String childKey = expandKey(parentKey, level, fromRootLevel) + "_" + childNode.getNodeName(); if (isXmlLeafNode(childNode)) { - String noWhitespace = noWhitespace(childKey); + String noWhitespace = toVariableName(childKey); resolvedVariables.put(noWhitespace, filter(childNode.getTextContent(), regexFilter)); } else { //leafnode and text inside leafnode are 2 nodes, so /2 to keep counter in line