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 2007/11/08 22:06:31 UTC

svn commit: r593310 - /maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/compat/plugin/Maven20xCompatAspect.aj

Author: jdcasey
Date: Thu Nov  8 13:06:31 2007
New Revision: 593310

URL: http://svn.apache.org/viewvc?rev=593310&view=rev
Log:
[MNG-3193] Adding pointcut and advice to provide backward compat on invalid lifecycle phase names (these bindings will be ignored).

Modified:
    maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/compat/plugin/Maven20xCompatAspect.aj

Modified: maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/compat/plugin/Maven20xCompatAspect.aj
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/compat/plugin/Maven20xCompatAspect.aj?rev=593310&r1=593309&r2=593310&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/compat/plugin/Maven20xCompatAspect.aj (original)
+++ maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/compat/plugin/Maven20xCompatAspect.aj Thu Nov  8 13:06:31 2007
@@ -1,5 +1,8 @@
 package org.apache.maven.compat.plugin;
 
+import org.apache.maven.lifecycle.MojoBindingUtils;
+import org.apache.maven.lifecycle.LifecycleUtils;
+import org.apache.maven.lifecycle.NoSuchPhaseException;
 import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.execution.MavenExecutionResult;
 import org.apache.maven.execution.MavenSession;
@@ -14,6 +17,7 @@
 import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
 import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
 import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.lifecycle.model.MojoBinding;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.plugin.DefaultPluginManager;
 import org.apache.maven.plugin.InvalidPluginException;
@@ -31,6 +35,8 @@
 import org.codehaus.plexus.classworlds.realm.NoSuchRealmException;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
+import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.logging.LogEnabled;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.context.Context;
@@ -156,6 +162,7 @@
     }
 
     // GRAB the request when it's passed into a method that returns a corresponding result.
+    // NOTE: We'll use this in multiple places below...
     private MavenExecutionRequest request;
 
     private pointcut methodsTakingRequest( MavenExecutionRequest request ):
@@ -243,6 +250,39 @@
         }
 
         return pluginRealm;
+    }
+
+    // Grab this so we have a voice!
+    private Logger logger;
+
+    private pointcut enableLoggingCall( Logger logger ):
+        execution( void LogEnabled+.enableLogging( Logger ) )
+        && args( logger );
+
+    after( Logger logger ): enableLoggingCall( logger )
+    {
+        if ( this.logger == null )
+        {
+            this.logger = logger;
+        }
+    }
+
+    private pointcut addMojoBindingCall( String phase, MojoBinding binding ):
+        call( void LifecycleUtils.addMojoBinding( String, MojoBinding, .. ) )
+        && args( phase, binding, .. );
+
+    void around( String phase, MojoBinding binding ): addMojoBindingCall( phase, binding )
+    {
+        try
+        {
+            proceed( phase, binding );
+        }
+        catch ( NoSuchPhaseException e )
+        {
+            logger.debug( "Mojo execution: " + MojoBindingUtils.toString( binding )
+                          + " cannot be attached to lifecycle phase: " + phase
+                          + "; it does not exist. Ignoring this binding." );
+        }
     }
 
     // --------------------------