Author: rfscholte
Date: Sat Nov 25 20:05:42 2017
New Revision: 1816346

URL: http://svn.apache.org/viewvc?rev=1816346&view=rev
Log:
Add project/artifact key to set of sourcePaths to recognize reactor projects 
versus dependencies

Modified:
    
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
    
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/JavadocReport.java
    
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/ResourceResolver.java
    
maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject1TestMavenProjectStub.java
    
maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject2TestMavenProjectStub.java

Modified: 
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java?rev=1816346&r1=1816345&r2=1816346&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java
 Sat Nov 25 20:05:42 2017
@@ -23,7 +23,6 @@ import static org.apache.maven.plugins.j
 import static org.apache.maven.plugins.javadoc.JavadocUtil.isNotEmpty;
 import static org.apache.maven.plugins.javadoc.JavadocUtil.toList;
 import static org.apache.maven.plugins.javadoc.JavadocUtil.toRelative;
-import static org.codehaus.plexus.util.IOUtil.close;
 
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -46,6 +45,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.LinkedList;
 import java.util.List;
@@ -61,6 +61,7 @@ import org.apache.commons.lang3.ClassUti
 import org.apache.commons.lang3.JavaVersion;
 import org.apache.commons.lang3.SystemUtils;
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.artifact.handler.ArtifactHandler;
 import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
 import org.apache.maven.artifact.repository.ArtifactRepository;
@@ -1977,9 +1978,9 @@ public abstract class AbstractJavadocMoj
             throw new MavenReportException( "Failed to generate javadoc 
options file: " + e.getMessage(), e );
         }
 
-        Collection<Collection<String>> sourcePaths = getSourcePaths();
+        Map<String, Collection<String>> sourcePaths = getSourcePaths();
         
-        Collection<String> collectedSourcePaths = collect( sourcePaths );
+        Collection<String> collectedSourcePaths = collect( 
sourcePaths.values() );
         
         List<String> files = getFiles( collectedSourcePaths );
         if ( !canGenerateReport( files ) )
@@ -2224,10 +2225,10 @@ public abstract class AbstractJavadocMoj
      * @throws MavenReportException {@link MavenReportException}
      * @see JavadocUtil#pruneDirs(MavenProject, List)
      */
-    protected Collection<Collection<String>> getSourcePaths()
+    protected Map<String, Collection<String>> getSourcePaths()
         throws MavenReportException
     {
-        Collection<Collection<String>> allSourcePaths = new ArrayList<>();
+        Map<String, Collection<String>> mappedSourcePaths = new 
LinkedHashMap<>();
 
         if ( StringUtils.isEmpty( sourcepath ) )
         {
@@ -2255,11 +2256,13 @@ public abstract class AbstractJavadocMoj
                     sourcePaths.addAll( l );
                 }
             }
+            mappedSourcePaths.put( ArtifactUtils.versionlessKey( 
project.getGroupId(), project.getArtifactId() ),
+                                   sourcePaths );
+            
             if ( includeDependencySources )
             {
-                sourcePaths.addAll( getDependencySourcePaths() );
+                mappedSourcePaths.putAll( getDependencySourcePaths() );
             }
-            allSourcePaths.add( sourcePaths );
 
             if ( isAggregator() && project.isExecutionRoot() )
             {
@@ -2295,7 +2298,9 @@ public abstract class AbstractJavadocMoj
                                 additionalSourcePaths.addAll( l );
                             }
                         }
-                        allSourcePaths.add( additionalSourcePaths );
+                        mappedSourcePaths.put( ArtifactUtils.versionlessKey( 
subProject.getGroupId(),
+                                                                             
subProject.getArtifactId() ),
+                                               additionalSourcePaths );
                     }
                 }
             }
@@ -2310,10 +2315,11 @@ public abstract class AbstractJavadocMoj
                     getJavadocDirectory().getAbsolutePath() ) );
                 sourcePaths.addAll( l );
             }
