private Map<String, Object> parseQueryString(String queryString) throws URISyntaxException {
    if (queryString == null || queryString.isEmpty()) {
      return null;
    }
    List<Map<String, String>> excludeList = new LinkedList<Map<String, String>>();
    Map<String, Object> queryMap = new HashMap<String, Object>();
    String[] mapTokens = queryString.split("&");
    for (String tokens : mapTokens) {
      String[] mapPair = tokens.split("=");
      if (mapPair.length != 2) {
        throw new RuntimeException("Invalid query string: " + queryString);
      }
      if (mapPair[0].equals("exclude")) {
        excludeList.addAll(computeExcludeList(mapPair[1]));
      } else if (mapPair[0].equals("transitive")) {
        if (mapPair[1].toLowerCase().equals("true")) {
          queryMap.put(mapPair[0], true);
        } else {
          queryMap.put(mapPair[0], false);
        }
      } else {
        queryMap.put(mapPair[0], mapPair[1]);
      }
    }
    if (!excludeList.isEmpty()) {
      queryMap.put("exclude", excludeList);
    }
    return queryMap;
  }
@param queryString
@return queryMap Map which contains grape parameters such as transitive, exclude, ext and classifier.
Example: Input:  ext=jar&exclude=org.mortbay.jetty:jetty&transitive=true
         Output:  {[ext]:[jar], [exclude]:{[group]:[org.mortbay.jetty], [module]:[jetty]}, [transitive]:[true]}
@throws URISyntaxException
ql/src/java/org/apache/hadoop/hive/ql/util/DependencyResolver.java