You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2007/11/28 09:11:50 UTC

svn commit: r598900 - in /maven/components/trunk: maven-core/src/main/aspect/org/apache/maven/errors/ maven-core/src/main/java/org/apache/maven/errors/ maven-embedder/src/main/aspect/org/apache/maven/embedder/cache/ maven-embedder/src/main/java/org/apa...

Author: jdcasey
Date: Wed Nov 28 00:11:49 2007
New Revision: 598900

URL: http://svn.apache.org/viewvc?rev=598900&view=rev
Log:
Adding aspect-bound error reporting for BuildFailureException descendants.

Added:
    maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/AbstractCoreReporterManagerAspect.aj
    maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/BuildFailureReporterAspect.aj
    maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/CoreReporterManagerAspect.aj
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java   (with props)
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorTips.java   (with props)
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java   (with props)
    maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/AbstractProjectErrorReporterAspect.aj
      - copied, changed from r598864, maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectErrorReporterAspect.aj
Removed:
    maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectErrorReporterAspect.aj
Modified:
    maven/components/trunk/maven-embedder/src/main/aspect/org/apache/maven/embedder/cache/ErrorReportingAspect.aj
    maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java
    maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/PBEDerivativeReporterAspect.aj
    maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProfileErrorReporterAspect.aj
    maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectArtifactErrorReporterAspect.aj
    maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectIOErrorReporterAspect.aj

Added: maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/AbstractCoreReporterManagerAspect.aj
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/AbstractCoreReporterManagerAspect.aj?rev=598900&view=auto
==============================================================================
--- maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/AbstractCoreReporterManagerAspect.aj (added)
+++ maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/AbstractCoreReporterManagerAspect.aj Wed Nov 28 00:11:49 2007
@@ -0,0 +1,23 @@
+package org.apache.maven.errors;
+
+public abstract aspect AbstractCoreReporterManagerAspect
+{
+
+    private CoreErrorReporter reporter;
+
+    public void setCoreErrorReporter( CoreErrorReporter reporter )
+    {
+        this.reporter = reporter;
+    }
+
+    protected CoreErrorReporter getReporter()
+    {
+        if ( reporter == null )
+        {
+            reporter = new DefaultCoreErrorReporter();
+        }
+
+        return reporter;
+    }
+
+}

Added: maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/BuildFailureReporterAspect.aj
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/BuildFailureReporterAspect.aj?rev=598900&view=auto
==============================================================================
--- maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/BuildFailureReporterAspect.aj (added)
+++ maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/BuildFailureReporterAspect.aj Wed Nov 28 00:11:49 2007
@@ -0,0 +1,99 @@
+package org.apache.maven.errors;
+
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.lifecycle.TaskValidationResult;
+import org.apache.maven.lifecycle.LifecycleLoaderException;
+import org.apache.maven.lifecycle.LifecycleSpecificationException;
+import org.apache.maven.plugin.loader.PluginLoaderException;
+import org.apache.maven.ProjectCycleException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.lifecycle.model.MojoBinding;
+import org.apache.maven.lifecycle.LifecycleExecutor;
+import org.apache.maven.NoGoalsSpecifiedException;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.execution.ReactorManager;
+import org.apache.maven.AggregatedBuildFailureException;
+import org.apache.maven.ProjectBuildFailureException;
+import org.apache.maven.Maven;
+
+public aspect BuildFailureReporterAspect
+    extends AbstractCoreReporterManagerAspect
+{
+
+    private pointcut le_execute( MavenSession session, ReactorManager reactorManager ):
+        execution( void LifecycleExecutor+.execute( MavenSession, ReactorManager, .. ) )
+        && args( session, reactorManager, .. );
+
+    after( ReactorManager reactorManager, NoGoalsSpecifiedException err ):
+        cflow( le_execute( MavenSession, reactorManager ) )
+        && execution( NoGoalsSpecifiedException.new( .. ) )
+        && this( err )
+    {
+        getReporter().reportNoGoalsSpecifiedException( reactorManager.getTopLevelProject(), err );
+    }
+
+    private pointcut aggregatedBuildFailureException_ctor( MojoBinding binding, MojoFailureException cause ):
+        execution( AggregatedBuildFailureException.new( .., MojoBinding, MojoFailureException ) )
+        && args( .., binding, cause );
+
+    after( MavenSession session, MojoBinding binding, MojoFailureException cause ):
+        cflow( le_execute( session, ReactorManager ) )
+        && aggregatedBuildFailureException_ctor( binding, cause )
+    {
+        getReporter().reportAggregatedMojoFailureException( session, binding, cause );
+    }
+
+    private pointcut projectBuildFailureException_ctor( MojoBinding binding, MojoFailureException cause ):
+        execution( ProjectBuildFailureException.new( .., MojoBinding, MojoFailureException ) )
+        && args( .., binding, cause );
+
+    after( MavenSession session, MojoBinding binding, MojoFailureException cause ):
+        cflow( le_execute( session, ReactorManager ) )
+        && projectBuildFailureException_ctor( binding, cause )
+    {
+        getReporter().reportProjectMojoFailureException( session, binding, cause );
+    }
+
+    private pointcut mvn_createReactorManager():
+        execution( ReactorManager Maven+.createReactorManager( .. ) );
+
+    after( ProjectCycleException err ):
+        cflow( mvn_createReactorManager() )
+        && execution( ProjectCycleException.new( .. ) )
+        && this( err )
+    {
+        getReporter().reportProjectCycle( err );
+    }
+
+    private pointcut le_isTaskValid( MavenSession session, MavenProject rootProject ):
+        execution( TaskValidationResult LifecycleExecutor+.isTaskValid( .., MavenSession, MavenProject ) )
+        && args( .., session, rootProject );
+
+    before( MavenSession session, MavenProject rootProject, PluginLoaderException cause, TaskValidationResult result ):
+        cflow( le_isTaskValid( session, rootProject ) )
+        && execution( TaskValidationResult.new( .., PluginLoaderException ) )
+        && args( .., cause )
+        && this( result )
+    {
+        getReporter().reportPluginErrorWhileValidatingTask( session, rootProject, cause, result );
+    }
+
+    before( MavenSession session, MavenProject rootProject, LifecycleSpecificationException cause, TaskValidationResult result ):
+        cflow( le_isTaskValid( session, rootProject ) )
+        && execution( TaskValidationResult.new( .., LifecycleSpecificationException ) )
+        && args( .., cause )
+        && this( result )
+    {
+        getReporter().reportLifecycleSpecErrorWhileValidatingTask( session, rootProject, cause, result );
+    }
+
+    before( MavenSession session, MavenProject rootProject, LifecycleLoaderException cause, TaskValidationResult result ):
+        cflow( le_isTaskValid( session, rootProject ) )
+        && execution( TaskValidationResult.new( .., LifecycleLoaderException ) )
+        && args( .., cause )
+        && this( result )
+    {
+        getReporter().reportLifecycleLoaderErrorWhileValidatingTask( session, rootProject, cause, result );
+    }
+
+}

