Author: jdcasey
Date: Thu Nov 29 08:33:57 2007
New Revision: 599503

URL: http://svn.apache.org/viewvc?rev=599503&view=rev
Log:
Cleaning up error reporting some for project building, and attempting to make 
the error reporter instances propagate to the aspects binding them to the error 
sources.

Added:
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreReporterManager.java
   (with props)
    
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectReporterManager.java
   (with props)
Removed:
    
maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/CoreReporterManagerAspect.aj
    
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectReporterManagerAspect.aj
Modified:
    
maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/AbstractCoreReporterManagerAspect.aj
    
maven/components/trunk/maven-embedder/src/main/aspect/org/apache/maven/embedder/cache/CacheCleanerAspect.aj
    
maven/components/trunk/maven-embedder/src/main/aspect/org/apache/maven/embedder/cache/ErrorReportingAspect.aj
    
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/AbstractProjectErrorReporterAspect.aj
    
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
    
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java

Modified: 
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=599503&r1=599502&r2=599503&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/AbstractCoreReporterManagerAspect.aj
 (original)
+++ 
maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/AbstractCoreReporterManagerAspect.aj
 Thu Nov 29 08:33:57 2007
@@ -3,21 +3,9 @@
 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;
+        return CoreReporterManager.getReporter();
     }
 
 }

Added: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreReporterManager.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreReporterManager.java?rev=599503&view=auto
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreReporterManager.java
 (added)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreReporterManager.java
 Thu Nov 29 08:33:57 2007
@@ -0,0 +1,32 @@
+package org.apache.maven.errors;
+
+public final class CoreReporterManager
+{
+
+    private static CoreErrorReporter reporter;
+
+    private CoreReporterManager()
+    {
+    }
+
+    public static CoreErrorReporter getReporter()
+    {
+        if ( reporter == null )
+        {
+            reporter = new DefaultCoreErrorReporter();
+        }
+
+        return reporter;
+    }
+
+    public static void setReporter( CoreErrorReporter instance )
+    {
+        reporter = instance;
+    }
+
+    public static void clearReporter()
+    {
+        reporter = null;
+    }
+
+}

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

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

Modified: 
maven/components/trunk/maven-embedder/src/main/aspect/org/apache/maven/embedder/cache/CacheCleanerAspect.aj
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/aspect/org/apache/maven/embedder/cache/CacheCleanerAspect.aj?rev=599503&r1=599502&r2=599503&view=diff
==============================================================================
--- 
maven/components/trunk/maven-embedder/src/main/aspect/org/apache/maven/embedder/cache/CacheCleanerAspect.aj
 (original)
+++ 
maven/components/trunk/maven-embedder/src/main/aspect/org/apache/maven/embedder/cache/CacheCleanerAspect.aj
 Thu Nov 29 08:33:57 2007
