in tools/docgen/src/main/java/com/google/cloud/verticals/foundations/dataharmonization/DocgenPlugin.java [59:113]
private static Action<? super Javadoc> task(
DocgenPluginExtension docgenSettings, boolean verify, Project project) {
return (javadoc) -> {
JavaPluginExtension javaExtension =
project.getExtensions().getByType(JavaPluginExtension.class);
SourceSet sourceSet = javaExtension.getSourceSets().getByName(SourceSet.MAIN_SOURCE_SET_NAME);
javadoc.setDescription("Generates Whistle Plugin Function documentation code.");
javadoc.setGroup(JavaBasePlugin.DOCUMENTATION_GROUP);
javadoc.setClasspath(sourceSet.getOutput().plus(sourceSet.getCompileClasspath()));
javadoc.setSource(sourceSet.getAllJava());
javadoc
.getOptions()
.setDestinationDirectory(
docgenSettings
.getDestinationDirectory()
.orElse(javaExtension.getDocsDir().dir("whistle"))
.get()
.getAsFile());
if (verify) {
javadoc.getOptions().windowTitle(null).addBooleanOption(VerifyOption.NAME, true);
}
javadoc
.getOptions()
.windowTitle(null)
.addStringOption(GradleProjectPathOption.NAME, project.getProjectDir().getAbsolutePath());
javadoc
.getModularity()
.getInferModulePath()
.convention(javaExtension.getModularity().getInferModulePath());
// We need runtime access to two sets of classes:
// 1) The project's classes, so we can load the plugin and determine packages
// 2) This plugin's classes (i.e. the doclet and supporting code)
// The order matters here because we don't want this plugin's deps
// overriding the project's deps (e.x. gradle transitively imports an old version of guava).
List<File> classes =
ImmutableList.<File>builder()
.addAll(sourceSet.getRuntimeClasspath().getFiles())
.addAll(sourceSet.getCompileClasspath().getFiles())
.addAll(currentClasspath())
.build();
javadoc.getOptions().setDocletpath(classes);
javadoc.getOptions().setClasspath(classes);
javadoc.getOptions().setDoclet(WhistleDoclet.class.getName());
String debugPort = System.getProperty("docgenDebug");
if (debugPort != null) {
javadoc
.getOptions()
.jFlags("-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=" + debugPort);
}
};
}