Browse Source

* Added OsFamily enumerated type, to represents OS groupings.

* Replaced all usages of Os.isFamily( String ) with Os.isFamily( OsFamily ).
* Replaced all usages of "os.name" system properties with calls to Os.isFamily().


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271667 13f79535-47bb-0310-9956-ffa450edef68
master
adammurdoch 23 years ago
parent
commit
b6ed0b4934
23 changed files with 332 additions and 196 deletions
  1. +1
    -2
      proposal/myrmidon/src/java/org/apache/antlib/nativelib/Exec.java
  2. +5
    -3
      proposal/myrmidon/src/java/org/apache/antlib/vfile/CopyFilesTask.java
  3. +180
    -47
      proposal/myrmidon/src/java/org/apache/aut/nativelib/Os.java
  4. +48
    -0
      proposal/myrmidon/src/java/org/apache/aut/nativelib/OsFamily.java
  5. +12
    -22
      proposal/myrmidon/src/java/org/apache/aut/nativelib/impl/DefaultExecManager.java
  6. +12
    -19
      proposal/myrmidon/src/java/org/apache/aut/nativelib/impl/Environment.java
  7. +18
    -25
      proposal/myrmidon/src/java/org/apache/aut/tar/TarEntry.java
  8. +1
    -1
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/DependSet.java
  9. +2
    -3
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Javac.java
  10. +4
    -6
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/PathConvert.java
  11. +2
    -7
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/javadoc/Javadoc.java
  12. +2
    -2
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/Cab.java
  13. +14
    -17
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/text/FixCRLF.java
  14. +2
    -2
      proposal/myrmidon/src/main/org/apache/tools/ant/types/CommandlineJava.java
  15. +1
    -1
      proposal/myrmidon/src/main/org/apache/tools/ant/types/SourceFileScanner.java
  16. +1
    -1
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/DependSet.java
  17. +2
    -3
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Javac.java
  18. +4
    -6
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/PathConvert.java
  19. +2
    -7
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/javadoc/Javadoc.java
  20. +2
    -2
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/Cab.java
  21. +14
    -17
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/text/FixCRLF.java
  22. +2
    -2
      proposal/myrmidon/src/todo/org/apache/tools/ant/types/CommandlineJava.java
  23. +1
    -1
      proposal/myrmidon/src/todo/org/apache/tools/ant/types/SourceFileScanner.java

+ 1
- 2
proposal/myrmidon/src/java/org/apache/antlib/nativelib/Exec.java View File

@@ -72,8 +72,7 @@ public class Exec
}

/**
* Only execute the process if <code>os.name</code> is included in this
* string.
* Only execute the process if running on the specified OS family.
*/
public void setOs( final String os )
{


+ 5
- 3
proposal/myrmidon/src/java/org/apache/antlib/vfile/CopyFilesTask.java View File

@@ -14,6 +14,7 @@ import java.util.Iterator;
import org.apache.aut.vfs.FileObject;
import org.apache.aut.vfs.FileSystemException;
import org.apache.aut.vfs.FileType;
import org.apache.aut.vfs.NameScope;
import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources;
import org.apache.myrmidon.api.AbstractTask;
@@ -129,9 +130,10 @@ public class CopyFilesTask
continue;
}

// TODO - use scope here, to make sure that the result
// is a descendent of the dest dir
final FileObject destFile = m_destDir.resolveFile( path );
// Locate the destination file
final FileObject destFile = m_destDir.resolveFile( path, NameScope.DESCENDENT );

// Copy the file across
copyFile( srcFile, destFile );
}
}


+ 180
- 47
proposal/myrmidon/src/java/org/apache/aut/nativelib/Os.java View File

@@ -7,9 +7,11 @@
*/
package org.apache.aut.nativelib;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources;
import java.util.Set;

