You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2020/01/29 08:57:55 UTC

[maven-javadoc-plugin] 04/04: [MJAVADOC-613] fix module exclusion

This is an automated email from the ASF dual-hosted git repository.

olamy pushed a commit to branch MJAVADOC-613-exclude_skipped_modules_from_aggregate
in repository https://gitbox.apache.org/repos/asf/maven-javadoc-plugin.git

commit c7fe8160fec517266c304e0e50e9368984c3bda0
Author: olivier lamy <ol...@apache.org>
AuthorDate: Wed Jan 29 18:57:27 2020 +1000

    [MJAVADOC-613] fix module exclusion
    
    Signed-off-by: olivier lamy <ol...@apache.org>
---
 .../MJAVADOC-613-aggregate-exclude/b/c/d2/pom.xml  |  2 +-
 .../MJAVADOC-613-aggregate-exclude/f/pom.xml       |  2 +-
 .../invoker.properties                             |  3 +-
 .../MJAVADOC-613-aggregate-exclude/verify.groovy   | 67 +++++++++-------------
 .../maven/plugins/javadoc/AbstractJavadocMojo.java | 60 ++++++++++++++++---
 .../maven/plugins/javadoc/JavadocReportTest.java   |  2 +-
 6 files changed, 82 insertions(+), 54 deletions(-)

diff --git a/src/it/projects/MJAVADOC-613-aggregate-exclude/b/c/d2/pom.xml b/src/it/projects/MJAVADOC-613-aggregate-exclude/b/c/d2/pom.xml
index 3fa78b8..b2204d4 100644
--- a/src/it/projects/MJAVADOC-613-aggregate-exclude/b/c/d2/pom.xml
+++ b/src/it/projects/MJAVADOC-613-aggregate-exclude/b/c/d2/pom.xml
@@ -28,6 +28,6 @@
     <artifactId>mjavadoc613c</artifactId>
     <version>1.0-SNAPSHOT</version>
   </parent>
-  <artifactId>mjavadoc13d2</artifactId>
+  <artifactId>mjavadoc613d2</artifactId>
 
 </project>
diff --git a/src/it/projects/MJAVADOC-613-aggregate-exclude/f/pom.xml b/src/it/projects/MJAVADOC-613-aggregate-exclude/f/pom.xml
index 09dce39..3e4673d 100644
--- a/src/it/projects/MJAVADOC-613-aggregate-exclude/f/pom.xml
+++ b/src/it/projects/MJAVADOC-613-aggregate-exclude/f/pom.xml
@@ -28,7 +28,7 @@
     <artifactId>mjavadoc613</artifactId>
     <version>1.0-SNAPSHOT</version>
   </parent>
-  <artifactId>mjavadoc613df</artifactId>
+  <artifactId>mjavadoc613f</artifactId>
 
   <build>
     <plugins>
diff --git a/src/it/projects/MJAVADOC-613-aggregate-exclude/invoker.properties b/src/it/projects/MJAVADOC-613-aggregate-exclude/invoker.properties
index a3d335e..233d924 100644
--- a/src/it/projects/MJAVADOC-613-aggregate-exclude/invoker.properties
+++ b/src/it/projects/MJAVADOC-613-aggregate-exclude/invoker.properties
@@ -15,4 +15,5 @@
 # specific language governing permissions and limitations
 # under the License.
 
-invoker.goals = site
+#invoker.goals = javadoc:jar javadoc:aggregate-jar
+invoker.goals = clean package javadoc:jar javadoc:aggregate-jar install 
diff --git a/src/it/projects/MJAVADOC-613-aggregate-exclude/verify.groovy b/src/it/projects/MJAVADOC-613-aggregate-exclude/verify.groovy
index 4035b20..10cacfb 100644
--- a/src/it/projects/MJAVADOC-613-aggregate-exclude/verify.groovy
+++ b/src/it/projects/MJAVADOC-613-aggregate-exclude/verify.groovy
@@ -17,44 +17,29 @@
  * under the License.
  */
 
