Author: jdcasey
Date: Wed Apr 7 21:01:37 2010
New Revision: 931686
URL: http://svn.apache.org/viewvc?rev=931686&view=rev
Log:
[MJAVADOC-280] Initial implementation of the aggregate-from-dependency-sources
feature.
Added:
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/resolver/
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/resolver/ResourceResolver.java
(with props)
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/resolver/SourceResolverConfig.java
(with props)
Modified:
maven/plugins/trunk/maven-javadoc-plugin/pom.xml
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocReport.java
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocUtil.java
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocJar.java
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocReport.java
Modified: maven/plugins/trunk/maven-javadoc-plugin/pom.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/pom.xml?rev=931686&r1=931685&r2=931686&view=diff
==============================================================================
--- maven/plugins/trunk/maven-javadoc-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-javadoc-plugin/pom.xml Wed Apr 7 21:01:37 2010
@@ -235,12 +235,27 @@ under the License.
<version>6.1.19</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-common-artifact-filters</artifactId>
+ <version>1.2</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.1</version>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ <plugin>
<groupId>org.codehaus.modello</groupId>
<artifactId>modello-maven-plugin</artifactId>
<version>1.1</version>
Modified:
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java?rev=931686&r1=931685&r2=931686&view=diff
==============================================================================
---
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java
(original)
+++
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java
Wed Apr 7 21:01:37 2010
@@ -55,6 +55,7 @@ import org.apache.maven.artifact.resolve
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.ArtifactResolver;
import org.apache.maven.artifact.resolver.MultipleArtifactsNotFoundException;
+import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
import org.apache.maven.artifact.versioning.ArtifactVersion;
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.apache.maven.execution.MavenSession;
@@ -71,6 +72,8 @@ import org.apache.maven.plugin.javadoc.o
import org.apache.maven.plugin.javadoc.options.Tag;
import org.apache.maven.plugin.javadoc.options.Taglet;
import org.apache.maven.plugin.javadoc.options.TagletArtifact;
+import org.apache.maven.plugin.javadoc.resolver.ResourceResolver;
+import org.apache.maven.plugin.javadoc.resolver.SourceResolverConfig;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.ProjectBuildingException;
@@ -78,6 +81,8 @@ import org.apache.maven.project.artifact
import org.apache.maven.reporting.MavenReportException;
import org.apache.maven.settings.Proxy;
import org.apache.maven.settings.Settings;
+import org.apache.maven.shared.artifact.filter.PatternExcludesArtifactFilter;
+import org.apache.maven.shared.artifact.filter.PatternIncludesArtifactFilter;
import org.apache.maven.shared.invoker.MavenInvocationException;
import org.apache.maven.toolchain.Toolchain;
import org.apache.maven.toolchain.ToolchainManager;
@@ -367,7 +372,7 @@ public abstract class AbstractJavadocMoj
* @parameter expression="${reactorProjects}"
* @readonly
*/
- private List reactorProjects;
+ private List<MavenProject> reactorProjects;
/**
* Whether to build an aggregated report at the root, or build individual
reports.
@@ -1545,6 +1550,54 @@ public abstract class AbstractJavadocMoj
*/
private String windowtitle;
+ /**
+ * Whether dependency -sources jars should be resolved and included as
source paths for javadoc generation.
+ * This is useful when creating javadocs for a distribution project.
+ *
+ * @parameter default-value="false"
+ * @since 2.6.2
+ */
+ private boolean includeDependencySources;
+
+ /**
+ * Directory where unpacked project sources / test-sources should be
cached.
+ *
+ * @parameter
default-value="${project.build.directory}/distro-javadoc-sources"
+ * @since 2.6.2
+ * @see #includeDependencySources
+ */
+ private File sourceDependencyCacheDir;
+
+ /**
+ * Whether to include transitive dependencies in the list of dependency
-sources jars to include
+ * in this javadoc run.
+ *
+ * @parameter default-value="false"
+ * @since 2.6.2
+ * @see #includeDependencySources
+ */
+ private boolean includeTransitiveDependencySources;
+
+ /**
+ * List of included dependency-source patterns. Example: org.apache.maven:*
+ *
+ *
+ * @parameter
+ * @since 2.6.2
+ * @see #includeDependencySources
+ */
+ private List<String> dependencySourceIncludes;
+
+ /**
+ * List of excluded dependency-source patterns. Example:
org.apache.maven.shared:*
+ *
+ *
+ * @parameter
+ * @since 2.6.2
+ * @see #includeDependencySources
+ */
+ private List<String> dependencySourceExcludes;
+
// ----------------------------------------------------------------------
// static
// ----------------------------------------------------------------------
@@ -1905,6 +1958,7 @@ public abstract class AbstractJavadocMoj
* @see JavadocUtil#pruneDirs(MavenProject, List)
*/
protected List getSourcePaths()
+ throws MavenReportException
{
List sourcePaths;
@@ -1934,6 +1988,11 @@ public abstract class AbstractJavadocMoj
}
}
+ if ( includeDependencySources )
+ {
+ sourcePaths.addAll( getDependencySourcePaths() );
+ }
+
if ( isAggregator() && project.isExecutionRoot() )
{
for ( Iterator i = reactorProjects.iterator(); i.hasNext(); )
@@ -1988,6 +2047,74 @@ public abstract class AbstractJavadocMoj
}
/**
+ * Override this method to customize the configuration for resolving
dependency sources. The default
+ * behavior enables the resolution of -sources jar files.
+ */
+ protected SourceResolverConfig configureDependencySourceResolution( final
SourceResolverConfig config )
+ {
+ return config.withCompileSources();
+ }
+
+ /**
+ * Resolve dependency sources so they can be included directly in the
javadoc process. To customize this,
+ * override {...@link
AbstractJavadocMojo#configureDependencySourceResolution(SourceResolverConfig)}.
+ */
+ protected final List<String> getDependencySourcePaths()
+ throws MavenReportException
+ {
+ final SourceResolverConfig config =
+ new SourceResolverConfig( project, localRepository,
sourceDependencyCacheDir, resolver, factory,
+ artifactMetadataSource, archiverManager
).withReactorProjects( reactorProjects );
+
+ configureDependencySourceResolution( config );
+
+ final AndArtifactFilter andFilter = new AndArtifactFilter();
+
+ final List<String> dependencyIncludes = dependencySourceIncludes;
+ final List<String> dependencyExcludes = dependencySourceExcludes;
+
+ if ( isNotEmpty( dependencyIncludes ) || isNotEmpty(
dependencyExcludes ) )
+ {
+ if ( isNotEmpty( dependencyIncludes ) )
+ {
+ andFilter.add( new PatternIncludesArtifactFilter(
dependencyIncludes,
+
!includeTransitiveDependencySources ) );
+ }
+
+ if ( isNotEmpty( dependencyExcludes ) )
+ {
+ andFilter.add( new PatternExcludesArtifactFilter(
dependencyExcludes,
+
!includeTransitiveDependencySources ) );
+ }
+
+ config.withFilter( andFilter );
+ }
+
+ try
+ {
+ return ResourceResolver.resolveSourceDirs( config );
+ }
+ catch ( final ArtifactResolutionException e )
+ {
+ throw new MavenReportException( "Failed to resolve one or more
javadoc source/resource artifacts:\n\n"
+ + e.getMessage(), e );
+ }
+ catch ( final ArtifactNotFoundException e )
+ {
+ throw new MavenReportException( "Failed to resolve one or more
javadoc source/resource artifacts:\n\n"
+ + e.getMessage(), e );
+ }
+ }
+
+ /**
+ * Convenience method to determine that a collection is not empty or null.
+ */
+ protected final boolean isNotEmpty( final List<?> collection )
+ {
+ return collection != null && !collection.isEmpty();
+ }
+
+ /**
* Method that indicates whether the javadoc can be generated or not. If
the project does not contain any source
* files and no subpackages are specified, the plugin will terminate.
*
Modified:
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocReport.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocReport.java?rev=931686&r1=931685&r2=931686&view=diff
==============================================================================
---
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocReport.java
(original)
+++
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocReport.java
Wed Apr 7 21:01:37 2010
@@ -206,7 +206,16 @@ public class JavadocReport
if ( !this.isAggregator() || ( this.isAggregator() &&
this.project.isExecutionRoot() ) )
{
- List sourcePaths = getSourcePaths();
+ List sourcePaths;
+ try
+ {
+ sourcePaths = getSourcePaths();
+ }
+ catch ( MavenReportException e )
+ {
+ getLog().error( e.getMessage(), e );
+ return false;
+ }
List files = getFiles( sourcePaths );
Modified:
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocUtil.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocUtil.java?rev=931686&r1=931685&r2=931686&view=diff
==============================================================================
---
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocUtil.java
(original)
+++
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/JavadocUtil.java
Wed Apr 7 21:01:37 2010
@@ -108,7 +108,7 @@ public class JavadocUtil
* @param dirs the list of <code>String</code> directories path that will
be validated.
* @return a List of valid <code>String</code> directories absolute paths.
*/
- protected static List pruneDirs( MavenProject project, List dirs )
+ public static List pruneDirs( MavenProject project, List dirs )
{
List pruned = new ArrayList( dirs.size() );
for ( Iterator i = dirs.iterator(); i.hasNext(); )
Modified:
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocJar.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocJar.java?rev=931686&r1=931685&r2=931686&view=diff
==============================================================================
---
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocJar.java
(original)
+++
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocJar.java
Wed Apr 7 21:01:37 2010
@@ -25,6 +25,7 @@ import java.util.Collections;
import java.util.List;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
+import org.apache.maven.plugin.javadoc.resolver.SourceResolverConfig;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.StringUtils;
@@ -199,4 +200,14 @@ public class TestJavadocJar
{
return JavadocUtil.getCompileArtifacts( result.getArtifacts(), true );
}
+
+ /**
+ * Overriden to enable the resolution of -test-sources jar files.
+ *
+ * {...@inheritdoc}
+ */
+ protected SourceResolverConfig configureDependencySourceResolution( final
SourceResolverConfig config )
+ {
+ return super.configureDependencySourceResolution( config
).withoutCompileSources().withTestSources();
+ }
}
Modified:
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocReport.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocReport.java?rev=931686&r1=931685&r2=931686&view=diff
==============================================================================
---
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocReport.java
(original)
+++
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/TestJavadocReport.java
Wed Apr 7 21:01:37 2010
@@ -28,6 +28,7 @@ import java.util.Locale;
import java.util.ResourceBundle;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
+import org.apache.maven.plugin.javadoc.resolver.SourceResolverConfig;
import org.apache.maven.project.MavenProject;
import org.apache.maven.reporting.MavenReportException;
import org.codehaus.plexus.util.StringUtils;
@@ -335,4 +336,14 @@ public class TestJavadocReport
links.add( "../apidocs" );
}
}
+
+ /**
+ * Overriden to enable the resolution of -test-sources jar files.
+ *
+ * {...@inheritdoc}
+ */
+ protected SourceResolverConfig configureDependencySourceResolution( final
SourceResolverConfig config )
+ {
+ return super.configureDependencySourceResolution( config
).withoutCompileSources().withTestSources();
+ }
}
Added:
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/resolver/ResourceResolver.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/resolver/ResourceResolver.java?rev=931686&view=auto
==============================================================================
---
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/resolver/ResourceResolver.java
(added)
+++
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/resolver/ResourceResolver.java
Wed Apr 7 21:01:37 2010
@@ -0,0 +1,226 @@
+package org.apache.maven.plugin.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.DefaultArtifact;
+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.plugin.javadoc.JavadocUtil;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.UnArchiver;
+import org.codehaus.plexus.archiver.manager.NoSuchArchiverException;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+public final class ResourceResolver
+{
+
+ private ResourceResolver()
+ {
+ }
+
+ @SuppressWarnings( "unchecked" )
+ public static List<String> resolveSourceDirs( final SourceResolverConfig
config )
+ throws ArtifactResolutionException, ArtifactNotFoundException
+ {
+ final List<String> dirs = new ArrayList<String>();
+
+ // dirs.addAll( resolveFromProject( config, config.project(),
config.project().getArtifact() ) );
+
+ 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<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 && !config.filter().include( artifact
) )
+ {
+ continue;
+ }
+
+ if ( config.includeCompileSources() )
+ {
+ toResolve.add( createSourceArtifact( artifact, "sources",
config ) );
+ }
+
+ if ( config.includeTestSources() )
+ {
+ toResolve.add( createSourceArtifact( artifact, "test-sources",
config ) );
+ }
+ }
+
+ return resolveAndUnpack( toResolve, config );
+ }
+
+ public static Artifact createSourceArtifact( final Artifact artifact,
final String classifier,
+ final SourceResolverConfig
config )
+ {
+ final DefaultArtifact a =
+ (DefaultArtifact)
config.artifactFactory().createArtifactWithClassifier( artifact.getGroupId(),
+
artifact.getArtifactId(),
+
artifact.getVersion(), "jar",
+
classifier );
+
+ a.setRepository( artifact.getRepository() );
+
+ return a;
+ }
+
+ @SuppressWarnings( "unchecked" )
+ private static List<String> resolveAndUnpack( final List<Artifact>
artifacts, final SourceResolverConfig config )
+ 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 ArtifactMetadataSource metadataSource =
config.artifactMetadataSource();
+ final ArtifactFilter filter = config.filter();
+
+ final ArtifactResolver resolver = config.artifactResolver();
+
+ final ArtifactResolutionResult resolutionResult =
+ resolver.resolveTransitively( artifactSet, pomArtifact, localRepo,
remoteRepos, metadataSource, filter );
+
+ final List<String> result = new ArrayList<String>( artifacts.size() );
+ for ( final Artifact a : (Collection<Artifact>)
resolutionResult.getArtifacts() )
+ {
+ if ( !"sources".equals( a.getClassifier() ) &&
!"test-sources".equals( a.getClassifier() ) )
+ {
+ continue;
+ }
+
+ final File d =
+ new File( config.outputBasedir(), a.getArtifactId() + "-" +
a.getVersion() + "-" + a.getClassifier() );
+
+ if ( !d.exists() )
+ {
+ d.mkdirs();
+ }
+
+ try
+ {
+ final UnArchiver unArchiver =
config.archiverManager().getUnArchiver( a.getType() );
+
+ unArchiver.setDestDirectory( d );
+ unArchiver.setSourceFile( a.getFile() );
+
+ unArchiver.extract();
+
+ result.add( d.getAbsolutePath() );
+ }
+ catch ( final NoSuchArchiverException e )
+ {
+ throw new ArtifactResolutionException(
+ "Failed to retrieve
valid un-archiver component: " + a.getType(),
+ a, e );
+ }
+ catch ( final ArchiverException e )
+ {
+ throw new ArtifactResolutionException( "Failed to unpack: " +
a.getId(), a, e );
+ }
+ }
+
+ return result;
+ }
+
+ @SuppressWarnings( "unchecked" )
+ private static List<String> resolveFromProject( final SourceResolverConfig
config,
+ final MavenProject
reactorProject, final Artifact artifact )
+ {
+ final List<String> dirs = new ArrayList<String>();
+
+ 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();
+ final File basedir = reactorProject.getBasedir();
+ for ( final String root : srcRoots )
+ {
+ dirs.add( new File( basedir, root ).getAbsolutePath() );
+ }
+ }
+
+ return JavadocUtil.pruneDirs( reactorProject, dirs );
+ }
+
+ private static String key( final String gid, final String aid )
+ {
+ return gid + ":" + aid;
+ }
+
+}
Propchange:
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/resolver/ResourceResolver.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/resolver/SourceResolverConfig.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/resolver/SourceResolverConfig.java?rev=931686&view=auto
==============================================================================
---
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/resolver/SourceResolverConfig.java
(added)
+++
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/resolver/SourceResolverConfig.java
Wed Apr 7 21:01:37 2010
@@ -0,0 +1,164 @@
+package org.apache.maven.plugin.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.factory.ArtifactFactory;
+import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.archiver.manager.ArchiverManager;
+
+import java.io.File;
+import java.util.List;
+
+public class SourceResolverConfig
+{
+
+ private final MavenProject project;
+
+ private ArtifactFilter filter;
+
+ private List<MavenProject> reactorProjects;
+
+ private final File outputBasedir;
+
+ private boolean compileSourceIncluded;
+
+ private boolean testSourceIncluded;
+
+ private final ArtifactRepository localRepository;
+
+ private final ArtifactResolver artifactResolver;
+
+ private final ArtifactMetadataSource artifactMetadataSource;
+
+ private final ArchiverManager archiverManager;
+
+ private final ArtifactFactory artifactFactory;
+
+ public SourceResolverConfig( final MavenProject project, final
ArtifactRepository localRepository,
+ final File outputBasedir, final
ArtifactResolver artifactResolver,
+ final ArtifactFactory artifactFactory,
+ final ArtifactMetadataSource
artifactMetadataSource,
+ final ArchiverManager archiverManager )
+ {
+ this.project = project;
+ this.localRepository = localRepository;
+ this.outputBasedir = outputBasedir;
+ this.artifactResolver = artifactResolver;
+ this.artifactFactory = artifactFactory;
+ this.artifactMetadataSource = artifactMetadataSource;
+ this.archiverManager = archiverManager;
+ }
+
+ public SourceResolverConfig withFilter( final ArtifactFilter filter )
+ {
+ this.filter = filter;
+ return this;
+ }
+
+ public SourceResolverConfig withReactorProjects( final List<MavenProject>
reactorProjects )
+ {
+ this.reactorProjects = reactorProjects;
+ return this;
+ }
+
+ public SourceResolverConfig withCompileSources()
+ {
+ compileSourceIncluded = true;
+ return this;
+ }
+
+ public SourceResolverConfig withoutCompileSources()
+ {
+ compileSourceIncluded = false;
+ return this;
+ }
+
+ public SourceResolverConfig withTestSources()
+ {
+ testSourceIncluded = true;
+ return this;
+ }
+
+ public SourceResolverConfig withoutTestSources()
+ {
+ testSourceIncluded = false;
+ return this;
+ }
+
+ public MavenProject project()
+ {
+ return project;
+ }
+
+ public ArtifactRepository localRepository()
+ {
+ return localRepository;
+ }
+
+ public ArtifactFilter filter()
+ {
+ return filter;
+ }
+
+ public List<MavenProject> reactorProjects()
+ {
+ return reactorProjects;
+ }
+
+ public File outputBasedir()
+ {
+ return outputBasedir;
+ }
+
+ public boolean includeCompileSources()
+ {
+ return compileSourceIncluded;
+ }
+
+ public boolean includeTestSources()
+ {
+ return testSourceIncluded;
+ }
+
+ public ArtifactResolver artifactResolver()
+ {
+ return artifactResolver;
+ }
+
+ public ArtifactMetadataSource artifactMetadataSource()
+ {
+ return artifactMetadataSource;
+ }
+
+ public ArchiverManager archiverManager()
+ {
+ return archiverManager;
+ }
+
+ public ArtifactFactory artifactFactory()
+ {
+ return artifactFactory;
+ }
+
+}
Propchange:
maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/resolver/SourceResolverConfig.java
------------------------------------------------------------------------------
svn:eol-style = native