Added: maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/CoreReporterManagerAspect.aj
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/CoreReporterManagerAspect.aj?rev=598900&view=auto
==============================================================================
--- maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/CoreReporterManagerAspect.aj (added)
+++ maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/CoreReporterManagerAspect.aj Wed Nov 28 00:11:49 2007
@@ -0,0 +1,14 @@
+package org.apache.maven.errors;
+
+import org.aspectj.lang.Aspects;
+
+public aspect CoreReporterManagerAspect
+{
+
+    public void setReporter( CoreErrorReporter reporter )
+    {
+        BuildFailureReporterAspect buildFailureReporterAspect = (BuildFailureReporterAspect) Aspects.aspectOf( BuildFailureReporterAspect.class );
+        buildFailureReporterAspect.setCoreErrorReporter( reporter );
+    }
+
+}

Added: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java?rev=598900&view=auto
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java (added)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java Wed Nov 28 00:11:49 2007
@@ -0,0 +1,41 @@
+package org.apache.maven.errors;
+
+import org.apache.maven.NoGoalsSpecifiedException;
+import org.apache.maven.ProjectCycleException;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.lifecycle.LifecycleLoaderException;
+import org.apache.maven.lifecycle.LifecycleSpecificationException;
+import org.apache.maven.lifecycle.TaskValidationResult;
+import org.apache.maven.lifecycle.model.MojoBinding;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.loader.PluginLoaderException;
+import org.apache.maven.project.MavenProject;
+
+public interface CoreErrorReporter
+{
+
+    String NEWLINE = "\n";
+
+    void clearErrors();
+
+    String getFormattedMessage( Throwable error );
+
+    Throwable getRealCause( Throwable error );
+
+    Throwable findReportedException( Throwable error );
+
+    void reportNoGoalsSpecifiedException( MavenProject rootProject, NoGoalsSpecifiedException error );
+
+    void reportAggregatedMojoFailureException( MavenSession session, MojoBinding binding, MojoFailureException cause );
+
+    void reportProjectMojoFailureException( MavenSession session, MojoBinding binding, MojoFailureException cause );
+
+    void reportProjectCycle( ProjectCycleException error );
+
+    void reportPluginErrorWhileValidatingTask( MavenSession session, MavenProject rootProject, PluginLoaderException cause, TaskValidationResult result );
+
+    void reportLifecycleSpecErrorWhileValidatingTask( MavenSession session, MavenProject rootProject, LifecycleSpecificationException cause, TaskValidationResult result );
+
+    void reportLifecycleLoaderErrorWhileValidatingTask( MavenSession session, MavenProject rootProject, LifecycleLoaderException cause, TaskValidationResult result );
+
+}

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorTips.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorTips.java?rev=598900&view=auto
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorTips.java (added)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorTips.java Wed Nov 28 00:11:49 2007
@@ -0,0 +1,52 @@
+package org.apache.maven.errors;
+
+import org.apache.maven.ProjectCycleException;
+import org.apache.maven.lifecycle.TaskValidationResult;
+import org.apache.maven.lifecycle.model.MojoBinding;
+
+import java.util.Arrays;
+import java.util.List;
+
+// NOTE: The strange String[] syntax is a backward adaptation from java5 stuff, where
+// I was using varargs in listOf(..). I'm not moving them to constants because I'd like
+// to go back to this someday...
+
+// TODO: Optimize the String[] instances in here to List constants, and remove listOf(..)
+public final class CoreErrorTips
+{
+
+    private static final List NO_GOALS_TIPS = Arrays.asList( new String[] {
+        "Maven in 5 Minutes guide (http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html)",
+        "Maven User's documentation (http://maven.apache.org/users/)",
+        "Maven Plugins page (http://maven.apache.org/plugins/)",
+        "CodeHaus Mojos Project page (http://mojo.codehaus.org/plugins.html)"
+    } );
+
+    private CoreErrorTips()
+    {
+    }
+
+    public static List getNoGoalsTips()
+    {
+        return NO_GOALS_TIPS;
+    }
+
+    public static List getMojoFailureTips( MojoBinding binding )
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public static List getProjectCycleTips( ProjectCycleException error )
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public static List getTaskValidationTips( TaskValidationResult result, Exception cause )
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+}

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorTips.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorTips.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java?rev=598900&view=auto
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java (added)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java Wed Nov 28 00:11:49 2007
@@ -0,0 +1,327 @@
+package org.apache.maven.errors;
+
+import org.apache.maven.NoGoalsSpecifiedException;
+import org.apache.maven.ProjectCycleException;
+import org.apache.maven.artifact.ArtifactUtils;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.lifecycle.LifecycleLoaderException;
+import org.apache.maven.lifecycle.LifecycleSpecificationException;
+import org.apache.maven.lifecycle.MojoBindingUtils;
+import org.apache.maven.lifecycle.TaskValidationResult;
+import org.apache.maven.lifecycle.model.MojoBinding;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.loader.PluginLoaderException;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.dag.CycleDetectedException;
+
+import java.io.StringWriter;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+public class DefaultCoreErrorReporter
+    implements CoreErrorReporter
+{
+
+    private Map formattedMessages = new HashMap();
+
+    private Map realCauses = new HashMap();
+
+    /**
+     * @see org.apache.maven.project.error.ProjectErrorReporter#clearErrors()
+     */
+    public void clearErrors()
+    {
+        formattedMessages.clear();
+        realCauses.clear();
+    }
+
+    /**
+     * @see org.apache.maven.project.error.ProjectErrorReporter#hasInformationFor(java.lang.Throwable)
+     */
+    public Throwable findReportedException( Throwable error )
+    {
+        if ( formattedMessages.containsKey( error ) )
+        {
+            return error;
+        }
+        else if ( error.getCause() != null )
+        {
+            return findReportedException( error.getCause() );
+        }
+
+        return null;
+    }
+
+    /**
+     * @see org.apache.maven.project.error.ProjectErrorReporter#getFormattedMessage(java.lang.Throwable)
+     */
+    public String getFormattedMessage( Throwable error )
+    {
+        return (String) formattedMessages.get( error );
+    }
+
+    /**
+     * @see org.apache.maven.project.error.ProjectErrorReporter#getRealCause(java.lang.Throwable)
+     */
+    public Throwable getRealCause( Throwable error )
+    {
+        return (Throwable) realCauses.get( error );
+    }
+
+    private void registerBuildError( Throwable error,
+                                     String formattedMessage,
+                                     Throwable realCause )
+    {
+        formattedMessages.put( error, formattedMessage );
+        if ( realCause != null )
+        {
+            realCauses.put( error, realCause );
+        }
+    }
+
+    private void registerBuildError( Throwable error,
+                                     String formattedMessage )
+    {
+        formattedMessages.put( error, formattedMessage );
+    }
+
+    public void reportNoGoalsSpecifiedException( MavenProject rootProject, NoGoalsSpecifiedException error )
+    {
+        StringWriter writer = new StringWriter();
+
+        writer.write( NEWLINE );
+        writer.write( "You have not specified any goals or lifecycle phases for Maven to execute." );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+        writer.write( "Either specify a goal or lifecycle phase on the command line" );
+        writer.write( NEWLINE );
+        writer.write( "(you may want to try \'package\' to get started), or configure the " );
+        writer.write( NEWLINE );
+        writer.write( "<defaultGoal/> element in the build section of your project POM." );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+        writer.write( "NOTE: You can also chain multiple goals/phases together, as in the following example:" );
+        writer.write( NEWLINE );
+        writer.write( "mvn clean package" );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+
+        addTips( CoreErrorTips.getNoGoalsTips(), writer );
+
+        registerBuildError( error, writer.toString() );
+    }
+
+    private void addTips( List tips,
+                          StringWriter writer )
+    {
+        if ( ( tips != null ) && !tips.isEmpty() )
+        {
+            writer.write( NEWLINE );
+            writer.write( NEWLINE );
+            writer.write( "Some tips:" );
+            for ( Iterator it = tips.iterator(); it.hasNext(); )
+            {
+                String tip = (String) it.next();
+
+                writer.write( NEWLINE );
+                writer.write( "\t- " );
+                writer.write( tip );
+            }
+        }
+    }
+
+    public void reportAggregatedMojoFailureException( MavenSession session,
+                                                      MojoBinding binding,
+                                                      MojoFailureException cause )
+    {
+        StringWriter writer = new StringWriter();
+
+        writer.write( NEWLINE );
+        writer.write( "Mojo (aggregator): " );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+        writer.write( "    " );
+        writer.write( MojoBindingUtils.toString( binding ) );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+        writer.write( "FAILED while executing in directory:" );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+        writer.write( "    " );
+        writer.write( session.getExecutionRootDirectory() );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+        writer.write( "Reason:" );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+
+        handleMojoFailureException( cause, writer );
+
+        addTips( CoreErrorTips.getMojoFailureTips( binding ), writer );
+
+        registerBuildError( cause, writer.toString(), cause.getCause() );
+    }
+
+    public void reportProjectMojoFailureException( MavenSession session,
+                                                   MojoBinding binding,
+                                                   MojoFailureException cause )
+    {
+        StringWriter writer = new StringWriter();
+
+        writer.write( NEWLINE );
+        writer.write( "Mojo: " );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+        writer.write( "    " );
+        writer.write( MojoBindingUtils.toString( binding ) );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+        writer.write( "FAILED for project: " );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+        writer.write( "    " );
+        writer.write( session.getCurrentProject().getId() );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+        writer.write( "Reason:" );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+
+        handleMojoFailureException( cause, writer );
+
+        addTips( CoreErrorTips.getMojoFailureTips( binding ), writer );
+
+        registerBuildError( cause, writer.toString(), cause.getCause() );
+    }
+
+    private void handleMojoFailureException( MojoFailureException error,
+                                             StringWriter writer )
+    {
+        String message = error.getLongMessage();
+        if ( message == null )
+        {
+            message = error.getMessage();
+        }
+
+        writer.write( message );
+        writer.write( NEWLINE );
+    }
+
+    public void reportProjectCycle( ProjectCycleException error )
+    {
+        StringWriter writer = new StringWriter();
+
+        writer.write( NEWLINE );
+        writer.write( "Maven has detected a cyclic relationship among a set of projects in the current build." );
+        writer.write( NEWLINE );
+        writer.write( "The projects involved are:" );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+
+        List projects = error.getProjects();
+        Map projectsByVersionlessId = new HashMap();
+        for ( Iterator it = projects.iterator(); it.hasNext(); )
+        {
+            MavenProject project = (MavenProject) it.next();
+            projectsByVersionlessId.put( ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() ), project );
+        }
+
+        CycleDetectedException cause = (CycleDetectedException) error.getCause();
+        List cycle = cause.getCycle();
+        for ( Iterator it = cycle.iterator(); it.hasNext(); )
+        {
+            String id = (String) it.next();
+            MavenProject project = (MavenProject) projectsByVersionlessId.get( id );
+
+            writer.write( "- " );
+            writer.write( project.getId() );
+            writer.write( " (path: " );
+            writer.write( project.getFile().getPath() );
+            writer.write( ")" );
+            writer.write( NEWLINE );
+        }
+
+        writer.write( NEWLINE );
+        writer.write( "NOTE: This cycle usually indicates two projects listing one another as dependencies, but" );
+        writer.write( NEWLINE );
+        writer.write( "may also indicate one project using another as a parent, plugin, or extension." );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+
+        addTips( CoreErrorTips.getProjectCycleTips( error ), writer );
+
+        registerBuildError( error, writer.toString(), cause );
+    }
+
+    public void reportLifecycleLoaderErrorWhileValidatingTask( MavenSession session,
+                                                               MavenProject rootProject,
+                                                               LifecycleLoaderException cause,
+                                                               TaskValidationResult result )
+    {
+        StringWriter writer = new StringWriter();
+
+        writer.write( NEWLINE );
+        writer.write( "Invalid mojo or lifecycle phase: " );
+        writer.write( result.getInvalidTask() );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+
+        writer.write( "Original error message was: " );
+        writer.write( cause.getMessage() );
+
+        addTips( CoreErrorTips.getTaskValidationTips( result, cause ), writer );
+
+        registerBuildError( cause, writer.toString(), cause.getCause() );
+    }
+
+    public void reportLifecycleSpecErrorWhileValidatingTask( MavenSession session,
+                                                             MavenProject rootProject,
+                                                             LifecycleSpecificationException cause,
+                                                             TaskValidationResult result )
+    {
+        StringWriter writer = new StringWriter();
+
+        writer.write( NEWLINE );
+        writer.write( "Invalid mojo or lifecycle phase: " );
+        writer.write( result.getInvalidTask() );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+
+        writer.write( "Original error message was: " );
+        writer.write( cause.getMessage() );
+
+        addTips( CoreErrorTips.getTaskValidationTips( result, cause ), writer );
+
+        registerBuildError( cause, writer.toString(), cause.getCause() );
+    }
+
+    public void reportPluginErrorWhileValidatingTask( MavenSession session,
+                                                      MavenProject rootProject,
+                                                      PluginLoaderException cause,
+                                                      TaskValidationResult result )
+    {
+        StringWriter writer = new StringWriter();
+
+        writer.write( NEWLINE );
+        writer.write( "Invalid mojo or lifecycle phase: " );
+        writer.write( result.getInvalidTask() );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+
+        writer.write( "Failed to load plugin: " );
+        writer.write( cause.getPluginKey() );
+        writer.write( NEWLINE );
+        writer.write( NEWLINE );
+
+        writer.write( "Original error message was: " );
+        writer.write( cause.getMessage() );
+
+        addTips( CoreErrorTips.getTaskValidationTips( result, cause ), writer );
+
+        registerBuildError( cause, writer.toString(), cause.getCause() );
+    }
+}

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/components/trunk/maven-embedder/src/main/aspect/org/apache/maven/embedder/cache/ErrorReportingAspect.aj
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/aspect/org/apache/maven/embedder/cache/ErrorReportingAspect.aj?rev=598900&r1=598899&r2=598900&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/main/aspect/org/apache/maven/embedder/cache/ErrorReportingAspect.aj (original)
+++ maven/components/trunk/maven-embedder/src/main/aspect/org/apache/maven/embedder/cache/ErrorReportingAspect.aj Wed Nov 28 00:11:49 2007
@@ -5,8 +5,12 @@
 import java.io.StringWriter;
 import java.io.PrintWriter;
 
