Author: brett
Date: Mon Jun 6 21:41:54 2005
New Revision: 188690
URL: http://svn.apache.org/viewcvs?rev=188690&view=rev
Log:
PR: MNG-366
reverse the reference. DoxiaMojo depends on maven-core instead of maven-core
depending on the reporting api + doxia
This is not a great solution, but it gets us closer. It is currently not
possible, as before, to get the correct set of reports as they are all loaded
into the one container and then everything found is returned.
Modified:
maven/components/trunk/maven-core/pom.xml
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
maven/components/trunk/maven-plugins/maven-site-plugin/pom.xml
maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java
Modified: maven/components/trunk/maven-core/pom.xml
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/pom.xml?rev=188690&r1=188689&r2=188690&view=diff
==============================================================================
--- maven/components/trunk/maven-core/pom.xml (original)
+++ maven/components/trunk/maven-core/pom.xml Mon Jun 6 21:41:54 2005
@@ -54,23 +54,18 @@
<artifactId>maven-plugin-descriptor</artifactId>
<version>2.0-SNAPSHOT</version>
</dependency>
+<!-- TODO: remove
<dependency>
<groupId>org.apache.maven.reporting</groupId>
<artifactId>maven-reporting-api</artifactId>
<version>2.0-SNAPSHOT</version>
</dependency>
+-->
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.0-beta-2</version>
</dependency>
- <!-- TODO: only here for classloader issues. It used to work when the
script classes were inside the component factory...
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-script-beanshell</artifactId>
- <version>2.0-SNAPSHOT</version>
- <scope>runtime</scope>
- </dependency> -->
<dependency>
<groupId>plexus</groupId>
<artifactId>plexus-container-default</artifactId>
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=188690&r1=188689&r2=188690&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
Mon Jun 6 21:41:54 2005
@@ -234,14 +234,15 @@
PluginDescriptor pluginDescriptor;
try
{
- pluginDescriptor = pluginManager.verifyPlugin( groupId,
artifactId, version, session );
+ pluginDescriptor = pluginManager.verifyPlugin( groupId,
artifactId, version, session.getProject(),
+
session.getLocalRepository() );
}
catch ( PluginManagerException e )
{
throw new LifecycleExecutionException( "Internal error in the
plugin manager", e );
}
-
- if( plugin.isInheritanceApplied() ||
pluginDescriptor.isInheritedByDefault() )
+
+ if ( plugin.isInheritanceApplied() ||
pluginDescriptor.isInheritedByDefault() )
{
//
----------------------------------------------------------------------
// Look to see if the plugin configuration specifies particular
mojos
@@ -250,7 +251,7 @@
//
----------------------------------------------------------------------
Map goalMap = plugin.getGoalsAsMap();
-
+
if ( pluginDescriptor.getMojos() != null )
{
for ( Iterator j = pluginDescriptor.getMojos().iterator();
j.hasNext(); )
@@ -263,17 +264,17 @@
throw new LifecycleExecutionException(
"The plugin " + artifactId + " was built with an
older version of Maven" );
}
-
+
Goal goal = (Goal) goalMap.get( mojoDescriptor.getGoal() );
- if( goalMap.isEmpty() )
+ if ( goalMap.isEmpty() )
{
configureMojoPhaseBinding( mojoDescriptor, phaseMap,
session.getSettings() );
}
else if ( goal != null )
{
// We have to check to see that the inheritance rules
have been applied before binding this mojo.
- if( goal.isInheritanceApplied() ||
mojoDescriptor.isInheritedByDefault() )
+ if ( goal.isInheritanceApplied() ||
mojoDescriptor.isInheritedByDefault() )
{
configureMojoPhaseBinding( mojoDescriptor,
phaseMap, session.getSettings() );
}
@@ -405,7 +406,9 @@
{
injectHandlerPluginConfiguration( session.getProject(),
groupId, artifactId, version );
- pluginDescriptor = pluginManager.verifyPlugin( groupId,
artifactId, version, session );
+ pluginDescriptor =
+ pluginManager.verifyPlugin( groupId, artifactId, version,
session.getProject(),
+ session.getLocalRepository() );
}
catch ( PluginManagerException e )
{
@@ -434,7 +437,7 @@
}
else
{
- throw new LifecycleExecutionException( "The plugin " +
pluginDescriptor.getGroupId() + ":" +
+ throw new LifecycleExecutionException( "The plugin " +
pluginDescriptor.getGroupId() + ":" +
pluginDescriptor.getArtifactId() + ":" +
pluginDescriptor.getVersion() +
" doesn't contain any mojo.
Check if it isn't corrupted." );
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=188690&r1=188689&r2=188690&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
Mon Jun 6 21:41:54 2005
@@ -18,6 +18,7 @@
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.ArtifactResolver;
@@ -26,6 +27,7 @@
import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
import org.apache.maven.artifact.transform.ReleaseArtifactTransformation;
import org.apache.maven.execution.MavenSession;
+import org.apache.maven.model.Plugin;
import org.apache.maven.monitor.event.EventDispatcher;
import org.apache.maven.monitor.event.MavenEvents;
import org.apache.maven.monitor.logging.DefaultLog;
@@ -173,22 +175,22 @@
return getPluginDescriptor( prefix );
}
- public PluginDescriptor verifyPlugin( String groupId, String artifactId,
String version, MavenSession session )
+ public PluginDescriptor verifyPlugin( String groupId, String artifactId,
String version, MavenProject project,
+ ArtifactRepository localRepository )
throws ArtifactResolutionException, PluginManagerException
{
String pluginKey = groupId + ":" + artifactId;
-
+
// TODO: this should be possibly outside
if ( version == null )
{
- MavenProject project = session.getProject();
- org.apache.maven.model.Plugin pluginConfig = null;
+ Plugin pluginConfig = null;
for ( Iterator it = project.getBuildPlugins().iterator();
it.hasNext(); )
{
- org.apache.maven.model.Plugin plugin =
(org.apache.maven.model.Plugin) it.next();
+ Plugin plugin = (Plugin) it.next();
if ( groupId.equals( plugin.getGroupId() ) &&
artifactId.equals( plugin.getArtifactId() ) )
{
@@ -202,7 +204,7 @@
{
for ( Iterator it =
project.getReports().getPlugins().iterator(); it.hasNext(); )
{
- org.apache.maven.model.Plugin plugin =
(org.apache.maven.model.Plugin) it.next();
+ Plugin plugin = (Plugin) it.next();
if ( groupId.equals( plugin.getGroupId() ) &&
artifactId.equals( plugin.getArtifactId() ) )
{
@@ -235,7 +237,7 @@
Artifact.SCOPE_RUNTIME,
MojoDescriptor.MAVEN_PLUGIN, null );
- addPlugin( pluginKey, pluginArtifact, session );
+ addPlugin( pluginKey, pluginArtifact, project, localRepository
);
version = pluginArtifact.getBaseVersion();
}
@@ -265,7 +267,8 @@
return getPluginDescriptor( groupId, artifactId, version );
}
- protected void addPlugin( String pluginKey, Artifact pluginArtifact,
MavenSession session )
+ protected void addPlugin( String pluginKey, Artifact pluginArtifact,
MavenProject project,
+ ArtifactRepository localRepository )
throws ArtifactResolutionException, ComponentLookupException,
PlexusContainerException
{
ArtifactResolver artifactResolver = null;
@@ -280,7 +283,7 @@
MavenMetadataSource metadataSource = new MavenMetadataSource(
artifactResolver, mavenProjectBuilder );
ArtifactResolutionResult result =
artifactResolver.resolveTransitively(
- Collections.singleton( pluginArtifact ),
session.getRemoteRepositories(), session.getLocalRepository(),
+ Collections.singleton( pluginArtifact ),
project.getRemoteArtifactRepositories(), localRepository,
metadataSource, artifactFilter );
Map resolved = result.getArtifacts();
@@ -771,13 +774,12 @@
public void initialize()
{
// TODO: configure this from bootstrap or scan lib
- artifactFilter = new ExclusionSetFilter( new String[]{/*"bsh",*/
"classworlds", "doxia-core", "maven-artifact",
+ artifactFilter = new ExclusionSetFilter( new String[]{"classworlds",
/*"doxia-core",*/ "maven-artifact",
"maven-core",
"maven-model", "maven-monitor",
"maven-plugin-api", "maven-plugin-descriptor",
- "maven-project",
"maven-reporting-api",
-
/*"maven-script-beanshell", */"maven-settings",
-
/*"plexus-bsh-factory", */"plexus-container-default",
- "plexus-utils",
"wagon-provider-api"} );
+ "maven-project",
/*"maven-reporting-api",*/ "maven-settings",
+
"plexus-container-default", "plexus-utils",
+
"wagon-provider-api"} );
}
// ----------------------------------------------------------------------
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java?rev=188690&r1=188689&r2=188690&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java
Mon Jun 6 21:41:54 2005
@@ -16,10 +16,12 @@
* limitations under the License.
*/
+import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.apache.maven.plugin.descriptor.PluginDescriptor;
+import org.apache.maven.project.MavenProject;
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl </a>
@@ -34,6 +36,7 @@
PluginDescriptor verifyPlugin( String prefix );
- PluginDescriptor verifyPlugin( String groupId, String artifactId, String
version, MavenSession session )
+ PluginDescriptor verifyPlugin( String groupId, String artifactId, String
version, MavenProject project,
+ ArtifactRepository localRepository )
throws ArtifactResolutionException, PluginManagerException;
}
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java?rev=188690&r1=188689&r2=188690&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
Mon Jun 6 21:41:54 2005
@@ -16,20 +16,14 @@
* limitations under the License.
*/
-import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.project.path.PathTranslator;
-import org.apache.maven.reporting.MavenReport;
import
org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
import
org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
-import
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.introspection.ReflectionValueExtractor;
import java.io.File;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
@@ -82,52 +76,7 @@
return expression;
}
- if ( expression.equals( "reports" ) )
- {
- String role = PluginManager.ROLE;
- try
- {
- PluginManager pluginManager = (PluginManager) context.lookup(
role );
- List reportPlugins = context.getProject().getReportPlugins();
- if ( reportPlugins != null )
- {
- for ( Iterator it = reportPlugins.iterator();
it.hasNext(); )
- {
- org.apache.maven.model.Plugin plugin =
(org.apache.maven.model.Plugin) it.next();
- pluginManager.verifyPlugin( plugin.getGroupId(),
plugin.getArtifactId(), plugin.getVersion(),
- context );
- }
- }
- }
- catch ( ComponentLookupException cle )
- {
- throw new ExpressionEvaluationException( "Cannot lookup
component: " + role + ".", cle );
- }
- catch ( ArtifactResolutionException are )
- {
- throw new ExpressionEvaluationException( "Cannot resolve
component: " + role + ".", are );
- }
- catch ( PluginManagerException pme )
- {
- throw new ExpressionEvaluationException( "Cannot verify
component: " + role + ".", pme );
- }
-
- role = MavenReport.ROLE;
- try
- {
- value = context.lookupMap( role );
- for ( Iterator i = ( (Map) value ).keySet().iterator();
i.hasNext(); )
- {
- String key = (String) i.next();
- logger.debug( key + " report is found." );
- }
- }
- catch ( ComponentLookupException cle )
- {
- throw new ExpressionEvaluationException( "Cannot lookup
component: " + role + ".", cle );
- }
- }
- else if ( expression.equals( "localRepository" ) )
+ if ( expression.equals( "localRepository" ) )
{
value = context.getLocalRepository();
}
Modified: maven/components/trunk/maven-plugins/maven-site-plugin/pom.xml
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-site-plugin/pom.xml?rev=188690&r1=188689&r2=188690&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-site-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-site-plugin/pom.xml Mon Jun 6
21:41:54 2005
@@ -11,6 +11,11 @@
<name>Maven Site plugin</name>
<dependencies>
<dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-core</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
<groupId>org.apache.maven.reporting</groupId>
<artifactId>maven-reporting-api</artifactId>
<version>2.0-SNAPSHOT</version>
Modified:
maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java?rev=188690&r1=188689&r2=188690&view=diff
==============================================================================
---
maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java
(original)
+++
maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java
Mon Jun 6 21:41:54 2005
@@ -17,8 +17,11 @@
*/
import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.PluginManager;
+import org.apache.maven.plugin.PluginManagerException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.reporting.MavenReport;
import org.apache.maven.reporting.MavenReportConfiguration;
@@ -32,6 +35,13 @@
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.StringInputStream;
import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
+import
org.codehaus.plexus.personality.plexus.lifecycle.phase.PlexusContainerLocator;
+import org.codehaus.plexus.context.Context;
+import org.codehaus.plexus.context.ContextException;
+import org.codehaus.plexus.PlexusConstants;
+import org.codehaus.plexus.PlexusContainer;
+import
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import java.io.File;
import java.io.FileOutputStream;
@@ -53,15 +63,16 @@
import java.util.StringTokenizer;
/**
- * @goal site
- * @description Doxia plugin
- * @requiresDependencyResolution test
+ * Generate the project site.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Emmanuel Venisse</a>
* @version $Id$
+ * @goal site
+ * @requiresDependencyResolution test
*/
public class DoxiaMojo
extends AbstractMojo
+ implements Contextualizable
{
private static final String RESOURCE_DIR = "org/apache/maven/doxia";
@@ -133,11 +144,11 @@
private MavenProject project;
/**
- * @parameter expression="${reports}"
+ * @parameter
expression="${component.org.apache.maven.plugin.PluginManager}"
* @required
* @readonly
*/
- private Map reports;
+ private PluginManager pluginManager;
/**
* @parameter expression="${localRepository}"
@@ -161,6 +172,8 @@
private List localesList = new ArrayList();
+ private PlexusContainer container;
+
public void execute()
throws MojoExecutionException
{
@@ -174,7 +187,7 @@
{
URL templateDirectoryUrl = new URL( templateDirectory );
- URL[] urls = { templateDirectoryUrl };
+ URL[] urls = {templateDirectoryUrl};
URLClassLoader urlClassloader = new URLClassLoader( urls );
@@ -186,9 +199,11 @@
}
}
+ Map reports = getReports();
+
try
{
- categorizeReports();
+ categorizeReports( reports );
if ( locales == null )
{
@@ -232,7 +247,7 @@
String outputFileName = report.getOutputName() +
".html";
SiteRendererSink sink = siteRenderer.createSink( new
File( siteDirectory ), outputFileName,
-
getSiteDescriptor( locale ) );
+
getSiteDescriptor( reports, locale ) );
report.generate( sink, locale );
@@ -243,8 +258,8 @@
outputFile.getParentFile().mkdirs();
}
- siteRenderer
- .generateDocument( new FileWriter( outputFile ),
template, attributes, sink, locale );
+ siteRenderer.generateDocument( new FileWriter(
outputFile ), template, attributes, sink,
+ locale );
}
}
@@ -253,7 +268,7 @@
{
try
{
- generateProjectInfoPage( getSiteDescriptor( locale ),
locale );
+ generateProjectInfoPage( getSiteDescriptor( reports,
locale ), locale );
}
catch ( Exception e )
{
@@ -265,19 +280,20 @@
{
try
{
- generateProjectReportsPage( getSiteDescriptor( locale
), locale );
+ generateProjectReportsPage( getSiteDescriptor(
reports, locale ), locale );
}
catch ( Exception e )
{
- throw new MojoExecutionException( "An error is
occurred in project reports page generation.", e );
+ throw new MojoExecutionException( "An error is
occurred in project reports page generation.",
+ e );
}
}
// Generate static site
- siteRenderer.render( new File( siteDirectory ),
localeOutputDirectory, getSiteDescriptor( locale ),
- template, attributes );
+ siteRenderer.render( new File( siteDirectory ),
localeOutputDirectory,
+ getSiteDescriptor( reports, locale ),
template, attributes );
siteRenderer.render( new File( generatedSiteDirectory ),
localeOutputDirectory,
- getSiteDescriptor( locale ), template,
attributes );
+ getSiteDescriptor( reports, locale ),
template, attributes );
File cssDirectory = new File( siteDirectory, "css" );
File imagesDirectory = new File( siteDirectory, "images" );
@@ -315,7 +331,7 @@
}
}
- private void categorizeReports()
+ private void categorizeReports( Map reports )
throws MojoExecutionException
{
for ( Iterator i = reports.values().iterator(); i.hasNext(); )
@@ -331,29 +347,30 @@
}
else
{
- throw new MojoExecutionException( "'" +
report.getCategoryName() + "' category define for "
- + report.getName(
defaultLocale ) + " mojo isn't valid." );
+ throw new MojoExecutionException( "'" +
report.getCategoryName() + "' category define for " +
+ report.getName(
defaultLocale ) + " mojo isn't valid." );
}
}
}
private String getReportsMenu( Locale locale )
- throws MojoExecutionException
{
StringBuffer buffer = new StringBuffer();
buffer.append( "<menu name=\"Project Documentation\">\n" );
- buffer.append( " <item name=\"" + i18n.getString( "site-plugin",
locale, "report.menu.about") + " " + project.getName() + "\"
href=\"/index.html\"/>\n" );
+ buffer.append( " <item name=\"" + i18n.getString( "site-plugin",
locale, "report.menu.about" ) + " " +
+ project.getName() + "\" href=\"/index.html\"/>\n" );
if ( projectInfos.size() > 0 )
{
- buffer.append( " <item name=\"" + i18n.getString(
"site-plugin", locale, "report.menu.projectinformation")
- + "\" href=\"/project-info.html\"
collapse=\"true\">\n" );
+ buffer.append( " <item name=\"" +
+ i18n.getString( "site-plugin", locale,
"report.menu.projectinformation" ) +
+ "\" href=\"/project-info.html\"
collapse=\"true\">\n" );
for ( Iterator i = projectInfos.iterator(); i.hasNext(); )
{
MavenReport report = (MavenReport) i.next();
- buffer.append( " <item name=\"" + report.getName(
locale ) + "\" href=\"/"
- + report.getOutputName() + ".html\"/>\n" );
+ buffer.append( " <item name=\"" + report.getName(
locale ) + "\" href=\"/" +
+ report.getOutputName() + ".html\"/>\n" );
}
buffer.append( " </item>\n" );
@@ -361,14 +378,14 @@
if ( projectReports.size() > 0 )
{
- buffer.append( " <item name=\"" + i18n.getString(
"site-plugin", locale, "report.menu.projectreports")
- + "\" href=\"/maven-reports.html\"
collapse=\"true\">\n" );
+ buffer.append( " <item name=\"" + i18n.getString(
"site-plugin", locale, "report.menu.projectreports" ) +
+ "\" href=\"/maven-reports.html\"
collapse=\"true\">\n" );
for ( Iterator i = projectReports.iterator(); i.hasNext(); )
{
MavenReport report = (MavenReport) i.next();
- buffer.append( " <item name=\"" + report.getName(
locale ) + "\" href=\"/"
- + report.getOutputName() + ".html\"/>\n" );
+ buffer.append( " <item name=\"" + report.getName(
locale ) + "\" href=\"/" +
+ report.getOutputName() + ".html\"/>\n" );
}
buffer.append( " </item>\n" );
@@ -379,7 +396,10 @@
return buffer.toString();
}
- private InputStream getSiteDescriptor( Locale locale )
+ /**
+ * @todo should only be needed once
+ */
+ private InputStream getSiteDescriptor( Map reports, Locale locale )
throws MojoExecutionException
{
File siteDescriptor = new File( siteDirectory, "site.xml" );
@@ -439,10 +459,9 @@
{
String outputFileName = "project-info.html";
- SiteRendererSink sink = siteRenderer.createSink( new File(
siteDirectory ), outputFileName,
- getSiteDescriptor(
locale ) );
+ SiteRendererSink sink = siteRenderer.createSink( new File(
siteDirectory ), outputFileName, siteDescriptor );
- String title = i18n.getString( "site-plugin", locale,
"report.information.title");
+ String title = i18n.getString( "site-plugin", locale,
"report.information.title" );
sink.head();
sink.title();
@@ -457,27 +476,27 @@
sink.sectionTitle1_();
sink.paragraph();
- sink.text( i18n.getString( "site-plugin", locale,
"report.information.description1") + " " );
+ sink.text( i18n.getString( "site-plugin", locale,
"report.information.description1" ) + " " );
sink.link( "http://maven.apache.org" );
sink.text( "Maven" );
sink.link_();
- sink.text( " " + i18n.getString( "site-plugin", locale,
"report.information.description2") );
+ sink.text( " " + i18n.getString( "site-plugin", locale,
"report.information.description2" ) );
sink.paragraph_();
sink.section2();
sink.sectionTitle2();
- sink.text( i18n.getString( "site-plugin", locale,
"report.information.sectionTitle") );
+ sink.text( i18n.getString( "site-plugin", locale,
"report.information.sectionTitle" ) );
sink.sectionTitle2_();
sink.table();
sink.tableRow();
sink.tableHeaderCell();
- sink.text( i18n.getString( "site-plugin", locale,
"report.information.column.document") );
+ sink.text( i18n.getString( "site-plugin", locale,
"report.information.column.document" ) );
sink.tableHeaderCell_();
sink.tableHeaderCell();
- sink.text( i18n.getString( "site-plugin", locale,
"report.information.column.description") );
+ sink.text( i18n.getString( "site-plugin", locale,
"report.information.column.description" ) );
sink.tableHeaderCell_();
sink.tableRow_();
@@ -518,10 +537,9 @@
{
String outputFileName = "maven-reports.html";
- SiteRendererSink sink = siteRenderer.createSink( new File(
siteDirectory ), outputFileName,
- getSiteDescriptor(
locale ) );
+ SiteRendererSink sink = siteRenderer.createSink( new File(
siteDirectory ), outputFileName, siteDescriptor );
- String title = i18n.getString( "site-plugin", locale,
"report.project.title");
+ String title = i18n.getString( "site-plugin", locale,
"report.project.title" );
sink.head();
sink.title();
@@ -536,27 +554,27 @@
sink.sectionTitle1_();
sink.paragraph();
- sink.text( i18n.getString( "site-plugin", locale,
"report.project.description1") + " " );
+ sink.text( i18n.getString( "site-plugin", locale,
"report.project.description1" ) + " " );
sink.link( "http://maven.apache.org" );
sink.text( "Maven" );
sink.link_();
- sink.text( ". " + i18n.getString( "site-plugin", locale,
"report.project.description2") );
+ sink.text( ". " + i18n.getString( "site-plugin", locale,
"report.project.description2" ) );
sink.paragraph_();
sink.section2();
sink.sectionTitle2();
- sink.text( i18n.getString( "site-plugin", locale,
"report.project.sectionTitle") );
+ sink.text( i18n.getString( "site-plugin", locale,
"report.project.sectionTitle" ) );
sink.sectionTitle2_();
sink.table();
sink.tableRow();
sink.tableHeaderCell();
- sink.text( i18n.getString( "site-plugin", locale,
"report.project.column.document") );
+ sink.text( i18n.getString( "site-plugin", locale,
"report.project.column.document" ) );
sink.tableHeaderCell_();
sink.tableHeaderCell();
- sink.text( i18n.getString( "site-plugin", locale,
"report.project.column.description") );
+ sink.text( i18n.getString( "site-plugin", locale,
"report.project.column.description" ) );
sink.tableHeaderCell_();
sink.tableRow_();
@@ -605,8 +623,8 @@
if ( is == null )
{
- throw new IOException( "The resource " + line + " doesn't
exists in " + DEFAULT_TEMPLATE
- + " template." );
+ throw new IOException( "The resource " + line + " doesn't
exists in " + DEFAULT_TEMPLATE +
+ " template." );
}
File outputFile = new File( outputDirectory, line );
@@ -640,7 +658,7 @@
{
DirectoryScanner scanner = new DirectoryScanner();
- String[] includedResources = { "**/**" };
+ String[] includedResources = {"**/**"};
scanner.setIncludes( includedResources );
@@ -657,9 +675,9 @@
String name = (String) j.next();
File sourceFile = new File( source, name );
-
+
File destinationFile = new File( destination, name );
-
+
FileUtils.copyFile( sourceFile, destinationFile );
}
}
@@ -683,5 +701,53 @@
return new File( outputDirectory, locale.getLanguage() );
}
}
+ }
+
+ private Map getReports()
+ throws MojoExecutionException
+ {
+ // TODO: not the best solution. Perhaps a mojo tag that causes the
plugin manager to populate project reports instead?
+
+ List reportPlugins = project.getReportPlugins();
+ if ( reportPlugins != null )
+ {
+ for ( Iterator it = reportPlugins.iterator(); it.hasNext(); )
+ {
+ org.apache.maven.model.Plugin plugin =
(org.apache.maven.model.Plugin) it.next();
+ try
+ {
+ pluginManager.verifyPlugin( plugin.getGroupId(),
plugin.getArtifactId(), plugin.getVersion(),
+ project, localRepository );
+ }
+ catch ( ArtifactResolutionException e )
+ {
+ throw new MojoExecutionException( "Cannot find report
plugin", e );
+ }
+ catch ( PluginManagerException e )
+ {
+ throw new MojoExecutionException( "Cannot find report
plugin", e );
+ }
+ }
+ }
+
+ // TODO: this is not good (using the container), also because it will
import every report ever loaded
+ // What we need is to be able to select individual reports and know
what reports are inside a plugin
+ // It may be better to push the report section in the pom back to
"plugins", then just have a reports list
+ // again which are role hints to look up
+
+ try
+ {
+ return container.lookupMap( MavenReport.ROLE );
+ }
+ catch ( ComponentLookupException e )
+ {
+ throw new MojoExecutionException( "Unable to find reports", e );
+ }
+ }
+
+ public void contextualize( Context context )
+ throws ContextException
+ {
+ container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY
);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]