/**
* Class to help determining the OS.
@@ -20,9 +22,6 @@ import org.apache.avalon.excalibur.i18n.Resources;
*/
public class Os
{
private final static Resources REZ =
ResourceManager.getPackageResources( Os.class );

private final static String OS_NAME =
System.getProperty( "os.name" ).toLowerCase( Locale.US );
private final static String OS_ARCH =
@@ -31,6 +30,123 @@ public class Os
System.getProperty( "os.version" ).toLowerCase( Locale.US );
private final static String PATH_SEP =
System.getProperty( "path.separator" );
private final static OsFamily OS_FAMILY;
private final static OsFamily[] OS_ALL_FAMILIES;

/** All Windows based OSes. */
public final static OsFamily OS_FAMILY_WINDOWS = new OsFamily( "windows" );

/** All DOS based OSes. */
public final static OsFamily OS_FAMILY_DOS
= new OsFamily( "dos", new OsFamily[]{OS_FAMILY_WINDOWS} );

/** All Windows NT based OSes. */
public final static OsFamily OS_FAMILY_WINNT
= new OsFamily( "nt", new OsFamily[]{OS_FAMILY_WINDOWS} );

/** All Windows 9x based OSes. */
public final static OsFamily OS_FAMILY_WIN9X
= new OsFamily( "win9x", new OsFamily[]{OS_FAMILY_WINDOWS, OS_FAMILY_DOS} );

/** OS/2 */
public final static OsFamily OS_FAMILY_OS2
= new OsFamily( "os/2", new OsFamily[]{OS_FAMILY_DOS} );

/** Netware */
public final static OsFamily OS_FAMILY_NETWARE
= new OsFamily( "netware" );

/** All UNIX based OSes. */
public final static OsFamily OS_FAMILY_UNIX
= new OsFamily( "unix" );

/** All Mac based OSes. */
public final static OsFamily OS_FAMILY_MAC
= new OsFamily( "mac" );

/** OSX */
public final static OsFamily OS_FAMILY_OSX
= new OsFamily( "osx", new OsFamily[]{OS_FAMILY_UNIX, OS_FAMILY_MAC} );

private final static OsFamily[] ALL_FAMILIES =
{
OS_FAMILY_DOS,
OS_FAMILY_MAC,
OS_FAMILY_NETWARE,
OS_FAMILY_OS2,
OS_FAMILY_OSX,
OS_FAMILY_UNIX,
OS_FAMILY_WINDOWS,
OS_FAMILY_WINNT,
OS_FAMILY_WIN9X
};

static
{
// Determine the most specific OS family
if( OS_NAME.indexOf( "windows" ) > -1 )
{
if( OS_NAME.indexOf( "xp" ) > -1
|| OS_NAME.indexOf( "2000" ) > -1
|| OS_NAME.indexOf( "nt" ) > -1 )
{
OS_FAMILY = OS_FAMILY_WINNT;
}
else
{
OS_FAMILY = OS_FAMILY_WIN9X;
}
}
else if( OS_NAME.indexOf( "os/2" ) > -1 )
{
OS_FAMILY = OS_FAMILY_OS2;
}
else if( OS_NAME.indexOf( "netware" ) > -1 )
{
OS_FAMILY = OS_FAMILY_NETWARE;
}
else if( OS_NAME.indexOf( "mac" ) > -1 )
{
if( OS_NAME.endsWith( "x" ) )
{
OS_FAMILY = OS_FAMILY_OSX;
}
else
{
OS_FAMILY = OS_FAMILY_MAC;
}
}
else if( PATH_SEP.equals( ":" ) )
{
OS_FAMILY = OS_FAMILY_UNIX;
}
else
{
OS_FAMILY = null;
}

// Otherwise, unknown OS

// Determine all families the current OS belongs to
Set allFamilies = new HashSet();
if( OS_FAMILY != null )
{
List queue = new ArrayList();
queue.add( OS_FAMILY );
while( queue.size() > 0 )
{
final OsFamily family = (OsFamily)queue.remove( 0 );
allFamilies.add( family );
final OsFamily[] families = family.getFamilies();
for( int i = 0; i < families.length; i++ )
{
OsFamily parent = families[ i ];
queue.add( parent );
}
}
}
OS_ALL_FAMILIES = (OsFamily[])allFamilies.toArray( new OsFamily[ allFamilies.size() ] );
}

/**
* Private constructor to block instantiation.
@@ -45,34 +161,36 @@ public class Os
*/
public static boolean isVersion( final String version )
{
return isOs( null, null, null, version );
return isOs( (OsFamily)null, null, null, version );
}

/**
* Determines if the OS on which Ant is executing matches the given OS
* architecture.
*
* @param arch Description of Parameter
* @return The Arch value
*/
public static boolean isArch( final String arch )
{
return isOs( null, null, arch, null );
return isOs( (OsFamily)null, null, arch, null );
}

/**
* Determines if the OS on which Ant is executing matches the given OS
* family.
*
* @param family Description of Parameter
* @return The Family value
* @since 1.5
*/
public static boolean isFamily( final String family )
{
return isOs( family, null, null, null );
}

/**
* Determines if the OS on which Ant is executing matches the given OS
* family.
*/
public static boolean isFamily( final OsFamily family )
{
return isOs( family, null, null, null );
}

/**
* Determines if the OS on which Ant is executing matches the given OS name.
*
@@ -82,7 +200,7 @@ public class Os
*/
public static boolean isName( final String name )
{
return isOs( null, name, null, null );
return isOs( (OsFamily)null, name, null, null );
}

/**
@@ -99,6 +217,24 @@ public class Os
final String name,
final String arch,
final String version )
{
return isOs( getFamily( family ), name, arch, 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
* @return The Os value
*/
public static boolean isOs( final OsFamily family,
final String name,
final String arch,
final String version )
{
if( family != null || name != null || arch != null || version != null )
{
@@ -115,6 +251,25 @@ public class Os
}
}

/**
* Locates an OsFamily by name (case-insensitive).
*
* @return the OS family, or null if not found.
*/
public static OsFamily getFamily( final String name )
{
for( int i = 0; i < ALL_FAMILIES.length; i++ )
{
final OsFamily osFamily = ALL_FAMILIES[ i ];
if( osFamily.getName().equalsIgnoreCase( name ) )
{
return osFamily;
}
}

return null;
}

private static boolean versionMatches( final String version )
{
boolean isVersion = true;
@@ -145,42 +300,20 @@ public class Os
return isName;
}

private static boolean familyMatches( final String family )
private static boolean familyMatches( final OsFamily family )
{
boolean isFamily = true;
if( family != null )
if( family == null )
{
if( family.equals( "windows" ) )
{
isFamily = OS_NAME.indexOf( "windows" ) > -1;
}
else if( family.equals( "os/2" ) )
{
isFamily = OS_NAME.indexOf( "os/2" ) > -1;
}
else if( family.equals( "netware" ) )
{
isFamily = OS_NAME.indexOf( "netware" ) > -1;
}
else if( family.equals( "dos" ) )
{
isFamily = PATH_SEP.equals( ";" ) && !isFamily( "netware" );
}
else if( family.equals( "mac" ) )
{
isFamily = OS_NAME.indexOf( "mac" ) > -1;
}
else if( family.equals( "unix" ) )
{
isFamily = PATH_SEP.equals( ":" ) &&
( !isFamily( "mac" ) || OS_NAME.endsWith( "x" ) );
}
else
return false;
}
for( int i = 0; i < OS_ALL_FAMILIES.length; i++ )
{
final OsFamily osFamily = OS_ALL_FAMILIES[ i ];
if( family == osFamily )
{
final String message = REZ.getString( "unknown-os-family", family );
throw new IllegalArgumentException( message );
return true;
}
}
return isFamily;
return false;
}
}