+import org.apache.maven.BuildFailureException;
 import org.apache.maven.cli.CLIReportingUtils;
 import org.apache.maven.embedder.MavenEmbedder;
+import org.apache.maven.errors.CoreErrorReporter;
+import org.apache.maven.errors.CoreReporterManagerAspect;
+import org.apache.maven.errors.DefaultCoreErrorReporter;
 import org.apache.maven.execution.MavenExecutionResult;
 import org.apache.maven.project.aspect.ProjectReporterManagerAspect;
 import org.apache.maven.project.error.DefaultProjectErrorReporter;
@@ -18,9 +22,12 @@
 
     private ProjectErrorReporter projectErrorReporter;
 
+    private CoreErrorReporter coreErrorReporter;
+
     private pointcut embedderCalls():
         execution( public MavenExecutionResult MavenEmbedder.*( .. ) );
 
+    // TODO: Use MavenExecutionRequest to allow configuration of the reporters to be used.
     before():
         embedderCalls() && !cflow( embedderCalls() )
     {
@@ -28,32 +35,23 @@
 
         ProjectReporterManagerAspect prma = (ProjectReporterManagerAspect) Aspects.aspectOf( ProjectReporterManagerAspect.class );
         prma.setReporter( projectErrorReporter );
-    }
 
-    private pointcut cliReportingUtilsCalls():
-        execution( * CLIReportingUtils.*( .. ) );
+        coreErrorReporter = new DefaultCoreErrorReporter();
 
