code: public CollectionMatch performUrlMatch(String resourceName) {
          CollectionMatch match = null;
          String longestUrlPattern = null;
          for (String urlPattern : urlPatterns) {
              if (URLMatchingUtils.isExactMatch(resourceName, urlPattern)) {
                  return new CollectionMatch(resourceName, MatchType.EXACT_MATCH);
              } else if (URLMatchingUtils.isPathNameMatch(resourceName, urlPattern)) {
                  longestUrlPattern = URLMatchingUtils.getLongestUrlPattern(longestUrlPattern, urlPattern);
              } else if (URLMatchingUtils.isExtensionMatch(resourceName, urlPattern)) {
                  match = new CollectionMatch(urlPattern, MatchType.EXTENSION_MATCH);
              }
          }
          if (longestUrlPattern != null) {
              match = new CollectionMatch(longestUrlPattern, MatchType.PATH_MATCH);
          }
          return match;
      }
docs: Gets the match for the resource name.
  <pre>
  To perform a URL match,
  1. For each URL pattern determine if the resource matches it
  2. Construct the match object
  
  Exact match has first priority. The longest path match has second priority. The extension match has last priority.
  </pre>
  
  @param uriName
  @return