You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2017/07/12 19:59:53 UTC

svn commit: r1801772 [6/11] - in /maven/plugins/trunk/maven-javadoc-plugin: ./ src/main/java/org/apache/maven/plugin/ src/main/java/org/apache/maven/plugins/ src/main/java/org/apache/maven/plugins/javadoc/ src/main/java/org/apache/maven/plugins/javadoc...

Added: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/TestJavadocJar.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/TestJavadocJar.java?rev=1801772&view=auto
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/TestJavadocJar.java (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/TestJavadocJar.java Wed Jul 12 19:59:51 2017
@@ -0,0 +1,229 @@
+package org.apache.maven.plugins.javadoc;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.maven.plugins.javadoc.resolver.SourceResolverConfig;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.StringUtils;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Bundles the Javadoc documentation for <code>test Java code</code> in an <b>NON aggregator</b> project into
+ * a jar using the standard <a href="http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/">Javadoc Tool</a>.
+ *
+ * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
+ * @version $Id: TestJavadocJar.java 1747985 2016-06-12 12:04:55Z rfscholte $
+ * @since 2.5
+ */
+@Mojo( name = "test-jar", defaultPhase = LifecyclePhase.PACKAGE, requiresDependencyResolution = ResolutionScope.TEST,
+                threadSafe = true )
+public class TestJavadocJar
+    extends JavadocJar
+{
+    // ----------------------------------------------------------------------
+    // Javadoc Options (should be inline with Javadoc options defined in TestJavadocReport)
+    // ----------------------------------------------------------------------
+
+    /**
+     * Specifies the destination directory where Javadoc saves the generated HTML files.
+     * <br/>
+     * See <a href="http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#d">d</a>.
+     * <br/>
+     */
+    @Parameter( defaultValue = "${project.build.directory}/testapidocs", required = true )
+    private File outputDirectory;
+
+    /**
+     * Specifies the Test title to be placed near the top of the overview summary file.
+     * <br/>
+     * See <a href="http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#doctitle">doctitle</a>.
+     * <br/>
+     *
+     * @since 2.5
+     */
+    @Parameter( property = "testDoctitle", alias = "doctitle",
+                defaultValue = "${project.name} ${project.version} Test API" )
+    private String testDoctitle;
+
+    /**
+     * Specifies that Javadoc should retrieve the text for the Test overview documentation from the "source" file
+     * specified by path/filename and place it on the Overview page (overview-summary.html).
+     * <br/>
+     * See <a href="http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#overview">overview</a>.
+     * <br/>
+     *
+     * @since 2.5
+     */
+    @Parameter( property = "testOverview", alias = "overview",
+                defaultValue = "${basedir}/src/test/javadoc/overview.html" )
+    private File testOverview;
+
+    /**
+     * Specifies the Test title to be placed in the HTML title tag.
+     * <br/>
+     * See
+     * <a href="http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#windowtitle">windowtitle</a>.
+     * <br/>
+     *
+     * @since 2.5
+     */
+    @Parameter( property = "testWindowtitle", alias = "windowtitle",
+                defaultValue = "${project.name} ${project.version} Test API" )
+    private String testWindowtitle;
+
+    // ----------------------------------------------------------------------
+    // Mojo Parameters (should be inline with options defined in TestJavadocReport)
+    // ----------------------------------------------------------------------
+
+    /**
+     * Specifies the Test Javadoc resources directory to be included in the Javadoc (i.e. package.html, images...).
+     *
+     * @since 2.5
+     */
+    @Parameter( alias = "javadocDirectory", defaultValue = "${basedir}/src/test/javadoc" )
+    private File testJavadocDirectory;
+
+    /**
+     * @since 2.10
+     */
+    @Parameter( property = "maven.javadoc.testClassifier", defaultValue = "test-javadoc", required = true )
+    private String testClassifier;
+
+    // ----------------------------------------------------------------------
+    // Protected methods
+    // ----------------------------------------------------------------------
+
+    @Override
+    protected String getClassifier()
+    {
+        return testClassifier;
+    }
+
+    // ----------------------------------------------------------------------
+    // Important Note: should be inline with methods defined in TestJavadocReport
+    // ----------------------------------------------------------------------
+
+    @Override
+    protected String getOutputDirectory()
+    {
+        return outputDirectory.getAbsoluteFile().toString();
+    }
+
+    @Override
+    protected File getJavadocDirectory()
+    {
+        return testJavadocDirectory;
+    }
+
+    @Override
+    protected String getDoctitle()
+    {
+        return testDoctitle;
+    }
+
+    @Override
+    protected File getOverview()
+    {
+        return testOverview;
+    }
+
+    @Override
+    protected String getWindowtitle()
+    {
+        return testWindowtitle;
+    }
+
+    @Override
+    protected List<String> getProjectBuildOutputDirs( MavenProject p )
+    {
+        List<String> dirs = new ArrayList<String>();
+        if ( StringUtils.isNotEmpty( p.getBuild().getOutputDirectory() ) )
+        {
+            dirs.add( p.getBuild().getOutputDirectory() );
+        }
+        if ( StringUtils.isNotEmpty( p.getBuild().getTestOutputDirectory() ) )
+        {
+            dirs.add( p.getBuild().getTestOutputDirectory() );
+        }
+
+        return dirs;
+    }
+
+    @Override
+    protected List<String> getProjectSourceRoots( MavenProject p )
+    {
+        if ( "pom".equals( p.getPackaging().toLowerCase() ) )
+        {
+            return Collections.emptyList();
+        }
+
+        return p.getTestCompileSourceRoots();
+    }
+
+    @Override
+    protected List<String> getExecutionProjectSourceRoots( MavenProject p )
+    {
+        if ( "pom".equals( p.getExecutionProject().getPackaging().toLowerCase() ) )
+        {
+            return Collections.emptyList();
+        }
+
+        return p.getExecutionProject().getTestCompileSourceRoots();
+    }
+
+    @Override
+    protected List<Artifact> getProjectArtifacts( MavenProject p )
+    {
+        return p.getTestArtifacts();
+    }
+
+    @Override
+    protected List<Artifact> getCompileArtifacts( Collection<Artifact> artifacts )
+    {
+        return JavadocUtil.getCompileArtifacts( artifacts, true );
+    }
+    
+    /**
+     * Overriden to enable the resolution of -test-sources jar files.
+     * 
+     * {@inheritDoc}
+     */
+    @Override
+    protected SourceResolverConfig configureDependencySourceResolution( final SourceResolverConfig config )
+    {
+        return super.configureDependencySourceResolution( config ).withoutCompileSources().withTestSources();
+    }
+
+    @Override
+    protected boolean isTest()
+    {
+        return true;
+    }
+}

Added: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/TestJavadocNoForkReport.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/TestJavadocNoForkReport.java?rev=1801772&view=auto
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/TestJavadocNoForkReport.java (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/TestJavadocNoForkReport.java Wed Jul 12 19:59:51 2017
@@ -0,0 +1,44 @@
+package org.apache.maven.plugins.javadoc;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+
+/**
+ * Generates documentation for the <code>Java Test code</code> in an <b>NON aggregator</b> project using the standard
+ * <a href="http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/">Javadoc Tool</a>. Note that this
+ * goal does require generation of test sources before site generation, e.g. by invoking
+ * <tt>mvn clean deploy site</tt>.
+ *
+ * @author <a href="mailto:mfriedenhagen@apache.org">Mirko Friedenhagen</a>
+ * @version $Id$
+ * @since 2.10
+ * @see <a href="http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/">Javadoc Tool</a>
+ * @see <a href="http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#options">Javadoc Options </a>
+ */
+@Mojo( name = "test-javadoc-no-fork", requiresDependencyResolution = ResolutionScope.TEST, threadSafe = true )
+@Execute( phase = LifecyclePhase.NONE )
+public class TestJavadocNoForkReport
+    extends TestJavadocReport
+{
+}

Added: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/TestJavadocReport.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/TestJavadocReport.java?rev=1801772&view=auto
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/TestJavadocReport.java (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/TestJavadocReport.java Wed Jul 12 19:59:51 2017
@@ -0,0 +1,363 @@
+package org.apache.maven.plugins.javadoc;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.maven.plugins.javadoc.resolver.SourceResolverConfig;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.reporting.MavenReportException;
+import org.codehaus.plexus.util.StringUtils;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+/**
+ * Generates documentation for the <code>Java Test code</code> in an <b>NON aggregator</b> project using the standard
+ * <a href="http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/">Javadoc Tool</a>.
+ *
+ * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
+ * @version $Id: TestJavadocReport.java 1747985 2016-06-12 12:04:55Z rfscholte $
+ * @since 2.3
+ * @see <a href="http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/">Javadoc Tool</a>
+ * @see <a href="http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#options">Javadoc Options </a>
+ */
+@Mojo( name = "test-javadoc", requiresDependencyResolution = ResolutionScope.TEST, threadSafe = true )
+@Execute( phase = LifecyclePhase.GENERATE_TEST_SOURCES )
+public class TestJavadocReport
+    extends JavadocReport
+{
+    // ----------------------------------------------------------------------
+    // Javadoc Options (should be inline with options defined in TestJavadocJar)
+    // ----------------------------------------------------------------------
+
+    /**
+     * Specifies the Test title to be placed near the top of the overview summary file.
+     * <br/>
+     * See <a href="http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#doctitle">doctitle</a>.
+     * <br/>
+     *
+     * @since 2.5
+     */
+    @Parameter( property = "testDoctitle", alias = "doctitle",
+                defaultValue = "${project.name} ${project.version} Test API" )
+    private String testDoctitle;
+
+    /**
+     * Specifies that Javadoc should retrieve the text for the Test overview documentation from the "source" file
+     * specified by path/filename and place it on the Overview page (overview-summary.html).
+     * <br/>
+     * <b>Note</b>: could be in conflict with &lt;nooverview/&gt;.
+     * <br/>
+     * See <a href="http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#overview">overview</a>.
+     * <br/>
+     *
+     * @since 2.5
+     */
+    @Parameter( property = "testOverview", alias = "overview",
+                defaultValue = "${basedir}/src/test/javadoc/overview.html" )
+    private File testOverview;
+
+    /**
+     * Specifies the Test title to be placed in the HTML title tag.
+     * <br/>
+     * See
+     * <a href="http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#windowtitle">windowtitle</a>.
+     * <br/>
+     *
+     * @since 2.5
+     */
+    @Parameter( property = "testWindowtitle", alias = "windowtitle",
+                defaultValue = "${project.name} ${project.version} Test API" )
+    private String testWindowtitle;
+
+    // ----------------------------------------------------------------------
+    // Mojo Parameters (should be inline with options defined in TestJavadocJar)
+    // ----------------------------------------------------------------------
+
+    /**
+     * Specifies the destination directory where test Javadoc saves the generated HTML files.
+     */
+    @Parameter( property = "reportTestOutputDirectory",
+                defaultValue = "${project.reporting.outputDirectory}/testapidocs", required = true )
+    private File reportOutputDirectory;
+
+    /**
+     * The name of the destination directory.
+     * <br/>
+     */
+    @Parameter( property = "destDir", defaultValue = "testapidocs" )
+    private String destDir;
+
+    /**
+     * Specifies the Test Javadoc resources directory to be included in the Javadoc (i.e. package.html, images...).
+     * <br/>
+     * Could be used in addition of <code>docfilessubdirs</code> parameter.
+     * <br/>
+     * See <a href="#docfilessubdirs">docfilessubdirs</a>.
+     *
+     * @since 2.5
+     */
+    @Parameter( alias = "javadocDirectory", defaultValue = "${basedir}/src/test/javadoc" )
+    private File testJavadocDirectory;
+
+    // ----------------------------------------------------------------------
+    // Report Mojo Parameters
+    // ----------------------------------------------------------------------
+
+    /**
+     * The name of the Test Javadoc report to be displayed in the Maven Generated Reports page
+     * (i.e. <code>project-reports.html</code>).
+     *
+     * @since 2.5
+     */
+    @Parameter( property = "testName", alias = "name" )
+    private String testName;
+
+    /**
+     * The description of the Test Javadoc report to be displayed in the Maven Generated Reports page
+     * (i.e. <code>project-reports.html</code>).
+     *
+     * @since 2.5
+     */
+    @Parameter( property = "testDescription", alias = "description" )
+    private String testDescription;
+
+    // ----------------------------------------------------------------------
+    // Report public methods
+    // ----------------------------------------------------------------------
+
+    @Override
+    protected void executeReport( Locale unusedLocale )
+        throws MavenReportException
+    {
+        addMainJavadocLink();
+
+        super.executeReport( unusedLocale );
+    }
+
+    @Override
+    public String getName( Locale locale )
+    {
+        if ( StringUtils.isEmpty( testName ) )
+        {
+            return getBundle( locale ).getString( "report.test-javadoc.name" );
+        }
+
+        return testName;
+    }
+
+    @Override
+    public String getDescription( Locale locale )
+    {
+        if ( StringUtils.isEmpty( testDescription ) )
+        {
+            return getBundle( locale ).getString( "report.test-javadoc.description" );
+        }
+
+        return testDescription;
+    }
+
+    @Override
+    public String getOutputName()
+    {
+        return destDir + "/index";
+    }
+
+    @Override
+    public File getReportOutputDirectory()
+    {
+        if ( reportOutputDirectory == null )
+        {
+            return outputDirectory;
+        }
+
+        return reportOutputDirectory;
+    }
+
+    /**
+     * Method to set the directory where the generated reports will be put
+     *
+     * @param reportOutputDirectory the directory file to be set
+     */
+    @Override
+    public void setReportOutputDirectory( File reportOutputDirectory )
+    {
+        updateReportOutputDirectory( reportOutputDirectory, destDir );
+    }
+
+    @Override
+    public void setDestDir( String destDir )
+    {
+        this.destDir = destDir;
+        updateReportOutputDirectory( reportOutputDirectory, destDir );
+    }
+
+    private void updateReportOutputDirectory( File reportOutputDirectory, String destDir )
+    {
+        if ( reportOutputDirectory != null && destDir != null
+             && !reportOutputDirectory.getAbsolutePath().endsWith( destDir ) )
+        {
+            this.reportOutputDirectory = new File( reportOutputDirectory, destDir );
+        }
+        else
+        {
+            this.reportOutputDirectory = reportOutputDirectory;
+        }
+    }
+
+    // ----------------------------------------------------------------------
+    // Protected methods
+    // Important Note: should be inline with methods defined in TestJavadocJar
+    // ----------------------------------------------------------------------
+
+    @Override
+    protected List<String> getProjectBuildOutputDirs( MavenProject p )
+    {
+        List<String> dirs = new ArrayList<String>();
+        if ( StringUtils.isNotEmpty( p.getBuild().getOutputDirectory() ) )
+        {
+            dirs.add( p.getBuild().getOutputDirectory() );
+        }
+        if ( StringUtils.isNotEmpty( p.getBuild().getTestOutputDirectory() ) )
+        {
+            dirs.add( p.getBuild().getTestOutputDirectory() );
+        }
+
+        return dirs;
+    }
+
+    @Override
+    protected List<String> getProjectSourceRoots( MavenProject p )
+    {
+        if ( "pom".equals( p.getPackaging().toLowerCase() ) )
+        {
+            return Collections.emptyList();
+        }
+
+        return ( p.getTestCompileSourceRoots() == null ? Collections.<String>emptyList()
+                        : new LinkedList<String>( p.getTestCompileSourceRoots() ) );
+    }
+
+    @Override
+    protected List<String> getExecutionProjectSourceRoots( MavenProject p )
+    {
+        if ( "pom".equals( p.getExecutionProject().getPackaging().toLowerCase() ) )
+        {
+            return Collections.emptyList();
+        }
+
+        return ( p.getExecutionProject().getTestCompileSourceRoots() == null ? Collections.<String>emptyList()
+                        : new LinkedList<String>( p.getExecutionProject().getTestCompileSourceRoots() ) );
+    }
+
+    @Override
+    protected List<Artifact> getProjectArtifacts( MavenProject p )
+    {
+        return ( p.getTestArtifacts() == null ? Collections.<Artifact>emptyList()
+                        : new LinkedList<Artifact>( p.getTestArtifacts() ) );
+    }
+
+    @Override
+    protected File getJavadocDirectory()
+    {
+        return testJavadocDirectory;
+    }
+
+    @Override
+    protected String getDoctitle()
+    {
+        return testDoctitle;
+    }
+
+    @Override
+    protected File getOverview()
+    {
+        return testOverview;
+    }
+
+    @Override
+    protected String getWindowtitle()
+    {
+        return testWindowtitle;
+    }
+
+    @Override
+    protected List<Artifact> getCompileArtifacts( Collection<Artifact> artifacts )
+    {
+        return JavadocUtil.getCompileArtifacts( artifacts, true );
+    }
+
+    /**
+     * Gets the resource bundle for the specified locale.
+     *
+     * @param locale The locale of the currently generated report.
+     * @return The resource bundle for the requested locale.
+     */
+    private ResourceBundle getBundle( Locale locale )
+    {
+        return ResourceBundle.getBundle( "test-javadoc-report", locale, getClass().getClassLoader() );
+    }
+
+    /**
+     * Add the <code>../apidocs</code> to the links parameter so Test report could be linked to the Main report.
+     */
+    private void addMainJavadocLink()
+    {
+        if ( links == null )
+        {
+            links = new ArrayList<String>();
+        }
+
+        // TODO the prerequisite is that the main report is in apidocs
+        File apidocs = new File( getReportOutputDirectory().getParentFile(), "apidocs" );
+        if ( apidocs.isDirectory() && !links.contains( "../apidocs" ) )
+        {
+            links.add( "../apidocs" );
+        }
+    }
+    
+    /**
+     * Overridden to enable the resolution of -test-sources jar files.
+     * 
+     * {@inheritDoc}
+     */
+    @Override
+    protected SourceResolverConfig configureDependencySourceResolution( final SourceResolverConfig config )
+    {
+        return super.configureDependencySourceResolution( config ).withoutCompileSources().withTestSources();
+    }
+
+    @Override
+    protected boolean isTest()
+    {
+        return true;
+    }
+}

Added: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/TestResourcesBundleMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/TestResourcesBundleMojo.java?rev=1801772&view=auto
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/TestResourcesBundleMojo.java (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/TestResourcesBundleMojo.java Wed Jul 12 19:59:51 2017
@@ -0,0 +1,67 @@
+package org.apache.maven.plugins.javadoc;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+
+import java.io.File;
+
+/**
+ * Bundle {@link TestJavadocJar#testJavadocDirectory}, along with javadoc configuration options from
+ * {@link AbstractJavadocMojo} such as taglet, doclet, and link information into a deployable
+ * artifact. This artifact can then be consumed by the javadoc plugin mojos when used by the
+ * <code>includeDependencySources</code> option, to generate javadocs that are somewhat consistent
+ * with those generated in the original project itself.
+ *
+ * @since 2.7
+ */
+@Mojo( name = "test-resource-bundle", defaultPhase = LifecyclePhase.PACKAGE,
+       requiresDependencyResolution = ResolutionScope.TEST, threadSafe = true )
+public class TestResourcesBundleMojo
+    extends ResourcesBundleMojo
+{
+
+    /**
+     * Specifies the Test Javadoc resources directory to be included in the Javadoc (i.e. package.html, images...).
+     */
+    @Parameter( alias = "javadocDirectory", defaultValue = "${basedir}/src/test/javadoc" )
+    private File testJavadocDirectory;
+
+    @Override
+    protected String getAttachmentClassifier()
+    {
+        return TEST_JAVADOC_RESOURCES_ATTACHMENT_CLASSIFIER;
+    }
+
+    @Override
+    protected File getJavadocDirectory()
+    {
+        return testJavadocDirectory;
+    }
+
+    @Override
+    protected boolean isTest()
+    {
+        return true;
+    }
+}

Added: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/JavadocBundle.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/JavadocBundle.java?rev=1801772&view=auto
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/JavadocBundle.java (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/JavadocBundle.java Wed Jul 12 19:59:51 2017
@@ -0,0 +1,62 @@
+package org.apache.maven.plugins.javadoc.resolver;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.plugins.javadoc.options.JavadocOptions;
+
+import java.io.File;
+
+/**
+ * 
+ */
+public class JavadocBundle
+{
+
+    private final File resourcesDirectory;
+
+    private final JavadocOptions options;
+
+    /**
+     * @param options {@link JavadocOptions}
+     * @param resourcesDirectory The resources directory.
+     */
+    public JavadocBundle( final JavadocOptions options, final File resourcesDirectory )
+    {
+        this.options = options;
+        this.resourcesDirectory = resourcesDirectory;
+    }
+
+    /**
+     * @return {@link #resourcesDirectory}
+     */
+    public File getResourcesDirectory()
+    {
+        return resourcesDirectory;
+    }
+
+    /**
+     * @return {@link #options}
+     */
+    public JavadocOptions getOptions()
+    {
+        return options;
+    }
+
+}

Added: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/ProjectArtifactFilter.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/ProjectArtifactFilter.java?rev=1801772&view=auto
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/ProjectArtifactFilter.java (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/ProjectArtifactFilter.java Wed Jul 12 19:59:51 2017
@@ -0,0 +1,66 @@
+package org.apache.maven.plugins.javadoc.resolver;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+
+/**
+ * ArtifactFilter implementation which returns true for the given pomArtifact
+ * and offers the opportunity to delegate to another filter, if the given
+ * artifact is not the pomArtifact.
+ */
+public class ProjectArtifactFilter
+    implements ArtifactFilter
+{
+
+    private Artifact pomArtifact;
+
+    private ArtifactFilter childFilter;
+
+    public ProjectArtifactFilter( Artifact pomArtifact )
+    {
+        this( pomArtifact, null );
+    }
+
+    public ProjectArtifactFilter( Artifact pomArtifact, ArtifactFilter childFilter )
+    {
+        this.pomArtifact = pomArtifact;
+        this.childFilter = childFilter;
+    }
+
+    public boolean include( Artifact artifact )
+    {
+        // always include the pom artifact
+        if ( pomArtifact.equals( artifact ) )
+        {
+            return true;
+        }
+
+        // delegate to given filter, if available
+        if ( childFilter != null )
+        {
+            return childFilter.include( artifact );
+        }
+
+        // given artifact does not match any rule
+        return false;
+    }
+}

Added: 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=1801772&view=auto
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/ResourceResolver.java (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/ResourceResolver.java Wed Jul 12 19:59:51 2017
@@ -0,0 +1,487 @@
+package org.apache.maven.plugins.javadoc.resolver;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import static org.codehaus.plexus.util.IOUtil.close;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DefaultArtifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
+import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.plugins.javadoc.options.JavadocOptions;
+import org.apache.maven.plugins.javadoc.options.io.xpp3.JavadocOptionsXpp3Reader;
+import org.apache.maven.plugins.javadoc.AbstractJavadocMojo;
+import org.apache.maven.plugins.javadoc.JavadocUtil;
+import org.apache.maven.plugins.javadoc.ResourcesBundleMojo;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.shared.artifact.filter.resolve.transform.ArtifactIncludeFilterTransformer;
+import org.apache.maven.shared.dependencies.resolve.DependencyResolver;
+import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.UnArchiver;
+import org.codehaus.plexus.archiver.manager.ArchiverManager;
+import org.codehaus.plexus.archiver.manager.NoSuchArchiverException;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+/**
+ * 
+ */
+@Component( role = ResourceResolver.class )
+public final class ResourceResolver extends AbstractLogEnabled
+{
+    @Requirement
+    private ArtifactFactory artifactFactory;
+    
+    @Requirement
+    private ArtifactResolver resolver;
+    
+    @Requirement
+    private DependencyResolver dependencyResolver;
+
+    @Requirement
+    private ArtifactMetadataSource artifactMetadataSource;
+    
+    @Requirement
+    private ArchiverManager archiverManager;
+
+    /**
+     * The classifier for sources.
+     */
+    public static final String SOURCES_CLASSIFIER = "sources";
+
+    /**
+     * The classifier for test sources 
+     */
+    public static final String TEST_SOURCES_CLASSIFIER = "test-sources";
+
+    private static final List<String> SOURCE_VALID_CLASSIFIERS = Arrays.asList( SOURCES_CLASSIFIER,
+                                                                                TEST_SOURCES_CLASSIFIER );
+
+    private static final List<String> RESOURCE_VALID_CLASSIFIERS =
+        Arrays.asList( AbstractJavadocMojo.JAVADOC_RESOURCES_ATTACHMENT_CLASSIFIER,
+                       AbstractJavadocMojo.TEST_JAVADOC_RESOURCES_ATTACHMENT_CLASSIFIER );
+
+    /**
+     * @param config {@link SourceResolverConfig}
+     * @return list of {@link JavadocBundle}.
+     * @throws IOException {@link IOException}
+     */
+    public List<JavadocBundle> resolveDependencyJavadocBundles( final SourceResolverConfig config )
+        throws IOException
+    {
+        final List<JavadocBundle> bundles = new ArrayList<JavadocBundle>();
+
+        final Map<String, MavenProject> projectMap = new HashMap<String, MavenProject>();
+        if ( config.reactorProjects() != null )
+        {
+            for ( final MavenProject p : config.reactorProjects() )
+            {
+                projectMap.put( key( p.getGroupId(), p.getArtifactId() ), p );
+            }
+        }
+
+        final List<Artifact> artifacts = config.project().getTestArtifacts();
+
+        final List<Artifact> forResourceResolution = new ArrayList<Artifact>( artifacts.size() );
+        for ( final Artifact artifact : artifacts )
+        {
+            final String key = key( artifact.getGroupId(), artifact.getArtifactId() );
+            final MavenProject p = projectMap.get( key );
+            if ( p != null )
+            {
+                bundles.addAll( resolveBundleFromProject( config, p, artifact ) );
+            }
+            else
+            {
+                forResourceResolution.add( artifact );
+            }
+        }
+
+        bundles.addAll( resolveBundlesFromArtifacts( config, forResourceResolution ) );
+
+        return bundles;
+    }
+
+    /**
+     * @param config {@link SourceResolverConfig}
+     * @return The list of resolved dependencies.
+     * @throws ArtifactResolutionException {@link ArtifactResolutionException}
+     * @throws ArtifactNotFoundException {@link ArtifactNotFoundException}
+     */
+    public List<String> resolveDependencySourcePaths( final SourceResolverConfig config )
+        throws ArtifactResolutionException, ArtifactNotFoundException
+    {
+        final List<String> dirs = new ArrayList<String>();
+
+        final Map<String, MavenProject> projectMap = new HashMap<String, MavenProject>();
+        if ( config.reactorProjects() != null )
+        {
+            for ( final MavenProject p : config.reactorProjects() )
+            {
+                projectMap.put( key( p.getGroupId(), p.getArtifactId() ), p );
+            }
+        }
+
+        final List<Artifact> artifacts = config.project().getTestArtifacts();
+
+        final List<Artifact> forResourceResolution = new ArrayList<Artifact>( artifacts.size() );
+        for ( final Artifact artifact : artifacts )
+        {
+            final String key = key( artifact.getGroupId(), artifact.getArtifactId() );
+            final MavenProject p = projectMap.get( key );
+            if ( p != null )
+            {
+                dirs.addAll( resolveFromProject( config, p, artifact ) );
+            }
+            else
+            {
+                forResourceResolution.add( artifact );
+            }
+        }
+
+        dirs.addAll( resolveFromArtifacts( config, forResourceResolution ) );
+
+        return dirs;
+    }
+
+    private static List<JavadocBundle> resolveBundleFromProject( SourceResolverConfig config, MavenProject project,
+                                                           Artifact artifact ) throws IOException
+    {
+        List<JavadocBundle> bundles = new ArrayList<JavadocBundle>();
+        
+        List<String> classifiers = new ArrayList<String>();
+        if ( config.includeCompileSources() )
+        {
+            classifiers.add( AbstractJavadocMojo.JAVADOC_RESOURCES_ATTACHMENT_CLASSIFIER );
+        }
+        
+        if ( config.includeTestSources() )
+        {
+            classifiers.add( AbstractJavadocMojo.TEST_JAVADOC_RESOURCES_ATTACHMENT_CLASSIFIER );
+        }
+        
+        for ( String classifier : classifiers )
+        {
+            File optionsFile =
+                new File( project.getBuild().getDirectory(), "javadoc-bundle-options/javadoc-options-" + classifier
+                    + ".xml" );
+            if ( !optionsFile.exists() )
+            {
+                continue;
+            }
+            
+            FileInputStream stream = null;
+            try
+            {
+                stream = new FileInputStream( optionsFile );
+                JavadocOptions options = new JavadocOptionsXpp3Reader().read( stream );
+                stream.close();
+                stream = null;
+                bundles.add( new JavadocBundle( options, new File( project.getBasedir(),
+                                                                   options.getJavadocResourcesDirectory() ) ) );
+            }
+            catch ( XmlPullParserException e )
+            {
+                IOException error =
+                    new IOException( "Failed to read javadoc options from: " + optionsFile + "\nReason: "
+                        + e.getMessage() );
+                error.initCause( e );
+                
+                throw error;
+            }
+            finally
+            {
+                close( stream );
+            }
+        }
+
+        return bundles;
+    }
+
+    private List<JavadocBundle> resolveBundlesFromArtifacts( final SourceResolverConfig config,
+                                                                    final List<Artifact> artifacts )
+        throws IOException
+    {
+        final List<Artifact> toResolve = new ArrayList<Artifact>( artifacts.size() );
+
+        for ( final Artifact artifact : artifacts )
+        {
+            if ( config.filter() != null
+                && !new ArtifactIncludeFilterTransformer().transform( config.filter() ).include( artifact ) )
+            {
+                continue;
+            }
+
+            if ( config.includeCompileSources() )
+            {
+                toResolve.add( createResourceArtifact( artifact,
+                                                       AbstractJavadocMojo.JAVADOC_RESOURCES_ATTACHMENT_CLASSIFIER,
+                                                       config ) );
+            }
+
+            if ( config.includeTestSources() )
+            {
+                toResolve.add( createResourceArtifact( artifact,
+                                                       AbstractJavadocMojo.TEST_JAVADOC_RESOURCES_ATTACHMENT_CLASSIFIER,
+                                                       config ) );
+            }
+        }
+
+        List<String> dirs = null;
+        try
+        {
+            dirs = resolveAndUnpack( toResolve, config, RESOURCE_VALID_CLASSIFIERS, false );
+        }
+        catch ( ArtifactResolutionException e )
+        {
+            if ( getLogger().isDebugEnabled() )
+            {
+                getLogger().debug( e.getMessage(), e );
+            }
+        }
+        catch ( ArtifactNotFoundException e )
+        {
+            if ( getLogger().isDebugEnabled() )
+            {
+                getLogger().debug( e.getMessage(), e );
+            }
+        }
+        
+        List<JavadocBundle> result = new ArrayList<JavadocBundle>();
+
+        if ( dirs != null )
+        {
+            for ( String d : dirs )
+            {
+                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() )
+                {
+                    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 );
+                    }
+                }
+                
+                result.add( new JavadocBundle( options, resources ) );
+            }
+        }
+        
+        return result;
+    }
+
+    private List<String> resolveFromArtifacts( final SourceResolverConfig config,
+                                                      final List<Artifact> artifacts )
+        throws ArtifactResolutionException, ArtifactNotFoundException
+    {
+        final List<Artifact> toResolve = new ArrayList<Artifact>( artifacts.size() );
+
+        for ( final Artifact artifact : artifacts )
+        {
+            if ( config.filter() != null
+                && !new ArtifactIncludeFilterTransformer().transform( config.filter() ).include( artifact ) )
+            {
+                continue;
+            }
+
+            if ( config.includeCompileSources() )
+            {
+                toResolve.add( createResourceArtifact( artifact, SOURCES_CLASSIFIER, config ) );
+            }
+
+            if ( config.includeTestSources() )
+            {
+                toResolve.add( createResourceArtifact( artifact, TEST_SOURCES_CLASSIFIER, config ) );
+            }
+        }
+
+        return resolveAndUnpack( toResolve, config, SOURCE_VALID_CLASSIFIERS, true );
+    }
+
+    private Artifact createResourceArtifact( final Artifact artifact, final String classifier,
+                                                    final SourceResolverConfig config )
+    {
+        final DefaultArtifact a =
+            (DefaultArtifact) artifactFactory.createArtifactWithClassifier( artifact.getGroupId(),
+                                                                                     artifact.getArtifactId(),
+                                                                                     artifact.getVersion(), "jar",
+                                                                                     classifier );
+
+        a.setRepository( artifact.getRepository() );
+
+        return a;
+    }
+
+    private List<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 
+        // resolve transitively...this is just used to aggregate resolution failures into a single 
+        // exception.
+        final Set<Artifact> artifactSet = new LinkedHashSet<Artifact>( artifacts );
+        final Artifact pomArtifact = config.project().getArtifact();
+        final ArtifactRepository localRepo = config.localRepository();
+        final List<ArtifactRepository> remoteRepos = config.project().getRemoteArtifactRepositories();
+
+        final ArtifactFilter filter;
+        if ( config.filter() != null )
+        {
+            filter = new ArtifactIncludeFilterTransformer().transform( config.filter() );
+        }
+        else
+        {
+            filter = null;
+        }
+        
+        ArtifactFilter resolutionFilter = null;
+        if ( filter != null )
+        {
+            // Wrap the filter in a ProjectArtifactFilter in order to always include the pomArtifact for resolution.
+            // NOTE that this is necessary, b/c the -sources artifacts are added dynamically to the pomArtifact
+            // and the resolver also checks the dependency trail with the given filter, thus the pomArtifact has
+            // to be explicitly included by the filter, otherwise the -sources artifacts won't be resolved.
+            resolutionFilter = new ProjectArtifactFilter( pomArtifact, filter );
+        }
+
+        Map<String, Artifact> managed = config.project().getManagedVersionMap();
+        
+        final ArtifactResolutionResult resolutionResult = resolver.resolveTransitively(
+                artifactSet, pomArtifact, managed, localRepo, remoteRepos, artifactMetadataSource, resolutionFilter );
+
+        final List<String> result = new ArrayList<String>( artifacts.size() );
+        for ( final Artifact a : (Collection<Artifact>) resolutionResult.getArtifacts() )
+        {
+            if ( !validClassifiers.contains( a.getClassifier() ) || ( filter != null && !filter.include( a ) ) )
+            {
+                continue;
+            }
+
+            final File d =
+                new File( config.outputBasedir(), a.getArtifactId() + "-" + a.getVersion() + "-" + a.getClassifier() );
+
+            if ( !d.exists() )
+            {
+                d.mkdirs();
+            }
+
+            try
+            {
+                final UnArchiver unArchiver = archiverManager.getUnArchiver( a.getType() );
+
+                unArchiver.setDestDirectory( d );
+                unArchiver.setSourceFile( a.getFile() );
+
+                unArchiver.extract();
+
+                result.add( d.getAbsolutePath() );
+            }
+            catch ( final NoSuchArchiverException e )
+            {
+                if ( propagateErrors )
+                {
+                    throw new ArtifactResolutionException( "Failed to retrieve valid un-archiver component: "
+                        + a.getType(), a, e );
+                }
+            }
+            catch ( final ArchiverException e )
+            {
+                if ( propagateErrors )
+                {
+                    throw new ArtifactResolutionException( "Failed to unpack: " + a.getId(), a, e );
+                }
+            }
+        }
+
+        return result;
+    }
+
+    private static List<String> resolveFromProject( final SourceResolverConfig config,
+                                                    final MavenProject reactorProject, final Artifact artifact )
+    {
+        final List<String> dirs = new ArrayList<String>();
+
+        if ( config.filter() == null
+            || new ArtifactIncludeFilterTransformer().transform( config.filter() ).include( artifact ) )
+        {
+            if ( config.includeCompileSources() )
+            {
+                final List<String> srcRoots = reactorProject.getCompileSourceRoots();
+                for ( final String root : srcRoots )
+                {
+                    dirs.add( root );
+                }
+            }
+
+            if ( config.includeTestSources() )
+            {
+                final List<String> srcRoots = reactorProject.getTestCompileSourceRoots();
+                for ( final String root : srcRoots )
+                {
+                    dirs.add( root );
+                }
+            }
+        }
+
+        return JavadocUtil.pruneDirs( reactorProject, dirs );
+    }
+
+    private static String key( final String gid, final String aid )
+    {
+        return gid + ":" + aid;
+    }
+
+}

Added: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/SourceResolverConfig.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/SourceResolverConfig.java?rev=1801772&view=auto
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/SourceResolverConfig.java (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/resolver/SourceResolverConfig.java Wed Jul 12 19:59:51 2017
@@ -0,0 +1,173 @@
+package org.apache.maven.plugins.javadoc.resolver;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.util.List;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.shared.artifact.filter.resolve.AndFilter;
+
+/**
+ * 
+ */
+public class SourceResolverConfig
+{
+
+    private final MavenProject project;
+
+    private AndFilter filter;
+
+    private List<MavenProject> reactorProjects;
+
+    private final File outputBasedir;
+
+    private boolean compileSourceIncluded;
+
+    private boolean testSourceIncluded;
+
+    private final ArtifactRepository localRepository;
+
+    /**
+     * @param project {@link MavenProject}
+     * @param localRepository {@link ArtifactRepository}
+     * @param outputBasedir The output base directory.
+     */
+    public SourceResolverConfig( final MavenProject project, final ArtifactRepository localRepository,
+                                 final File outputBasedir )
+    {
+        this.project = project;
+        this.localRepository = localRepository;
+        this.outputBasedir = outputBasedir;
+    }
+
+    /**
+     * @param filter {@link ArtifactFilter}
+     * @return {@link SourceResolverConfig}
+     */
+    public SourceResolverConfig withFilter( final AndFilter filter )
+    {
+        this.filter = filter;
+        return this;
+    }
+
+    /**
+     * @param reactorProjects The list of reactor projects.
+     * @return {@link SourceResolverConfig}
+     */
+    public SourceResolverConfig withReactorProjects( final List<MavenProject> reactorProjects )
+    {
+        this.reactorProjects = reactorProjects;
+        return this;
+    }
+
+    /**
+     * @return {@link SourceResolverConfig}
+     */
+    public SourceResolverConfig withCompileSources()
+    {
+        compileSourceIncluded = true;
+        return this;
+    }
+
+    /**
+     * @return {@link SourceResolverConfig}
+     */
+    public SourceResolverConfig withoutCompileSources()
+    {
+        compileSourceIncluded = false;
+        return this;
+    }
+
+    /**
+     * @return {@link SourceResolverConfig}
+     */
+    public SourceResolverConfig withTestSources()
+    {
+        testSourceIncluded = true;
+        return this;
+    }
+
+    /**
+     * @return {@link SourceResolverConfig}
+     */
+    public SourceResolverConfig withoutTestSources()
+    {
+        testSourceIncluded = false;
+        return this;
+    }
+
+    /**
+     * @return {@link MavenProject}
+     */
+    public MavenProject project()
+    {
+        return project;
+    }
+
+    /**
+     * @return {@link ArtifactRepository}
+     */
+    public ArtifactRepository localRepository()
+    {
+        return localRepository;
+    }
+
+    /**
+     * @return {@link TransformableFilter}
+     */
+    public AndFilter filter()
+    {
+        return filter;
+    }
+
+    /**
+     * @return list of {@link MavenProject}
+     */
+    public List<MavenProject> reactorProjects()
+    {
+        return reactorProjects;
+    }
+
+    /**
+     * @return {@link #outputBasedir}
+     */
+    public File outputBasedir()
+    {
+        return outputBasedir;
+    }
+
+    /**
+     * @return {@link #compileSourceIncluded}
+     */
+    public boolean includeCompileSources()
+    {
+        return compileSourceIncluded;
+    }
+
+    /**
+     * @return {@link #testSourceIncluded}
+     */
+    public boolean includeTestSources()
+    {
+        return testSourceIncluded;
+    }
+}

Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo?rev=1801772&r1=1801771&r2=1801772&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo Wed Jul 12 19:59:51 2017
@@ -30,7 +30,7 @@ under the License.
   <defaults>
     <default>
       <key>package</key>
-      <value>org.apache.maven.plugin.javadoc.options</value>
+      <value>org.apache.maven.plugins.javadoc.options</value>
     </default>
   </defaults>
   <classes>

Added: maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/css/stylesheet.css
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/css/stylesheet.css?rev=1801772&view=auto
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/css/stylesheet.css (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/css/stylesheet.css Wed Jul 12 19:59:51 2017
@@ -0,0 +1,64 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/
+
+/* Javadoc style sheet */
+
+/* Define colors, fonts and other style attributes here to override the defaults  */
+
+/* Page background color */
+body { background-color: #FFFFFF }
+
+a:link, a:visited {
+ color: blue;
+ }
+
+a:active, a:hover, #leftcol a:active, #leftcol a:hover {
+ color: #f30 !important;
+ }
+
+a:link.selfref, a:visited.selfref {
+ color: #555 !important;
+ }
+
+.a td {
+ background: #ddd;
+ color: #000;
+ }
+
+/* Table colors */
+.TableHeadingColor     { background: #036; color:#FFFFFF } /* Dark blue */
+.TableSubHeadingColor  { background: #bbb; color:#fff } /* Dark grey */
+.TableRowColor         { background: #efefef } /* White */
+
+/* Font used in left-hand frame lists */
+.FrameTitleFont   { font-size: medium; font-family: normal; color:#000000 }
+.FrameHeadingFont { font-size: medium; font-family: normal; color:#000000 }
+.FrameItemFont    { font-size: medium; font-family: normal; color:#000000 }
+
+/* Example of smaller, sans-serif font in frames */
+/* .FrameItemFont  { font-size: 10pt; font-family: Helvetica, Arial, sans-serif } */
+
+/* Navigation bar fonts and colors */
+.NavBarCell1    { background-color:#ddd;}/* Light mauve */
+.NavBarCell1Rev { background-color:#888;}/* Dark Blue */
+.NavBarFont1    { font-family: Arial, Helvetica, sans-serif; color:#000000;}
+.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}
+
+.NavBarCell2    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
+.NavBarCell3    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}

Added: maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/frame-injection-fix.txt
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/frame-injection-fix.txt?rev=1801772&view=auto
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/frame-injection-fix.txt (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/frame-injection-fix.txt Wed Jul 12 19:59:51 2017
@@ -0,0 +1,37 @@
+    if (targetPage != "" && !validURL(targetPage))
+        targetPage = "undefined";
+    function validURL(url) {
+        var pos = url.indexOf(".html");
+        if (pos == -1 || pos != url.length - 5)
+            return false;
+        var allowNumber = false;
+        var allowSep = false;
+        var seenDot = false;
+        for (var i = 0; i < url.length - 5; i++) {
+            var ch = url.charAt(i);
+            if ('a' <= ch && ch <= 'z' ||
+                    'A' <= ch && ch <= 'Z' ||
+                    ch == '$' ||
+                    ch == '_') {
+                allowNumber = true;
+                allowSep = true;
+            } else if ('0' <= ch && ch <= '9'
+                    || ch == '-') {
+                if (!allowNumber)
+                     return false;
+            } else if (ch == '/' || ch == '.') {
+                if (!allowSep)
+                    return false;
+                allowNumber = false;
+                allowSep = false;
+                if (ch == '.')
+                     seenDot = true;
+                if (ch == '/' && seenDot)
+                     return false;
+            } else {
+                return false;
+            }
+        }
+        return true;
+    }
+    function loadFrames() {
\ No newline at end of file

Added: maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.3
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.3?rev=1801772&view=auto
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.3 (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.3 Wed Jul 12 19:59:51 2017
@@ -0,0 +1,76 @@
+java.applet
+java.awt
+java.awt.color
+java.awt.datatransfer
+java.awt.dnd
+java.awt.event
+java.awt.font
+java.awt.geom
+java.awt.im
+java.awt.im.spi
+java.awt.image
+java.awt.image.renderable
+java.awt.print
+java.beans
+java.beans.beancontext
+java.io
+java.lang
+java.lang.ref
+java.lang.reflect
+java.math
+java.net
+java.rmi
+java.rmi.activation
+java.rmi.dgc
+java.rmi.registry
+java.rmi.server
+java.security
+java.security.acl
+java.security.cert
+java.security.interfaces
+java.security.spec
+java.sql
+java.text
+java.util
+java.util.jar
+java.util.zip
+javax.accessibility
+javax.naming
+javax.naming.directory
+javax.naming.event
+javax.naming.ldap
+javax.naming.spi
+javax.rmi
+javax.rmi.CORBA
+javax.sound.midi
+javax.sound.midi.spi
+javax.sound.sampled
+javax.sound.sampled.spi
+javax.swing
+javax.swing.border
+javax.swing.colorchooser
+javax.swing.event
+javax.swing.filechooser
+javax.swing.plaf
+javax.swing.plaf.basic
+javax.swing.plaf.metal
+javax.swing.plaf.multi
+javax.swing.table
+javax.swing.text
+javax.swing.text.html
+javax.swing.text.html.parser
+javax.swing.text.rtf
+javax.swing.tree
+javax.swing.undo
+javax.transaction
+org.omg.CORBA
+org.omg.CORBA_2_3
+org.omg.CORBA_2_3.portable
+org.omg.CORBA.DynAnyPackage
+org.omg.CORBA.ORBPackage
+org.omg.CORBA.portable
+org.omg.CORBA.TypeCodePackage
+org.omg.CosNaming
+org.omg.CosNaming.NamingContextPackage
+org.omg.SendingContext
+org.omg.stub.java.rmi

Added: maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.4
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.4?rev=1801772&view=auto
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.4 (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.4 Wed Jul 12 19:59:51 2017
@@ -0,0 +1,135 @@
+java.applet
+java.awt
+java.awt.color
+java.awt.datatransfer
+java.awt.dnd
+java.awt.event
+java.awt.font
+java.awt.geom
+java.awt.im
+java.awt.im.spi
+java.awt.image
+java.awt.image.renderable
+java.awt.print
+java.beans
+java.beans.beancontext
+java.io
+java.lang
+java.lang.ref
+java.lang.reflect
+java.math
+java.net
+java.nio
+java.nio.channels
+java.nio.channels.spi
+java.nio.charset
+java.nio.charset.spi
+java.rmi
+java.rmi.activation
+java.rmi.dgc
+java.rmi.registry
+java.rmi.server
+java.security
+java.security.acl
+java.security.cert
+java.security.interfaces
+java.security.spec
+java.sql
+java.text
+java.util
+java.util.jar
+java.util.logging
+java.util.prefs
+java.util.regex
+java.util.zip
+javax.accessibility
+javax.crypto
+javax.crypto.interfaces
+javax.crypto.spec
+javax.imageio
+javax.imageio.event
+javax.imageio.metadata
+javax.imageio.plugins.jpeg
+javax.imageio.spi
+javax.imageio.stream
+javax.naming
+javax.naming.directory
+javax.naming.event
+javax.naming.ldap
+javax.naming.spi
+javax.net
+javax.net.ssl
+javax.print
+javax.print.attribute
+javax.print.attribute.standard
+javax.print.event
+javax.rmi
+javax.rmi.CORBA
+javax.security.auth
+javax.security.auth.callback
+javax.security.auth.kerberos
+javax.security.auth.login
+javax.security.auth.spi
+javax.security.auth.x500
+javax.security.cert
+javax.sound.midi
+javax.sound.midi.spi
+javax.sound.sampled
+javax.sound.sampled.spi
+javax.sql
+javax.swing
+javax.swing.border
+javax.swing.colorchooser
+javax.swing.event
+javax.swing.filechooser
+javax.swing.plaf
+javax.swing.plaf.basic
+javax.swing.plaf.metal
+javax.swing.plaf.multi
+javax.swing.table
+javax.swing.text
+javax.swing.text.html
+javax.swing.text.html.parser
+javax.swing.text.rtf
+javax.swing.tree
+javax.swing.undo
+javax.transaction
+javax.transaction.xa
+javax.xml.parsers
+javax.xml.transform
+javax.xml.transform.dom
+javax.xml.transform.sax
+javax.xml.transform.stream
+org.ietf.jgss
+org.omg.CORBA
+org.omg.CORBA.DynAnyPackage
+org.omg.CORBA.ORBPackage
+org.omg.CORBA.TypeCodePackage
+org.omg.CORBA.portable
+org.omg.CORBA_2_3
+org.omg.CORBA_2_3.portable
+org.omg.CosNaming
+org.omg.CosNaming.NamingContextExtPackage
+org.omg.CosNaming.NamingContextPackage
+org.omg.Dynamic
+org.omg.DynamicAny
+org.omg.DynamicAny.DynAnyFactoryPackage
+org.omg.DynamicAny.DynAnyPackage
+org.omg.IOP
+org.omg.IOP.CodecFactoryPackage
+org.omg.IOP.CodecPackage
+org.omg.Messaging
+org.omg.PortableInterceptor
+org.omg.PortableInterceptor.ORBInitInfoPackage
+org.omg.PortableServer
+org.omg.PortableServer.CurrentPackage
+org.omg.PortableServer.POAManagerPackage
+org.omg.PortableServer.POAPackage
+org.omg.PortableServer.ServantLocatorPackage
+org.omg.PortableServer.portable
+org.omg.SendingContext
+org.omg.stub.java.rmi
+org.w3c.dom
+org.xml.sax
+org.xml.sax.ext
+org.xml.sax.helpers

Added: maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.5
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.5?rev=1801772&view=auto
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.5 (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.5 Wed Jul 12 19:59:51 2017
@@ -0,0 +1,166 @@
+java.applet
+java.awt
+java.awt.color
+java.awt.datatransfer
+java.awt.dnd
+java.awt.event
+java.awt.font
+java.awt.geom
+java.awt.im
+java.awt.im.spi
+java.awt.image
+java.awt.image.renderable
+java.awt.print
+java.beans
+java.beans.beancontext
+java.io
+java.lang
+java.lang.annotation
+java.lang.instrument
+java.lang.management
+java.lang.ref
+java.lang.reflect
+java.math
+java.net
+java.nio
+java.nio.channels
+java.nio.channels.spi
+java.nio.charset
+java.nio.charset.spi
+java.rmi
+java.rmi.activation
+java.rmi.dgc
+java.rmi.registry
+java.rmi.server
+java.security
+java.security.acl
+java.security.cert
+java.security.interfaces
+java.security.spec
+java.sql
+java.text
+java.util
+java.util.concurrent
+java.util.concurrent.atomic
+java.util.concurrent.locks
+java.util.jar
+java.util.logging
+java.util.prefs
+java.util.regex
+java.util.zip
+javax.accessibility
+javax.activity
+javax.crypto
+javax.crypto.interfaces
+javax.crypto.spec
+javax.imageio
+javax.imageio.event
+javax.imageio.metadata
+javax.imageio.plugins.bmp
+javax.imageio.plugins.jpeg
+javax.imageio.spi
+javax.imageio.stream
+javax.management
+javax.management.loading
+javax.management.modelmbean
+javax.management.monitor
+javax.management.openmbean
+javax.management.relation
+javax.management.remote
+javax.management.remote.rmi
+javax.management.timer
+javax.naming
+javax.naming.directory
+javax.naming.event
+javax.naming.ldap
+javax.naming.spi
+javax.net
+javax.net.ssl
+javax.print
+javax.print.attribute
+javax.print.attribute.standard
+javax.print.event
+javax.rmi
+javax.rmi.CORBA
+javax.rmi.ssl
+javax.security.auth
+javax.security.auth.callback
+javax.security.auth.kerberos
+javax.security.auth.login
+javax.security.auth.spi
+javax.security.auth.x500
+javax.security.cert
+javax.security.sasl
+javax.sound.midi
+javax.sound.midi.spi
+javax.sound.sampled
+javax.sound.sampled.spi
+javax.sql
+javax.sql.rowset
+javax.sql.rowset.serial
+javax.sql.rowset.spi
+javax.swing
+javax.swing.border
+javax.swing.colorchooser
+javax.swing.event
+javax.swing.filechooser
+javax.swing.plaf
+javax.swing.plaf.basic
+javax.swing.plaf.metal
+javax.swing.plaf.multi
+javax.swing.plaf.synth
+javax.swing.table
+javax.swing.text
+javax.swing.text.html
+javax.swing.text.html.parser
+javax.swing.text.rtf
+javax.swing.tree
+javax.swing.undo
+javax.transaction
+javax.transaction.xa
+javax.xml
+javax.xml.datatype
+javax.xml.namespace
+javax.xml.parsers
+javax.xml.transform
+javax.xml.transform.dom
+javax.xml.transform.sax
+javax.xml.transform.stream
+javax.xml.validation
+javax.xml.xpath
+org.ietf.jgss
+org.omg.CORBA
+org.omg.CORBA.DynAnyPackage
+org.omg.CORBA.ORBPackage
+org.omg.CORBA.TypeCodePackage
+org.omg.CORBA.portable
+org.omg.CORBA_2_3
+org.omg.CORBA_2_3.portable
+org.omg.CosNaming
+org.omg.CosNaming.NamingContextExtPackage
+org.omg.CosNaming.NamingContextPackage
+org.omg.Dynamic
+org.omg.DynamicAny
+org.omg.DynamicAny.DynAnyFactoryPackage
+org.omg.DynamicAny.DynAnyPackage
+org.omg.IOP
+org.omg.IOP.CodecFactoryPackage
+org.omg.IOP.CodecPackage
+org.omg.Messaging
+org.omg.PortableInterceptor
+org.omg.PortableInterceptor.ORBInitInfoPackage
+org.omg.PortableServer
+org.omg.PortableServer.CurrentPackage
+org.omg.PortableServer.POAManagerPackage
+org.omg.PortableServer.POAPackage
+org.omg.PortableServer.ServantLocatorPackage
+org.omg.PortableServer.portable
+org.omg.SendingContext
+org.omg.stub.java.rmi
+org.w3c.dom
+org.w3c.dom.bootstrap
+org.w3c.dom.events
+org.w3c.dom.ls
+org.xml.sax
+org.xml.sax.ext
+org.xml.sax.helpers

Added: maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.6
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.6?rev=1801772&view=auto
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.6 (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.6 Wed Jul 12 19:59:51 2017
@@ -0,0 +1,203 @@
+java.applet
+java.awt
+java.awt.color
+java.awt.datatransfer
+java.awt.dnd
+java.awt.event
+java.awt.font
+java.awt.geom
+java.awt.im
+java.awt.im.spi
+java.awt.image
+java.awt.image.renderable
+java.awt.print
+java.beans
+java.beans.beancontext
+java.io
+java.lang
+java.lang.annotation
+java.lang.instrument
+java.lang.management
+java.lang.ref
+java.lang.reflect
+java.math
+java.net
+java.nio
+java.nio.channels
+java.nio.channels.spi
+java.nio.charset
+java.nio.charset.spi
+java.rmi
+java.rmi.activation
+java.rmi.dgc
+java.rmi.registry
+java.rmi.server
+java.security
+java.security.acl
+java.security.cert
+java.security.interfaces
+java.security.spec
+java.sql
+java.text
+java.text.spi
+java.util
+java.util.concurrent
+java.util.concurrent.atomic
+java.util.concurrent.locks
+java.util.jar
+java.util.logging
+java.util.prefs
+java.util.regex
+java.util.spi
+java.util.zip
+javax.accessibility
+javax.activation
+javax.activity
+javax.annotation
+javax.annotation.processing
+javax.crypto
+javax.crypto.interfaces
+javax.crypto.spec
+javax.imageio
+javax.imageio.event
+javax.imageio.metadata
+javax.imageio.plugins.bmp
+javax.imageio.plugins.jpeg
+javax.imageio.spi
+javax.imageio.stream
+javax.jws
+javax.jws.soap
+javax.lang.model
+javax.lang.model.element
+javax.lang.model.type
+javax.lang.model.util
+javax.management
+javax.management.loading
+javax.management.modelmbean
+javax.management.monitor
+javax.management.openmbean
+javax.management.relation
+javax.management.remote
+javax.management.remote.rmi
+javax.management.timer
+javax.naming
+javax.naming.directory
+javax.naming.event
+javax.naming.ldap
+javax.naming.spi
+javax.net
+javax.net.ssl
+javax.print
+javax.print.attribute
+javax.print.attribute.standard
+javax.print.event
+javax.rmi
+javax.rmi.CORBA
+javax.rmi.ssl
+javax.script
+javax.security.auth
+javax.security.auth.callback
+javax.security.auth.kerberos
+javax.security.auth.login
+javax.security.auth.spi
+javax.security.auth.x500
+javax.security.cert
+javax.security.sasl
+javax.sound.midi
+javax.sound.midi.spi
+javax.sound.sampled
+javax.sound.sampled.spi
+javax.sql
+javax.sql.rowset
+javax.sql.rowset.serial
+javax.sql.rowset.spi
+javax.swing
+javax.swing.border
+javax.swing.colorchooser
+javax.swing.event
+javax.swing.filechooser
+javax.swing.plaf
+javax.swing.plaf.basic
+javax.swing.plaf.metal
+javax.swing.plaf.multi
+javax.swing.plaf.synth
+javax.swing.table
+javax.swing.text
+javax.swing.text.html
+javax.swing.text.html.parser
+javax.swing.text.rtf
+javax.swing.tree
+javax.swing.undo
+javax.tools
+javax.transaction
+javax.transaction.xa
+javax.xml
+javax.xml.bind
+javax.xml.bind.annotation
+javax.xml.bind.annotation.adapters
+javax.xml.bind.attachment
+javax.xml.bind.helpers
+javax.xml.bind.util
+javax.xml.crypto
+javax.xml.crypto.dom
+javax.xml.crypto.dsig
+javax.xml.crypto.dsig.dom
+javax.xml.crypto.dsig.keyinfo
+javax.xml.crypto.dsig.spec
+javax.xml.datatype
+javax.xml.namespace
+javax.xml.parsers
+javax.xml.soap
+javax.xml.stream
+javax.xml.stream.events
+javax.xml.stream.util
+javax.xml.transform
+javax.xml.transform.dom
+javax.xml.transform.sax
+javax.xml.transform.stax
+javax.xml.transform.stream
+javax.xml.validation
+javax.xml.ws
+javax.xml.ws.handler
+javax.xml.ws.handler.soap
+javax.xml.ws.http
+javax.xml.ws.soap
+javax.xml.ws.spi
+javax.xml.ws.wsaddressing
+javax.xml.xpath
+org.ietf.jgss
+org.omg.CORBA
+org.omg.CORBA.DynAnyPackage
+org.omg.CORBA.ORBPackage
+org.omg.CORBA.TypeCodePackage
+org.omg.CORBA.portable
+org.omg.CORBA_2_3
+org.omg.CORBA_2_3.portable
+org.omg.CosNaming
+org.omg.CosNaming.NamingContextExtPackage
+org.omg.CosNaming.NamingContextPackage
+org.omg.Dynamic
+org.omg.DynamicAny
+org.omg.DynamicAny.DynAnyFactoryPackage
+org.omg.DynamicAny.DynAnyPackage
+org.omg.IOP
+org.omg.IOP.CodecFactoryPackage
+org.omg.IOP.CodecPackage
+org.omg.Messaging
+org.omg.PortableInterceptor
+org.omg.PortableInterceptor.ORBInitInfoPackage
+org.omg.PortableServer
+org.omg.PortableServer.CurrentPackage
+org.omg.PortableServer.POAManagerPackage
+org.omg.PortableServer.POAPackage
+org.omg.PortableServer.ServantLocatorPackage
+org.omg.PortableServer.portable
+org.omg.SendingContext
+org.omg.stub.java.rmi
+org.w3c.dom
+org.w3c.dom.bootstrap
+org.w3c.dom.events
+org.w3c.dom.ls
+org.xml.sax
+org.xml.sax.ext
+org.xml.sax.helpers

Added: maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.7
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.7?rev=1801772&view=auto
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.7 (added)
+++ maven/plugins/trunk/maven-javadoc-plugin/src/main/resources/org/apache/maven/plugins/javadoc/java-api-package-list-1.7 Wed Jul 12 19:59:51 2017
@@ -0,0 +1,209 @@
+java.applet
+java.awt
+java.awt.color
+java.awt.datatransfer
+java.awt.dnd
+java.awt.event
+java.awt.font
+java.awt.geom
+java.awt.im
+java.awt.im.spi
+java.awt.image
+java.awt.image.renderable
+java.awt.print
+java.beans
+java.beans.beancontext
+java.io
+java.lang
+java.lang.annotation
+java.lang.instrument
+java.lang.invoke
+java.lang.management
+java.lang.ref
+java.lang.reflect
+java.math
+java.net
+java.nio
+java.nio.channels
+java.nio.channels.spi
+java.nio.charset
+java.nio.charset.spi
+java.nio.file
+java.nio.file.attribute
+java.nio.file.spi
+java.rmi
+java.rmi.activation
+java.rmi.dgc
+java.rmi.registry
+java.rmi.server
+java.security
+java.security.acl
+java.security.cert
+java.security.interfaces
+java.security.spec
+java.sql
+java.text
+java.text.spi
+java.util
+java.util.concurrent
+java.util.concurrent.atomic
+java.util.concurrent.locks
+java.util.jar
+java.util.logging
+java.util.prefs
+java.util.regex
+java.util.spi
+java.util.zip
+javax.accessibility
+javax.activation
+javax.activity
+javax.annotation
+javax.annotation.processing
+javax.crypto
+javax.crypto.interfaces
+javax.crypto.spec
+javax.imageio
+javax.imageio.event
+javax.imageio.metadata
+javax.imageio.plugins.bmp
+javax.imageio.plugins.jpeg
+javax.imageio.spi
+javax.imageio.stream
+javax.jws
+javax.jws.soap
+javax.lang.model
+javax.lang.model.element
+javax.lang.model.type
+javax.lang.model.util
+javax.management
+javax.management.loading
+javax.management.modelmbean
+javax.management.monitor
+javax.management.openmbean
+javax.management.relation
+javax.management.remote
+javax.management.remote.rmi
+javax.management.timer
+javax.naming
+javax.naming.directory
+javax.naming.event
+javax.naming.ldap
+javax.naming.spi
+javax.net
+javax.net.ssl
+javax.print
+javax.print.attribute
+javax.print.attribute.standard
+javax.print.event
+javax.rmi
+javax.rmi.CORBA
+javax.rmi.ssl
+javax.script
+javax.security.auth
+javax.security.auth.callback
+javax.security.auth.kerberos
+javax.security.auth.login
+javax.security.auth.spi
+javax.security.auth.x500
+javax.security.cert
+javax.security.sasl
+javax.sound.midi
+javax.sound.midi.spi
+javax.sound.sampled
+javax.sound.sampled.spi
+javax.sql
+javax.sql.rowset
+javax.sql.rowset.serial
+javax.sql.rowset.spi
+javax.swing
+javax.swing.border
+javax.swing.colorchooser
+javax.swing.event
+javax.swing.filechooser
+javax.swing.plaf
+javax.swing.plaf.basic
+javax.swing.plaf.metal
+javax.swing.plaf.multi
+javax.swing.plaf.nimbus
+javax.swing.plaf.synth
+javax.swing.table
+javax.swing.text
+javax.swing.text.html
+javax.swing.text.html.parser
+javax.swing.text.rtf
+javax.swing.tree
+javax.swing.undo
+javax.tools
+javax.transaction
+javax.transaction.xa
+javax.xml
+javax.xml.bind
+javax.xml.bind.annotation
+javax.xml.bind.annotation.adapters
+javax.xml.bind.attachment
+javax.xml.bind.helpers
+javax.xml.bind.util
+javax.xml.crypto
+javax.xml.crypto.dom
+javax.xml.crypto.dsig
+javax.xml.crypto.dsig.dom
+javax.xml.crypto.dsig.keyinfo
+javax.xml.crypto.dsig.spec
+javax.xml.datatype
+javax.xml.namespace
+javax.xml.parsers
+javax.xml.soap
+javax.xml.stream
+javax.xml.stream.events
+javax.xml.stream.util
+javax.xml.transform
+javax.xml.transform.dom
+javax.xml.transform.sax
+javax.xml.transform.stax
+javax.xml.transform.stream
+javax.xml.validation
+javax.xml.ws
+javax.xml.ws.handler
+javax.xml.ws.handler.soap
+javax.xml.ws.http
+javax.xml.ws.soap
+javax.xml.ws.spi
+javax.xml.ws.spi.http
+javax.xml.ws.wsaddressing
+javax.xml.xpath
+org.ietf.jgss
+org.omg.CORBA
+org.omg.CORBA.DynAnyPackage
+org.omg.CORBA.ORBPackage
+org.omg.CORBA.TypeCodePackage
+org.omg.CORBA.portable
+org.omg.CORBA_2_3
+org.omg.CORBA_2_3.portable
+org.omg.CosNaming
+org.omg.CosNaming.NamingContextExtPackage
+org.omg.CosNaming.NamingContextPackage
+org.omg.Dynamic
+org.omg.DynamicAny
+org.omg.DynamicAny.DynAnyFactoryPackage
+org.omg.DynamicAny.DynAnyPackage
+org.omg.IOP
+org.omg.IOP.CodecFactoryPackage
+org.omg.IOP.CodecPackage
+org.omg.Messaging
+org.omg.PortableInterceptor
+org.omg.PortableInterceptor.ORBInitInfoPackage
+org.omg.PortableServer
+org.omg.PortableServer.CurrentPackage
+org.omg.PortableServer.POAManagerPackage
+org.omg.PortableServer.POAPackage
+org.omg.PortableServer.ServantLocatorPackage
+org.omg.PortableServer.portable
+org.omg.SendingContext
+org.omg.stub.java.rmi
+org.w3c.dom
+org.w3c.dom.bootstrap
+org.w3c.dom.events
+org.w3c.dom.ls
+org.xml.sax
+org.xml.sax.ext
+org.xml.sax.helpers