-            allSourcePaths.add( sourcePaths );
+            mappedSourcePaths.put( ArtifactUtils.versionlessKey( 
project.getGroupId(), project.getArtifactId() ),
+                                   sourcePaths );
         }
 
-        return allSourcePaths;
+        return mappedSourcePaths;
     }
 
     /**
@@ -2333,7 +2339,7 @@ public abstract class AbstractJavadocMoj
      * @return List of source paths.
      * @throws MavenReportException {@link MavenReportException}
      */
-    protected final List<String> getDependencySourcePaths()
+    protected final Map<String, Collection<String>> getDependencySourcePaths()
         throws MavenReportException
     {
         try
@@ -4641,10 +4647,10 @@ public abstract class AbstractJavadocMoj
      * @throws MavenReportException if any
      * @see <a 
href="http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#javadocoptions";>http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#javadocoptions</a>
      */
-    private void addJavadocOptions( List<String> arguments, 
Collection<Collection<String>> allSourcePaths )
+    private void addJavadocOptions( List<String> arguments, Map<String, 
Collection<String>> allSourcePaths )
         throws MavenReportException
     {
-        Collection<String> sourcePaths = collect( allSourcePaths );
+        Collection<String> sourcePaths = collect( allSourcePaths.values() );
         
         validateJavadocOptions();
 
@@ -6039,16 +6045,11 @@ public abstract class AbstractJavadocMoj
         }
 
         File optionsFile = getJavadocOptionsFile();
-        Writer writer = null;
-        try
+        
+        try ( Writer writer = WriterFactory.newXmlWriter( optionsFile ) )
         {
-            writer = WriterFactory.newXmlWriter( optionsFile );
             new JavadocOptionsXpp3Writer().write( writer, options );
         }
-        finally
-        {
-            close( writer );
-        }
 
         return options;
     }

Modified: 
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/JavadocReport.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/JavadocReport.java?rev=1816346&r1=1816345&r2=1816346&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/JavadocReport.java
 (original)
+++ 
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/JavadocReport.java
 Sat Nov 25 20:05:42 2017
@@ -240,7 +240,7 @@ public class JavadocReport
             List<String> files;
             try
             {
-                sourcePaths = collect( getSourcePaths() );
+                sourcePaths = collect( getSourcePaths().values() );
                 files = getFiles( sourcePaths );
             }
             catch ( MavenReportException e )

Modified: 
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/ResourceResolver.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/ResourceResolver.java?rev=1816346&r1=1816345&r2=1816346&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/ResourceResolver.java
 (original)
+++ 
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/ResourceResolver.java
 Sat Nov 25 20:05:42 2017
@@ -24,13 +24,17 @@ import static org.codehaus.plexus.util.I
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
+import java.util.AbstractMap;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Set;
 
 import org.apache.maven.artifact.Artifact;
@@ -144,11 +148,11 @@ public final class ResourceResolver exte
      * @throws ArtifactResolutionException {@link ArtifactResolutionException}
      * @throws ArtifactNotFoundException {@link ArtifactNotFoundException}
      */
-    public List<String> resolveDependencySourcePaths( final 
SourceResolverConfig config )
+    public Map<String, Collection<String>> resolveDependencySourcePaths( final 
SourceResolverConfig config )
         throws ArtifactResolutionException, ArtifactNotFoundException
     {
-        final List<String> dirs = new ArrayList<>();
-
+        final Map<String, Collection<String>> mappedDirs = new 
LinkedHashMap<>();
+        
         final Map<String, MavenProject> projectMap = new HashMap<>();
         if ( config.reactorProjects() != null )
         {
@@ -167,7 +171,7 @@ public final class ResourceResolver exte
             final MavenProject p = projectMap.get( key );
             if ( p != null )
             {
-                dirs.addAll( resolveFromProject( config, p, artifact ) );
+                mappedDirs.put( key, resolveFromProject( config, p, artifact ) 
);
             }
             else
             {
@@ -175,9 +179,12 @@ public final class ResourceResolver exte
             }
         }
 
-        dirs.addAll( resolveFromArtifacts( config, forResourceResolution ) );
+        for ( Map.Entry<String, String> entry : resolveFromArtifacts( config, 
forResourceResolution ) )
+        {
+            mappedDirs.put( entry.getKey(), Collections.singletonList( 
entry.getValue() ) );
+        }
 
-        return dirs;
+        return mappedDirs;
     }
 
     private static List<JavadocBundle> resolveBundleFromProject( 
SourceResolverConfig config, MavenProject project,
@@ -263,10 +270,14 @@ public final class ResourceResolver exte
             }
         }
 