+ 48
- 0
proposal/myrmidon/src/java/org/apache/aut/nativelib/OsFamily.java View File

@@ -0,0 +1,48 @@
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.aut.nativelib;

/**
* An enumerated type, which represents an OS family.
*
* @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
* @version $Revision$ $Date$
*/
public final class OsFamily
{
private final String m_name;
private final OsFamily[] m_families;

OsFamily( final String name )
{
m_name = name;
m_families = new OsFamily[0];
}

OsFamily( final String name, final OsFamily[] families )
{
m_name = name;
m_families = families;
}

/**
* Returns the name of this family.
*/
public String getName()
{
return m_name;
}

/**
* Returns the OS families that this family belongs to.
*/
public OsFamily[] getFamilies()
{
return m_families;
}
}

+ 12
- 22
proposal/myrmidon/src/java/org/apache/aut/nativelib/impl/DefaultExecManager.java View File

@@ -11,7 +11,6 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Locale;
import java.util.Properties;
import org.apache.aut.nativelib.ExecException;
import org.apache.aut.nativelib.ExecManager;
@@ -174,37 +173,28 @@ public class DefaultExecManager
{
CommandLauncher launcher = null;

if( Os.isFamily( "mac" ) )
if( Os.isFamily( Os.OS_FAMILY_MAC ) )
{
// Mac
launcher = new MacCommandLauncher();
}
else if( Os.isFamily( "os/2" ) )
else if( Os.isFamily( Os.OS_FAMILY_OS2 ) )
{
// OS/2 - use same mechanism as Windows 2000
launcher = new WinNTCommandLauncher();
}
else if( Os.isFamily( "windows" ) )
else if( Os.isFamily( Os.OS_FAMILY_WINNT ) )
{
// Windows. Need to determine which JDK we're running in

// Determine if we're running under 2000/NT or 98/95
final String osname =
System.getProperty( "os.name" ).toLowerCase( Locale.US );

if( osname.indexOf( "nt" ) >= 0 || osname.indexOf( "2000" ) >= 0 )
{
// Windows 2000/NT
launcher = new WinNTCommandLauncher();
}
else
{
// Windows 98/95 - need to use an auxiliary script
final String script = resolveCommand( homeDir, "bin/antRun.bat" );
launcher = new ScriptCommandLauncher( script );
}
// Windows 2000/NT
launcher = new WinNTCommandLauncher();
}
else if( Os.isFamily( Os.OS_FAMILY_WINDOWS ) )
{
// Windows 98/95 - need to use an auxiliary script
final String script = resolveCommand( homeDir, "bin/antRun.bat" );
launcher = new ScriptCommandLauncher( script );
}
else if( Os.isFamily( "netware" ) )
else if( Os.isFamily( Os.OS_FAMILY_NETWARE ) )
{
// NetWare. Need to determine which JDK we're running in
final String perlScript = resolveCommand( homeDir, "bin/antRun.pl" );


+ 12
- 19
proposal/myrmidon/src/java/org/apache/aut/nativelib/impl/Environment.java View File

@@ -12,14 +12,13 @@ import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.StringReader;
import java.util.Locale;
import java.util.Properties;
import org.apache.aut.nativelib.ExecException;
import org.apache.aut.nativelib.ExecManager;
import org.apache.aut.nativelib.ExecMetaData;
import org.apache.aut.nativelib.Os;
import org.apache.avalon.excalibur.util.StringUtil;
import org.apache.avalon.excalibur.io.IOUtil;
import org.apache.avalon.excalibur.util.StringUtil;

/**
* This is the class that can be used to retrieve the environment
@@ -178,33 +177,27 @@ final class Environment
private static String[] getEnvCommand()
throws ExecException
{
if( Os.isFamily( "os/2" ) )
if( Os.isFamily( Os.OS_FAMILY_OS2 ) )
{
// OS/2 - use same mechanism as Windows 2000
return CMD_EXE;
}
else if( Os.isFamily( "windows" ) )
else if( Os.isFamily( Os.OS_FAMILY_WINNT ) )
{
final String osname =
System.getProperty( "os.name" ).toLowerCase( Locale.US );
// Determine if we're running under 2000/NT or 98/95
if( osname.indexOf( "nt" ) >= 0 || osname.indexOf( "2000" ) >= 0 )
{
// Windows 2000/NT
return CMD_EXE;
}
else
{
// Windows 98/95 - need to use an auxiliary script
return COMMAND_COM;
}
// Windows 2000/NT
return CMD_EXE;
}
else if( Os.isFamily( Os.OS_FAMILY_WINDOWS) )
{
// Windows 98/95 - need to use an auxiliary script
return COMMAND_COM;
}
else if( Os.isFamily( "unix" ) )
else if( Os.isFamily( Os.OS_FAMILY_UNIX ) )
{
// Generic UNIX
return ENV_CMD;
}
else if( Os.isFamily( "netware" ) )
else if( Os.isFamily( Os.OS_FAMILY_NETWARE ) )
{
return ENV_RAW;
}


+ 18
- 25
proposal/myrmidon/src/java/org/apache/aut/tar/TarEntry.java View File

@@ -9,6 +9,7 @@ package org.apache.aut.tar;

import java.io.File;
import java.util.Date;
import org.apache.aut.nativelib.Os;

/**
* This class represents an entry in a Tar archive. It consists of the entry's
@@ -178,37 +179,29 @@ public class TarEntry
m_file = file;

String name = file.getPath();
final String osname = System.getProperty( "os.name" );

if( osname != null )
// Strip off drive letters!
if( Os.isFamily( Os.OS_FAMILY_WINDOWS) )
{
// Strip off drive letters!
// REVIEW Would a better check be "(File.separator == '\')"?
final String win32Prefix = "Windows";
final String prefix = osname.substring( 0, win32Prefix.length() );

if( prefix.equalsIgnoreCase( win32Prefix ) )
if( name.length() > 2 )
{
if( name.length() > 2 )
final char ch1 = name.charAt( 0 );
final char ch2 = name.charAt( 1 );

if( ch2 == ':' &&
( ( ch1 >= 'a' && ch1 <= 'z' ) ||
( ch1 >= 'A' && ch1 <= 'Z' ) ) )
{
final char ch1 = name.charAt( 0 );
final char ch2 = name.charAt( 1 );

if( ch2 == ':' &&
( ( ch1 >= 'a' && ch1 <= 'z' ) ||
( ch1 >= 'A' && ch1 <= 'Z' ) ) )
{
name = name.substring( 2 );
}
name = name.substring( 2 );
}
}
else if( osname.toLowerCase().indexOf( "netware" ) > -1 )
}
else if( Os.isFamily( Os.OS_FAMILY_NETWARE) )
{
final int colon = name.indexOf( ':' );
if( colon != -1 )
{
final int colon = name.indexOf( ':' );
if( colon != -1 )
{
name = name.substring( colon + 1 );
}
name = name.substring( colon + 1 );
}
}

@@ -584,7 +577,7 @@ public class TarEntry
/**
* Write an entry's header information to a header buffer.
*
* @param outbuf The tar entry header buffer to fill in.
* @param buffer The tar entry header buffer to fill in.
*/
public void writeEntryHeader( final byte[] buffer )
{


+ 1
- 1
proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/DependSet.java View File

@@ -141,7 +141,7 @@ public class DependSet extends MatchingTask
* be able to check file modification times.
* (Windows has a max resolution of two secs for modification times)
*/
if( Os.isFamily( "windows" ) )
if( Os.isFamily( Os.OS_FAMILY_WINDOWS ) )
{
now += 2000;
}


+ 2
- 3
proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Javac.java View File

@@ -12,7 +12,6 @@ import java.util.ArrayList;
import java.util.Iterator;
import org.apache.aut.nativelib.Os;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.api.AbstractTask;
import org.apache.myrmidon.framework.JavaVersion;
import org.apache.tools.ant.taskdefs.compilers.CompilerAdapter;
import org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory;
@@ -726,7 +725,7 @@ public class Javac extends MatchingTask
{
// This is the most common extension case - exe for windows and OS/2,
// nothing for *nix.
String extension = Os.isFamily( "dos" ) ? ".exe" : "";
String extension = Os.isFamily( Os.OS_FAMILY_DOS ) ? ".exe" : "";

// Look for java in the java.home/../bin directory. Unfortunately
// on Windows java.home doesn't always refer to the correct location,
@@ -736,7 +735,7 @@ public class Javac extends MatchingTask
new java.io.File( System.getProperty( "java.home" ) +
"/../bin/javac" + extension );

if( jExecutable.exists() && !Os.isFamily( "netware" ) )
if( jExecutable.exists() && !Os.isFamily( Os.OS_FAMILY_NETWARE ) )
{
return jExecutable.getAbsolutePath();
}


+ 4
- 6
proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/PathConvert.java View File

@@ -9,6 +9,7 @@ package org.apache.tools.ant.taskdefs;

import java.io.File;
import java.util.ArrayList;
import org.apache.aut.nativelib.Os;
import org.apache.myrmidon.api.AbstractTask;
import org.apache.myrmidon.api.TaskException;
import org.apache.tools.ant.types.Path;
@@ -45,7 +46,7 @@ public class PathConvert extends AbstractTask
/**
* Override the default path separator string for the target os
*
* @param sep The new PathSep value
* @param pathSep The new PathSep value
*/
public void setPathSep( final String pathSep )
{
@@ -64,7 +65,7 @@ public class PathConvert extends AbstractTask
/**
* Set the value of the targetos attribute
*
* @param target The new Targetos value
* @param targetOS The new Targetos value
*/
public void setTargetos( String targetOS )
throws TaskException
@@ -121,13 +122,10 @@ public class PathConvert extends AbstractTask
// And Unix is everything that is not Windows
// (with the exception for NetWare below)

String osname = System.getProperty( "os.name" ).toLowerCase();

// for NetWare, piggy-back on Windows, since here and in the
// apply code, the same assumptions can be made as with windows -
// that \\ is an OK separator, and do comparisons case-insensitive.
m_onWindows = ( ( osname.indexOf( "windows" ) >= 0 ) ||
( osname.indexOf( "netware" ) >= 0 ) );
m_onWindows = ( Os.isFamily( Os.OS_FAMILY_WINDOWS ) || Os.isFamily( Os.OS_FAMILY_NETWARE ) );

// Determine the from/to char mappings for dir sep
char fromDirSep = m_onWindows ? '\\' : '/';


+ 2
- 7
proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/javadoc/Javadoc.java View File

@@ -845,7 +845,7 @@ public class Javadoc
{
// This is the most common extension case - exe for windows and OS/2,
// nothing for *nix.
String extension = Os.isFamily( "dos" ) ? ".exe" : "";
String extension = Os.isFamily( Os.OS_FAMILY_DOS ) ? ".exe" : "";

// Look for javadoc in the java.home/../bin directory. Unfortunately
// on Windows java.home doesn't always refer to the correct location,
@@ -854,17 +854,12 @@ public class Javadoc
File jdocExecutable = new File( System.getProperty( "java.home" ) +
"/../bin/javadoc" + extension );

if( jdocExecutable.exists() && !Os.isFamily( "netware" ) )
if( jdocExecutable.exists() && !Os.isFamily( Os.OS_FAMILY_NETWARE ) )
{
return jdocExecutable.getAbsolutePath();
}
else
{
if( !Os.isFamily( "netware" ) )
{
getLogger().debug( "Unable to locate " + jdocExecutable.getAbsolutePath() +
". Using \"javadoc\" instead." );
}
return "javadoc";
}
}


+ 2
- 2
proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/Cab.java View File

@@ -17,8 +17,8 @@ import java.util.Iterator;
import org.apache.aut.nativelib.ExecManager;
import org.apache.aut.nativelib.Os;
import org.apache.myrmidon.api.TaskException;
import org.apache.tools.ant.taskdefs.MatchingTask;
import org.apache.myrmidon.framework.Execute;
import org.apache.tools.ant.taskdefs.MatchingTask;
import org.apache.tools.ant.types.Commandline;
import org.apache.tools.ant.types.DirectoryScanner;
import org.apache.tools.ant.types.FileSet;
@@ -103,7 +103,7 @@ public class Cab

getLogger().info( "Building cab: " + m_cabFile.getAbsolutePath() );

if( !Os.isFamily( "windows" ) )
if( !Os.isFamily( Os.OS_FAMILY_WINDOWS ) )
{
getLogger().debug( "Using listcab/libcabinet" );



+ 14
- 17
proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/text/FixCRLF.java View File

@@ -21,6 +21,7 @@ import java.io.Reader;
import java.io.Writer;
import java.util.Iterator;
import java.util.NoSuchElementException;
import org.apache.aut.nativelib.Os;
import org.apache.avalon.excalibur.io.FileUtil;
import org.apache.myrmidon.api.TaskException;
import org.apache.tools.ant.taskdefs.MatchingTask;
@@ -122,25 +123,23 @@ public class FixCRLF
public FixCRLF()
{
tabs = ASIS;
if( File.pathSeparator.equals( ":" ) )
if( Os.isFamily( Os.OS_FAMILY_WINDOWS) )
{
ctrlz = ASIS;
eol = CRLF;
eolstr = "\r\n";
}
else if( Os.isFamily( Os.OS_FAMILY_MAC ) )
{
ctrlz = REMOVE;
if( System.getProperty( "os.name" ).indexOf( "Mac" ) > -1 )
{
eol = CR;
eolstr = "\r";
}
else
{
eol = LF;
eolstr = "\n";
}
eol = CR;
eolstr = "\r";
}
else
{
ctrlz = ASIS;
eol = CRLF;
eolstr = "\r\n";
ctrlz = REMOVE;
eol = LF;
eolstr = "\n";
}
}

@@ -618,9 +617,7 @@ public class FixCRLF
}
else
{// (tabs != ASIS)
int ptr;

while( ( ptr = line.getNext() ) < linelen )
while( line.getNext() < linelen )
{

switch( lines.getState() )


+ 2
- 2
proposal/myrmidon/src/main/org/apache/tools/ant/types/CommandlineJava.java View File

@@ -264,7 +264,7 @@ public class CommandlineJava
{
// This is the most common extension case - exe for windows and OS/2,
// nothing for *nix.
String extension = Os.isFamily( "dos" ) ? ".exe" : "";
String extension = Os.isFamily( Os.OS_FAMILY_DOS ) ? ".exe" : "";

// Look for java in the java.home/../bin directory. Unfortunately
// on Windows java.home doesn't always refer to the correct location,
@@ -274,7 +274,7 @@ public class CommandlineJava
new File( System.getProperty( "java.home" ) +
"/../bin/java" + extension );

if( jExecutable.exists() && !Os.isFamily( "netware" ) )
if( jExecutable.exists() && !Os.isFamily( Os.OS_FAMILY_NETWARE ) )
{
// NetWare may have a "java" in that directory, but 99% of
// the time, you don't want to execute it -- Jeff Tulley


+ 1
- 1
proposal/myrmidon/src/main/org/apache/tools/ant/types/SourceFileScanner.java View File

@@ -56,7 +56,7 @@ public class SourceFileScanner
* not have it, so if we could reliably passively test for an NTFS
* file systems we could turn this off...
*/
if( Os.isFamily( "windows" ) )
if( Os.isFamily( Os.OS_FAMILY_WINDOWS ) )
{
now += 2000;
}


+ 1
- 1
proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/DependSet.java View File

@@ -141,7 +141,7 @@ public class DependSet extends MatchingTask
* be able to check file modification times.
* (Windows has a max resolution of two secs for modification times)
*/
if( Os.isFamily( "windows" ) )
if( Os.isFamily( Os.OS_FAMILY_WINDOWS ) )
{
now += 2000;
}


+ 2
- 3
proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Javac.java View File

@@ -12,7 +12,6 @@ import java.util.ArrayList;
import java.util.Iterator;
import org.apache.aut.nativelib.Os;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.api.AbstractTask;
import org.apache.myrmidon.framework.JavaVersion;
import org.apache.tools.ant.taskdefs.compilers.CompilerAdapter;
import org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory;
@@ -726,7 +725,7 @@ public class Javac extends MatchingTask
{
// This is the most common extension case - exe for windows and OS/2,
// nothing for *nix.
String extension = Os.isFamily( "dos" ) ? ".exe" : "";
String extension = Os.isFamily( Os.OS_FAMILY_DOS ) ? ".exe" : "";

// Look for java in the java.home/../bin directory. Unfortunately
// on Windows java.home doesn't always refer to the correct location,
@@ -736,7 +735,7 @@ public class Javac extends MatchingTask
new java.io.File( System.getProperty( "java.home" ) +
"/../bin/javac" + extension );

if( jExecutable.exists() && !Os.isFamily( "netware" ) )
if( jExecutable.exists() && !Os.isFamily( Os.OS_FAMILY_NETWARE ) )
{
return jExecutable.getAbsolutePath();
}


+ 4
- 6
proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/PathConvert.java View File

@@ -9,6 +9,7 @@ package org.apache.tools.ant.taskdefs;

import java.io.File;
import java.util.ArrayList;
import org.apache.aut.nativelib.Os;
import org.apache.myrmidon.api.AbstractTask;
import org.apache.myrmidon.api.TaskException;
import org.apache.tools.ant.types.Path;
@@ -45,7 +46,7 @@ public class PathConvert extends AbstractTask
/**
* Override the default path separator string for the target os
*
* @param sep The new PathSep value
* @param pathSep The new PathSep value
*/
public void setPathSep( final String pathSep )
{
@@ -64,7 +65,7 @@ public class PathConvert extends AbstractTask
/**
* Set the value of the targetos attribute
*
* @param target The new Targetos value
* @param targetOS The new Targetos value
*/
public void setTargetos( String targetOS )
throws TaskException
@@ -121,13 +122,10 @@ public class PathConvert extends AbstractTask
// And Unix is everything that is not Windows
// (with the exception for NetWare below)

String osname = System.getProperty( "os.name" ).toLowerCase();

// for NetWare, piggy-back on Windows, since here and in the
// apply code, the same assumptions can be made as with windows -
// that \\ is an OK separator, and do comparisons case-insensitive.
m_onWindows = ( ( osname.indexOf( "windows" ) >= 0 ) ||
( osname.indexOf( "netware" ) >= 0 ) );
m_onWindows = ( Os.isFamily( Os.OS_FAMILY_WINDOWS ) || Os.isFamily( Os.OS_FAMILY_NETWARE ) );

// Determine the from/to char mappings for dir sep
char fromDirSep = m_onWindows ? '\\' : '/';


+ 2
- 7
proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/javadoc/Javadoc.java View File

@@ -845,7 +845,7 @@ public class Javadoc
{
// This is the most common extension case - exe for windows and OS/2,
// nothing for *nix.
String extension = Os.isFamily( "dos" ) ? ".exe" : "";
String extension = Os.isFamily( Os.OS_FAMILY_DOS ) ? ".exe" : "";

// Look for javadoc in the java.home/../bin directory. Unfortunately
// on Windows java.home doesn't always refer to the correct location,
@@ -854,17 +854,12 @@ public class Javadoc
File jdocExecutable = new File( System.getProperty( "java.home" ) +
"/../bin/javadoc" + extension );

if( jdocExecutable.exists() && !Os.isFamily( "netware" ) )
if( jdocExecutable.exists() && !Os.isFamily( Os.OS_FAMILY_NETWARE ) )
{
return jdocExecutable.getAbsolutePath();
}
else
{
if( !Os.isFamily( "netware" ) )
{
getLogger().debug( "Unable to locate " + jdocExecutable.getAbsolutePath() +
". Using \"javadoc\" instead." );
}
return "javadoc";
}
}


+ 2
- 2
proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/Cab.java View File

@@ -17,8 +17,8 @@ import java.util.Iterator;
import org.apache.aut.nativelib.ExecManager;
import org.apache.aut.nativelib.Os;
import org.apache.myrmidon.api.TaskException;
import org.apache.tools.ant.taskdefs.MatchingTask;
import org.apache.myrmidon.framework.Execute;
import org.apache.tools.ant.taskdefs.MatchingTask;
import org.apache.tools.ant.types.Commandline;
import org.apache.tools.ant.types.DirectoryScanner;
import org.apache.tools.ant.types.FileSet;
@@ -103,7 +103,7 @@ public class Cab

getLogger().info( "Building cab: " + m_cabFile.getAbsolutePath() );

if( !Os.isFamily( "windows" ) )
if( !Os.isFamily( Os.OS_FAMILY_WINDOWS ) )
{
getLogger().debug( "Using listcab/libcabinet" );



+ 14
- 17
proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/text/FixCRLF.java View File

@@ -21,6 +21,7 @@ import java.io.Reader;
import java.io.Writer;
import java.util.Iterator;
import java.util.NoSuchElementException;
import org.apache.aut.nativelib.Os;
import org.apache.avalon.excalibur.io.FileUtil;
import org.apache.myrmidon.api.TaskException;
import org.apache.tools.ant.taskdefs.MatchingTask;
@@ -122,25 +123,23 @@ public class FixCRLF
public FixCRLF()
{
tabs = ASIS;
if( File.pathSeparator.equals( ":" ) )
if( Os.isFamily( Os.OS_FAMILY_WINDOWS) )
{
ctrlz = ASIS;
eol = CRLF;
eolstr = "\r\n";
}
else if( Os.isFamily( Os.OS_FAMILY_MAC ) )
{
ctrlz = REMOVE;
if( System.getProperty( "os.name" ).indexOf( "Mac" ) > -1 )
{
eol = CR;
eolstr = "\r";
}
else
{
eol = LF;
eolstr = "\n";
}
eol = CR;
eolstr = "\r";
}
else
{
ctrlz = ASIS;
eol = CRLF;
eolstr = "\r\n";
ctrlz = REMOVE;
eol = LF;
eolstr = "\n";
}
}

@@ -618,9 +617,7 @@ public class FixCRLF
}
else
{// (tabs != ASIS)
int ptr;

while( ( ptr = line.getNext() ) < linelen )
while( line.getNext() < linelen )
{

switch( lines.getState() )


+ 2
- 2
proposal/myrmidon/src/todo/org/apache/tools/ant/types/CommandlineJava.java View File

@@ -264,7 +264,7 @@ public class CommandlineJava
{
// This is the most common extension case - exe for windows and OS/2,
// nothing for *nix.
String extension = Os.isFamily( "dos" ) ? ".exe" : "";
String extension = Os.isFamily( Os.OS_FAMILY_DOS ) ? ".exe" : "";

// Look for java in the java.home/../bin directory. Unfortunately
// on Windows java.home doesn't always refer to the correct location,
@@ -274,7 +274,7 @@ public class CommandlineJava
new File( System.getProperty( "java.home" ) +
"/../bin/java" + extension );

if( jExecutable.exists() && !Os.isFamily( "netware" ) )
if( jExecutable.exists() && !Os.isFamily( Os.OS_FAMILY_NETWARE ) )
{
// NetWare may have a "java" in that directory, but 99% of
// the time, you don't want to execute it -- Jeff Tulley


+ 1
- 1
proposal/myrmidon/src/todo/org/apache/tools/ant/types/SourceFileScanner.java View File

@@ -56,7 +56,7 @@ public class SourceFileScanner
* not have it, so if we could reliably passively test for an NTFS
* file systems we could turn this off...
*/
if( Os.isFamily( "windows" ) )
if( Os.isFamily( Os.OS_FAMILY_WINDOWS ) )
{
now += 2000;
}


Loading…
Cancel
Save