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"