Return-Path: Delivered-To: apmail-ant-dev-archive@www.apache.org Received: (qmail 81737 invoked from network); 12 Dec 2006 14:01:34 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 12 Dec 2006 14:01:34 -0000 Received: (qmail 10250 invoked by uid 500); 12 Dec 2006 14:01:41 -0000 Delivered-To: apmail-ant-dev-archive@ant.apache.org Received: (qmail 10213 invoked by uid 500); 12 Dec 2006 14:01:41 -0000 Mailing-List: contact dev-help@ant.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Ant Developers List" Reply-To: "Ant Developers List" Delivered-To: mailing list dev@ant.apache.org Received: (qmail 10202 invoked by uid 500); 12 Dec 2006 14:01:41 -0000 Received: (qmail 10199 invoked by uid 99); 12 Dec 2006 14:01:41 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 Dec 2006 06:01:41 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 Dec 2006 06:01:32 -0800 Received: by eris.apache.org (Postfix, from userid 65534) id 290841A981D; Tue, 12 Dec 2006 06:00:48 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r486150 - /ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/condition/HasFreeSpace.java Date: Tue, 12 Dec 2006 14:00:48 -0000 To: ant-cvs@apache.org From: kevj@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20061212140048.290841A981D@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kevj Date: Tue Dec 12 06:00:47 2006 New Revision: 486150 URL: http://svn.apache.org/viewvc?view=rev&rev=486150 Log: -HasFreeSpace condition (java6 only) Added: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/condition/HasFreeSpace.java Added: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/condition/HasFreeSpace.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/condition/HasFreeSpace.java?view=auto&rev=486150 ============================================================================== --- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/condition/HasFreeSpace.java (added) +++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/condition/HasFreeSpace.java Tue Dec 12 06:00:47 2006 @@ -0,0 +1,76 @@ +/* + * 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.tools.ant.taskdefs.condition; + +import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.util.JavaEnvUtils; +import org.apache.tools.ant.util.ReflectWrapper; +import org.apache.tools.ant.util.StringUtils; + +/** + * <hasfreespace> + *

Condition returns true if selected partition + * has the requested space, false otherwise.

+ * @since Ant 1.7 + */ +public class HasFreeSpace implements Condition { + + private String partition; + private String needed; + + public boolean eval() throws BuildException { + try { + if (JavaEnvUtils.isAtLeastJavaVersion("1.6")) { + //reflection to avoid bootstrap/build problems + String j6FileUtils = "org.apache.tools.ant.util.java16.Java6FileUtils"; + ReflectWrapper w = new ReflectWrapper(getClass().getClassLoader(), j6FileUtils); + long free = ((Long)w.invoke("freeSpace", String.class, partition)).longValue(); + return free >= StringUtils.parseHumanSizes(needed); + } else { + throw new BuildException("HasFreeSpace condition not supported on Java5 or less."); + } + } catch (Exception e) { + throw new BuildException(e); + } + } + + /** + * The partition/device to check + * @return + */ + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + /** + * The amount of free space required + * @return the amount required + */ + public String getNeeded() { + return needed; + } + + public void setNeeded(String needed) { + this.needed = needed; + } +} \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org For additional commands, e-mail: dev-help@ant.apache.org