RequiresFileSize rule does not use the confiugred file list -----------------------------------------------------------
Key: MENFORCER-67 URL: http://jira.codehaus.org/browse/MENFORCER-67 Project: Maven 2.x Enforcer Plugin Issue Type: Bug Components: Standard Rules Affects Versions: 1.0-alpha-4 Environment: Windows XP, Maven 2.0.9 Reporter: Balazs Tothfalussy I tried to use the requireFilesSize standard rule to validate the filesize of the build output file, my configuration: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>1.0-alpha-4</version> <executions> <execution> <id>enforce-ear-filesize</id> <!-- Default phase is validate, but we need a verify after the build is done --> <phase>verify</phase> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireFilesExist> <files> <file>${project.build.directory}/${project.build.finalName}.ear</file> </files> </requireFilesExist> <requireFilesSize> <!-- Size in bytes --> <maxsize>5000000</maxsize> <files> <file>${project.build.directory}/${project.build.finalName}.ear</file> </files> </requireFilesSize> </rules> </configuration> </execution> </executions> </plugin> I experienced, that whatever I configure in the pom of my project, nothing happens, although Maven writes out in debug mode, that the rule has been run I checked the code in enforcer-rules project, and in the execute method I found: if ( files.length == 0 ) { try { MavenProject project = (MavenProject) helper.evaluate( "${project}" ); files[0] = project.getArtifact().getFile(); this.log = helper.getLog(); super.execute( helper ); } catch ( ExpressionEvaluationException e ) { throw new EnforcerRuleException( "Unable to retrieve the project.", e ); } } This code calls super.execute only if the configured file list contains no files, in the above configuration requiresFilesExits works, as the execute of AbstractRequireFiles runs So I propose a fix, which implements the else branch to call super.execute(helper) which will call checkFile for every defined file: if ( files.length == 0 ) { try { MavenProject project = (MavenProject) helper.evaluate( "${project}" ); files[0] = project.getArtifact().getFile(); this.log = helper.getLog(); super.execute( helper ); } catch ( ExpressionEvaluationException e ) { throw new EnforcerRuleException( "Unable to retrieve the project.", e ); } } else { super.execute(helper); } -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira