Example #1
0
  private void addSourcePath(Resource resource, Javadoc javadoc, Path source) {
    //
    // handle the target resource
    //

    if (null != resource.getBaseDir()) {
      File src = new File(resource.getBaseDir(), "target/build/main");
      if (src.exists()) {
        log("Adding src path: " + src);
        source.createPathElement().setLocation(src);
        final DirSet packages = new DirSet();
        packages.setDir(src);
        packages.setIncludes("**/*");
        String excludes = getPackageExcludes(resource);
        if (null != excludes) {
          packages.setExcludes(excludes);
        }
        javadoc.addPackageset(packages);
      }
    }

    // add providers

    String path = resource.getResourcePath();
    Resource[] providers = resource.getAggregatedProviders(Scope.RUNTIME, true, false);
    for (int i = 0; i < providers.length; i++) {
      Resource provider = providers[i];
      if (provider.getResourcePath().startsWith(path)) {
        String flag = provider.getProperty("project.javadoc.exclude", "false");
        if ("false".equals(flag)) {
          File basedir = provider.getBaseDir();
          if (null != basedir) {
            File src = new File(basedir, "target/build/main");
            if (src.exists()) {
              log("Adding src path: " + src);
              source.createPathElement().setLocation(src);
              final DirSet packages = new DirSet();
              packages.setDir(src);
              packages.setIncludes("**/**");
              String excludes = getPackageExcludes(provider);
              if (null != excludes) {
                packages.setExcludes(excludes);
              }
              javadoc.addPackageset(packages);
            }
          }
        }
      }
    }
  }
Example #2
0
 private void aggregateLinks(Javadoc task, Resource resource) {
   String path = resource.getResourcePath();
   ArrayList list = new ArrayList();
   Resource[] providers = resource.getAggregatedProviders(Scope.RUNTIME, true, false);
   for (int i = 0; i < providers.length; i++) {
     Resource provider = providers[i];
     if (!provider.getResourcePath().startsWith(path)) {
       String source = provider.getProperty("project.api.root");
       if (null != source) {
         log("Adding provider link: " + source + " from " + provider);
         Javadoc.LinkArgument arg = task.createLink();
         arg.setHref(source);
       }
     }
   }
 }
Example #3
0
  private void process(final Resource resource, final Path classpath, final File root) {
    log("Preparing javadoc for output to: " + root);

    final Javadoc javadoc = (Javadoc) getProject().createTask(JAVADOC_TASK_NAME);
    javadoc.setTaskName(getTaskName());
    javadoc.init();
    javadoc.setDestdir(root);
    javadoc.setUse(true);
    javadoc.createClasspath().add(classpath);

    String excludes = getPackageExcludes();
    if (null != excludes) {
      javadoc.setExcludePackageNames(excludes);
    }

    Javadoc.PackageName[] excludesList = m_excludes.toArray(new Javadoc.PackageName[0]);
    for (Javadoc.PackageName exclude : excludesList) {
      javadoc.addExcludePackage(exclude);
    }

    final Path source = javadoc.createSourcepath();
    addSourcePath(resource, javadoc, source);

    if (null == m_access) {
      String access = getContext().getProperty(JAVADOC_ACCESS_KEY, "protected");
      AccessType type = new AccessType();
      type.setValue(access);
      javadoc.setAccess(type);
    } else {
      javadoc.setAccess(m_access);
    }

    if ("true".equals(getContext().getProperty(JAVADOC_LINK_SOURCE_KEY, "false"))) {
      javadoc.setLinksource(true);
    }

    aggregateLinks(javadoc, resource);
    Link[] links = m_links.toArray(new Link[0]);
    for (int i = 0; i < links.length; i++) {
      Link link = links[i];
      Javadoc.LinkArgument arg = javadoc.createLink();
      String href = link.getHref();
      log("Adding link: " + href);
      arg.setHref(href);
    }

    final String title = resource.getName() + " API";
    if (null != m_windowTitle) {
      javadoc.setWindowtitle(m_windowTitle);
    } else {
      javadoc.setWindowtitle(title);
    }

    if (null == m_title) {
      javadoc.setDoctitle(title);
    } else {
      javadoc.setDoctitle(m_title);
    }

    if (null != m_overview) {
      javadoc.setOverview(m_overview);
    }

    Group[] groups = getGroups();
    for (int i = 0; i < groups.length; i++) {
      Group group = groups[i];
      Javadoc.GroupArgument jgroup = javadoc.createGroup();
      jgroup.setTitle(group.getTitle());
      Group.Package[] packages = group.getPackages();
      for (int j = 0; j < packages.length; j++) {
        Javadoc.PackageName name = new Javadoc.PackageName();
        name.setName(packages[j].getName());
        jgroup.addPackage(name);
      }
    }

    log("Generating: " + resource.getName() + " API");
    javadoc.execute();
  }