-    before():
-        cliReportingUtilsCalls()
-        && !cflow( cliReportingUtilsCalls() )
-        && !cflow( embedderCalls() )
-    {
-        projectErrorReporter = new DefaultProjectErrorReporter();
-
-        ProjectReporterManagerAspect prma = (ProjectReporterManagerAspect) Aspects.aspectOf( ProjectReporterManagerAspect.class );
-        prma.setReporter( projectErrorReporter );
+        CoreReporterManagerAspect crma = (CoreReporterManagerAspect) Aspects.aspectOf( CoreReporterManagerAspect.class );
+        crma.setReporter( coreErrorReporter );
     }
 
     boolean around( ProjectBuildingException e, boolean showStackTraces, StringWriter writer ):
         execution( private static boolean CLIReportingUtils.handleProjectBuildingException( ProjectBuildingException, boolean, StringWriter ) )
         && args( e, showStackTraces, writer )
     {
-//        if ( projectErrorReporter == null )
-//        {
-//            return proceed( e, showStackTraces, writer );
-//        }
-//        else
-//        {
+        if ( projectErrorReporter == null )
+        {
+            return proceed( e, showStackTraces, writer );
+        }
+        else
+        {
             Throwable reportingError = projectErrorReporter.findReportedException( e );
 
             boolean result = false;
@@ -81,7 +79,47 @@
             }
 
             return result;
-//        }
+        }
+    }
+
+    boolean around( BuildFailureException e, boolean showStackTraces, StringWriter writer ):
+        execution( private static boolean CLIReportingUtils.handleBuildFailureException( BuildFailureException, boolean, StringWriter ) )
+        && args( e, showStackTraces, writer )
+    {
+        if ( coreErrorReporter == null )
+        {
+            return proceed( e, showStackTraces, writer );
+        }
+        else
+        {
+            Throwable reportingError = coreErrorReporter.findReportedException( e );
+
+            boolean result = false;
+
+            if ( reportingError != null )
+            {
+                writer.write( coreErrorReporter.getFormattedMessage( reportingError ) );
+
+                if ( showStackTraces )
+                {
+                    writer.write( CLIReportingUtils.NEWLINE );
+                    writer.write( CLIReportingUtils.NEWLINE );
+                    Throwable cause = coreErrorReporter.getRealCause( reportingError );
+                    cause.printStackTrace( new PrintWriter( writer ) );
+                }
+
+                writer.write( CLIReportingUtils.NEWLINE );
+                writer.write( CLIReportingUtils.NEWLINE );
+
+                result = true;
+            }
+            else
+            {
+                result = proceed( e, showStackTraces, writer );
+            }
+
+            return result;
+        }
     }
 
 }

Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java?rev=598900&r1=598899&r2=598900&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java (original)
+++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java Wed Nov 28 00:11:49 2007
@@ -1,11 +1,6 @@
 package org.apache.maven.cli;
 