@@ -12,14 +12,6 @@
 public privileged aspect CacheCleanerAspect
 {
 
-    private pointcut executeMethod():
-        execution( * MavenEmbedder.execute( .. ) );
-
-    before(): executeMethod()
-    {
-        System.out.println( "Executing with cache-cleanup enabled." );
-    }
-
     private ModelLineageBuilder MavenEmbedder.modelLineageBuilder;
 
     private pointcut embedderStarted( MavenEmbedder embedder ):

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=599503&r1=599502&r2=599503&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
 Thu Nov 29 08:33:57 2007
@@ -9,43 +9,39 @@
 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.CoreReporterManager;
 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;
+import org.apache.maven.project.error.ProjectReporterManager;
 import org.apache.maven.project.error.ProjectErrorReporter;
 import org.apache.maven.project.ProjectBuildingException;
 
 public privileged aspect ErrorReportingAspect
 {
 
-    private ProjectErrorReporter projectErrorReporter;
-
-    private CoreErrorReporter coreErrorReporter;
-
     private pointcut embedderCalls():
-        execution( public MavenExecutionResult MavenEmbedder.*( .. ) );
+        execution( public * MavenEmbedder.*( .. ) );
 
     // TODO: Use MavenExecutionRequest to allow configuration of the reporters 
to be used.
-    before():
+    Object around():
         embedderCalls() && !cflow( embedderCalls() )
     {
-        projectErrorReporter = new DefaultProjectErrorReporter();
-
-        ProjectReporterManagerAspect prma = (ProjectReporterManagerAspect) 
Aspects.aspectOf( ProjectReporterManagerAspect.class );
-        prma.setReporter( projectErrorReporter );
-
-        coreErrorReporter = new DefaultCoreErrorReporter();
-
-        CoreReporterManagerAspect crma = (CoreReporterManagerAspect) 
Aspects.aspectOf( CoreReporterManagerAspect.class );
-        crma.setReporter( coreErrorReporter );
+        try
+        {
+            return proceed();
+        }
+        finally
+        {
+            ProjectReporterManager.clearReporter();
+            CoreReporterManager.clearReporter();
+        }
     }
 
     boolean around( ProjectBuildingException e, boolean showStackTraces, 
StringWriter writer ):
         execution( private static boolean 
CLIReportingUtils.handleProjectBuildingException( ProjectBuildingException, 
boolean, StringWriter ) )
         && args( e, showStackTraces, writer )
     {
+        ProjectErrorReporter projectErrorReporter = 
ProjectReporterManager.getReporter();
+
         if ( projectErrorReporter == null )
         {
             return proceed( e, showStackTraces, writer );
@@ -65,7 +61,10 @@
                     writer.write( CLIReportingUtils.NEWLINE );
                     writer.write( CLIReportingUtils.NEWLINE );
                     Throwable cause = projectErrorReporter.getRealCause( 
reportingError );
-                    cause.printStackTrace( new PrintWriter( writer ) );
+                    if ( cause != null )
+                    {
+                        cause.printStackTrace( new PrintWriter( writer ) );
+                    }
                 }
 
                 writer.write( CLIReportingUtils.NEWLINE );
@@ -86,12 +85,16 @@
         execution( private static boolean 
CLIReportingUtils.handleBuildFailureException( BuildFailureException, boolean, 
StringWriter ) )
         && args( e, showStackTraces, writer )
     {
+        CoreErrorReporter coreErrorReporter = 
CoreReporterManager.getReporter();
+
         if ( coreErrorReporter == null )
         {
             return proceed( e, showStackTraces, writer );
         }
         else
         {
+            System.out.println( "Checking core error reporter for help." );
+
             Throwable reportingError = 
coreErrorReporter.findReportedException( e );
 
             boolean result = false;
@@ -105,7 +108,10 @@
                     writer.write( CLIReportingUtils.NEWLINE );
                     writer.write( CLIReportingUtils.NEWLINE );
                     Throwable cause = coreErrorReporter.getRealCause( 
reportingError );
-                    cause.printStackTrace( new PrintWriter( writer ) );
+                    if ( cause != null )
+                    {
+                        cause.printStackTrace( new PrintWriter( writer ) );
+                    }
                 }
 
                 writer.write( CLIReportingUtils.NEWLINE );

Modified: 
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/AbstractProjectErrorReporterAspect.aj
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/AbstractProjectErrorReporterAspect.aj?rev=599503&r1=599502&r2=599503&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/AbstractProjectErrorReporterAspect.aj
 (original)
+++ 
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/AbstractProjectErrorReporterAspect.aj
 Thu Nov 29 08:33:57 2007
@@ -1,26 +1,17 @@
 package org.apache.maven.project.aspect;
 
-import org.apache.maven.project.error.DefaultProjectErrorReporter;
 import org.apache.maven.project.error.ProjectErrorReporter;
+import org.apache.maven.project.error.ProjectReporterManager;
 
-public abstract aspect AbstractProjectErrorReporterAspect
+public abstract aspect AbstractProjectErrorReporterAspect issingleton()
 {
 
-    private ProjectErrorReporter reporter;
-
-    public void setProjectErrorReporter( ProjectErrorReporter reporter )
-    {
-        this.reporter = reporter;
-    }
+    protected pointcut notWithinAspect():
+        !within( org.apache.maven.project.aspect.*+ );
 
     protected ProjectErrorReporter getReporter()
     {
-        if ( reporter == null )
-        {
-            reporter = new DefaultProjectErrorReporter();
-        }
-
-        return reporter;
+        return ProjectReporterManager.getReporter();
     }
 
 }

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=599503&r1=599502&r2=599503&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
 Thu Nov 29 08:33:57 2007
@@ -27,11 +27,13 @@
 
     private pointcut mavenTools_buildDeploymentArtifactRepository( 
DeploymentRepository repo ):
         call( ArtifactRepository 
MavenTools+.buildDeploymentArtifactRepository( DeploymentRepository ) )
-        && args( repo );
+        && args( repo )
+        && notWithinAspect();
 
     private pointcut pbldr_processProjectLogic( MavenProject project, File 
pomFile ):
         execution( private MavenProject 
DefaultMavenProjectBuilder.processProjectLogic( MavenProject, File, .. ) )
-        && args( project, pomFile, .. );
+        && args( project, pomFile, .. )
+        && notWithinAspect();
 
     // 
=========================================================================
     // Call Stack:
@@ -55,7 +57,8 @@
 
     private pointcut mavenTools_buildArtifactRepository( Repository repo ):
         call( ArtifactRepository MavenTools+.buildArtifactRepository( 
Repository ) )
-        && args( repo );
+        && args( repo )
+        && notWithinAspect();
 
     private boolean processingPluginRepositories = false;
 
@@ -120,9 +123,10 @@
     // InvalidProjectVersionException
 
     private pointcut pbldr_createNonDependencyArtifacts():
-        call( protected * DefaultMavenProjectBuilder.createPluginArtifacts( .. 
) )
+        ( call( protected * DefaultMavenProjectBuilder.createPluginArtifacts( 
.. ) )
         || call( protected * DefaultMavenProjectBuilder.createReportArtifacts( 
.. ) )
-        || call( protected * 
DefaultMavenProjectBuilder.createExtensionArtifacts( .. ) );
+        || call( protected * 
DefaultMavenProjectBuilder.createExtensionArtifacts( .. ) ) )
+        && notWithinAspect();
 
     // 
=========================================================================
     // Call Stack:
@@ -173,7 +177,8 @@
     // InvalidDependencyVersionException
 
     private pointcut pbldr_buildInternal():
-        execution( * DefaultMavenProjectBuilder.buildInternal( .. ) );
+        execution( * DefaultMavenProjectBuilder.buildInternal( .. ) )
+        && notWithinAspect();
 
     private MavenProject projectBeingBuilt;
 
@@ -216,7 +221,8 @@
 
     protected pointcut mms_createArtifacts( MavenProject project ):
         call( public static Set MavenMetadataSource.createArtifacts( .., 
MavenProject ) )
-        && args( .., project );
+        && args( .., project )
+        && notWithinAspect();
 
     // 
=========================================================================
     // Call Stack:

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=599503&r1=599502&r2=599503&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
 Thu Nov 29 08:33:57 2007
@@ -34,22 +34,26 @@
 
     protected pointcut componentLookupException( ComponentLookupException 
cause ):
         handler( ComponentLookupException )
-        && args( cause );
+        && args( cause )
+        && notWithinAspect();
 
     private pointcut pMgr_isActiveExec( Profile profile, 
ProfileActivationContext context ):
         execution( boolean DefaultProfileManager.isActive( Profile, 
ProfileActivationContext ) )
-        && args( profile, context );
+        && args( profile, context )
+        && notWithinAspect();
 
     private pointcut pAdv_applyActivatedProfiles( Model model, File pomFile ):
         execution( private List DefaultProfileAdvisor.applyActivatedProfiles( 
Model, File, .. ) )
-        && args( model, pomFile, .. );
+        && args( model, pomFile, .. )
+        && notWithinAspect();
 
     private pointcut applyActivatedProfiles_ComponentLookupException( Model 
model,
                                                                       File 
pomFile,
                                                                       Profile 
profile ):
         call( List PlexusContainer+.lookupList( .. ) )
         && cflow( pAdv_applyActivatedProfiles( model, pomFile ) )
-        && cflow( pMgr_isActiveExec( profile, ProfileActivationContext ) );
+        && cflow( pMgr_isActiveExec( profile, ProfileActivationContext ) )
+        && notWithinAspect();
 
     // 
=========================================================================
     // Call Stack:
@@ -73,7 +77,8 @@
 
     protected pointcut profileActivatorCall( ProfileActivator activator ):
         call( * ProfileActivator+.*( .. ) )
-        && target( activator );
+        && target( activator )
+        && notWithinAspect();
 
     private pointcut applyActivatedProfiles_ActivatorThrown( ProfileActivator 
activator,
                                                                       Model 
model,
@@ -82,7 +87,8 @@
                                                                       
ProfileActivationContext context ):
         profileActivatorCall( activator )
         && cflow( pAdv_applyActivatedProfiles( model, pomFile ) )
-        && cflow( pMgr_isActiveExec( profile, context ) );
+        && cflow( pMgr_isActiveExec( profile, context ) )
+        && notWithinAspect();
 
     // 
=========================================================================
     // Call Stack:
@@ -106,14 +112,16 @@
 
     private pointcut pAdv_loadExternalProjectProfiles( Model model, File 
pomFile ):
         execution( private void 
DefaultProfileAdvisor.loadExternalProjectProfiles( *, Model, File ) )
-        && args( *, model, pomFile );
+        && args( *, model, pomFile )
+        && notWithinAspect();
 
     private pointcut loadExternalProfiles_profileBuilding( Model model,
                                                        File pomFile,
                                                        File projectDir ):
         call( ProfilesRoot MavenProfilesBuilder+.buildProfiles( File ) )
         && cflow( pAdv_loadExternalProjectProfiles( model, pomFile ) )
-        && args( projectDir );
+        && args( projectDir )
+        && notWithinAspect();
 
     // 
=========================================================================
     // Call Stack:
@@ -153,14 +161,16 @@
 
     private pointcut pAdv_getArtifactRepositoriesFromActiveProfiles( String 
projectId, File pomFile ):
         execution( LinkedHashSet 
DefaultProfileAdvisor.getArtifactRepositoriesFromActiveProfiles( *, File, 
String ) )
-        && args( *, pomFile, projectId );
+        && args( *, pomFile, projectId )
+        && notWithinAspect();
 
     private pointcut 
getArtifactRepositoriesFromActiveProfiles_ComponentLookupException( String 
projectId,
                                                                                
           File pomFile,
                                                                                
           Profile profile ):
         call( List PlexusContainer+.lookupList( .. ) )
         && cflow( pAdv_getArtifactRepositoriesFromActiveProfiles( projectId, 
pomFile ) )
-        && cflow( pMgr_isActiveExec( profile, ProfileActivationContext ) );
+        && cflow( pMgr_isActiveExec( profile, ProfileActivationContext ) )
+        && notWithinAspect();
 
     // 
=========================================================================
     // Call Stack:
@@ -189,7 +199,8 @@
                                                                       
ProfileActivationContext context ):
         profileActivatorCall( activator )
         && cflow( pAdv_getArtifactRepositoriesFromActiveProfiles( projectId, 
pomFile ) )
-        && cflow( pMgr_isActiveExec( profile, context ) );
+        && cflow( pMgr_isActiveExec( profile, context ) )
+        && notWithinAspect();
 
     // 
=========================================================================
     // Call Stack:
@@ -216,7 +227,8 @@
                                                                                
 File pomFile ):
         call( ArtifactRepository MavenTools+.buildArtifactRepository( 
Repository ) )
         && args( repo )
-        && cflow( pAdv_getArtifactRepositoriesFromActiveProfiles( projectId, 
pomFile ) );
+        && cflow( pAdv_getArtifactRepositoriesFromActiveProfiles( projectId, 
pomFile ) )
+        && notWithinAspect();
 
     // 
=========================================================================
     // Call Stack:

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=599503&r1=599502&r2=599503&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
 Thu Nov 29 08:33:57 2007
@@ -16,15 +16,18 @@
     private pointcut mlbldr_resolveParentFromRepositories( Parent parentRef, 
ArtifactRepository localRepo,
                                                            List remoteRepos, 
String childId, File childPomFile ):
         execution( File 
DefaultModelLineageBuilder.resolveParentFromRepository( Parent, 
ArtifactRepository, List, String, File ) )
-        && args( parentRef, localRepo, remoteRepos, childId, childPomFile );
+        && args( parentRef, localRepo, remoteRepos, childId, childPomFile )
+        && notWithinAspect();
 
     private pointcut anfe_handler( ArtifactNotFoundException cause ):
         handler( ArtifactNotFoundException )
-        && args( cause );
+        && args( cause )
+        && notWithinAspect();
 
     private pointcut are_handler( ArtifactResolutionException cause ):
         handler( ArtifactResolutionException )
-        && args( cause );
+        && args( cause )
+        && notWithinAspect();
 
     // 
=========================================================================
     // Call Stack:

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=599503&r1=599502&r2=599503&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
 Thu Nov 29 08:33:57 2007
@@ -1,5 +1,7 @@
 package org.apache.maven.project.aspect;
 
+import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.model.Model;
 import org.apache.maven.project.DefaultMavenProjectBuilder;
 import org.apache.maven.project.build.model.ModelAndFile;
 import org.apache.maven.project.build.model.DefaultModelLineageBuilder;
@@ -12,17 +14,15 @@
     extends AbstractProjectErrorReporterAspect
 {
 
-    private pointcut pbldr_readProject( String projectId, File pomFile ):
-        execution( * DefaultMavenProjectBuilder.readModel( String, File, .. ) )
-        && args( projectId, pomFile, .. );
-
-    private pointcut xppEx_handler( XmlPullParserException cause ):
-        handler( XmlPullParserException )
-        && args( cause );
-
-    private pointcut ioEx_handler( IOException cause ):
-        handler( IOException )
-        && args( cause );
+    private pointcut pbldr_readModel( String projectId, File pomFile ):
+        execution( Model DefaultMavenProjectBuilder.readModel( String, File, 
boolean ) )
+        && args( projectId, pomFile, * );
+
+    private pointcut within_pbldr_readModel( String projectId, File pomFile ):
+        within( DefaultMavenProjectBuilder )
+        && cflow( pbldr_readModel( projectId, pomFile ) )
+        && !cflowbelow( pbldr_readModel( String, File ) )
+        && notWithinAspect();
 
     // 
=========================================================================
     // Call Stack:
@@ -37,8 +37,9 @@
     // <------ InvalidProjectModelException
     // 
=========================================================================
     before( String projectId, File pomFile, XmlPullParserException cause ):
-        cflow( pbldr_readProject( projectId, pomFile ) )
-        && xppEx_handler( cause )
+        within_pbldr_readModel( projectId, pomFile )
+        && call( ProjectBuildingException.new( .., XmlPullParserException ))
+        && args( .., cause )
     {
         getReporter().reportErrorParsingProjectModel( projectId, pomFile, 
cause );
     }
@@ -56,8 +57,9 @@
     // <------ InvalidProjectModelException
     // 
=========================================================================
     before( String projectId, File pomFile, IOException cause ):
-        cflow( pbldr_readProject( projectId, pomFile ) )
-        && ioEx_handler( cause )
+        within_pbldr_readModel( projectId, pomFile )
+        && call( ProjectBuildingException.new( .., IOException ))
+        && args( .., cause )
     {
         getReporter().reportErrorParsingProjectModel( projectId, pomFile, 
cause );
     }
@@ -70,6 +72,17 @@
         execution( * DefaultModelLineageBuilder.readModel( File ) )
         && args( pomFile );
 
+    private pointcut within_mlbldr_readModel( File pomFile ):
+        cflow( mlbldr_readModel( pomFile ) )
+        && within( DefaultModelLineageBuilder )
+        && notWithinAspect();
+
+    private pointcut mlbldr_errorParsingParentPom( ModelAndFile childInfo, 
File parentPomFile, XmlPullParserException cause ):
+        cflowbelow( mlbldr_resolveParentPom( childInfo ) )
+        && within_mlbldr_readModel( parentPomFile )
+        && call( ProjectBuildingException.new( .., XmlPullParserException ) )
+        && args( .., cause );
+
     // 
=========================================================================
     // Call Stack:
     // 
=========================================================================
@@ -83,13 +96,17 @@
     // <---------- ProjectBuildingException
     // 
=========================================================================
     before( ModelAndFile childInfo, File parentPomFile, XmlPullParserException 
cause ):
-        cflow( mlbldr_resolveParentPom( childInfo ) )
-        && cflow( mlbldr_readModel( parentPomFile ) )
-        && xppEx_handler( cause )
+        mlbldr_errorParsingParentPom( childInfo, parentPomFile, cause )
     {
         getReporter().reportErrorParsingParentProjectModel( childInfo, 
parentPomFile, cause );
     }
 
+    private pointcut mlbldr_errorReadingParentPom( ModelAndFile childInfo, 
File parentPomFile, IOException cause ):
+        cflow( mlbldr_resolveParentPom( childInfo ) )
+        && within_mlbldr_readModel( parentPomFile )
+        && call( ProjectBuildingException.new( .., IOException ))
+        && args( .., cause );
+
     // 
=========================================================================
     // Call Stack:
     // 
=========================================================================
@@ -103,15 +120,17 @@
     // <---------- ProjectBuildingException
     // 
=========================================================================
     before( ModelAndFile childInfo, File parentPomFile, IOException cause ):
-        cflow( mlbldr_resolveParentPom( childInfo ) )
-        && cflow( mlbldr_readModel( parentPomFile ) )
-        && ioEx_handler( cause )
+        mlbldr_errorReadingParentPom( childInfo, parentPomFile, cause )
     {
         getReporter().reportErrorParsingParentProjectModel( childInfo, 
parentPomFile, cause );
     }
 
-    private pointcut mlbldr_buildModelLineage():
-        execution( * DefaultModelLineageBuilder.buildModelLineage( .. ) );
+    private pointcut mlbldr_errorParsingNonParentPom( File pomFile, 
XmlPullParserException cause ):
+        !cflow( mlbldr_resolveParentPom( ModelAndFile ) )
+        && cflow( mlbldr_readModel( pomFile ) )
+        && call( ProjectBuildingException.new( .., XmlPullParserException ))
+        && args( .., cause )
+        && notWithinAspect();
 
     // 
=========================================================================
     // Call Stack:
@@ -123,14 +142,18 @@
     // <------ ProjectBuildingException
     // 
=========================================================================
     before( File pomFile, XmlPullParserException cause ):
-        cflow( mlbldr_buildModelLineage() )
-        && !cflowbelow( mlbldr_buildModelLineage() )
-        && cflow( mlbldr_readModel( pomFile ) )
-        && xppEx_handler( cause )
+        mlbldr_errorParsingNonParentPom( pomFile, cause )
     {
         getReporter().reportErrorParsingProjectModel( "unknown", pomFile, 
cause );
     }
 
+    private pointcut mlbldr_errorReadingNonParentPom( File pomFile, 
IOException cause ):
+        !cflow( mlbldr_resolveParentPom( ModelAndFile ) )
+        && cflow( mlbldr_readModel( pomFile ) )
+        && call( ProjectBuildingException.new( .., IOException ))
+        && args( .., cause )
+        && notWithinAspect();
+
     // 
=========================================================================
     // Call Stack:
     // 
=========================================================================
@@ -141,10 +164,7 @@
     // <------ ProjectBuildingException
     // 
=========================================================================
     before( File pomFile, IOException cause ):
-        cflow( mlbldr_buildModelLineage() )
-        && !cflowbelow( mlbldr_buildModelLineage() )
-        && cflow( mlbldr_readModel( pomFile ) )
-        && ioEx_handler( cause )
+        mlbldr_errorReadingNonParentPom( pomFile, cause )
     {
         getReporter().reportErrorParsingProjectModel( "unknown", pomFile, 
cause );
     }

Modified: 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java?rev=599503&r1=599502&r2=599503&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
 (original)
+++ 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
 Thu Nov 29 08:33:57 2007
@@ -60,77 +60,77 @@
 
 public final class ModelUtils
 {
-    
+
     /**
      * This should be the resulting ordering of plugins after merging:
-     * 
+     *
      * Given:
-     * 
+     *
      *   parent: X -> A -> B -> D -> E
      *   child: Y -> A -> C -> D -> F
-     *  
-     * Result: 
-     * 
+     *
+     * Result:
+     *
      *   X -> Y -> A -> B -> C -> D -> E -> F
      */
     public static void mergePluginLists( PluginContainer childContainer, 
PluginContainer parentContainer,
                                          boolean handleAsInheritance )
     {
-        if ( childContainer == null || parentContainer == null )
+        if ( ( childContainer == null ) || ( parentContainer == null ) )
         {
             // nothing to do.
             return;
         }
 
         List parentPlugins = parentContainer.getPlugins();
-        
-        if ( parentPlugins != null && !parentPlugins.isEmpty() )
+
+        if ( ( parentPlugins != null ) && !parentPlugins.isEmpty() )
         {
             parentPlugins = new ArrayList( parentPlugins );
-            
-            // If we're processing this merge as an inheritance, we have to 
build up a list of 
+
+            // If we're processing this merge as an inheritance, we have to 
build up a list of
             // plugins that were considered for inheritance.
             if ( handleAsInheritance )
             {
                 for ( Iterator it = parentPlugins.iterator(); it.hasNext(); )
                 {
                     Plugin plugin = (Plugin) it.next();
-                    
+
                     String inherited = plugin.getInherited();
-                    
-                    if ( inherited != null && !Boolean.valueOf( inherited 
).booleanValue() )
+
+                    if ( ( inherited != null ) && !Boolean.valueOf( inherited 
).booleanValue() )
                     {
                         it.remove();
                     }
                 }
             }
-            
+
             List assembledPlugins = new ArrayList();
 
             Map childPlugins = childContainer.getPluginsAsMap();
-            
+
             for ( Iterator it = parentPlugins.iterator(); it.hasNext(); )
             {
                 Plugin parentPlugin = (Plugin) it.next();
 
                 String parentInherited = parentPlugin.getInherited();
 
-                // only merge plugin definition from the parent if at least 
one 
+                // only merge plugin definition from the parent if at least one
                 // of these is true:
                 // 1. we're not processing the plugins in an inheritance-based 
merge
                 // 2. the parent's <inherited/> flag is not set
                 // 3. the parent's <inherited/> flag is set to true
-                if ( !handleAsInheritance || parentInherited == null ||
+                if ( !handleAsInheritance || ( parentInherited == null ) ||
                     Boolean.valueOf( parentInherited ).booleanValue() )
                 {
                     Plugin childPlugin = (Plugin) childPlugins.get( 
parentPlugin.getKey() );
 
-                    if ( childPlugin != null && !assembledPlugins.contains( 
childPlugin ) )
+                    if ( ( childPlugin != null ) && 
!assembledPlugins.contains( childPlugin ) )
                     {
                         Plugin assembledPlugin = childPlugin;
 
                         mergePluginDefinitions( childPlugin, parentPlugin, 
handleAsInheritance );
-                        
+
                         // fix for MNG-2221 (assembly cache was not being 
populated for later reference):
                         assembledPlugins.add( assembledPlugin );
                     }
@@ -138,18 +138,18 @@
                     // if we're processing this as an inheritance-based merge, 
and
                     // the parent's <inherited/> flag is not set, then we need 
to
                     // clear the inherited flag in the merge result.
-                    if ( handleAsInheritance && parentInherited == null )
+                    if ( handleAsInheritance && ( parentInherited == null ) )
                     {
                         parentPlugin.unsetInheritanceApplied();
                     }
                 }
-                
+
                 // very important to use the parentPlugins List, rather than 
parentContainer.getPlugins()
                 // since this list is a local one, and may have been modified 
during processing.
                 List results = ModelUtils.orderAfterMerge( assembledPlugins, 
parentPlugins,
                                                                         
childContainer.getPlugins() );
-                
-                
+
+
                 childContainer.setPlugins( results );
 
                 childContainer.flushPluginMap();
@@ -160,40 +160,40 @@
     public static List orderAfterMerge( List merged, List highPrioritySource, 
List lowPrioritySource )
     {
         List results = new ArrayList();
-        
+
         if ( !merged.isEmpty() )
         {
             results.addAll( merged );
         }
-        
+
         List missingFromResults = new ArrayList();
-        
+
         List sources = new ArrayList();
-        
+
         sources.add( highPrioritySource );
         sources.add( lowPrioritySource );
-        
+
         for ( Iterator sourceIterator = sources.iterator(); 
sourceIterator.hasNext(); )
         {
             List source = (List) sourceIterator.next();
-            
+
             for ( Iterator it = source.iterator(); it.hasNext(); )
             {
                 Object item = it.next();
-                
+
                 if ( results.contains( item ) )
                 {
                     if ( !missingFromResults.isEmpty() )
                     {
                         int idx = results.indexOf( item );
-                        
+
                         if ( idx < 0 )
                         {
                             idx = 0;
                         }
-                        
+
                         results.addAll( idx, missingFromResults );
-                        
+
                         missingFromResults.clear();
                     }
                 }
@@ -202,21 +202,21 @@
                     missingFromResults.add( item );
                 }
             }
-            
+
             if ( !missingFromResults.isEmpty() )
             {
                 results.addAll( missingFromResults );
-                
+
                 missingFromResults.clear();
             }
         }
-        
+
         return results;
     }
 
     public static void mergeReportPluginLists( Reporting child, Reporting 
parent, boolean handleAsInheritance )
     {
-        if ( child == null || parent == null )
+        if ( ( child == null ) || ( parent == null ) )
         {
             // nothing to do.
             return;
@@ -224,7 +224,7 @@
 
         List parentPlugins = parent.getPlugins();
 
-        if ( parentPlugins != null && !parentPlugins.isEmpty() )
+        if ( ( parentPlugins != null ) && !parentPlugins.isEmpty() )
         {
             Map assembledPlugins = new TreeMap();
 
@@ -236,7 +236,7 @@
 
                 String parentInherited = parentPlugin.getInherited();
 
-                if ( !handleAsInheritance || parentInherited == null ||
+                if ( !handleAsInheritance || ( parentInherited == null ) ||
                     Boolean.valueOf( parentInherited ).booleanValue() )
                 {
 
@@ -251,7 +251,7 @@
                         mergeReportPluginDefinitions( childPlugin, 
parentPlugin, handleAsInheritance );
                     }
 
-                    if ( handleAsInheritance && parentInherited == null )
+                    if ( handleAsInheritance && ( parentInherited == null ) )
                     {
                         assembledPlugin.unsetInheritanceApplied();
                     }
@@ -278,7 +278,7 @@
 
     public static void mergePluginDefinitions( Plugin child, Plugin parent, 
boolean handleAsInheritance )
     {
-        if ( child == null || parent == null )
+        if ( ( child == null ) || ( parent == null ) )
         {
             // nothing to do.
             return;
@@ -289,7 +289,7 @@
             child.setExtensions( true );
         }
 
-        if ( child.getVersion() == null && parent.getVersion() != null )
+        if ( ( child.getVersion() == null ) && ( parent.getVersion() != null ) 
)
         {
             child.setVersion( parent.getVersion() );
         }
@@ -306,14 +306,14 @@
         // from here to the end of the method is dealing with merging of the 
<executions/> section.
         String parentInherited = parent.getInherited();
 
-        boolean parentIsInherited = parentInherited == null || 
Boolean.valueOf( parentInherited ).booleanValue();
+        boolean parentIsInherited = ( parentInherited == null ) || 
Boolean.valueOf( parentInherited ).booleanValue();
 
         List parentExecutions = parent.getExecutions();
 
-        if ( parentExecutions != null && !parentExecutions.isEmpty() )
+        if ( ( parentExecutions != null ) && !parentExecutions.isEmpty() )
         {
             List mergedExecutions = new ArrayList();
-            
+
             Map assembledExecutions = new TreeMap();
 
             Map childExecutions = child.getExecutionsAsMap();
@@ -334,7 +334,7 @@
 
                         assembled = childExecution;
                     }
-                    else if ( handleAsInheritance && parentInherited == null )
+                    else if ( handleAsInheritance && ( parentInherited == null 
) )
                     {
                         parentExecution.unsetInheritanceApplied();
                     }
@@ -364,13 +364,13 @@
     public static void mergeReportPluginDefinitions( ReportPlugin child, 
ReportPlugin parent,
                                                      boolean 
handleAsInheritance )
     {
-        if ( child == null || parent == null )
+        if ( ( child == null ) || ( parent == null ) )
         {
             // nothing to do.
             return;
         }
 
-        if ( child.getVersion() == null && parent.getVersion() != null )
+        if ( ( child.getVersion() == null ) && ( parent.getVersion() != null ) 
)
         {
             child.setVersion( parent.getVersion() );
         }
@@ -378,11 +378,11 @@
         // from here to the end of the method is dealing with merging of the 
<executions/> section.
         String parentInherited = parent.getInherited();
 
-        boolean parentIsInherited = parentInherited == null || 
Boolean.valueOf( parentInherited ).booleanValue();
+        boolean parentIsInherited = ( parentInherited == null ) || 
Boolean.valueOf( parentInherited ).booleanValue();
 
         List parentReportSets = parent.getReportSets();
 
-        if ( parentReportSets != null && !parentReportSets.isEmpty() )
+        if ( ( parentReportSets != null ) && !parentReportSets.isEmpty() )
         {
             Map assembledReportSets = new TreeMap();
 
@@ -404,7 +404,7 @@
 
                         assembledReportSet = childReportSet;
                     }
-                    else if ( handleAsInheritance && parentInherited == null )
+                    else if ( handleAsInheritance && ( parentInherited == null 
) )
                     {
                         parentReportSet.unsetInheritanceApplied();
                     }
@@ -444,7 +444,7 @@
 
         List goals = new ArrayList();
 
-        if ( childGoals != null && !childGoals.isEmpty() )
+        if ( ( childGoals != null ) && !childGoals.isEmpty() )
         {
             goals.addAll( childGoals );
         }
@@ -479,7 +479,7 @@
 
         List reports = new ArrayList();
 
-        if ( childReports != null && !childReports.isEmpty() )
+        if ( ( childReports != null ) && !childReports.isEmpty() )
         {
             reports.addAll( childReports );
         }
@@ -568,7 +568,7 @@
 
             List modules = profile.getModules();
 
-            if ( modules != null && !modules.isEmpty() )
+            if ( ( modules != null ) && !modules.isEmpty() )
             {
                 newProfile.setModules( new ArrayList( modules ) );
             }
@@ -962,7 +962,7 @@
 
                 List goals = exec.getGoals();
 
-                if ( goals != null && !goals.isEmpty() )
+                if ( ( goals != null ) && !goals.isEmpty() )
                 {
                     newExec.setGoals( new ArrayList( goals ) );
                 }

Added: 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectReporterManager.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectReporterManager.java?rev=599503&view=auto
==============================================================================
--- 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectReporterManager.java
 (added)
+++ 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectReporterManager.java
 Thu Nov 29 08:33:57 2007
@@ -0,0 +1,32 @@
+package org.apache.maven.project.error;
+
+public final class ProjectReporterManager
+{
+
+    private static ProjectErrorReporter reporter;
+
+    private ProjectReporterManager()
+    {
+    }
+
+    public static ProjectErrorReporter getReporter()
+    {
+        if ( reporter == null )
+        {
+            reporter = new DefaultProjectErrorReporter();
+        }
+
+        return reporter;
+    }
+
+    public static void setReporter( ProjectErrorReporter instance )
+    {
+        reporter = instance;
+    }
+
+    public static void clearReporter()
+    {
+        reporter = null;
+    }
+
+}

Propchange: 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectReporterManager.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectReporterManager.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"


Reply via email to