From 2d9b3d8d2a2a325d4c11b8327a923a22afea1d16 Mon Sep 17 00:00:00 2001
From: coulbeck <coulbeck@localhost>
Date: Thu, 03 May 2007 19:47:06 +0000
Subject: [PATCH] Issue a build warning if the java version is too old.

---
 opends/build.xml                                                    |   33 ++++++++++++++++
 opends/src/build-tools/org/opends/build/tools/ValidJavaVersion.java |   68 ++++++++++++++++++++++++++++++++++
 2 files changed, 100 insertions(+), 1 deletions(-)

diff --git a/opends/build.xml b/opends/build.xml
index 58ad521..032a421 100644
--- a/opends/build.xml
+++ b/opends/build.xml
@@ -197,6 +197,37 @@
 
 
 
+  <!-- Set the property valid.java.version if the java version is valid. -->
+  <target name="validjavaversion"
+          depends="buildtools" >
+
+    <property name="min.java.version" value="1.5.0_08" />
+
+    <typedef name="validjavaversion"
+             classname="org.opends.build.tools.ValidJavaVersion" >
+      <classpath>
+        <fileset dir="${build.dir}/build-tools">
+          <include name="*.jar" />
+        </fileset>
+      </classpath>
+    </typedef>
+
+    <condition property="valid.java.version">
+      <validjavaversion minVersion="${min.java.version}" />
+    </condition>
+
+  </target>
+
+  <!-- Warn if the build java version is too old. -->
+  <target name="checkjavaversion"
+          depends="validjavaversion"
+          unless="valid.java.version" >
+    <echo level="warning"
+          message="WARNING: Java version ${java.version} is too old."/>
+    <echo level="warning"
+          message="Java version ${min.java.version} or later is required to build OpenDS."/>
+  </target>
+
   <!-- Perform common initialization common to several targets. -->
   <target name="init">
 
@@ -424,7 +455,7 @@
 
   <!-- Compile the Directory Server source files. -->
   <target name="compile"
-       depends="init,dynamicconstants,compileadmin"
+       depends="init,checkjavaversion,dynamicconstants,compileadmin"
        description="Compile the Directory Server source files.">
     <mkdir dir="${classes.dir}" />
 
diff --git a/opends/src/build-tools/org/opends/build/tools/ValidJavaVersion.java b/opends/src/build-tools/org/opends/build/tools/ValidJavaVersion.java
new file mode 100644
index 0000000..ded06b6
--- /dev/null
+++ b/opends/src/build-tools/org/opends/build/tools/ValidJavaVersion.java
@@ -0,0 +1,68 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ *      Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ *      Portions Copyright 2007 Sun Microsystems, Inc.
+ */
+package org.opends.build.tools;
+
+import org.apache.tools.ant.taskdefs.condition.Condition;
+import org.apache.tools.ant.BuildException;
+
+/**
+ * Ant condition to check whether we have a minimum required Java version.
+ */
+public class ValidJavaVersion implements Condition
+{
+  // The minimum required Java version.
+  String minVersion;
+
+  /**
+   * Set the minVersion attribute.
+   * @param minVersion The minimum required Java version.
+   */
+  public void setMinVersion(String minVersion)
+  {
+    this.minVersion = minVersion;
+  }
+
+
+  /**
+   * Evaluate the condition.
+   */
+  public boolean eval() throws BuildException
+  {
+    if (minVersion == null)
+    {
+      return true;
+    }
+
+    String version = System.getProperty("java.version");
+    if (version == null)
+    {
+      return false;
+    }
+
+    return version.compareTo(minVersion) >= 0;
+  }
+}

--
Gitblit v1.10.0