-import org.apache.maven.AggregatedBuildFailureException;
 import org.apache.maven.BuildFailureException;
-import org.apache.maven.InvalidTaskException;
-import org.apache.maven.NoGoalsSpecifiedException;
-import org.apache.maven.ProjectBuildFailureException;
-import org.apache.maven.ProjectCycleException;
 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.embedder.MavenEmbedderConsoleLogger;
@@ -16,11 +11,8 @@
 import org.apache.maven.execution.ReactorManager;
 import org.apache.maven.extension.ExtensionScanningException;
 import org.apache.maven.lifecycle.LifecycleExecutionException;
-import org.apache.maven.lifecycle.MojoBindingUtils;
 import org.apache.maven.model.Plugin;
-import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugin.PluginNotFoundException;
-import org.apache.maven.plugin.loader.PluginLoaderException;
 import org.apache.maven.plugin.version.PluginVersionNotFoundException;
 import org.apache.maven.plugin.version.PluginVersionResolutionException;
 import org.apache.maven.project.DuplicateProjectException;
@@ -37,7 +29,6 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Locale;
 import java.util.Properties;
 import java.util.TimeZone;
@@ -566,192 +557,11 @@
         return result;
     }
 
+    // NOTE: This method is an aspect target.
     private static boolean handleProjectBuildingException( ProjectBuildingException e,
                                                            boolean showStackTraces,
                                                            StringWriter writer )
     {
-        // =====================================================================
-        // Cases covered:
-        // =====================================================================
-        //
-        // ProjectBuildingException(String, String, File, XmlPullParserException)
-        //
-        // ProjectBuildingException(String, String, IOException)
-        // ProjectBuildingException(String, String, File, IOException)
-        //
-        // ProjectBuildingException(String, String, ArtifactNotFoundException)
-        // ProjectBuildingException(String, String, File, ArtifactNotFoundException)
-        //
-        // ProjectBuildingException(String, String, ArtifactResolutionException)
-        // ProjectBuildingException(String, String, File, ArtifactResolutionException)
-        //
-        // ProjectBuildingException(String, String, File, ProfileActivationException)
-        //
-        // ProjectBuildingException(String, String, InvalidRepositoryException)
-        // ProjectBuildingException(String, String, File, InvalidRepositoryException)
-        //
-        // =====================================================================
-        // Subclass cases:
-        // =====================================================================
-        //
-        // InvalidProjectModelException(all)
-        // InvalidProjectVersionException(all)
-        // InvalidDependencyVersionException(all)
-
-        // Start by looking at whether we can handle the PBE as a specific sub-class of ProjectBuildingException...
-//        if ( e instanceof InvalidProjectModelException )
-//        {
-//            InvalidProjectModelException error = (InvalidProjectModelException) e;
-//
-//            writer.write( error.getMessage() );
-//            writer.write( NEWLINE );
-//            writer.write( NEWLINE );
-//            writer.write( "The following POM validation errors were detected:" );
-//            writer.write( NEWLINE );
-//
-//            for ( Iterator it = error.getValidationResult().getMessages().iterator(); it.hasNext(); )
-//            {
-//                String message = (String) it.next();
-//                writer.write( NEWLINE );
-//                writer.write( " - " );
-//                writer.write( message );
-//            }
-//
-//            writer.write( NEWLINE );
-//            writer.write( NEWLINE );
-//
-//            result = true;
-//        }
-//        else if ( e instanceof InvalidDependencyVersionException )
-//        {
-//            writer.write( NEWLINE );
-//            writer.write( "Your project declares a dependency with an invalid version." );
-//            writer.write( NEWLINE );
-//            writer.write( NEWLINE );
-//
-//            Dependency dep = ((InvalidDependencyVersionException)e).getDependency();
-//            writer.write( "Dependency:" );
-//            writer.write( NEWLINE );
-//            writer.write( "Group-Id: " );
-//            writer.write( dep.getGroupId() );
-//            writer.write( NEWLINE );
-//            writer.write( "Artifact-Id: " );
-//            writer.write( dep.getArtifactId() );
-//            writer.write( NEWLINE );
-//            writer.write( "Version: " );
-//            writer.write( dep.getVersion() );
-//            writer.write( NEWLINE );
-//            writer.write( NEWLINE );
-//
-//            writer.write( "Reason: " );
-//            writer.write( cause.getMessage() );
-//            writer.write( NEWLINE );
-//
-//            result = true;
-//        }
-        // InvalidDependencyVersionException extends from InvalidProjectVersionException, so it comes first.
-//        else if ( e instanceof InvalidProjectVersionException )
-//        {
-//            writer.write( NEWLINE );
-//            writer.write( "You have an invalid version in your POM:" );
-//            writer.write( NEWLINE );
-//            writer.write( NEWLINE );
-//            writer.write( "Location: " );
-//            writer.write( ((InvalidProjectVersionException)e).getLocationInPom() );
-//            writer.write( NEWLINE );
-//            writer.write( NEWLINE );
-//            writer.write( "Reason: " );
-//            writer.write( cause.getMessage() );
-//            writer.write( NEWLINE );
-//
-//            result = true;
-//        }
-        // now that we've sorted through all the sub-classes of ProjectBuildingException,
-        // let's look at causes of a basic PBE instance.
-//        else if ( ( cause instanceof ArtifactNotFoundException )
-//                  || ( cause instanceof ArtifactResolutionException ) )
-//        {
-//            writer.write( NEWLINE );
-//            writer.write( e.getMessage() );
-//            writer.write( NEWLINE );
-//            writer.write( NEWLINE );
-//            writer.write( "Reason: " );
-//            writer.write( cause.getMessage() );
-//            writer.write( NEWLINE );
-//
-//            result = true;
-//        }
-        // handled by aspect binding to ProjectErrorReporter now.
-//        else if ( cause instanceof ProfileActivationException )
-//        {
-//            writer.write( NEWLINE );
-//            writer.write( "Profile activation failed. One or more named profile activators may be missing." );
-//            writer.write( NEWLINE );
-//            writer.write( NEWLINE );
-//            writer.write( "Reason: " );
-//            writer.write( cause.getMessage() );
-//            writer.write( NEWLINE );
-//
-//            result = true;
-//        }
-//        else if ( cause instanceof IOException )
-//        {
-//            writer.write( NEWLINE );
-//            if ( e.getPomFile() == null )
-//            {
-//                writer.write( "Error reading built-in super POM!" );
-//            }
-//            else
-//            {
-//                writer.write( "Error reading POM." );
-//            }
-//            writer.write( NEWLINE );
-//            writer.write( NEWLINE );
-//            writer.write( cause.getMessage() );
-//            writer.write( NEWLINE );
-//        }
-//        else if ( cause instanceof XmlPullParserException )
-//        {
-//            writer.write( NEWLINE );
-//            if ( e.getPomFile() == null )
-//            {
-//                writer.write( "Error parsing built-in super POM!" );
-//            }
-//            else
-//            {
-//                writer.write( "Error parsing POM." );
-//            }
-//            writer.write( NEWLINE );
-//            writer.write( NEWLINE );
-//            writer.write( cause.getMessage() );
-//            writer.write( NEWLINE );
-//            writer.write( NEWLINE );
-//            writer.write( "Line: " );
-//            writer.write( "" + ( (XmlPullParserException) cause ).getLineNumber() );
-//            writer.write( NEWLINE );
-//            writer.write( "Column: " );
-//            writer.write( "" + ( (XmlPullParserException) cause ).getColumnNumber() );
-//            writer.write( NEWLINE );
-//
-//            result = true;
-//        }
-//        else if ( cause instanceof InvalidRepositoryException )
-//        {
-//            writer.write( NEWLINE );
-//            writer.write( "You have an invalid repository/pluginRepository declaration in your POM:" );
-//            writer.write( NEWLINE );
-//            writer.write( NEWLINE );
-//            writer.write( "Repository-Id: " );
-//            writer.write( ((InvalidRepositoryException)cause).getRepositoryId() );
-//            writer.write( NEWLINE );
-//            writer.write( NEWLINE );
-//            writer.write( "Reason: " );
-//            writer.write( cause.getMessage() );
-//            writer.write( NEWLINE );
-//
-//            result = true;
-//        }
-
         handleGenericException( e, showStackTraces, writer );
 
         writer.write( NEWLINE );
@@ -772,216 +582,12 @@
         return true;
     }
 
