You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2008/12/23 14:52:16 UTC

svn commit: r728953 - in /maven/enforcer/trunk: enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/ enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/utils/ enforcer-rules/src/test/resources/requirePluginVersions/parentEx...

Author: brett
Date: Tue Dec 23 05:52:15 2008
New Revision: 728953

URL: http://svn.apache.org/viewvc?rev=728953&view=rev
Log:
[MENFORCER-30] RequirePluginVersions breaks when using project.parent.groupId and project.parent.version

Added:
    maven/enforcer/trunk/enforcer-rules/src/test/resources/requirePluginVersions/parentExpression/
    maven/enforcer/trunk/enforcer-rules/src/test/resources/requirePluginVersions/parentExpression/child/
    maven/enforcer/trunk/enforcer-rules/src/test/resources/requirePluginVersions/parentExpression/child/pom.xml   (with props)
    maven/enforcer/trunk/enforcer-rules/src/test/resources/requirePluginVersions/parentExpression/pom.xml   (with props)
Modified:
    maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/EnforcerRuleUtils.java
    maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/utils/TestEnforcerRuleUtils.java
    maven/enforcer/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/EnforceMojo.java

Modified: maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/EnforcerRuleUtils.java
URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/EnforcerRuleUtils.java?rev=728953&r1=728952&r2=728953&view=diff
==============================================================================
--- maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/EnforcerRuleUtils.java (original)
+++ maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/EnforcerRuleUtils.java Tue Dec 23 05:52:15 2008
@@ -69,6 +69,8 @@
     /** The project. */
     MavenProject project;
 
+    private EnforcerRuleHelper helper;
+
     /**
      * Instantiates a new enforcer rule utils.
      * 
@@ -107,6 +109,7 @@
             resolver = (ArtifactResolver) helper.getComponent( ArtifactResolver.class );
             local = (ArtifactRepository) helper.evaluate( "${localRepository}" );
             project = (MavenProject) helper.evaluate( "${project}" );
+            this.helper = helper;
             remoteRepositories = project.getRemoteArtifactRepositories();
         }
         catch ( ComponentLookupException e )
@@ -281,11 +284,19 @@
             {
                 modelGroup = model.getParent().getGroupId();
             }
+            else
+            {
+                modelGroup = (String) helper.evaluate( modelGroup );
+            }
 
             if ( StringUtils.isEmpty( modelVersion ) )
             {
                 modelVersion = model.getParent().getVersion();
             }
+            else
+            {
+                modelVersion = (String) helper.evaluate( modelVersion );
+            }
         }
         catch ( NullPointerException e )
         {
@@ -295,6 +306,10 @@
             // lets see if it's what we're looking for
             // anyway.
         }
+        catch ( ExpressionEvaluationException e )
+        {
+            // as above
+        }
         return ( StringUtils.equals( groupId, modelGroup ) && StringUtils.equals( version, modelVersion ) && StringUtils
             .equals( artifactId, model.getArtifactId() ) );
     }

Modified: maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/utils/TestEnforcerRuleUtils.java
URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/utils/TestEnforcerRuleUtils.java?rev=728953&r1=728952&r2=728953&view=diff
==============================================================================
--- maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/utils/TestEnforcerRuleUtils.java (original)
+++ maven/enforcer/trunk/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/utils/TestEnforcerRuleUtils.java Tue Dec 23 05:52:15 2008
@@ -31,6 +31,7 @@
 import org.apache.maven.model.Parent;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
 import org.apache.maven.plugins.enforcer.EnforcerTestUtils;
+import org.apache.maven.plugins.enforcer.MockProject;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
@@ -152,6 +153,33 @@
         models.contains( m );
     }
 
+    public void testGetModelsRecursivelyParentExpression()
+        throws ArtifactResolutionException, ArtifactNotFoundException, IOException, XmlPullParserException
+    {
+        String path = "target/test-classes/requirePluginVersions/parentExpression/child";
+
+        StringUtils.replace( path, "/", File.separator );
+
+        File pom = new File( getBasedir() + File.separator + path, "pom.xml" );
+
+        // bit backwards - the project here should really be the one read in the first stage of getModelsRecursively
+        MockProject parent = new MockProject();
+        parent.setGroupId( "org.apache.maven.plugins.enforcer.test" );
+        parent.setArtifactId( "child" );
+        parent.setVersion( "1.0-SNAPSHOT" );
+        
+        MockProject project = new MockProject();
+        project.setParent( parent );
+        
+        EnforcerRuleUtils utils = new EnforcerRuleUtils( EnforcerTestUtils.getHelper( project ) );
+
+        List models =
+            utils.getModelsRecursively( "org.apache.maven.plugins.enforcer.test", "child", "1.0-SNAPSHOT", pom );
+
+        // there should be 1
+        assertEquals( 2, models.size() );
+    }
+
     /**
      * Simpler wrapper to execute and deal with the expected result.
      * 

Added: maven/enforcer/trunk/enforcer-rules/src/test/resources/requirePluginVersions/parentExpression/child/pom.xml
URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/enforcer-rules/src/test/resources/requirePluginVersions/parentExpression/child/pom.xml?rev=728953&view=auto
==============================================================================
--- maven/enforcer/trunk/enforcer-rules/src/test/resources/requirePluginVersions/parentExpression/child/pom.xml (added)
+++ maven/enforcer/trunk/enforcer-rules/src/test/resources/requirePluginVersions/parentExpression/child/pom.xml Tue Dec 23 05:52:15 2008
@@ -0,0 +1,11 @@
+<project>
+  <parent>
+    <groupId>org.apache.maven.plugins.enforcer.test
+    </groupId>
+    <artifactId>parentExpression</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+  <groupId>${project.parent.groupId}</groupId>
+  <artifactId>child</artifactId>
+  <version>${project.parent.version}</version>
+</project>
\ No newline at end of file

Propchange: maven/enforcer/trunk/enforcer-rules/src/test/resources/requirePluginVersions/parentExpression/child/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/enforcer/trunk/enforcer-rules/src/test/resources/requirePluginVersions/parentExpression/pom.xml
URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/enforcer-rules/src/test/resources/requirePluginVersions/parentExpression/pom.xml?rev=728953&view=auto
==============================================================================
--- maven/enforcer/trunk/enforcer-rules/src/test/resources/requirePluginVersions/parentExpression/pom.xml (added)
+++ maven/enforcer/trunk/enforcer-rules/src/test/resources/requirePluginVersions/parentExpression/pom.xml Tue Dec 23 05:52:15 2008
@@ -0,0 +1,5 @@
+<project>
+  <groupId>org.apache.maven.plugins.enforcer.test</groupId>
+  <artifactId>parentExpression</artifactId>
+  <version>1.0-SNAPSHOT</version>
+</project>
\ No newline at end of file

Propchange: maven/enforcer/trunk/enforcer-rules/src/test/resources/requirePluginVersions/parentExpression/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: maven/enforcer/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/EnforceMojo.java
URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/EnforceMojo.java?rev=728953&r1=728952&r2=728953&view=diff
==============================================================================
--- maven/enforcer/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/EnforceMojo.java (original)
+++ maven/enforcer/trunk/maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/EnforceMojo.java Tue Dec 23 05:52:15 2008
@@ -198,6 +198,7 @@
                             else
                             {
                                 list.add( "Rule " + i + ": " + currentRule + " failed with message:\n" + e.getMessage() );
+                                log.debug( "Adding failure due to exception", e );
                             }
                         }
                     }