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() {