richardmonk wrote:
>
> Hello, experts
>
> This came from ant user list. It will be good if i can have the
> confirmation for what's in the following. Hopefully Stefan Bodewig or
> Magesh Umasankar would have time to give expert advise. Really appreciate
> it.
>
> I am in the process to upgrade a project building using ant1.5.1 to ant1.7
> directly. There is a ant151patch.jar file used in this project since a
> while back. I have to comment out this jar file otherwise i would get all
> sorts of error like java.lang.ExceptionInInitializerError; i am wondering
> whatever this jar took care of for ant151 is already included in ant1.7
> (without the need of that kind of patch), is that accurate? Looks like it
> is used for some os system properties? Together with the "wondering" i
> mentioned on the above, i am confused by the " @since 1.7" comments in the
> Os.java and some explanation on that would be highly appreciated. I guess
> the key thing for me is to confirm it is totally safe to use ant1.7 and
> get rid of that 151patch.jar; the build is running on windows xp and most
> customers of the product are windows based.
>
> In this ant151patch.jar, there is only 1 class Os.class (and Os.java).
> (The first section is the MANIFEST.MF)
>
> Manifest-Version: 1.0
> Created-By: Apache Ant 1.5.1
>
> Name: org/apache/tools/ant/
> Extension-name: Ant 1.5.1 patch
> Specification-Title: Apache Ant 1.5.1 patch
> Specification-Version: 1.5.1
> Specification-Vendor: Apache Software Foundation
> Implementation-Title: Ant 1.5.1 patch
> Implementation-Version: 1.5.1
>
>
> /*
> * The Apache Software License, Version 1.1
> *
> * Copyright (c) 2001-2002 The Apache Software Foundation. All rights
> * reserved.
> *
> * Redistribution and use in source and binary forms, with or without
> * modification, are permitted provided that the following conditions
> * are met:
> *
> * 1. Redistributions of source code must retain the above copyright
> * notice, this list of conditions and the following disclaimer.
> *
> * 2. Redistributions in binary form must reproduce the above copyright
> * notice, this list of conditions and the following disclaimer in
> * the documentation and/or other materials provided with the
> * distribution.
> *
> * 3. The end-user documentation included with the redistribution, if
> * any, must include the following acknowlegement:
> * "This product includes software developed by the
> * Apache Software Foundation (http://www.apache.org/)."
> * Alternately, this acknowlegement may appear in the software itself,
> * if and wherever such third-party acknowlegements normally appear.
> *
> * 4. The names "The Jakarta Project", "Ant", and "Apache Software
> * Foundation" must not be used to endorse or promote products derived
> * from this software without prior written permission. For written
> * permission, please contact [EMAIL PROTECTED]
> *
> * 5. Products derived from this software may not be called "Apache"
> * nor may "Apache" appear in their names without prior written
> * permission of the Apache Group.
> *
> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> * SUCH DAMAGE.
> * ====================================================================
> *
> * This software consists of voluntary contributions made by many
> * individuals on behalf of the Apache Software Foundation. For more
> * information on the Apache Software Foundation, please see
> * <http://www.apache.org/>.
> */
>
> package org.apache.tools.ant.taskdefs.condition;
>
> import org.apache.tools.ant.BuildException;
>
> import java.util.Locale;
>
> /**
> * Condition that tests the OS type.
> *
> * @author Stefan Bodewig
> * @author Magesh Umasankar
> * @since Ant 1.4
> * @version $Revision: 1.15.2.1 $
> */
> public class Os implements Condition {
> private static final String osName =
> System.getProperty("os.name").toLowerCase(Locale.US);
> private static final String osArch =
> System.getProperty("os.arch").toLowerCase(Locale.US);
> private static final String osVersion =
> System.getProperty("os.version").toLowerCase(Locale.US);
> private static final String pathSep =
> System.getProperty("path.separator");
>
> private String family;
> private String name;
> private String version;
> private String arch;
>
> public Os() {}
>
> public Os(String family) {
> setFamily(family);
> }
>
> /**
> * Sets the desired OS family type
> *
> * @param f The OS family type desired<br />
> * Possible values:<br />
> * <ul>
> * <li>dos</li>
> * <li>mac</li>
> * <li>netware</li>
> * <li>os/2</li>
> * <li>unix</li>
> * <li>windows</li>
> * <li>win9x</li>
> * <li>z/os</li>
> * </ul>
> */
> public void setFamily(String f) {family = f.toLowerCase(Locale.US);}
>
> /**
> * Sets the desired OS name
> *
> * @param name The OS name
> */
> public void setName(String name) {
> this.name = name.toLowerCase(Locale.US);
> }
>
> /**
> * Sets the desired OS architecture
> *
> * @param arch The OS architecture
> */
> public void setArch(String arch) {
> this.arch = arch.toLowerCase(Locale.US);
> }
>
> /**
> * Sets the desired OS version
> *
> * @param version The OS version
> */
> public void setVersion(String version) {
> this.version = version.toLowerCase(Locale.US);
> }
>
> /**
> * Determines if the OS on which Ant is executing matches the type of
> * that set in setFamily.
> * @see Os#setFamily(String)
> */
> public boolean eval() throws BuildException {
> return isOs(family, name, arch, version);
> }
>
> /**
> * Determines if the OS on which Ant is executing matches the
> * given OS family.
> *
> * @since 1.5
> */
> public static boolean isFamily(String family) {
> return isOs(family, null, null, null);
> }
>
> /**
> * Determines if the OS on which Ant is executing matches the
> * given OS name.
> *
> * @since 1.7
> */
> public static boolean isName(String name) {
> return isOs(null, name, null, null);
> }
>
> /**
> * Determines if the OS on which Ant is executing matches the
> * given OS architecture.
> *
> * @since 1.7
> */
> public static boolean isArch(String arch) {
> return isOs(null, null, arch, null);
> }
>
> /**
> * Determines if the OS on which Ant is executing matches the
> * given OS version.
> *
> * @since 1.7
> */
> public static boolean isVersion(String version) {
> return isOs(null, null, null, version);
> }
>
> /**
> * Determines if the OS on which Ant is executing matches the
> * given OS family, name, architecture and version
> *
> * @param family The OS family
> * @param name The OS name
> * @param arch The OS architecture
> * @param version The OS version
> *
> * @since 1.7
> */
> public static boolean isOs(String family, String name, String arch,
> String version) {
> boolean retValue = false;
>
> if (family != null || name != null || arch != null
> || version != null) {
>
> boolean isFamily = true;
> boolean isName = true;
> boolean isArch = true;
> boolean isVersion = true;
>
> if (family != null) {
> if (family.equals("windows")) {
> isFamily = osName.indexOf("windows") > -1;
> } else if (family.equals("os/2")) {
> isFamily = osName.indexOf("os/2") > -1;
> } else if (family.equals("netware")) {
> isFamily = osName.indexOf("netware") > -1;
> } else if (family.equals("dos")) {
> isFamily = pathSep.equals(";") &&
> !isFamily("netware");
> } else if (family.equals("mac")) {
> isFamily = osName.indexOf("mac") > -1;
> } else if (family.equals("unix")) {
> isFamily = pathSep.equals(":")
> && (!isFamily("mac") || osName.endsWith("x"));
> } else if (family.equals("win9x")) {
> isFamily = isFamily("windows") &&
> !(osName.indexOf("nt") >= 0 ||
> osName.indexOf("2000") >= 0 ||
> osName.indexOf("2003")
> >= 0 ||
> osName.indexOf("xp") >= 0);
> } else if (family.equals("z/os")) {
> isFamily = osName.indexOf("z/os") > -1
> || osName.indexOf("os/390") > -1;
> } else {
> throw new BuildException(
> "Don\'t know how to detect os family \""
> + family + "\"");
> }
> }
> if (name != null) {
> isName = name.equals(osName);
> }
> if (arch != null) {
> isArch = arch.equals(osArch);
> }
> if (version != null) {
> isVersion = version.equals(osVersion);
> }
> retValue = isFamily && isName && isArch && isVersion;
> }
> return retValue;
> }
> }
>
>
--
View this message in context:
http://www.nabble.com/ant-1.7%3A-ant-1.5.1-patch-tf4822841.html#a13826368
Sent from the Ant - Dev mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]