+    // NOTE: This method is an aspect target.
     private static boolean handleBuildFailureException( BuildFailureException e,
                                                         boolean showStackTraces,
                                                         StringWriter writer )
     {
-        // =====================================================================
-        // Cases covered (listed exceptions extend BuildFailureException):
-        // =====================================================================
-        //
-        // AggregatedBuildFailureException(String, MojoBinding, MojoFailureException)
-        //
-        // InvalidTaskException(TaskValidationResult, LifecycleLoaderException)
-        // InvalidTaskException(TaskValidationResult, LifecycleSpecificationException)
-        // InvalidTaskException(TaskValidationResult, PluginLoaderException)
-        //
-        // NoGoalsSpecifiedException(String)
-        //
-        // ProjectBuildFailureException(String, MojoBinding, MojoFailureException)
-        //
-        // ProjectCycleException(List, String, CycleDetectedException)
-
-        if ( e instanceof NoGoalsSpecifiedException )
-        {
-            writer.write( NEWLINE );
-            writer.write( "You have not specified any goals or lifecycle phases for Maven to execute." );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-            writer.write( "Please, either specify a goal or lifecycle phase on the command line" );
-            writer.write( NEWLINE );
-            writer.write( "(you may want to try \'package\' to get started), or configure the " );
-            writer.write( NEWLINE );
-            writer.write( "<defaultGoal/> element in the build section of your project POM." );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-            writer.write( "NOTE: You can also chain multiple goals/phases together, as in the following example:" );
-            writer.write( NEWLINE );
-            writer.write( "mvn clean package" );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-            writer.write( "For more information about which goals and phases are available, see the following:" );
-            writer.write( NEWLINE );
-            writer.write( "- Maven in 5 Minutes guide (http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html)" );
-            writer.write( NEWLINE );
-            writer.write( "- Maven User's documentation (http://maven.apache.org/users/)" );
-            writer.write( NEWLINE );
-            writer.write( "- Maven Plugins page (http://maven.apache.org/plugins/)" );
-            writer.write( NEWLINE );
-            writer.write( "- CodeHaus Mojos Project page (http://mojo.codehaus.org/plugins.html)" );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-
-            return true;
-        }
-        else if ( e instanceof AggregatedBuildFailureException )
-        {
-            writer.write( NEWLINE );
-            writer.write( "Mojo (aggregator): " );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-            writer.write( "    " );
-            writer.write( MojoBindingUtils.toString( ( (AggregatedBuildFailureException) e ).getBinding() ) );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-            writer.write( "FAILED while executing in directory:" );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-            writer.write( "    " );
-            writer.write( ( (AggregatedBuildFailureException) e ).getExecutionRootDirectory() );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-            writer.write( "Reason:" );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-
-            handleMojoFailureException( ( (AggregatedBuildFailureException) e ).getMojoFailureException(),
-                                        writer );
-
-            return true;
-        }
-        else if ( e instanceof ProjectBuildFailureException )
-        {
-            writer.write( NEWLINE );
-            writer.write( "Mojo: " );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-            writer.write( "    " );
-            writer.write( MojoBindingUtils.toString( ( (ProjectBuildFailureException) e ).getBinding() ) );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-            writer.write( "FAILED for project: " );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-            writer.write( "    " );
-            writer.write( ( (ProjectBuildFailureException) e ).getProjectId() );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-            writer.write( "Reason:" );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-
-            handleMojoFailureException( ( (ProjectBuildFailureException) e ).getMojoFailureException(),
-                                        writer );
-
-            return true;
-        }
-        else if ( e instanceof InvalidTaskException )
-        {
-            String task = ( (InvalidTaskException) e ).getTask();
-            Throwable cause = e.getCause();
-
-            writer.write( NEWLINE );
-            writer.write( "Invalid mojo or lifecycle phase: " );
-            writer.write( task );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-
-            if ( cause instanceof PluginLoaderException )
-            {
-                writer.write( "Failed to load plugin: " );
-                writer.write( ( (PluginLoaderException) cause ).getPluginKey() );
-                writer.write( NEWLINE );
-                writer.write( NEWLINE );
-            }
-            else
-            {
-                writer.write( "Error message was: " );
-                writer.write( e.getMessage() );
-                writer.write( NEWLINE );
-                writer.write( NEWLINE );
-
-            }
-
-            if ( showStackTraces )
-            {
-                writer.write( "Original error:" );
-                writer.write( NEWLINE );
-                writer.write( NEWLINE );
-                handleGenericException( cause, showStackTraces, writer );
-            }
-            else
-            {
-                writer.write( "Original error message was: " );
-                writer.write( cause.getMessage() );
-                writer.write( NEWLINE );
-                writer.write( NEWLINE );
-            }
-
-            return true;
-        }
-        else if ( e instanceof ProjectCycleException )
-        {
-            writer.write( NEWLINE );
-            writer.write( "Maven has detected a cyclic relationship among a set of projects in the current build." );
-            writer.write( NEWLINE );
-            writer.write( "The projects involved are:" );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-
-            List projects = ( (ProjectCycleException) e ).getProjects();
-            for ( Iterator it = projects.iterator(); it.hasNext(); )
-            {
-                MavenProject project = (MavenProject) it.next();
-                writer.write( "- " );
-                writer.write( project.getId() );
-                writer.write( " (path: " );
-                writer.write( project.getFile().getPath() );
-                writer.write( ")" );
-                writer.write( NEWLINE );
-            }
-
-            writer.write( NEWLINE );
-            writer.write( "NOTE: This cycle usually indicates two projects listing one another as dependencies, but" );
-            writer.write( NEWLINE );
-            writer.write( "may also indicate one project using another as a parent, plugin, or extension." );
-            writer.write( NEWLINE );
-            writer.write( NEWLINE );
-
-            if ( showStackTraces )
-            {
-                writer.write( "Original error:" );
-                writer.write( NEWLINE );
-                writer.write( NEWLINE );
-
-                handleGenericException( ( (ProjectCycleException) e ).getCause(),
-                                        showStackTraces,
-                                        writer );
-
-                writer.write( NEWLINE );
-                writer.write( NEWLINE );
-            }
-
-            return true;
-        }
-
-        return false;
-    }
-
-    private static boolean handleMojoFailureException( MojoFailureException error,
-                                                       StringWriter writer )
-    {
-        String message = error.getLongMessage();
-        if ( message == null )
-        {
-            message = error.getMessage();
-        }
-
-        writer.write( message );
-        writer.write( NEWLINE );
-
+        handleGenericException( e, showStackTraces, writer );
         return true;
     }
 

