You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2008/01/17 19:26:37 UTC

svn commit: r612920 - in /maven/components/trunk: maven-core/src/main/aspect/org/apache/maven/errors/ maven-core/src/main/java/org/apache/maven/errors/ maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/ maven-embedder/src/te...

Author: jdcasey
Date: Thu Jan 17 10:26:35 2008
New Revision: 612920

URL: http://svn.apache.org/viewvc?rev=612920&view=rev
Log:
Adding more error-reporting unit tests.

Added:
    maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/
    maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/
    maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/org/
    maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/org/apache/
    maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/org/apache/maven/
    maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/org/apache/maven/errortest/
    maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/org/apache/maven/errortest/testReportErrorLoadingPlugin-maven-plugin/
    maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/org/apache/maven/errortest/testReportErrorLoadingPlugin-maven-plugin/1/
    maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/org/apache/maven/errortest/testReportErrorLoadingPlugin-maven-plugin/1/testReportErrorLoadingPlugin-maven-plugin-1.jar   (with props)
    maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/org/apache/maven/errortest/testReportErrorLoadingPlugin-maven-plugin/1/testReportErrorLoadingPlugin-maven-plugin-1.pom   (with props)
    maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/project/
    maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/project/pom.xml   (with props)
Modified:
    maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/LifecycleErrorReporterAspect.aj
    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/DefaultCoreErrorReporter.java
    maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java

Modified: maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/LifecycleErrorReporterAspect.aj
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/LifecycleErrorReporterAspect.aj?rev=612920&r1=612919&r2=612920&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/LifecycleErrorReporterAspect.aj (original)
+++ maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/LifecycleErrorReporterAspect.aj Thu Jan 17 10:26:35 2008
@@ -9,11 +9,13 @@
 import org.apache.maven.plugin.PluginConfigurationException;
 import org.apache.maven.plugin.descriptor.Parameter;
 import org.apache.maven.plugin.loader.PluginLoaderException;
+import org.apache.maven.plugin.loader.PluginLoader;
 import org.apache.maven.plugin.PluginExecutionException;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.lifecycle.model.MojoBinding;
+import org.apache.maven.lifecycle.statemgmt.StateManagementUtils;
 import org.apache.maven.lifecycle.DefaultLifecycleExecutor;
 import org.apache.maven.lifecycle.LifecycleException;
 import org.apache.maven.lifecycle.LifecycleExecutionException;
@@ -23,6 +25,7 @@
 import org.apache.maven.plugin.PluginParameterExpressionEvaluator;
 import org.apache.maven.plugin.PluginParameterException;
 import org.apache.maven.plugin.Mojo;
+import org.apache.maven.lifecycle.statemgmt.ResolveLateBoundPluginMojo;
 import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.configuration.PlexusConfiguration;
@@ -54,10 +57,10 @@
         getReporter().reportMissingPluginDescriptor( binding, project, err );
     }
 
-    before( MojoBinding binding, MavenProject project, PluginLoaderException cause ):
-        cflow( le_executeGoalAndHandleFailures( binding ) )
-        && call( LifecycleExecutionException.new( String, MavenProject, PluginLoaderException ) )
-        && args( *, project, cause )
+    after( MojoBinding binding, MavenProject project ) throwing ( PluginLoaderException cause ):
+        cflow( le_executeGoalAndHandleFailures( MojoBinding ) )
+        && call( * PluginLoader+.loadPlugin( MojoBinding, MavenProject, .. ) )
+        && args( binding, project, .. )
     {
         getReporter().reportErrorLoadingPlugin( binding, project, cause );
     }
@@ -68,7 +71,11 @@
         && handler( MojoExecutionException )
         && args( cause )
     {
-        getReporter().reportMojoExecutionException( binding, project, cause );
+        // this will be covered by the reportErrorLoadingPlugin(..) method.
+        if ( !StateManagementUtils.RESOLVE_LATE_BOUND_PLUGIN_GOAL.equals( binding.getGoal() ) )
+        {
+            getReporter().reportMojoExecutionException( binding, project, cause );
+        }
     }
 
     PluginExecutionException around( MojoBinding binding, MavenProject project ):

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=612920&r1=612919&r2=612920&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 Thu Jan 17 10:26:35 2008
@@ -107,8 +107,6 @@
 
     void reportNoGoalsSpecifiedException( MavenProject rootProject, NoGoalsSpecifiedException error );
 
-    void reportPluginErrorWhileValidatingTask( String task, MavenSession session, MavenProject rootProject, PluginLoaderException cause );
-
     void reportProjectCycle( ProjectCycleException error );
 
     void reportProjectDependenciesNotFound( MavenProject project, String scope, ArtifactNotFoundException cause );

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=612920&r1=612919&r2=612920&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 Thu Jan 17 10:26:35 2008
@@ -291,32 +291,6 @@
         registerBuildError( cause, writer.toString(), cause.getCause() );
     }
 
-    public void reportPluginErrorWhileValidatingTask( String task,
-                                                      MavenSession session,
-                                                      MavenProject rootProject,
-                                                      PluginLoaderException cause )
-    {
-        StringWriter writer = new StringWriter();
-
-        writer.write( NEWLINE );
-        writer.write( "Invalid mojo or lifecycle phase: " );
-        writer.write( task );
-        writer.write( NEWLINE );
-        writer.write( NEWLINE );
-
-        writer.write( "Failed to load plugin: " );
-        writer.write( cause.getPluginKey() );
-        writer.write( NEWLINE );
-        writer.write( NEWLINE );
-
-        writer.write( "Original error message was: " );
-        writer.write( cause.getMessage() );
-
-        addTips( CoreErrorTips.getTaskValidationTips( task, cause ), writer );
-
-        registerBuildError( cause, writer.toString(), cause.getCause() );
-    }
-
     public void reportMissingPluginDescriptor( MojoBinding binding,
                                                MavenProject project,
                                                LifecycleExecutionException err )

