39b9680af7001c3d116449ce9b46ec322236cb78coulbeck/*
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck * CDDL HEADER START
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck *
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck * The contents of this file are subject to the terms of the
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck * Common Development and Distribution License, Version 1.0 only
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck * (the "License"). You may not use this file except in compliance
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck * with the License.
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck *
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac * or http://forgerock.org/license/CDDLv1.0.html.
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck * See the License for the specific language governing permissions
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck * and limitations under the License.
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck *
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck * When distributing Covered Code, include this CDDL HEADER in each
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac * file and include the License file at legal-notices/CDDLv1_0.txt.
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac * If applicable, add the following below this CDDL HEADER, with the
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac * fields enclosed by brackets "[]" replaced with your own identifying
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac * information:
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck * Portions Copyright [yyyy] [name of copyright owner]
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck *
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck * CDDL HEADER END
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck *
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck *
a395dd575518d9e5280fc5d5d5ef47c61b174647ludovicp * Copyright 2008 Sun Microsystems, Inc.
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck */
39b9680af7001c3d116449ce9b46ec322236cb78coulbeckpackage org.opends.build.tools;
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck
39b9680af7001c3d116449ce9b46ec322236cb78coulbeckimport org.apache.tools.ant.taskdefs.condition.Condition;
39b9680af7001c3d116449ce9b46ec322236cb78coulbeckimport org.apache.tools.ant.BuildException;
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck/**
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck * Ant condition to check whether we have a minimum required Java version.
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck */
39b9680af7001c3d116449ce9b46ec322236cb78coulbeckpublic class ValidJavaVersion implements Condition
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck{
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck // The minimum required Java version.
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck String minVersion;
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck /**
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck * Set the minVersion attribute.
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck * @param minVersion The minimum required Java version.
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck */
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck public void setMinVersion(String minVersion)
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck {
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck this.minVersion = minVersion;
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck }
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck /**
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck * Evaluate the condition.
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck */
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck public boolean eval() throws BuildException
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck {
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck if (minVersion == null)
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck {
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck return true;
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck }
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck String version = System.getProperty("java.version");
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck if (version == null)
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck {
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck return false;
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck }
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck return version.compareTo(minVersion) >= 0;
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck }
39b9680af7001c3d116449ce9b46ec322236cb78coulbeck}