code: List<String> loadImplementationsInDirectory(Test test, String parent, File location) {
          log.debug("Scanning directory " + location.getAbsolutePath() + " parent: '" + parent + "'.");
          File[] files = location.listFiles();
          List<String> localClsssOrPkgs = new ArrayList<String>();
  
          for (File file : files) {
              final String packageOrClass;
              if (parent == null || parent.length() == 0)
              {
                  packageOrClass = file.getName();
              }
              else
              {
                  packageOrClass = parent + "/" + file.getName();
              }
  
              if (file.isDirectory()) {
              	localClsssOrPkgs.addAll(loadImplementationsInDirectory(test, packageOrClass, file));
  
              // If the parent is empty, then assume the directory's jars should be searched
              } else if ("".equals(parent) && file.getName().endsWith(".jar") && test.matchesJar(file.getName())) {
              	localClsssOrPkgs.addAll(loadImplementationsInJar(test, file));
              } else {
                  String pkg = packageOrClass;
                  if(pkg.endsWith(SUFFIX_CLASS))localClsssOrPkgs.add(pkg);
              }
          }
          return localClsssOrPkgs;
      }
docs: Finds matches in a physical directory on a filesystem.  Examines all
  files within a directory - if the File object is not a directory, and ends with <i>.class</i>
  the file is loaded and tested to see if it is acceptable according to the Test.  Operates
  recursively to find classes within a folder structure matching the package structure.
  
  @param test     a Test used to filter the classes that are discovered
  @param parent   the package name up to this directory in the package hierarchy.  E.g. if
  /classes is in the classpath and we wish to examine files in /classes/org/apache then
  the values of <i>parent</i> would be <i>org/apache</i>
  @param location a File object representing a directory
  @return List of packages to export.