Author: jdcasey Date: Sat Dec 15 00:17:21 2007 New Revision: 604401 URL: http://svn.apache.org/viewvc?rev=604401&view=rev Log: Error reporting works properly now.
Added: maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/CoreReporterDebugAspect.aj maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectReporterDebugAspect.aj Removed: maven/components/trunk/maven-embedder/src/main/aspect/org/apache/maven/embedder/cache/ErrorReportingAspect.aj Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreReporterManager.java maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/Configuration.java maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/DefaultConfiguration.java maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java 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 Added: maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/CoreReporterDebugAspect.aj URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/CoreReporterDebugAspect.aj?rev=604401&view=auto ============================================================================== --- maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/CoreReporterDebugAspect.aj (added) +++ maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/CoreReporterDebugAspect.aj Sat Dec 15 00:17:21 2007 @@ -0,0 +1,28 @@ +package org.apache.maven.errors; + +import org.apache.maven.errors.DefaultCoreErrorReporter; +import org.apache.maven.errors.CoreErrorReporter; +import org.aspectj.lang.reflect.SourceLocation; + +public privileged aspect CoreReporterDebugAspect +{ + +// before( Throwable key, DefaultCoreErrorReporter reporter ): +// call( void DefaultCoreErrorReporter.registerBuildError( Throwable, .. ) ) +// && args( key, .. ) +// && target( reporter ) +// { +// SourceLocation location = thisJoinPoint.getSourceLocation(); +// System.out.println( "Registering: " + key.getClass().getName() + "@" + key.hashCode() + "\nfrom: " + location.getFileName() + ", line: " + location.getLine() + "\nreporter instance hashcode is: " + reporter.hashCode() ); +// } +// +// after() returning( Throwable key ): +// execution( Throwable CoreErrorReporter+.findReportedException( Throwable ) ) +// { +// if ( key != null ) +// { +// System.out.println( "Found reported exception: " + key.getClass().getName() + "@" + key.hashCode() ); +// } +// } + +} Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java?rev=604401&r1=604400&r2=604401&view=diff ============================================================================== --- maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java (original) +++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java Sat Dec 15 00:17:21 2007 @@ -37,6 +37,7 @@ import org.apache.maven.project.MavenProject; import org.apache.maven.project.ProjectBuildingException; import org.apache.maven.project.artifact.InvalidDependencyVersionException; +import org.apache.maven.project.error.ProjectErrorReporter; import org.apache.maven.project.interpolation.ModelInterpolationException; import org.apache.maven.project.path.PathTranslator; import org.apache.maven.reactor.MavenExecutionException; @@ -51,17 +52,8 @@ import java.util.Map; public interface CoreErrorReporter + extends ProjectErrorReporter { - - String NEWLINE = "\n"; - - void clearErrors(); - - String getFormattedMessage( Throwable error ); - - Throwable getRealCause( Throwable error ); - - Throwable findReportedException( Throwable error ); void reportNoGoalsSpecifiedException( MavenProject rootProject, NoGoalsSpecifiedException error ); Modified: 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=604401&r1=604400&r2=604401&view=diff ============================================================================== --- maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreReporterManager.java (original) +++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/CoreReporterManager.java Sat Dec 15 00:17:21 2007 @@ -1,5 +1,7 @@ package org.apache.maven.errors; +import org.apache.maven.project.error.ProjectReporterManager; + public final class CoreReporterManager { @@ -14,6 +16,8 @@ if ( reporter == null ) { reporter = new DefaultCoreErrorReporter(); + // FIXME: Is this correct? What might this isolate and make inaccessible in a running system? + ProjectReporterManager.setReporter( reporter ); } return reporter; @@ -22,6 +26,7 @@ public static void setReporter( CoreErrorReporter instance ) { reporter = instance; + ProjectReporterManager.setReporter( instance ); } public static void clearReporter() Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java?rev=604401&r1=604400&r2=604401&view=diff ============================================================================== --- maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java (original) +++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java Sat Dec 15 00:17:21 2007 @@ -44,6 +44,7 @@ import org.apache.maven.project.MavenProject; import org.apache.maven.project.ProjectBuildingException; import org.apache.maven.project.artifact.InvalidDependencyVersionException; +import org.apache.maven.project.error.DefaultProjectErrorReporter; import org.apache.maven.project.error.ProjectErrorReporter; import org.apache.maven.project.error.ProjectReporterManager; import org.apache.maven.project.interpolation.ModelInterpolationException; @@ -66,70 +67,20 @@ import java.util.Map; public class DefaultCoreErrorReporter + extends DefaultProjectErrorReporter implements CoreErrorReporter { - private Map formattedMessages = new HashMap(); + private static final String NEWLINE = "\n"; - private Map realCauses = new HashMap(); - - /** - * @see org.apache.maven.project.error.ProjectErrorReporter#clearErrors() - */ - public void clearErrors() + public DefaultCoreErrorReporter( Map formattedMessageStore, Map realCauseStore ) { - formattedMessages.clear(); - realCauses.clear(); + super( formattedMessageStore, realCauseStore ); } - /** - * @see org.apache.maven.project.error.ProjectErrorReporter#hasInformationFor(java.lang.Throwable) - */ - public Throwable findReportedException( Throwable error ) + public DefaultCoreErrorReporter() { - if ( formattedMessages.containsKey( error ) ) - { - return error; - } - else if ( error.getCause() != null ) - { - return findReportedException( error.getCause() ); - } - - return null; - } - /** - * @see org.apache.maven.project.error.ProjectErrorReporter#getFormattedMessage(java.lang.Throwable) - */ - public String getFormattedMessage( Throwable error ) - { - return (String) formattedMessages.get( error ); - } - - /** - * @see org.apache.maven.project.error.ProjectErrorReporter#getRealCause(java.lang.Throwable) - */ - public Throwable getRealCause( Throwable error ) - { - return (Throwable) realCauses.get( error ); - } - - private void registerBuildError( Throwable error, - String formattedMessage, - Throwable realCause ) - { - formattedMessages.put( error, formattedMessage ); - if ( realCause != null ) - { - realCauses.put( error, realCause ); - } - } - - private void registerBuildError( Throwable error, - String formattedMessage ) - { - formattedMessages.put( error, formattedMessage ); } public void reportNoGoalsSpecifiedException( MavenProject rootProject, NoGoalsSpecifiedException error ) Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java?rev=604401&r1=604400&r2=604401&view=diff ============================================================================== --- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java (original) +++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java Sat Dec 15 00:17:21 2007 @@ -20,6 +20,7 @@ */ import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.errors.CoreErrorReporter; import org.apache.maven.monitor.event.EventMonitor; import org.apache.maven.profiles.ProfileManager; import org.apache.maven.settings.Settings; @@ -527,6 +528,8 @@ private Settings settings; + private CoreErrorReporter errorReporter; + public MavenExecutionRequest setSettings( Settings settings ) { this.settings = settings; @@ -621,6 +624,17 @@ { realmManager.clear(); + return this; + } + + public CoreErrorReporter getErrorReporter() + { + return errorReporter; + } + + public MavenExecutionRequest setErrorReporter( CoreErrorReporter reporter ) + { + errorReporter = reporter; return this; } } Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java?rev=604401&r1=604400&r2=604401&view=diff ============================================================================== --- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java (original) +++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java Sat Dec 15 00:17:21 2007 @@ -21,6 +21,7 @@ import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy; +import org.apache.maven.errors.CoreErrorReporter; import org.apache.maven.monitor.event.EventMonitor; import org.apache.maven.profiles.ProfileManager; import org.apache.maven.settings.Settings; @@ -207,4 +208,7 @@ MavenRealmManager getRealmManager(); MavenExecutionRequest clearAccumulatedBuildState(); + + MavenExecutionRequest setErrorReporter( CoreErrorReporter reporter ); + CoreErrorReporter getErrorReporter(); } 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=604401&r1=604400&r2=604401&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 Sat Dec 15 00:17:21 2007 @@ -1,14 +1,14 @@ package org.apache.maven.cli; -import org.apache.maven.BuildFailureException; import org.apache.maven.embedder.MavenEmbedderConsoleLogger; import org.apache.maven.embedder.MavenEmbedderLogger; +import org.apache.maven.errors.CoreErrorReporter; +import org.apache.maven.errors.DefaultCoreErrorReporter; import org.apache.maven.execution.BuildFailure; import org.apache.maven.execution.MavenExecutionRequest; import org.apache.maven.execution.MavenExecutionResult; import org.apache.maven.execution.ReactorManager; import org.apache.maven.lifecycle.LifecycleExecutionException; -import org.apache.maven.project.DuplicateProjectException; import org.apache.maven.project.MavenProject; import org.apache.maven.project.ProjectBuildingException; import org.apache.maven.reactor.MavenExecutionException; @@ -128,7 +128,7 @@ { Exception e = (Exception) i.next(); - showError( e, request.isShowErrors(), logger ); + showError( e, request.isShowErrors(), request.getErrorReporter(), logger ); } } else @@ -178,14 +178,15 @@ Exception e, boolean showErrors ) { - showError( message, e, showErrors, new MavenEmbedderConsoleLogger() ); + showError( message, e, showErrors, new DefaultCoreErrorReporter(), new MavenEmbedderConsoleLogger() ); } static void showError( Exception e, boolean show, + CoreErrorReporter reporter, MavenEmbedderLogger logger ) { - showError( null, e, show, logger ); + showError( null, e, show, reporter, logger ); } /** @@ -198,6 +199,7 @@ public static void showError( String message, Exception e, boolean showStackTraces, + CoreErrorReporter reporter, MavenEmbedderLogger logger ) { StringWriter writer = new StringWriter(); @@ -210,7 +212,7 @@ writer.write( NEWLINE ); } - buildErrorMessage( e, showStackTraces, writer ); + buildErrorMessage( e, showStackTraces, reporter, writer ); writer.write( NEWLINE ); @@ -231,17 +233,38 @@ public static void buildErrorMessage( Exception e, boolean showStackTraces, + CoreErrorReporter reporter, StringWriter writer ) { - boolean handled = false; - - if ( e instanceof BuildFailureException ) + if ( reporter != null ) { - handled = handleBuildFailureException( (BuildFailureException) e, - showStackTraces, - writer ); + Throwable reported = reporter.findReportedException( e ); + + if ( reported != null ) + { + writer.write( reporter.getFormattedMessage( reported ) ); + + if ( showStackTraces ) + { + writer.write( NEWLINE ); + writer.write( NEWLINE ); + Throwable cause = reporter.getRealCause( reported ); + if ( cause != null ) + { + cause.printStackTrace( new PrintWriter( writer ) ); + } + } + + writer.write( NEWLINE ); + writer.write( NEWLINE ); + + return; + } } - else if ( e instanceof ProjectBuildingException ) + + boolean handled = false; + + if ( e instanceof ProjectBuildingException ) { handled = handleProjectBuildingException( (ProjectBuildingException) e, showStackTraces, @@ -253,12 +276,6 @@ showStackTraces, writer ); } - else if ( e instanceof DuplicateProjectException ) - { - handled = handleDuplicateProjectException( (DuplicateProjectException) e, - showStackTraces, - writer ); - } else if ( e instanceof MavenExecutionException ) { handled = handleMavenExecutionException( (MavenExecutionException) e, @@ -291,15 +308,6 @@ return true; } - private static boolean handleDuplicateProjectException( DuplicateProjectException e, - boolean showStackTraces, - StringWriter writer ) - { - handleGenericException( e, showStackTraces, writer ); - - return true; - } - private static void handleGenericException( Throwable exception, boolean showStackTraces, StringWriter writer ) @@ -330,7 +338,6 @@ return true; } - // NOTE: This method is an aspect target. private static boolean handleProjectBuildingException( ProjectBuildingException e, boolean showStackTraces, StringWriter writer ) @@ -351,16 +358,6 @@ writer.write( e.getPomFile().getAbsolutePath() ); } writer.write( NEWLINE ); - - return true; - } - - // NOTE: This method is an aspect target. - private static boolean handleBuildFailureException( BuildFailureException e, - boolean showStackTraces, - StringWriter writer ) - { - handleGenericException( e, showStackTraces, writer ); return true; } Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java?rev=604401&r1=604400&r2=604401&view=diff ============================================================================== --- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java (original) +++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java Sat Dec 15 00:17:21 2007 @@ -29,6 +29,7 @@ import org.apache.maven.embedder.MavenEmbedderException; import org.apache.maven.embedder.MavenEmbedderFileLogger; import org.apache.maven.embedder.MavenEmbedderLogger; +import org.apache.maven.errors.DefaultCoreErrorReporter; import org.apache.maven.execution.MavenExecutionRequest; import org.apache.maven.execution.MavenExecutionResult; import org.codehaus.plexus.classworlds.ClassWorld; @@ -145,6 +146,8 @@ Configuration configuration = buildEmbedderConfiguration( request, commandLine, classWorld ); + System.out.println( "Using error reporter: " + configuration.getErrorReporter() ); + ConfigurationValidationResult cvr = MavenEmbedder.validateConfiguration( configuration ); if ( cvr.isUserSettingsFilePresent() && !cvr.isUserSettingsFileParses() ) @@ -209,6 +212,7 @@ } Configuration configuration = new DefaultConfiguration() + .setErrorReporter( new DefaultCoreErrorReporter() ) .setUserSettingsFile( userSettingsFile ) .setGlobalSettingsFile( MavenEmbedder.DEFAULT_GLOBAL_SETTINGS_FILE ) .setClassWorld( classWorld ); Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/Configuration.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/Configuration.java?rev=604401&r1=604400&r2=604401&view=diff ============================================================================== --- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/Configuration.java (original) +++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/Configuration.java Sat Dec 15 00:17:21 2007 @@ -18,6 +18,7 @@ * under the License. */ +import org.apache.maven.errors.CoreErrorReporter; import org.apache.maven.execution.MavenRealmManager; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.classworlds.ClassWorld; @@ -131,4 +132,13 @@ Configuration setRealmManager( MavenRealmManager realmManager ); MavenRealmManager getRealmManager(); + + // ---------------------------------------------------------------------------- + // Error Reporter + // ---------------------------------------------------------------------------- + + Configuration setErrorReporter( CoreErrorReporter errorReporter ); + + CoreErrorReporter getErrorReporter(); + } Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/DefaultConfiguration.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/DefaultConfiguration.java?rev=604401&r1=604400&r2=604401&view=diff ============================================================================== --- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/DefaultConfiguration.java (original) +++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/DefaultConfiguration.java Sat Dec 15 00:17:21 2007 @@ -18,6 +18,7 @@ * under the License. */ +import org.apache.maven.errors.CoreErrorReporter; import org.apache.maven.execution.MavenRealmManager; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.classworlds.ClassWorld; @@ -61,6 +62,8 @@ private MavenRealmManager realmManager; + private CoreErrorReporter errorReporter; + /** Creates a new instance of DefaultConfiguration */ public DefaultConfiguration() { @@ -230,6 +233,17 @@ public Configuration setRealmManager( MavenRealmManager realmManager ) { this.realmManager = realmManager; + return this; + } + + public CoreErrorReporter getErrorReporter() + { + return errorReporter; + } + + public Configuration setErrorReporter( CoreErrorReporter errorReporter ) + { + this.errorReporter = errorReporter; return this; } } Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?rev=604401&r1=604400&r2=604401&view=diff ============================================================================== --- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java (original) +++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Sat Dec 15 00:17:21 2007 @@ -31,6 +31,8 @@ import org.apache.maven.artifact.resolver.ArtifactResolutionException; import org.apache.maven.artifact.resolver.ArtifactResolver; import org.apache.maven.embedder.execution.MavenExecutionRequestPopulator; +import org.apache.maven.errors.CoreErrorReporter; +import org.apache.maven.errors.CoreReporterManager; import org.apache.maven.execution.DefaultMavenExecutionRequest; import org.apache.maven.execution.DefaultMavenExecutionResult; import org.apache.maven.execution.MavenExecutionRequest; @@ -330,6 +332,11 @@ public MavenProject readProject( File mavenProject ) throws ProjectBuildingException, ExtensionScanningException { + CoreErrorReporter errorReporter = request.getErrorReporter(); + errorReporter.clearErrors(); + + CoreReporterManager.setReporter( errorReporter ); + return readProject( mavenProject, request ); } @@ -358,6 +365,11 @@ { request = populator.populateDefaults( request, configuration ); + CoreErrorReporter errorReporter = request.getErrorReporter(); + errorReporter.clearErrors(); + + CoreReporterManager.setReporter( errorReporter ); + // This is necessary to make the MavenEmbedderProjectWithExtensionReadingTest work which uses // a custom type for a dependency like this: // @@ -795,6 +807,11 @@ return result; } + + CoreErrorReporter errorReporter = request.getErrorReporter(); + errorReporter.clearErrors(); + + CoreReporterManager.setReporter( errorReporter ); return maven.execute( request ); } Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java?rev=604401&r1=604400&r2=604401&view=diff ============================================================================== --- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java (original) +++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java Sat Dec 15 00:17:21 2007 @@ -28,6 +28,7 @@ import org.apache.maven.embedder.Configuration; import org.apache.maven.embedder.MavenEmbedder; import org.apache.maven.embedder.MavenEmbedderException; +import org.apache.maven.errors.DefaultCoreErrorReporter; import org.apache.maven.execution.DefaultMavenRealmManager; import org.apache.maven.execution.MavenExecutionRequest; import org.apache.maven.model.Profile; @@ -97,6 +98,8 @@ Configuration configuration ) throws MavenEmbedderException { + reporter( request, configuration ); + executionProperties( request, configuration ); pom( request, configuration ); @@ -122,6 +125,22 @@ realmManager( request, configuration ); return request; + } + + private void reporter( MavenExecutionRequest request, + Configuration configuration ) + { + if ( request.getErrorReporter() == null ) + { + if ( configuration.getErrorReporter() != null ) + { + request.setErrorReporter( configuration.getErrorReporter() ); + } + else + { + request.setErrorReporter( new DefaultCoreErrorReporter() ); + } + } } private void executionProperties( MavenExecutionRequest request, Added: maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectReporterDebugAspect.aj URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectReporterDebugAspect.aj?rev=604401&view=auto ============================================================================== --- maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectReporterDebugAspect.aj (added) +++ maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectReporterDebugAspect.aj Sat Dec 15 00:17:21 2007 @@ -0,0 +1,34 @@ +package org.apache.maven.project.aspect; + +import org.apache.maven.project.error.ProjectErrorReporter; +import org.apache.maven.project.error.DefaultProjectErrorReporter; +import org.aspectj.lang.reflect.SourceLocation; + +public privileged aspect ProjectReporterDebugAspect +{ + +// before( Throwable key, String message, DefaultProjectErrorReporter reporter ): +// call( void DefaultProjectErrorReporter.registerBuildError( Throwable, String, .. ) ) +// && args( key, message, .. ) +// && target( reporter ) +// { +// SourceLocation location = thisJoinPoint.getSourceLocation(); +// System.out.println( "Registering: " + key.getClass().getName() + "@" + key.hashCode() + "\nfrom: " + location.getFileName() + ", line: " + location.getLine() + "\nreporter is: " + reporter + "\n\nMessage:\n\n" + message ); +// } +// +// before(): +// execution( void DefaultProjectErrorReporter.clearErrors() ) +// { +// System.out.println( "WARNING: CLEARING ALL ERROR REPORTS." ); +// } +// +// after() returning( Throwable key ): +// execution( Throwable ProjectErrorReporter+.findReportedException( Throwable ) ) +// { +// if ( key != null ) +// { +// System.out.println( "Found reported exception: " + key.getClass().getName() + "@" + key.hashCode() ); +// } +// } + +} 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=604401&r1=604400&r2=604401&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 Sat Dec 15 00:17:21 2007 @@ -37,9 +37,23 @@ implements ProjectErrorReporter { - private Map formattedMessages = new HashMap(); + private static final String NEWLINE = "\n"; - private Map realCauses = new HashMap(); + private Map formattedMessages; + + private Map realCauses; + + public DefaultProjectErrorReporter( Map formattedMessageStore, Map realCauseStore ) + { + formattedMessages = formattedMessageStore; + realCauses = realCauseStore; + } + + public DefaultProjectErrorReporter() + { + formattedMessages = new HashMap(); + realCauses = new HashMap(); + } /** * @see org.apache.maven.project.error.ProjectErrorReporter#clearErrors() @@ -83,7 +97,7 @@ return (Throwable) realCauses.get( error ); } - private void registerProjectBuildError( Throwable error, + protected void registerBuildError( Throwable error, String formattedMessage, Throwable realCause ) { @@ -91,7 +105,7 @@ realCauses.put( error, realCause ); } - private void registerProjectBuildError( Throwable error, + protected void registerBuildError( Throwable error, String formattedMessage ) { formattedMessages.put( error, formattedMessage ); @@ -133,7 +147,7 @@ context, cause ), writer ); - registerProjectBuildError( cause, writer.toString(), cause.getCause() ); + registerBuildError( cause, writer.toString(), cause.getCause() ); } /** @@ -173,7 +187,7 @@ cause ), writer ); - registerProjectBuildError( cause, writer.toString(), cause.getCause() ); + registerBuildError( cause, writer.toString(), cause.getCause() ); } /** @@ -207,7 +221,7 @@ cause ), writer ); - registerProjectBuildError( cause, writer.toString(), cause.getCause() ); + registerBuildError( cause, writer.toString(), cause.getCause() ); } /** @@ -241,7 +255,7 @@ cause ), writer ); - registerProjectBuildError( cause, writer.toString(), cause.getCause() ); + registerBuildError( cause, writer.toString(), cause.getCause() ); } /** @@ -270,7 +284,7 @@ projectDir, cause ), writer ); - registerProjectBuildError( cause, writer.toString(), cause.getCause() ); + registerBuildError( cause, writer.toString(), cause.getCause() ); } /** @@ -306,7 +320,7 @@ projectDir, cause ), writer ); - registerProjectBuildError( cause, writer.toString(), cause.getCause() ); + registerBuildError( cause, writer.toString(), cause.getCause() ); } /** @@ -336,7 +350,7 @@ addTips( ProjectErrorTips.getTipsForInvalidRepositorySpec( repo, projectId, pomFile, cause ), writer ); - registerProjectBuildError( cause, writer.toString(), cause.getCause() ); + registerBuildError( cause, writer.toString(), cause.getCause() ); } private void addStandardInfo( String projectId, @@ -395,7 +409,7 @@ addTips( ProjectErrorTips.getTipsForInvalidRepositorySpec( repo, project.getId(), pomFile, cause ), writer ); - registerProjectBuildError( cause, writer.toString() ); + registerBuildError( cause, writer.toString() ); } public void reportErrorCreatingDeploymentArtifactRepository( MavenProject project, @@ -421,7 +435,7 @@ addTips( ProjectErrorTips.getTipsForInvalidRepositorySpec( repo, project.getId(), pomFile, cause ), writer ); - registerProjectBuildError( cause, writer.toString() ); + registerBuildError( cause, writer.toString() ); } public void reportBadNonDependencyProjectArtifactVersion( MavenProject project, @@ -446,7 +460,7 @@ addTips( ProjectErrorTips.getTipsForBadNonDependencyArtifactSpec( project, pomFile, cause ), writer ); - registerProjectBuildError( cause, writer.toString() ); + registerBuildError( cause, writer.toString() ); } public void reportErrorInterpolatingModel( MavenProject project, @@ -464,7 +478,7 @@ addTips( ProjectErrorTips.getTipsForProjectInterpolationError( project, pomFile, cause ), writer ); - registerProjectBuildError( cause, writer.toString() ); + registerBuildError( cause, writer.toString() ); } public void reportProjectValidationFailure( MavenProject project, @@ -492,7 +506,7 @@ addTips( ProjectErrorTips.getTipsForProjectValidationFailure( project, pomFile, error.getValidationResult() ), writer ); - registerProjectBuildError( error, writer.toString() ); + registerBuildError( error, writer.toString() ); } public void reportBadManagedDependencyVersion( MavenProject project, @@ -528,7 +542,7 @@ addTips( ProjectErrorTips.getTipsForBadDependencySpec( project, pomFile, dep ), writer ); - registerProjectBuildError( cause, writer.toString() ); + registerBuildError( cause, writer.toString() ); } public void reportBadDependencyVersion( MavenProject project, @@ -564,7 +578,7 @@ addTips( ProjectErrorTips.getTipsForBadDependencySpec( project, pomFile, dep ), writer ); - registerProjectBuildError( cause, writer.toString() ); + registerBuildError( cause, writer.toString() ); } public void reportErrorParsingProjectModel( String projectId, @@ -599,7 +613,7 @@ addTips( ProjectErrorTips.getTipsForPomParsingError( projectId, pomFile, cause ), writer ); - registerProjectBuildError( cause, writer.toString() ); + registerBuildError( cause, writer.toString() ); } public void reportErrorParsingParentProjectModel( ModelAndFile childInfo, @@ -643,7 +657,7 @@ addTips( ProjectErrorTips.getTipsForPomParsingError( projectId, parentPomFile, cause ), writer ); - registerProjectBuildError( cause, writer.toString() ); + registerBuildError( cause, writer.toString() ); } public void reportErrorParsingProjectModel( String projectId, @@ -671,7 +685,7 @@ addTips( ProjectErrorTips.getTipsForPomParsingError( projectId, pomFile, cause ), writer ); - registerProjectBuildError( cause, writer.toString() ); + registerBuildError( cause, writer.toString() ); } public void reportErrorParsingParentProjectModel( ModelAndFile childInfo, @@ -708,7 +722,7 @@ addTips( ProjectErrorTips.getTipsForPomParsingError( projectId, parentPomFile, cause ), writer ); - registerProjectBuildError( cause, writer.toString() ); + registerBuildError( cause, writer.toString() ); } public void reportParentPomArtifactNotFound( Parent parentRef, @@ -790,7 +804,7 @@ addTips( ProjectErrorTips.getTipsForPomParsingError( childId, childPomFile, cause ), writer ); - registerProjectBuildError( cause, writer.toString() ); + registerBuildError( cause, writer.toString() ); } public void reportProjectCollision( List allProjectInstances, @@ -820,6 +834,6 @@ addTips( ProjectErrorTips.getTipsForDuplicateProjectError( allProjectInstances, err ), writer ); - registerProjectBuildError( err, writer.toString() ); + registerBuildError( err, 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=604401&r1=604400&r2=604401&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 Sat Dec 15 00:17:21 2007 @@ -30,8 +30,6 @@ public interface ProjectErrorReporter { - String NEWLINE = "\n"; - void clearErrors(); String getFormattedMessage( Throwable error );