private InstrumentationClassFinder buildClasspathClassLoader() {
    final StringBuilder classPathBuffer = new StringBuilder();
    final Project project = getProject();
    final Path cp = new Path(project);
    appendPath(cp, getBootclasspath());
    cp.setLocation(getDestdir().getAbsoluteFile());
    appendPath(cp, getClasspath());
    appendPath(cp, getSourcepath());
    appendPath(cp, getSrcdir());
    if (getIncludeantruntime()) {
      cp.addExisting(cp.concatSystemClasspath("last"));
    }
    boolean shouldIncludeJavaRuntime = getIncludejavaruntime();
    if (!shouldIncludeJavaRuntime) {
      if (project != null) {
        final String propValue = project.getProperty(PROPERTY_INSTRUMENTATION_INCLUDE_JAVA_RUNTIME);
        shouldIncludeJavaRuntime = !("false".equalsIgnoreCase(propValue) || "no".equalsIgnoreCase(propValue));
      }
      else {
        shouldIncludeJavaRuntime = true;
      }
    }
    if (shouldIncludeJavaRuntime) {
      cp.addJavaRuntime();
    }

    cp.addExtdirs(getExtdirs());

    final String[] pathElements = cp.list();
    for (final String pathElement : pathElements) {
      classPathBuffer.append(File.pathSeparator);
      classPathBuffer.append(pathElement);
    }

    final String classPath = classPathBuffer.toString();
    log("classpath=" + classPath, Project.MSG_VERBOSE);

    try {
      return createInstrumentationClassFinder(classPath, shouldIncludeJavaRuntime);
    }
    catch (MalformedURLException e) {
      fireError(e.getMessage());
      return null;
    }
  }
private InstrumentationClassFinder buildClasspathClassLoader()