Package Filtering for javadocs
diff --git a/src/main/java/org/apache/tomee/website/Configuration.java b/src/main/java/org/apache/tomee/website/Configuration.java
index 77bfefb..6465f04 100644
--- a/src/main/java/org/apache/tomee/website/Configuration.java
+++ b/src/main/java/org/apache/tomee/website/Configuration.java
@@ -91,14 +91,14 @@
return new Source[]{
// new Source("https://github.com/apache/tomee.git", "master", "tomee-8.0"),
- new Source("https://github.com/apache/tomee.git", "master", "tomee-9.0").related(microProfile2).related(jakartaEE9),
- new Source("https://github.com/apache/tomee.git", "master", "tomee-8.0", true).related(microProfile2).related(jakartaEE8),
- new Source("https://github.com/apache/tomee.git", "tomee-7.1.0", "tomee-7.1"),
- new Source("https://github.com/apache/tomee.git", "tomee-7.0.5", "tomee-7.0"),
- new Source("https://github.com/apache/tomee.git", "master", "master"),
- new Source("https://github.com/eclipse/microprofile-bom.git", "master", "microprofile-2.0").related(microProfile2),
- new Source("https://github.com/eclipse-ee4j/jakartaee-platform.git", "v8", "jakartaee-8.0").related(jakartaEE8),
- new Source("https://github.com/eclipse-ee4j/jakartaee-platform.git", "master", "jakartaee-9.0").related(jakartaEE9)
+ new Source("https://github.com/apache/tomee.git", "master", "tomee-9.0").related(microProfile2).related(jakartaEE9).javadoc("^org.apache.(openejb|tomee).*"),
+ new Source("https://github.com/apache/tomee.git", "master", "tomee-8.0", true).related(microProfile2).related(jakartaEE8).javadoc("^org.apache.(openejb|tomee).*"),
+ new Source("https://github.com/apache/tomee.git", "tomee-7.1.0", "tomee-7.1").javadoc("^org.apache.(openejb|tomee).*"),
+ new Source("https://github.com/apache/tomee.git", "tomee-7.0.5", "tomee-7.0").javadoc("^org.apache.(openejb|tomee).*"),
+ new Source("https://github.com/apache/tomee.git", "master", "master").javadoc("^org.apache.(openejb|tomee).*"),
+ new Source("https://github.com/eclipse/microprofile-bom.git", "master", "microprofile-2.0").related(microProfile2).javadoc("^org.eclipse.microprofile.*"),
+ new Source("https://github.com/eclipse-ee4j/jakartaee-platform.git", "v8", "jakartaee-8.0").related(jakartaEE8).javadoc("^javax.*"),
+ new Source("https://github.com/eclipse-ee4j/jakartaee-platform.git", "master", "jakartaee-9.0").related(jakartaEE9).javadoc("^jakarta.*")
};
}
}
diff --git a/src/main/java/org/apache/tomee/website/Javadocs.java b/src/main/java/org/apache/tomee/website/Javadocs.java
index 146da53..83357c9 100644
--- a/src/main/java/org/apache/tomee/website/Javadocs.java
+++ b/src/main/java/org/apache/tomee/website/Javadocs.java
@@ -26,7 +26,9 @@
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
+import java.util.function.Predicate;
import java.util.function.Supplier;
+import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -81,6 +83,8 @@
public void prepare(final Source source) {
final File javaSources = mkdirs(new File(String.format("target/javadocs/%s-src", source.getName())));
+ setDefaults(source);
+
copySource(source, javaSources);
for (final Source related : source.getRelated()) {
copySource(related, javaSources);
@@ -130,6 +134,13 @@
});
}
+ private void setDefaults(final Source source) {
+ final Pattern defaultPattern = source.getJavadocPackages() != null ? source.getJavadocPackages() : Pattern.compile(".*");
+ source.stream()
+ .filter(src -> src.getJavadocPackages() == null)
+ .forEach(src -> src.setJavadocPackages(defaultPattern));
+ }
+
public List<JavadocSource> getJavadocSources() {
return javadocSources;
}
@@ -154,6 +165,8 @@
final JavadocSources javadocSources = new JavadocSources();
source.setComponent(JavadocSources.class, javadocSources);
+ final Predicate<String> wanted = source.getJavadocPackages().asPredicate();
+
try {
java.nio.file.Files.walk(source.getDir().toPath())
.map(Path::toFile)
@@ -164,6 +177,9 @@
.forEach(file -> {
try {
final String relativePath = file.getAbsolutePath().replaceAll(".*/src/main/java/", "");
+
+ if (!wanted.test(relativePath)) return;
+
final File dest = new File(javaSources, relativePath);
Files.mkdirs(dest.getParentFile());
IO.copy(file, dest);
diff --git a/src/main/java/org/apache/tomee/website/Source.java b/src/main/java/org/apache/tomee/website/Source.java
index 188a53e..a93019b 100644
--- a/src/main/java/org/apache/tomee/website/Source.java
+++ b/src/main/java/org/apache/tomee/website/Source.java
@@ -29,7 +29,7 @@
/**
* A Source largely maps to a git repo we will checkout and use to build content
* to publish to the website.
- *
+ *
* Currently we have the following notable sources:
*
* - tomee-8.0
@@ -66,6 +66,7 @@
private final List<Source> related = new ArrayList<>();
private File dir;
private Filter javadocFilter = new Filter(".*/src/main/java/.*", ".*/(tck|itests|examples|archetype-resources|.*-example)/.*");
+ private Pattern javadocPackages;
/**
* This allows us to attach a handful of finishing actions to
@@ -163,6 +164,19 @@
return this;
}
+ public Pattern getJavadocPackages() {
+ return javadocPackages;
+ }
+
+ public void setJavadocPackages(final Pattern javadocPackages) {
+ this.javadocPackages = javadocPackages;
+ }
+
+ public Source javadoc(final String include) {
+ this.javadocPackages = Pattern.compile(include);
+ return this;
+ }
+
@Override
public String toString() {