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.sive...@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:mfriedenha...@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.sive...@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 <nooverview/>. + * <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