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/10/31 18:26:38 UTC

svn commit: r590758 - in /maven/components/trunk: maven-core/src/main/aspect/org/apache/maven/compat/plugin/Maven20xCompatAspect.aj maven-embedder/pom.xml

Author: jdcasey
Date: Wed Oct 31 10:26:37 2007
New Revision: 590758

URL: http://svn.apache.org/viewvc?rev=590758&view=rev
Log:
Adding compat trailer to the maven version when it's printed via the cli.

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

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=590758&r1=590757&r2=590758&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 Wed Oct 31 10:26:37 2007
@@ -28,18 +28,43 @@
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 import java.io.IOException;
+import java.io.PrintStream;
 import java.util.Iterator;
-import java.util.LinkedHashSet;
 import java.util.Set;
 
 public privileged aspect Maven20xCompatAspect
 {
 
+    // pointcut to avoid recursive matching on behavior injected by this aspect.
+    private pointcut notHere(): !within( Maven20xCompatAspect );
+
+    private pointcut showVersion( PrintStream stream, String string):
+        cflow( execution( void org.apache.maven.cli.CLIReportingUtils.showVersion() ) )
+        && call( void PrintStream.println( String ) )
+        && args( string )
+        && target( stream )
+        && notHere();
+
+    void around( PrintStream stream, String string ): showVersion( stream, string )
+    {
+        if ( stream == System.out && string != null && string.startsWith( "Maven version:" ) )
+        {
+            System.out.println( string + " (compat enabled)" );
+        }
+        else
+        {
+            proceed( stream, string );
+        }
+    }
+
     // GRAB Session and Request.
     private MavenSession session;
     private MavenExecutionRequest request;
 
-    private pointcut sessionCreation( MavenSession session ): execution( public MavenSession.new(..) ) && this( session );
+    private pointcut sessionCreation( MavenSession session ):
+        execution( public MavenSession.new(..) )
+        && this( session )
+        && notHere();
 
     after( MavenSession session ): sessionCreation( session )
     {
@@ -48,7 +73,8 @@
 
     private pointcut methodsTakingRequest( MavenExecutionRequest request ):
         execution( MavenExecutionResult *.*( MavenExecutionRequest ) )
-        && args( request );
+        && args( request )
+        && notHere();
 
     before( MavenExecutionRequest request ): methodsTakingRequest( request )
     {
@@ -59,7 +85,8 @@
     private pointcut verifyPlugin( Plugin plugin, MavenProject project, PluginManager manager ):
         call( public PluginDescriptor PluginManager+.verifyPlugin( Plugin, MavenProject, Settings, ArtifactRepository ) )
         && args( plugin, project, .. )
-        && target( manager );
+        && target( manager )
+        && notHere();
 
     PluginDescriptor around( Plugin plugin,
                              MavenProject project,
@@ -86,7 +113,8 @@
     private pointcut extDepArtifactsResolved( DefaultExtensionManager mgr ):
         call( public Set ResolutionGroup.getArtifacts() )
         && within( DefaultExtensionManager )
-        && this( mgr );
+        && this( mgr )
+        && notHere();
 
     Set around( DefaultExtensionManager mgr ): extDepArtifactsResolved( mgr )
     {
@@ -101,7 +129,8 @@
     private pointcut pluginDepArtifactsResolved( DefaultPluginManager mgr ):
         call( public Set ResolutionGroup.getArtifacts() )
         && cflow( execution( Set DefaultPluginManager.getPluginArtifacts(..) ) )
-        && this( mgr );
+        && this( mgr )
+        && notHere();
 
     Set around( DefaultPluginManager mgr ): pluginDepArtifactsResolved( mgr )
     {
@@ -115,7 +144,8 @@
     // USE Request to compensate for old buildSettings() API.
     private pointcut buildSettings( MavenSettingsBuilder builder ):
         execution( public Settings MavenSettingsBuilder+.buildSettings() )
-        && target( builder );
+        && target( builder )
+        && notHere();
 
     Settings around( MavenSettingsBuilder builder )
         throws IOException, XmlPullParserException:

Modified: maven/components/trunk/maven-embedder/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/pom.xml?rev=590758&r1=590757&r2=590758&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/pom.xml (original)
+++ maven/components/trunk/maven-embedder/pom.xml Wed Oct 31 10:26:37 2007
@@ -86,6 +86,32 @@
           <version>1.5.3</version>
         </dependency>
       </dependencies>
+      
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>aspectj-maven-plugin</artifactId>
+            
+            <executions>
+              <execution>
+                <id>weave-compat</id>
+                <goals>
+                  <goal>compile</goal>
+                </goals>
+                <configuration>
+                  <aspectLibraries>
+                    <aspectLibrary>
+                      <groupId>org.apache.maven</groupId>
+                      <artifactId>maven-core</artifactId>
+                    </aspectLibrary>
+                  </aspectLibraries>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
     </profile>
     
     <profile>