Author: jdcasey
Date: Tue Nov 27 20:28:28 2007
New Revision: 598864
URL: http://svn.apache.org/viewvc?rev=598864&view=rev
Log:
Adding the rest of the project errors to the aspect-bound ProjectErrorReporter.
Added:
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/ProjectErrorReporterAspect.aj
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectIOErrorReporterAspect.aj
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectReporterManagerAspect.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/java/org/apache/maven/project/error/DefaultProjectErrorReporter.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorTips.java
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=598864&r1=598863&r2=598864&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
Tue Nov 27 20:28:28 2007
@@ -8,7 +8,7 @@
import org.apache.maven.cli.CLIReportingUtils;
import org.apache.maven.embedder.MavenEmbedder;
import org.apache.maven.execution.MavenExecutionResult;
-import org.apache.maven.project.aspect.PBEDerivativeReporterAspect;
+import org.apache.maven.project.aspect.ProjectReporterManagerAspect;
import org.apache.maven.project.error.DefaultProjectErrorReporter;
import org.apache.maven.project.error.ProjectErrorReporter;
import org.apache.maven.project.ProjectBuildingException;
@@ -26,8 +26,8 @@
{
projectErrorReporter = new DefaultProjectErrorReporter();
- PBEDerivativeReporterAspect pbeDerivativeReporterAspect =
(PBEDerivativeReporterAspect) Aspects.aspectOf(
PBEDerivativeReporterAspect.class );
- pbeDerivativeReporterAspect.setProjectErrorReporter(
projectErrorReporter );
+ ProjectReporterManagerAspect prma = (ProjectReporterManagerAspect)
Aspects.aspectOf( ProjectReporterManagerAspect.class );
+ prma.setReporter( projectErrorReporter );
}
private pointcut cliReportingUtilsCalls():
@@ -40,8 +40,8 @@
{
projectErrorReporter = new DefaultProjectErrorReporter();
- PBEDerivativeReporterAspect pbeDerivativeReporterAspect =
(PBEDerivativeReporterAspect) Aspects.aspectOf(
PBEDerivativeReporterAspect.class );
- pbeDerivativeReporterAspect.setProjectErrorReporter(
projectErrorReporter );
+ ProjectReporterManagerAspect prma = (ProjectReporterManagerAspect)
Aspects.aspectOf( ProjectReporterManagerAspect.class );
+ prma.setReporter( projectErrorReporter );
}
boolean around( ProjectBuildingException e, boolean showStackTraces,
StringWriter writer ):
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=598864&r1=598863&r2=598864&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
Tue Nov 27 20:28:28 2007
@@ -27,7 +27,6 @@
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuildingException;
import org.apache.maven.reactor.MavenExecutionException;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.File;
import java.io.IOException;
@@ -599,10 +598,6 @@
// InvalidProjectVersionException(all)
// InvalidDependencyVersionException(all)
- boolean result = false;
-
- Throwable cause = e.getCause();
-
// Start by looking at whether we can handle the PBE as a specific
sub-class of ProjectBuildingException...
// if ( e instanceof InvalidProjectModelException )
// {
@@ -627,9 +622,6 @@
//
// result = true;
// }
- if ( false )
- {
- }
// else if ( e instanceof InvalidDependencyVersionException )
// {
// writer.write( NEWLINE );
@@ -676,19 +668,19 @@
// }
// 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;
- }
+// 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 )
// {
@@ -702,47 +694,47 @@
//
// 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 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 );
@@ -760,6 +752,8 @@
// result = true;
// }
+ handleGenericException( e, showStackTraces, writer );
+
writer.write( NEWLINE );
writer.write( "Failing project's id: " );
writer.write( e.getProjectId() );
@@ -775,7 +769,7 @@
}
writer.write( NEWLINE );
- return result;
+ return true;
}
private static boolean handleBuildFailureException( BuildFailureException
e,
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=598864&r1=598863&r2=598864&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
Tue Nov 27 20:28:28 2007
@@ -15,31 +15,13 @@
import org.apache.maven.project.DefaultMavenProjectBuilder;
import org.apache.maven.project.InvalidProjectModelException;
import org.apache.maven.project.ProjectBuildingException;
-import org.apache.maven.project.error.DefaultProjectErrorReporter;
-import org.apache.maven.project.error.ProjectErrorReporter;
import java.io.File;
import java.util.Set;
public privileged aspect PBEDerivativeReporterAspect
+ extends ProjectErrorReporterAspect
{
-
- private ProjectErrorReporter reporter;
-
- public void setProjectErrorReporter( ProjectErrorReporter reporter )
- {
- this.reporter = reporter;
- }
-
- private ProjectErrorReporter getReporter()
- {
- if ( reporter == null )
- {
- reporter = new DefaultProjectErrorReporter();
- }
-
- return reporter;
- }
// 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=598864&r1=598863&r2=598864&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
Tue Nov 27 20:28:28 2007
@@ -31,23 +31,8 @@
* coming from [EMAIL PROTECTED] DefaultProfileAdvisor}.
*/
public privileged aspect ProfileErrorReporterAspect
+ extends ProjectErrorReporterAspect
{
- private ProjectErrorReporter reporter;
-
- public void setProjectErrorReporter( ProjectErrorReporter reporter )
- {
- this.reporter = reporter;
- }
-
- private ProjectErrorReporter getReporter()
- {
- if ( reporter == null )
- {
- reporter = new DefaultProjectErrorReporter();
- }
-
- return reporter;
- }
protected pointcut componentLookupException( ComponentLookupException
cause ):
handler( ComponentLookupException )
Added:
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=598864&view=auto
==============================================================================
---
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectArtifactErrorReporterAspect.aj
(added)
+++
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectArtifactErrorReporterAspect.aj
Tue Nov 27 20:28:28 2007
@@ -0,0 +1,62 @@
+package org.apache.maven.project.aspect;
+
+import org.apache.maven.project.build.model.DefaultModelLineageBuilder;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.model.Parent;
+
+import java.io.File;
+import java.util.List;
+
+public privileged aspect ProjectArtifactErrorReporterAspect
+ extends ProjectErrorReporterAspect
+{
+
+ 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 );
+
+ private pointcut anfe_handler( ArtifactNotFoundException cause ):
+ handler( ArtifactNotFoundException )
+ && args( cause );
+
+ private pointcut are_handler( ArtifactResolutionException cause ):
+ handler( ArtifactResolutionException )
+ && args( cause );
+
+ //
=========================================================================
+ // Call Stack:
+ //
=========================================================================
+ // ...
+ // --> DefaultModelLineageBuilder.buildModelLineage(..)
+ // --> DefaultModelLineageBuilder.resolveParentPom(..) (private)
+ // --> DefaultModelLineageBuilder.resolveParentFromRepository(..)
(private)
+ // --> thrown ArtifactNotFoundException
+ // <---------- ProjectBuildingException
+ //
=========================================================================
+ before( Parent parentRef, ArtifactRepository localRepo, List remoteRepos,
String childId, File childPomFile, ArtifactNotFoundException cause ):
+ cflow( mlbldr_resolveParentFromRepositories( parentRef, localRepo,
remoteRepos, childId, childPomFile ) )
+ && anfe_handler( cause )
+ {
+ getReporter().reportParentPomArtifactNotFound( parentRef, localRepo,
remoteRepos, childId, childPomFile, cause );
+ }
+
+ //
=========================================================================
+ // Call Stack:
+ //
=========================================================================
+ // ...
+ // --> DefaultModelLineageBuilder.buildModelLineage(..)
+ // --> DefaultModelLineageBuilder.resolveParentPom(..) (private)
+ // --> DefaultModelLineageBuilder.resolveParentFromRepository(..)
(private)
+ // --> thrown ArtifactResolutionException
+ // <---------- ProjectBuildingException
+ //
=========================================================================
+ before( Parent parentRef, ArtifactRepository localRepo, List remoteRepos,
String childId, File childPomFile, ArtifactResolutionException cause ):
+ cflow( mlbldr_resolveParentFromRepositories( parentRef, localRepo,
remoteRepos, childId, childPomFile ) )
+ && are_handler( cause )
+ {
+ getReporter().reportParentPomArtifactUnresolvable( parentRef,
localRepo, remoteRepos, childId, childPomFile, cause );
+ }
+}
Added:
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/ProjectErrorReporterAspect.aj?rev=598864&view=auto
==============================================================================
---
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectErrorReporterAspect.aj
(added)
+++
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectErrorReporterAspect.aj
Tue Nov 27 20:28:28 2007
@@ -0,0 +1,26 @@
+package org.apache.maven.project.aspect;
+
+import org.apache.maven.project.error.DefaultProjectErrorReporter;
+import org.apache.maven.project.error.ProjectErrorReporter;
+
+public abstract aspect ProjectErrorReporterAspect
+{
+
+ private ProjectErrorReporter reporter;
+
+ public void setProjectErrorReporter( ProjectErrorReporter reporter )
+ {
+ this.reporter = reporter;
+ }
+
+ protected ProjectErrorReporter getReporter()
+ {
+ if ( reporter == null )
+ {
+ reporter = new DefaultProjectErrorReporter();
+ }
+
+ return reporter;
+ }
+
+}
Added:
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=598864&view=auto
==============================================================================
---
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectIOErrorReporterAspect.aj
(added)
+++
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectIOErrorReporterAspect.aj
Tue Nov 27 20:28:28 2007
@@ -0,0 +1,151 @@
+package org.apache.maven.project.aspect;
+
+import org.apache.maven.project.DefaultMavenProjectBuilder;
+import org.apache.maven.project.build.model.ModelAndFile;
+import org.apache.maven.project.build.model.DefaultModelLineageBuilder;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+import java.io.File;
+import java.io.IOException;
+
+public privileged aspect ProjectIOErrorReporterAspect
+ extends ProjectErrorReporterAspect
+{
+
+ 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 );
+
+ //
=========================================================================
+ // Call Stack:
+ //
=========================================================================
+ // ...
+ // --> DefaultMavenProjectBuilder.buildFromRepository(..)
+ // --> DefaultMavenProjectBuilder.findModelFromRepository(..) (private)
+ // DefaultMavenProjectBuilder.build(..)
+ // --> DefaultMavenProjectBuilder.buildFromSourceFileInternal(..) (private)
+ // --> DefaultMavenProjectBuilder.readModel(..) (private)
+ // --> thrown XmlPullParserException
+ // <------ InvalidProjectModelException
+ //
=========================================================================
+ before( String projectId, File pomFile, XmlPullParserException cause ):
+ cflow( pbldr_readProject( projectId, pomFile ) )
+ && xppEx_handler( cause )
+ {
+ getReporter().reportErrorParsingProjectModel( projectId, pomFile,
cause );
+ }
+
+ //
=========================================================================
+ // Call Stack:
+ //
=========================================================================
+ // ...
+ // --> DefaultMavenProjectBuilder.buildFromRepository(..)
+ // --> DefaultMavenProjectBuilder.findModelFromRepository(..) (private)
+ // DefaultMavenProjectBuilder.build(..)
+ // --> DefaultMavenProjectBuilder.buildFromSourceFileInternal(..) (private)
+ // --> DefaultMavenProjectBuilder.readModel(..) (private)
+ // --> thrown IOException
+ // <------ InvalidProjectModelException
+ //
=========================================================================
+ before( String projectId, File pomFile, IOException cause ):
+ cflow( pbldr_readProject( projectId, pomFile ) )
+ && ioEx_handler( cause )
+ {
+ getReporter().reportErrorParsingProjectModel( projectId, pomFile,
cause );
+ }
+
+ private pointcut mlbldr_resolveParentPom( ModelAndFile childInfo ):
+ execution( ModelAndFile DefaultModelLineageBuilder.resolveParentPom(
ModelAndFile, .. ) )
+ && args( childInfo, .. );
+
+ private pointcut mlbldr_readModel( File pomFile ):
+ execution( * DefaultModelLineageBuilder.readModel( File ) )
+ && args( pomFile );
+
+ //
=========================================================================
+ // Call Stack:
+ //
=========================================================================
+ // ...
+ // --> DefaultModelLineageBuilder.buildModelLineage(..)
+ // --> DefaultModelLineageBuilder.resumeBuildingModelLineage(..)
+ // --> DefaultModelLineageBuilder.resolveParentPom(..) (private)
+ // [-->
DefaultModelLineageBuilder.resolveParentWithRelativePath(..) (private)
+ // --> DefaultModelLineageBuilder.readModel(..) (private)
+ // --> thrown XmlPullParserException
+ // <---------- ProjectBuildingException
+ //
=========================================================================
+ before( ModelAndFile childInfo, File parentPomFile, XmlPullParserException
cause ):
+ cflow( mlbldr_resolveParentPom( childInfo ) )
+ && cflow( mlbldr_readModel( parentPomFile ) )
+ && xppEx_handler( cause )
+ {
+ getReporter().reportErrorParsingParentProjectModel( childInfo,
parentPomFile, cause );
+ }
+
+ //
=========================================================================
+ // Call Stack:
+ //
=========================================================================
+ // ...
+ // --> DefaultModelLineageBuilder.buildModelLineage(..)
+ // --> DefaultModelLineageBuilder.resumeBuildingModelLineage(..)
+ // --> DefaultModelLineageBuilder.resolveParentPom(..) (private)
+ // [-->
DefaultModelLineageBuilder.resolveParentWithRelativePath(..) (private)
+ // --> DefaultModelLineageBuilder.readModel(..) (private)
+ // --> thrown XmlPullParserException
+ // <---------- ProjectBuildingException
+ //
=========================================================================
+ before( ModelAndFile childInfo, File parentPomFile, IOException cause ):
+ cflow( mlbldr_resolveParentPom( childInfo ) )
+ && cflow( mlbldr_readModel( parentPomFile ) )
+ && ioEx_handler( cause )
+ {
+ getReporter().reportErrorParsingParentProjectModel( childInfo,
parentPomFile, cause );
+ }
+
+ private pointcut mlbldr_buildModelLineage():
+ execution( * DefaultModelLineageBuilder.buildModelLineage( .. ) );
+
+ //
=========================================================================
+ // Call Stack:
+ //
=========================================================================
+ // ...
+ // --> DefaultModelLineageBuilder.buildModelLineage(..)
+ // --> DefaultModelLineageBuilder.readModel(..) (private)
+ // --> thrown XmlPullParserException
+ // <------ ProjectBuildingException
+ //
=========================================================================
+ before( File pomFile, XmlPullParserException cause ):
+ cflow( mlbldr_buildModelLineage() )
+ && !cflowbelow( mlbldr_buildModelLineage() )
+ && cflow( mlbldr_readModel( pomFile ) )
+ && xppEx_handler( cause )
+ {
+ getReporter().reportErrorParsingProjectModel( "unknown", pomFile,
cause );
+ }
+
+ //
=========================================================================
+ // Call Stack:
+ //
=========================================================================
+ // ...
+ // --> DefaultModelLineageBuilder.buildModelLineage(..)
+ // --> DefaultModelLineageBuilder.readModel(..) (private)
+ // --> thrown XmlPullParserException
+ // <------ ProjectBuildingException
+ //
=========================================================================
+ before( File pomFile, IOException cause ):
+ cflow( mlbldr_buildModelLineage() )
+ && !cflowbelow( mlbldr_buildModelLineage() )
+ && cflow( mlbldr_readModel( pomFile ) )
+ && ioEx_handler( cause )
+ {
+ getReporter().reportErrorParsingProjectModel( "unknown", pomFile,
cause );
+ }
+}
Added:
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectReporterManagerAspect.aj
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectReporterManagerAspect.aj?rev=598864&view=auto
==============================================================================
---
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectReporterManagerAspect.aj
(added)
+++
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectReporterManagerAspect.aj
Tue Nov 27 20:28:28 2007
@@ -0,0 +1,25 @@
+package org.apache.maven.project.aspect;
+
+import org.aspectj.lang.Aspects;
+
+import org.apache.maven.project.error.ProjectErrorReporter;
+
+public aspect ProjectReporterManagerAspect
+{
+
+ public void setReporter( ProjectErrorReporter reporter )
+ {
+ PBEDerivativeReporterAspect pbeDerivativeReporterAspect =
(PBEDerivativeReporterAspect) Aspects.aspectOf(
PBEDerivativeReporterAspect.class );
+ pbeDerivativeReporterAspect.setProjectErrorReporter( reporter );
+
+ ProfileErrorReporterAspect profileErrorReporterAspect =
(ProfileErrorReporterAspect) Aspects.aspectOf( ProfileErrorReporterAspect.class
);
+ profileErrorReporterAspect.setProjectErrorReporter( reporter );
+
+ ProjectIOErrorReporterAspect projectIOErrorReporterAspect =
(ProjectIOErrorReporterAspect) Aspects.aspectOf(
ProjectIOErrorReporterAspect.class );
+ projectIOErrorReporterAspect.setProjectErrorReporter( reporter );
+
+ ProjectArtifactErrorReporterAspect projectArtifactErrorReporterAspect
= (ProjectArtifactErrorReporterAspect) Aspects.aspectOf(
ProjectArtifactErrorReporterAspect.class );
+ projectArtifactErrorReporterAspect.setProjectErrorReporter( reporter );
+ }
+
+}
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/DefaultProjectErrorReporter.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/DefaultProjectErrorReporter.java?rev=598864&r1=598863&r2=598864&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/DefaultProjectErrorReporter.java
(original)
+++
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/DefaultProjectErrorReporter.java
Tue Nov 27 20:28:28 2007
@@ -2,9 +2,14 @@
import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.artifact.UnknownRepositoryLayoutException;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.AbstractArtifactResolutionException;
+import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.DeploymentRepository;
import org.apache.maven.model.Model;
+import org.apache.maven.model.Parent;
import org.apache.maven.model.Profile;
import org.apache.maven.model.Repository;
import org.apache.maven.profiles.activation.ProfileActivationContext;
@@ -14,6 +19,7 @@
import org.apache.maven.project.InvalidProjectVersionException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
+import org.apache.maven.project.build.model.ModelAndFile;
import org.apache.maven.project.interpolation.ModelInterpolationException;
import
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
@@ -338,7 +344,7 @@
{
writer.write( NEWLINE );
writer.write( NEWLINE );
- writer.write( "While applying profile to: " );
+ writer.write( "Project Id: " );
writer.write( projectId );
writer.write( NEWLINE );
writer.write( "From file: " );
@@ -555,6 +561,232 @@
addStandardInfo( project.getId(), pomFile, writer );
addTips( ProjectErrorTips.getTipsForBadDependencySpec( project,
pomFile, dep ),
+ writer );
+
+ registerProjectBuildError( cause, writer.toString() );
+ }
+
+ public void reportErrorParsingProjectModel( String projectId,
+ File pomFile,
+ XmlPullParserException cause )
+ {
+ StringWriter writer = new StringWriter();
+
+ writer.write( NEWLINE );
+ if ( pomFile == 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( "" + ( cause ).getLineNumber() );
+ writer.write( NEWLINE );
+ writer.write( "Column: " );
+ writer.write( "" + ( cause ).getColumnNumber() );
+ writer.write( NEWLINE );
+
+ addStandardInfo( projectId, pomFile, writer );
+ addTips( ProjectErrorTips.getTipsForPomParsingError( projectId,
pomFile, cause ),
+ writer );
+
+ registerProjectBuildError( cause, writer.toString() );
+ }
+
+ public void reportErrorParsingParentProjectModel( ModelAndFile childInfo,
+ File parentPomFile,
+ XmlPullParserException
cause )
+ {
+ StringWriter writer = new StringWriter();
+
+ writer.write( NEWLINE );
+ if ( parentPomFile == null )
+ {
+ writer.write( "Error parsing built-in super POM!" );
+ }
+ else
+ {
+ writer.write( "Error parsing parent-POM." );
+ }
+
+ writer.write( NEWLINE );
+ writer.write( NEWLINE );
+ writer.write( cause.getMessage() );
+ writer.write( NEWLINE );
+ writer.write( NEWLINE );
+ writer.write( "Line: " );
+ writer.write( "" + cause.getLineNumber() );
+ writer.write( NEWLINE );
+ writer.write( "Column: " );
+ writer.write( "" + cause.getColumnNumber() );
+ writer.write( NEWLINE );
+
+ String projectId = childInfo.getModel().getParent().getId();
+ String childId = childInfo.getModel().getId();
+
+ addStandardInfo( projectId, parentPomFile, writer );
+
+ writer.write( NEWLINE );
+ writer.write( NEWLINE );
+ writer.write( "Child-Project Id: " );
+ writer.write( childId );
+
+ addTips( ProjectErrorTips.getTipsForPomParsingError( projectId,
parentPomFile, cause ),
+ writer );
+
+ registerProjectBuildError( cause, writer.toString() );
+ }
+
+ public void reportErrorParsingProjectModel( String projectId,
+ File pomFile,
+ IOException cause )
+ {
+ StringWriter writer = new StringWriter();
+
+ writer.write( NEWLINE );
+ if ( pomFile == 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 );
+
+ addStandardInfo( projectId, pomFile, writer );
+ addTips( ProjectErrorTips.getTipsForPomParsingError( projectId,
pomFile, cause ),
+ writer );
+
+ registerProjectBuildError( cause, writer.toString() );
+ }
+
+ public void reportErrorParsingParentProjectModel( ModelAndFile childInfo,
+ File parentPomFile,
+ IOException cause )
+ {
+ StringWriter writer = new StringWriter();
+
+ writer.write( NEWLINE );
+ if ( parentPomFile == null )
+ {
+ writer.write( "Error parsing built-in super POM!" );
+ }
+ else
+ {
+ writer.write( "Error parsing parent-POM." );
+ }
+
+ writer.write( NEWLINE );
+ writer.write( NEWLINE );
+ writer.write( cause.getMessage() );
+ writer.write( NEWLINE );
+
+ String projectId = childInfo.getModel().getParent().getId();
+ String childId = childInfo.getModel().getId();
+
+ addStandardInfo( projectId, parentPomFile, writer );
+
+ writer.write( NEWLINE );
+ writer.write( NEWLINE );
+ writer.write( "Child-Project Id: " );
+ writer.write( childId );
+
+ addTips( ProjectErrorTips.getTipsForPomParsingError( projectId,
parentPomFile, cause ),
+ writer );
+
+ registerProjectBuildError( cause, writer.toString() );
+ }
+
+ public void reportParentPomArtifactNotFound( Parent parentRef,
+ ArtifactRepository localRepo,
+ List remoteRepos,
+ String childId,
+ File childPomFile,
+ ArtifactNotFoundException
cause )
+ {
+ reportArtifactError( parentRef, localRepo, remoteRepos, childId,
childPomFile, cause );
+ }
+
+ public void reportParentPomArtifactUnresolvable( Parent parentRef,
+ ArtifactRepository
localRepo,
+ List remoteRepos,
+ String childId,
+ File childPomFile,
+
ArtifactResolutionException cause )
+ {
+ reportArtifactError( parentRef, localRepo, remoteRepos, childId,
childPomFile, cause );
+ }
+
+ private void reportArtifactError( Parent parentRef,
+ ArtifactRepository localRepo,
+ List remoteRepos,
+ String childId,
+ File childPomFile,
+ AbstractArtifactResolutionException
cause )
+ {
+ StringWriter writer = new StringWriter();
+
+ writer.write( NEWLINE );
+ writer.write( "Failed to resolve parent-POM from repository." );
+
+ writer.write( NEWLINE );
+ writer.write( NEWLINE );
+ writer.write( "Parent POM Information: " );
+ writer.write( NEWLINE );
+ writer.write( NEWLINE );
+ writer.write( "Group-Id: " );
+ writer.write( parentRef.getGroupId() );
+ writer.write( NEWLINE );
+ writer.write( "Artifact-Id: " );
+ writer.write( parentRef.getArtifactId() );
+ writer.write( NEWLINE );
+ writer.write( "Version: " );
+ writer.write( parentRef.getVersion() );
+
+ writer.write( NEWLINE );
+ writer.write( NEWLINE );
+ writer.write( "Local Repository: " );
+ writer.write( localRepo.getBasedir() );
+
+ if ( ( remoteRepos != null ) && !remoteRepos.isEmpty() )
+ {
+ writer.write( NEWLINE );
+ writer.write( NEWLINE );
+ writer.write( "Remote Repositories: " );
+
+ for ( Iterator it = remoteRepos.iterator(); it.hasNext(); )
+ {
+ ArtifactRepository remoteRepo = (ArtifactRepository) it.next();
+ writer.write( NEWLINE );
+ writer.write( remoteRepo.getId() );
+ writer.write( " -> " );
+ writer.write( remoteRepo.getUrl() );
+ // TODO: Get mirrors!!
+ }
+ }
+
+
+ writer.write( NEWLINE );
+ writer.write( NEWLINE );
+ writer.write( "Reason: " );
+ writer.write( cause.getMessage() );
+ writer.write( NEWLINE );
+
+ addStandardInfo( childId, childPomFile, writer );
+ addTips( ProjectErrorTips.getTipsForPomParsingError( childId,
childPomFile, cause ),
writer );
registerProjectBuildError( cause, writer.toString() );
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java?rev=598864&r1=598863&r2=598864&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java
(original)
+++
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java
Tue Nov 27 20:28:28 2007
@@ -2,8 +2,12 @@
import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.artifact.UnknownRepositoryLayoutException;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.model.DeploymentRepository;
import org.apache.maven.model.Model;
+import org.apache.maven.model.Parent;
import org.apache.maven.model.Profile;
import org.apache.maven.model.Repository;
import org.apache.maven.profiles.activation.ProfileActivationContext;
@@ -13,12 +17,14 @@
import org.apache.maven.project.InvalidProjectVersionException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
+import org.apache.maven.project.build.model.ModelAndFile;
import org.apache.maven.project.interpolation.ModelInterpolationException;
import
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.File;
import java.io.IOException;
+import java.util.List;
public interface ProjectErrorReporter
{
@@ -286,8 +292,8 @@
* </pre>
*/
void reportBadManagedDependencyVersion( MavenProject projectBeingBuilt,
- File pomFile,
- InvalidDependencyVersionException cause );
+ File pomFile,
+ InvalidDependencyVersionException
cause );
/**
* <b>Call Stack:</b>
@@ -304,4 +310,107 @@
File pomFile,
InvalidDependencyVersionException cause );
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * ...
+ * --> DefaultMavenProjectBuilder.buildFromRepository(..)
+ * --> DefaultMavenProjectBuilder.findModelFromRepository(..)
(private)
+ * DefaultMavenProjectBuilder.build(..)
+ * --> DefaultMavenProjectBuilder.buildFromSourceFileInternal(..)
(private)
+ * --> DefaultMavenProjectBuilder.readModel(..) (private)
+ * --> thrown XmlPullParserException
+ * <------ InvalidProjectModelException
+ * </pre>
+ */
+ void reportErrorParsingProjectModel( String projectId,
+ File pomFile,
+ XmlPullParserException cause );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * ...
+ * --> DefaultModelLineageBuilder.buildModelLineage(..)
+ * --> DefaultModelLineageBuilder.readModel(..) (private)
+ * --> thrown XmlPullParserException
+ * <------ ProjectBuildingException
+ * </pre>
+ */
+ void reportErrorParsingParentProjectModel( ModelAndFile childInfo,
+ File parentPomFile,
+ XmlPullParserException cause );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * ...
+ * --> DefaultMavenProjectBuilder.buildFromRepository(..)
+ * --> DefaultMavenProjectBuilder.findModelFromRepository(..)
(private)
+ * DefaultMavenProjectBuilder.build(..)
+ * --> DefaultMavenProjectBuilder.buildFromSourceFileInternal(..)
(private)
+ * --> DefaultMavenProjectBuilder.readModel(..) (private)
+ * --> thrown IOException
+ * <------ InvalidProjectModelException
+ * </pre>
+ */
+ void reportErrorParsingProjectModel( String projectId,
+ File pomFile,
+ IOException cause );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * ...
+ * --> DefaultModelLineageBuilder.buildModelLineage(..)
+ * --> DefaultModelLineageBuilder.readModel(..) (private)
+ * --> thrown IOException
+ * <------ ProjectBuildingException
+ * </pre>
+ */
+ void reportErrorParsingParentProjectModel( ModelAndFile childInfo,
+ File parentPomFile,
+ IOException cause );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * ...
+ * --> DefaultModelLineageBuilder.buildModelLineage(..)
+ * --> DefaultModelLineageBuilder.resolveParentPom(..) (private)
+ * -->
DefaultModelLineageBuilder.resolveParentFromRepository(..) (private)
+ * --> thrown ArtifactNotFoundException
+ * <---------- ProjectBuildingException
+ * </pre>
+ */
+ void reportParentPomArtifactNotFound( Parent parentRef,
+ ArtifactRepository localRepo,
+ List remoteRepos,
+ String childId,
+ File childPomFile,
+ ArtifactNotFoundException cause );
+
+ /**
+ * <b>Call Stack:</b>
+ * <br/>
+ * <pre>
+ * ...
+ * --> DefaultModelLineageBuilder.buildModelLineage(..)
+ * --> DefaultModelLineageBuilder.resolveParentPom(..) (private)
+ * -->
DefaultModelLineageBuilder.resolveParentFromRepository(..) (private)
+ * --> thrown ArtifactResolutionException
+ * <---------- ProjectBuildingException
+ * </pre>
+ */
+ void reportParentPomArtifactUnresolvable( Parent parentRef,
+ ArtifactRepository localRepo,
+ List remoteRepos,
+ String childId,
+ File childPomFile,
+ ArtifactResolutionException
cause );
}
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorTips.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorTips.java?rev=598864&r1=598863&r2=598864&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorTips.java
(original)
+++
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorTips.java
Tue Nov 27 20:28:28 2007
@@ -159,4 +159,13 @@
// TODO Auto-generated method stub
return null;
}
+
+ public static List getTipsForPomParsingError( String projectId,
+ File pomFile,
+ Exception cause )
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}