Added: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/org/apache/maven/errortest/testReportErrorLoadingPlugin-maven-plugin/1/testReportErrorLoadingPlugin-maven-plugin-1.jar
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/org/apache/maven/errortest/testReportErrorLoadingPlugin-maven-plugin/1/testReportErrorLoadingPlugin-maven-plugin-1.jar?rev=612920&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/org/apache/maven/errortest/testReportErrorLoadingPlugin-maven-plugin/1/testReportErrorLoadingPlugin-maven-plugin-1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/org/apache/maven/errortest/testReportErrorLoadingPlugin-maven-plugin/1/testReportErrorLoadingPlugin-maven-plugin-1.pom
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/org/apache/maven/errortest/testReportErrorLoadingPlugin-maven-plugin/1/testReportErrorLoadingPlugin-maven-plugin-1.pom?rev=612920&view=auto
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/org/apache/maven/errortest/testReportErrorLoadingPlugin-maven-plugin/1/testReportErrorLoadingPlugin-maven-plugin-1.pom (added)
+++ maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/org/apache/maven/errortest/testReportErrorLoadingPlugin-maven-plugin/1/testReportErrorLoadingPlugin-maven-plugin-1.pom Thu Jan 17 10:26:35 2008
@@ -0,0 +1,55 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.errortest</groupId>
+  <artifactId>testReportErrorLoadingPlugin-maven-plugin</artifactId>
+  <packaging>maven-plugin</packaging>
+  <version>1</version>
+  
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>nothing</groupId>
+      <artifactId>nothing</artifactId>
+      <version>1</version>
+    </dependency>
+  </dependencies>
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>2.3.1</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-deploy-plugin</artifactId>
+          <version>2.3</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-install-plugin</artifactId>
+          <version>2.2</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-resources-plugin</artifactId>
+          <version>2.2</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-jar-plugin</artifactId>
+          <version>2.1</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <version>2.0.2</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-plugin-plugin</artifactId>
+          <version>2.3</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+</project>
\ No newline at end of file

Propchange: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/org/apache/maven/errortest/testReportErrorLoadingPlugin-maven-plugin/1/testReportErrorLoadingPlugin-maven-plugin-1.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/local-repo/org/apache/maven/errortest/testReportErrorLoadingPlugin-maven-plugin/1/testReportErrorLoadingPlugin-maven-plugin-1.pom
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/project/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/project/pom.xml?rev=612920&view=auto
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/project/pom.xml (added)
+++ maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/project/pom.xml Thu Jan 17 10:26:35 2008
@@ -0,0 +1,45 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven</groupId>
+  <artifactId>testReportErrorLoadingPlugin</artifactId>
+  <version>1</version>
+  
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.errortest</groupId>
+        <artifactId>testReportErrorLoadingPlugin-maven-plugin</artifactId>
+        <version>1</version>
+        <executions>
+          <execution>
+            <id>test-run</id>
+            <phase>initialize</phase>
+            <goals>
+              <goal>test</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  
+</project>

Propchange: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/project/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportErrorLoadingPlugin/project/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java?rev=612920&r1=612919&r2=612920&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java Thu Jan 17 10:26:35 2008
@@ -408,9 +408,33 @@
     }
 
     public void testReportErrorLoadingPlugin()
+        throws IOException
     {
-        // TODO Auto-generated method stub
+        File projectDir = prepareProjectDir();
+        File localRepo = new File( projectDir, "local-repo" );
+        File project = new File( projectDir, "project" );
+
+        Settings settings = new Settings();
+        settings.setOffline( true );
+        settings.setLocalRepository( localRepo.getAbsolutePath() );
+
+        reporter.reportErrorLoadingPlugin( null, null, null );
+        reporterCtl.setMatcher( MockControl.ALWAYS_MATCHER );
+        reporterCtl.setVoidCallable();
+
+        reporterCtl.replay();
+
+        MavenExecutionRequest request = new DefaultMavenExecutionRequest().setBaseDirectory( project )
+                                                                          .setSettings( settings )
+                                                                          .setShowErrors( true )
+                                                                          .setErrorReporter( reporter )
+                                                                          .setGoals( Arrays.asList( new String[] {
+                                                                              "initialize"
+                                                                          } ) );
 
+        maven.execute( request );
+
+        reporterCtl.verify();
     }
 
     public void testReportErrorManagingRealmForExtension()
@@ -772,12 +796,6 @@
         reporterCtl.verify();
     }
 
-    public void testReportPluginErrorWhileValidatingTask()
-    {
-        // TODO Auto-generated method stub
-
-    }
-
     public void testReportProjectCycle()
         throws IOException
     {
@@ -906,17 +924,11 @@
                                                                           .setShowErrors( true )
                                                                           .setSettings( settings )
                                                                           .setErrorReporter( reporter )
-//                                                                          .setErrorReporter( new DummyCoreErrorReporter() )
                                                                           .setGoals( Arrays.asList( new String[] {
                                                                               "initialize"
                                                                           } ) );
 
         maven.execute( request );
-//        MavenExecutionResult result = maven.execute( request );
-//        if ( result.hasExceptions() )
-//        {
-//            reportExceptions( result, project );
-//        }
 
         reporterCtl.verify();
     }