code: protected void processClass (File source)
      {
          // load up the file and determine it's package and classname
          String name = null;
          try {
              name = GenUtil.readClassName(source);
          } catch (Exception e) {
              System.err.println("Failed to parse " + source + ": " + e.getMessage());
              return;
          }
  
          System.err.println("Considering " + name + "...");
  
          try {
              // in order for annotations to work, this task and all the classes it uses must be
              // loaded from the same class loader as the classes on which we are going to
              // introspect; this is non-ideal but unavoidable
              processClass(source, getClass().getClassLoader().loadClass(name));
          } catch (ClassNotFoundException cnfe) {
              System.err.println("Failed to load " + name + ".\nMissing class: " + cnfe.getMessage());
              System.err.println("Be sure to set the 'classpathref' attribute to a classpath\n" +
                                 "that contains your projects invocation service classes.");
          } catch (Exception e) {
              e.printStackTrace(System.err);
          }
      }
docs: Processes a {@link Streamable} source file.