code: static String[] getClasspathFileNames() throws IOException {
          //for performance we most likely only want to do this once for each interpreter session,
          //classpath should not change dynamically
          ChorusLog log = ChorusLogFactory.getLog(ClasspathScanner.class);
          log.debug("Getting file names " + Thread.currentThread().getName());
          long start = System.currentTimeMillis();
          if (classpathNames == null) {
              classpathNames = findClassNames();
              log.debug("Getting file names took " + (System.currentTimeMillis() - start) + " millis");
          }
          return classpathNames;
      }
docs: Returns the fully qualified class names of
  all the classes in the classpath. Checks
  directories and zip files. The FilenameFilter
  will be applied only to files that are in the
  zip files and the directories. In other words,
  the filter will not be used to sort directories.