-// A 
-assert !(new File( basedir, 'target/site/apidocs/a/b/c/d/D1.html').exists())
-assert !(new File( basedir, 'target/site/apidocs/a/b/c/d/D2.html').exists())
-assert new File( basedir, 'target/site/apidocs/a/b/e/E.html').exists()
-assert !(new File( basedir, 'target/site/apidocs/a/f/F.html').exists())
-
-// B
-assert !(new File( basedir, 'b/target/site/apidocs/a/b/c/d/D1.html').exists())
-assert !(new File( basedir, 'b/target/site/apidocs/a/b/c/d/D2.html').exists())
-assert new File( basedir, 'b/target/site/apidocs/a/b/e/E.html').exists()
-assert !(new File( basedir, 'b/target/site/apidocs/a/f/F.html').exists())
-
-// C
-assert !(new File( basedir, 'b/c/target/site/apidocs/a/b/c/d/D1.html').exists())
-assert !(new File( basedir, 'b/c/target/site/apidocs/a/b/c/d/D2.html').exists())
-assert !(new File( basedir, 'b/c/target/site/apidocs/a/b/e/E.html').exists())
-assert !(new File( basedir, 'b/c/target/site/apidocs/a/f/F.html').exists())
-
-// D1
-assert !(new File( basedir, 'b/c/d1/target/site/apidocs/a/b/c/d/D1.html').exists())
-assert !(new File( basedir, 'b/c/d1/target/site/apidocs/a/b/c/d/D2.html').exists())
-assert !(new File( basedir, 'b/c/d1/target/site/apidocs/a/b/e/E.html').exists())
-assert !(new File( basedir, 'b/c/d1/target/site/apidocs/a/f/F.html').exists())
-
-// D2
-assert !(new File( basedir, 'b/c/d2/target/site/apidocs/a/b/c/d/D1.html').exists())
-assert !(new File( basedir, 'b/c/d2/target/site/apidocs/a/b/c/d/D2.html').exists())
-assert !(new File( basedir, 'b/c/d2/target/site/apidocs/a/b/e/E.html').exists())
-assert !(new File( basedir, 'b/c/d2/target/site/apidocs/a/f/F.html').exists())
-
-// E
-assert !(new File( basedir, 'b/e/target/site/apidocs/a/b/c/d/D1.html').exists())
-assert !(new File( basedir, 'b/e/target/site/apidocs/a/b/c/d/D2.html').exists())
-assert new File( basedir, 'b/e/target/site/apidocs/a/b/e/E.html').exists()
-assert !(new File( basedir, 'b/e/target/site/apidocs/a/f/F.html').exists())
-
-// F
-assert !(new File( basedir, 'f/target/site/apidocs/a/b/c/d/D1.html').exists())
-assert !(new File( basedir, 'f/target/site/apidocs/a/b/c/d/D2.html').exists())
-assert !(new File( basedir, 'f/target/site/apidocs/a/b/e/E.html').exists())
-assert !(new File( basedir, 'f/target/site/apidocs/a/f/F.html').exists())
+import java.util.jar.*
+
+def aggregatedJavadoc = new File( basedir, 'target/mjavadoc613-1.0-SNAPSHOT-javadoc.jar');
+
+assert aggregatedJavadoc.exists()
+assert new File( basedir, 'b/c/d1/target/mjavadoc613d1-1.0-SNAPSHOT.jar').exists()
+assert !(new File( basedir, 'b/c/d1/target/mjavadoc613d1-1.0-SNAPSHOT-javadoc.jar').exists())
+assert new File( basedir, 'b/c/d2/target/mjavadoc613d2-1.0-SNAPSHOT.jar').exists()
+assert !(new File( basedir, 'b/c/d2/target/mjavadoc613d2-1.0-SNAPSHOT-javadoc.jar').exists())
+assert new File( basedir, 'b/e/target/mjavadoc613e-1.0-SNAPSHOT.jar').exists()
+assert new File( basedir, 'b/e/target/mjavadoc613e-1.0-SNAPSHOT-javadoc.jar').exists()
+assert new File( basedir, 'f/target/mjavadoc613f-1.0-SNAPSHOT.jar').exists()
+assert !(new File( basedir, 'f/target/mjavadoc613f-1.0-SNAPSHOT-javadoc.jar').exists())
+
+def jar = new JarFile(aggregatedJavadoc)
+
+def files = new ArrayList()
+
+for (JarEntry file in jar.entries()){
+  files.add(file.getName())
+}
+
+assert files.contains("a/b/e/E.html")
+assert !files.contains("a/b/c/d/D1.html")
+assert !files.contains("a/b/c/d/D2.html")
+
diff --git a/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java b/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
index 331c037..d2173e2 100644
--- a/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
+++ b/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
@@ -5896,7 +5896,7 @@ public abstract class AbstractJavadocMojo
     {
         final String fixData;
 
-        try (InputStream in = this.getClass().getResourceAsStream( "frame-injection-fix.txt" ))
+        try ( InputStream in = this.getClass().getResourceAsStream( "frame-injection-fix.txt" ) )
         {
             if ( in == null )
             {
@@ -6826,19 +6826,61 @@ public abstract class AbstractJavadocMojo
 
     protected boolean isSkippedJavadoc( MavenProject mavenProject )
     {
-        if ( BooleanUtils.toBoolean( mavenProject.getProperties().getProperty( "maven.javadoc.skip" ) ) )
+        getLog().debug( "isSkippedJavadoc " + mavenProject );
+        String property = mavenProject.getProperties().getProperty( "maven.javadoc.skip" );
+        if ( property != null )
         {
-            return true;
+            boolean skip = BooleanUtils.toBoolean( property );
+            getLog().debug( "isSkippedJavadoc " + mavenProject + " " + skip );
+            return skip;
         }
         final String pluginId = "org.apache.maven.plugins:maven-javadoc-plugin";
-        Plugin javadocPlugin = getPlugin( project, pluginId );
-        if ( javadocPlugin == null )
+        //final String pluginId = "org.apache.maven.plugins:maven-javadoc-plugin";
+        property = getPluginParameter( mavenProject, pluginId, "skip" );
+        if ( property != null )
         {
-            return false;
+            boolean skip = BooleanUtils.toBoolean( property );
+            getLog().debug( "isSkippedJavadoc " + mavenProject + " " + skip );
+            return skip;
         }
-        Xpp3Dom configuration = (Xpp3Dom) javadocPlugin.getConfiguration();
-        Xpp3Dom skipNode = configuration.getChild( "skip" );
-        return skipNode != null && BooleanUtils.toBoolean( skipNode.getValue() );
+        if ( mavenProject.getParent() != null )
+        {
+            return isSkippedJavadoc( mavenProject.getParent() );
+        }
+        getLog().debug( "isSkippedJavadoc " + mavenProject + " " + false );
+        return false;
+
+//        Plugin javadocPlugin = getPlugin( project, pluginId );
+//        if ( javadocPlugin == null )
+//        {
+//            if ( mavenProject.getParent() != null )
+//            {
+//                return isSkippedJavadoc( mavenProject.getParent() );
+//            }
+//            getLog().debug( "isSkippedJavadoc " + mavenProject + " false" );
+//            return false;
+//        }
+//        Xpp3Dom configuration = (Xpp3Dom) javadocPlugin.getConfiguration();
+//        if ( configuration == null )
+//        {
+//            if ( mavenProject.getParent() != null )
+//            {
+//                return isSkippedJavadoc( mavenProject.getParent() );
+//            }
+//            getLog().debug( "isSkippedJavadoc " + mavenProject + " false" );
+//            return false;
+//        }
+//        Xpp3Dom skipNode = configuration.getChild( "skip" );
+//        if ( skipNode != null )
+//        {
+//            return BooleanUtils.toBoolean( skipNode.getValue() );
+//        }
+//        if ( mavenProject.getParent() != null )
+//        {
+//            return isSkippedJavadoc( mavenProject.getParent() );
+//        }
+//        getLog().debug( "isSkippedJavadoc " + mavenProject + " false" );
+//        return false;
     }
 
 }
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java b/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java
index e6fc3d0..6311537 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java
@@ -1180,7 +1180,7 @@ public class JavadocReportTest
         assertTrue( optionsFile.exists() );
         String options = readFile( optionsFile );
         // count -taglet
-        assertEquals( 20, StringUtils.countMatches( options, LINE_SEPARATOR + "-taglet" + LINE_SEPARATOR ) );
+        assertEquals( 22, StringUtils.countMatches( options, LINE_SEPARATOR + "-taglet" + LINE_SEPARATOR ) );
         assertTrue( options.contains( "org.apache.maven.tools.plugin.javadoc.MojoAggregatorTypeTaglet" ) );
         assertTrue( options.contains( "org.apache.maven.tools.plugin.javadoc.MojoComponentFieldTaglet" ) );
         assertTrue( options.contains( "org.apache.maven.tools.plugin.javadoc.MojoConfiguratorTypeTaglet" ) );