-        List<String> dirs = null;
+        List<String> dirs = new ArrayList<>( toResolve.size() );
         try
         {
-            dirs = resolveAndUnpack( toResolve, config, 
RESOURCE_VALID_CLASSIFIERS, false );
+            for ( Map.Entry<String, String> entry : resolveAndUnpack( 
toResolve, config, RESOURCE_VALID_CLASSIFIERS,
+                                                                      false ) )
+            {
+                dirs.add( entry.getValue() );
+            }
         }
         catch ( ArtifactResolutionException e )
         {
@@ -285,44 +296,35 @@ public final class ResourceResolver exte
         
         List<JavadocBundle> result = new ArrayList<>();
 
-        if ( dirs != null )
+        for ( String d : dirs )
         {
-            for ( String d : dirs )
-            {
-                File dir = new File( d );
-                File resources = new File( dir, 
ResourcesBundleMojo.RESOURCES_DIR_PATH );
-                JavadocOptions options = null;
+            File dir = new File( d );
+            File resources = new File( dir, 
ResourcesBundleMojo.RESOURCES_DIR_PATH );
+            JavadocOptions options = null;
 
-                File javadocOptions = new File( dir, 
ResourcesBundleMojo.BUNDLE_OPTIONS_PATH );
-                if ( javadocOptions.exists() )
+            File javadocOptions = new File( dir, 
ResourcesBundleMojo.BUNDLE_OPTIONS_PATH );
+            if ( javadocOptions.exists() )
+            {
+                try ( FileInputStream reader = new FileInputStream( 
javadocOptions )  )
                 {
-                    FileInputStream reader = null;
-                    try
-                    {
-                        reader = new FileInputStream( javadocOptions );
-                        options = new JavadocOptionsXpp3Reader().read( reader 
);
-                    }
-                    catch ( XmlPullParserException e )
-                    {
-                        IOException error = new IOException( "Failed to parse 
javadoc options: " + e.getMessage() );
-                        error.initCause( e );
-                        
-                        throw error;
-                    }
-                    finally
-                    {
-                        close( reader );
-                    }
+                    options = new JavadocOptionsXpp3Reader().read( reader );
+                }
+                catch ( XmlPullParserException e )
+                {
+                    IOException error = new IOException( "Failed to parse 
javadoc options: " + e.getMessage() );
+                    error.initCause( e );
+                    
+                    throw error;
                 }
-                
-                result.add( new JavadocBundle( options, resources ) );
             }
+            
+            result.add( new JavadocBundle( options, resources ) );
         }
         
         return result;
     }
 
-    private List<String> resolveFromArtifacts( final SourceResolverConfig 
config,
+    private Collection<Entry<String, String>> resolveFromArtifacts( final 
SourceResolverConfig config,
                                                       final List<Artifact> 
artifacts )
         throws ArtifactResolutionException, ArtifactNotFoundException
     {
@@ -364,8 +366,20 @@ public final class ResourceResolver exte
         return a;
     }
 
-    private List<String> resolveAndUnpack( final List<Artifact> artifacts, 
final SourceResolverConfig config,
-                                                  final List<String> 
validClassifiers, final boolean propagateErrors )
+    /**
+     * 
+     * @param artifacts the artifacts to resolve
+     * @param config the configuration
+     * @param validClassifiers 
+     * @param propagateErrors
+     * @return list of <dependencyConflictId, absolutePath>
+     * @throws ArtifactResolutionException if an exception occurs
+     * @throws ArtifactNotFoundException if an exception occurs
+     */
+    private Collection<Map.Entry<String, String>> resolveAndUnpack( final 
List<Artifact> artifacts,
+                                                                    final 
SourceResolverConfig config,
+                                                                    final 
List<String> validClassifiers,
+                                                                    final 
boolean propagateErrors )
         throws ArtifactResolutionException, ArtifactNotFoundException
     {
         // NOTE: Since these are '-sources' and '-test-sources' artifacts, 
they won't actually 
@@ -383,7 +397,7 @@ public final class ResourceResolver exte
             filter = null;
         }
         
-        final List<String> result = new ArrayList<>( artifacts.size() );
+        final List<Map.Entry<String, String>> result = new ArrayList<>( 
artifacts.size() );
         for ( final Artifact a : artifactSet )
         {
             if ( !validClassifiers.contains( a.getClassifier() ) || ( filter 
!= null && !filter.include( a ) ) )
@@ -418,7 +432,8 @@ public final class ResourceResolver exte
 
                 unArchiver.extract();
 
-                result.add( d.getAbsolutePath() );
+                result.add( new AbstractMap.SimpleEntry<String, String>( 
a.getDependencyConflictId(),
+                                                                         
d.getAbsolutePath() ) );
             }
             catch ( final NoSuchArchiverException e )
             {

Modified: 
maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject1TestMavenProjectStub.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject1TestMavenProjectStub.java?rev=1816346&r1=1816345&r2=1816346&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject1TestMavenProjectStub.java
 (original)
+++ 
maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject1TestMavenProjectStub.java
 Sat Nov 25 20:05:42 2017
@@ -22,6 +22,7 @@ package org.apache.maven.plugins.javadoc
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.model.Build;
@@ -39,9 +40,9 @@ public class AggregateResourcesProject1T
     {
         readModel( new File( getBasedir(), "pom.xml" ) );
 
-        setGroupId( getModel().getGroupId() );
+        setGroupId( Objects.toString( getModel().getGroupId(), 
getModel().getParent().getGroupId() ) );
         setArtifactId( getModel().getArtifactId() );
-        setVersion( getModel().getVersion() );
+        setVersion( Objects.toString( getModel().getVersion(), 
getModel().getParent().getVersion() ) );
         setName( getModel().getName() );
         setUrl( getModel().getUrl() );
         setPackaging( getModel().getPackaging() );

Modified: 
maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject2TestMavenProjectStub.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject2TestMavenProjectStub.java?rev=1816346&r1=1816345&r2=1816346&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject2TestMavenProjectStub.java
 (original)
+++ 
maven/plugins/trunk/maven-javadoc-plugin/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject2TestMavenProjectStub.java
 Sat Nov 25 20:05:42 2017
@@ -22,6 +22,7 @@ package org.apache.maven.plugins.javadoc
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.model.Build;
@@ -39,9 +40,9 @@ public class AggregateResourcesProject2T
     {
         readModel( new File( getBasedir(), "pom.xml" ) );
 
-        setGroupId( getModel().getGroupId() );
+        setGroupId( Objects.toString( getModel().getGroupId(), 
getModel().getParent().getGroupId() ) );
         setArtifactId( getModel().getArtifactId() );
-        setVersion( getModel().getVersion() );
+        setVersion( Objects.toString( getModel().getVersion(), 
getModel().getParent().getVersion() ) );
         setName( getModel().getName() );
         setUrl( getModel().getUrl() );
         setPackaging( getModel().getPackaging() );


Reply via email to