Copied: maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/AbstractProjectErrorReporterAspect.aj (from r598864, maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectErrorReporterAspect.aj)
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/AbstractProjectErrorReporterAspect.aj?p2=maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/AbstractProjectErrorReporterAspect.aj&p1=maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectErrorReporterAspect.aj&r1=598864&r2=598900&rev=598900&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectErrorReporterAspect.aj (original)
+++ maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/AbstractProjectErrorReporterAspect.aj Wed Nov 28 00:11:49 2007
@@ -3,7 +3,7 @@
 import org.apache.maven.project.error.DefaultProjectErrorReporter;
 import org.apache.maven.project.error.ProjectErrorReporter;
 
-public abstract aspect ProjectErrorReporterAspect
+public abstract aspect AbstractProjectErrorReporterAspect
 {
 
     private ProjectErrorReporter reporter;

Modified: maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/PBEDerivativeReporterAspect.aj
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/PBEDerivativeReporterAspect.aj?rev=598900&r1=598899&r2=598900&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/PBEDerivativeReporterAspect.aj (original)
+++ maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/PBEDerivativeReporterAspect.aj Wed Nov 28 00:11:49 2007
@@ -20,7 +20,7 @@
 import java.util.Set;
 
 public privileged aspect PBEDerivativeReporterAspect
-    extends ProjectErrorReporterAspect
+    extends AbstractProjectErrorReporterAspect
 {
 
     // UnknownRepositoryLayoutException

Modified: maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProfileErrorReporterAspect.aj
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProfileErrorReporterAspect.aj?rev=598900&r1=598899&r2=598900&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProfileErrorReporterAspect.aj (original)
+++ maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProfileErrorReporterAspect.aj Wed Nov 28 00:11:49 2007
@@ -1,8 +1,6 @@
 package org.apache.maven.project.aspect;
 
 import org.apache.maven.project.ProjectBuildingException;
-import org.apache.maven.project.error.DefaultProjectErrorReporter;
-import org.apache.maven.project.error.ProjectErrorReporter;
 import org.apache.maven.profiles.activation.ProfileActivator;
 import org.apache.maven.artifact.InvalidRepositoryException;
 import org.apache.maven.model.Model;
@@ -31,7 +29,7 @@
  * coming from {@link DefaultProfileAdvisor}.
  */
 public privileged aspect ProfileErrorReporterAspect
-    extends ProjectErrorReporterAspect
+    extends AbstractProjectErrorReporterAspect
 {
 
     protected pointcut componentLookupException( ComponentLookupException cause ):

Modified: maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectArtifactErrorReporterAspect.aj
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectArtifactErrorReporterAspect.aj?rev=598900&r1=598899&r2=598900&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectArtifactErrorReporterAspect.aj (original)
+++ maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectArtifactErrorReporterAspect.aj Wed Nov 28 00:11:49 2007
@@ -10,7 +10,7 @@
 import java.util.List;
 
 public privileged aspect ProjectArtifactErrorReporterAspect
-    extends ProjectErrorReporterAspect
+    extends AbstractProjectErrorReporterAspect
 {
 
     private pointcut mlbldr_resolveParentFromRepositories( Parent parentRef, ArtifactRepository localRepo,

Modified: maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectIOErrorReporterAspect.aj
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectIOErrorReporterAspect.aj?rev=598900&r1=598899&r2=598900&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectIOErrorReporterAspect.aj (original)
+++ maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectIOErrorReporterAspect.aj Wed Nov 28 00:11:49 2007
@@ -9,7 +9,7 @@
 import java.io.IOException;
 
 public privileged aspect ProjectIOErrorReporterAspect
-    extends ProjectErrorReporterAspect
+    extends AbstractProjectErrorReporterAspect
 {
 
     private pointcut pbldr_readProject( String projectId, File pomFile ):