Return-Path: Delivered-To: apmail-maven-commits-archive@www.apache.org Received: (qmail 85594 invoked from network); 29 May 2008 03:07:41 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 29 May 2008 03:07:41 -0000 Received: (qmail 58321 invoked by uid 500); 29 May 2008 03:07:43 -0000 Delivered-To: apmail-maven-commits-archive@maven.apache.org Received: (qmail 58270 invoked by uid 500); 29 May 2008 03:07:43 -0000 Mailing-List: contact commits-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@maven.apache.org Delivered-To: mailing list commits@maven.apache.org Received: (qmail 58261 invoked by uid 99); 29 May 2008 03:07:43 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 May 2008 20:07:43 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 29 May 2008 03:07:04 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 903BB23889C4; Wed, 28 May 2008 20:07:20 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r661195 - in /maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer: RequireFileSize.java RequireSize.java Date: Thu, 29 May 2008 03:07:20 -0000 To: commits@maven.apache.org From: brianf@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080529030720.903BB23889C4@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: brianf Date: Wed May 28 20:07:20 2008 New Revision: 661195 URL: http://svn.apache.org/viewvc?rev=661195&view=rev Log: renamed the rule and refactored it to work like the other file rules and take an array of files to check. Added: maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireFileSize.java Removed: maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireSize.java Added: maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireFileSize.java URL: http://svn.apache.org/viewvc/maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireFileSize.java?rev=661195&view=auto ============================================================================== --- maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireFileSize.java (added) +++ maven/enforcer/trunk/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireFileSize.java Wed May 28 20:07:20 2008 @@ -0,0 +1,147 @@ +/* + * 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. + */ +package org.apache.maven.plugins.enforcer; + +import java.io.File; + +import org.apache.maven.enforcer.rule.api.EnforcerRule; +import org.apache.maven.enforcer.rule.api.EnforcerRuleException; +import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper; +import org.apache.maven.plugin.logging.Log; +import org.apache.maven.project.MavenProject; +import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException; + +/** + * Rule to validate the main artifact is within certain size constraints. + * + * @author brianf + * @author Roman Stumm + */ +public class RequireFileSize + extends AbstractRequireFiles +{ + + /** the max size allowed. */ + long maxsize = 10000; + + /** the max size allowed. */ + long minsize = 0; + + /** The error msg. */ + private String errorMsg; + + /** The log. */ + private Log log; + + /* + * (non-Javadoc) + * + * @see org.apache.maven.enforcer.rule.api.EnforcerRule#execute(org.apache.maven.enforcer.rule.api.EnforcerRuleHelper) + */ + public void execute( EnforcerRuleHelper helper ) + throws EnforcerRuleException + { + // if the file is already defined, use that. Otherwise get the main artifact. + 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 ); + } + } + + } + + /* + * (non-Javadoc) + * + * @see org.apache.maven.enforcer.rule.api.EnforcerRule#isCacheable() + */ + public boolean isCacheable() + { + return false; + } + + /* + * (non-Javadoc) + * + * @see org.apache.maven.enforcer.rule.api.EnforcerRule#isResultValid(org.apache.maven.enforcer.rule.api.EnforcerRule) + */ + public boolean isResultValid( EnforcerRule cachedRule ) + { + return false; + } + + /* (non-Javadoc) + * @see org.apache.maven.plugins.enforcer.AbstractRequireFiles#checkFile(java.io.File) + */ + boolean checkFile( File file ) + { + // check the file now + if ( file.exists() ) + { + long length = file.length(); + if ( length < minsize ) + { + this.errorMsg = ( file + " size (" + length + ") too small. Min. is " + minsize ); + return false; + } + else if ( length > maxsize ) + { + this.errorMsg = ( file + " size (" + length + ") too large. Max. is " + maxsize ); + return false; + } + else + { + + this.log.debug( file + + " size (" + + length + + ") is OK (" + + ( minsize == maxsize || minsize == 0 ? ( "max. " + maxsize ) + : ( "between " + minsize + " and " + maxsize ) ) + " byte)." ); + + return true; + } + } + else + { + this.errorMsg = ( file + " does not exist!" ); + return false; + } + } + + /* (non-Javadoc) + * @see org.apache.maven.plugins.enforcer.AbstractRequireFiles#getErrorMsg() + */ + String getErrorMsg() + { + return this.errorMsg; + } +}