code: public File selectBundle(String baseLocation, final String symbolicName, final VersionRange versionRange) {
          readCache();
          return selectResource(baseLocation, symbolicName, versionRange);
      }
docs: This method selects bundles based on the input criteria. The first parameter is the baseLocation. This
  can be null, the empty string, a directory, a comma separated list of directories, or a file path relative
  to the install. If it is a file path then that exact bundle is returned irrespective of other selection
  parameters. If it is null or the empty string it is assumed to be a bundle in lib dir. If it is a directory,
  or a comma separated directory then the subsequent matching rules will be used to choose a matching bundle
  in the specified directories.
  
  <p>Assuming a baseLocation of "dev/,lib/" a symbolic name of "a.b" and a version range of "[1,1.0.100)" then all
  bundles in dev and lib will be searched looking for the highest versioned bundle with a symbolic name of a.b. Note
  highest versioned excludes iFixes where the iFix base version is not located. So given identified bundles:
  <ol>
  <li>a.b/1.0.0</li>
  <li>a.b/1.0.1.v1</li>
  <li>a.b/1.0.2.v2</li>
  </ol>
  The middle bundle will be chosen.
  </p>
  
  @param baseLocation The base location.
  @param symbolicName The desired symbolic name.
  @param versionRange The range of versions that can be selected.
  @return The file representing the chosen bundle.