- Moved generic formatting to aut.nativelib.PathUtil. - Moved FileList util methods to framework.file.FileListUtil. - Moved addExtDirs() to DefaultCompilerAdaptor. - myrmidon.components.* no longer depend on todo.* * Removed all usages of Commandline.toString(), size() and getCommandline(), excluding Execute. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@272268 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -11,7 +11,7 @@ import org.apache.myrmidon.api.TaskContext; | |||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.framework.conditions.Condition; | import org.apache.myrmidon.framework.conditions.Condition; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| /** | /** | ||||
| * An abstract condition which checks for the availability of a particular | * An abstract condition which checks for the availability of a particular | ||||
| @@ -46,6 +46,6 @@ public abstract class AbstractAvailableCondition | |||||
| */ | */ | ||||
| protected ClassLoader buildClassLoader( final TaskContext context ) throws TaskException | protected ClassLoader buildClassLoader( final TaskContext context ) throws TaskException | ||||
| { | { | ||||
| return PathUtil.createClassLoader( m_classpath, context ); | |||||
| return FileListUtil.createClassLoader( m_classpath, context ); | |||||
| } | } | ||||
| } | } | ||||
| @@ -9,8 +9,8 @@ package org.apache.antlib.java; | |||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| import org.apache.tools.todo.types.Commandline; | import org.apache.tools.todo.types.Commandline; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import java.io.File; | import java.io.File; | ||||
| import java.lang.reflect.Method; | import java.lang.reflect.Method; | ||||
| @@ -84,7 +84,7 @@ public class JavacAdaptor | |||||
| classpath.add( getClassPath() ); | classpath.add( getClassPath() ); | ||||
| cmd.addArgument( "-classpath" ); | cmd.addArgument( "-classpath" ); | ||||
| cmd.addArgument( PathUtil.formatPath( classpath, getContext() ) ); | |||||
| cmd.addArgument( FileListUtil.formatPath( classpath, getContext() ) ); | |||||
| if( isDeprecation() ) | if( isDeprecation() ) | ||||
| { | { | ||||
| @@ -12,8 +12,8 @@ import org.apache.myrmidon.api.TaskException; | |||||
| import org.apache.myrmidon.framework.Execute; | import org.apache.myrmidon.framework.Execute; | ||||
| import org.apache.myrmidon.framework.java.JavaRuntimeClassPath; | import org.apache.myrmidon.framework.java.JavaRuntimeClassPath; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| import org.apache.tools.todo.types.Commandline; | import org.apache.tools.todo.types.Commandline; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| /** | /** | ||||
| * An adaptor for the jikes compiler. | * An adaptor for the jikes compiler. | ||||
| @@ -74,7 +74,7 @@ public class JikesAdaptor | |||||
| cmd.addArgument( getDestDir() ); | cmd.addArgument( getDestDir() ); | ||||
| cmd.addArgument( "-classpath" ); | cmd.addArgument( "-classpath" ); | ||||
| cmd.addArgument( PathUtil.formatPath( classpath, getContext() ) ); | |||||
| cmd.addArgument( FileListUtil.formatPath( classpath, getContext() ) ); | |||||
| // TODO - make this configurable | // TODO - make this configurable | ||||
| cmd.addArgument( "+E" ); | cmd.addArgument( "+E" ); | ||||
| @@ -16,9 +16,9 @@ import java.util.Hashtable; | |||||
| import org.apache.myrmidon.api.AbstractTask; | import org.apache.myrmidon.api.AbstractTask; | ||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| import org.apache.tools.todo.types.DirectoryScanner; | import org.apache.tools.todo.types.DirectoryScanner; | ||||
| import org.apache.tools.todo.types.FileSet; | import org.apache.tools.todo.types.FileSet; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.tools.todo.types.ScannerUtil; | import org.apache.tools.todo.types.ScannerUtil; | ||||
| import org.xml.sax.EntityResolver; | import org.xml.sax.EntityResolver; | ||||
| import org.xml.sax.InputSource; | import org.xml.sax.InputSource; | ||||
| @@ -311,7 +311,7 @@ public class XMLValidateTask | |||||
| { | { | ||||
| // load the parser class | // load the parser class | ||||
| // with JAXP, we would use a SAXParser factory | // with JAXP, we would use a SAXParser factory | ||||
| final ClassLoader classLoader = PathUtil.createClassLoader( m_classpath, getContext() ); | |||||
| final ClassLoader classLoader = FileListUtil.createClassLoader( m_classpath, getContext() ); | |||||
| final Class readerClass = classLoader.loadClass( m_readerClassName ); | final Class readerClass = classLoader.loadClass( m_readerClassName ); | ||||
| // then check it implements XMLReader | // then check it implements XMLReader | ||||
| @@ -0,0 +1,64 @@ | |||||
| /* | |||||
| * 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; | |||||
| import java.io.File; | |||||
| /** | |||||
| * Utility methods for dealing with native paths. | |||||
| * | |||||
| * @author <a href="mailto:peter@apache.org">Peter Donald</a> | |||||
| * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a> | |||||
| * @version $Revision$ $Date$ | |||||
| */ | |||||
| public class PathUtil | |||||
| { | |||||
| /** | |||||
| * Formats a path into its native representation. | |||||
| */ | |||||
| public static String formatPath( final String[] path ) | |||||
| { | |||||
| // empty path return empty string | |||||
| if( path == null || path.length == 0 ) | |||||
| { | |||||
| return ""; | |||||
| } | |||||
| // path containing one or more elements | |||||
| final StringBuffer result = new StringBuffer( path[ 0 ].toString() ); | |||||
| for( int i = 1; i < path.length; i++ ) | |||||
| { | |||||
| result.append( File.pathSeparatorChar ); | |||||
| result.append( path[ i ] ); | |||||
| } | |||||
| return result.toString(); | |||||
| } | |||||
| /** | |||||
| * Formats a path into its native representation. | |||||
| */ | |||||
| public static String formatPath( final File[] path ) | |||||
| { | |||||
| // empty path return empty string | |||||
| if( path == null || path.length == 0 ) | |||||
| { | |||||
| return ""; | |||||
| } | |||||
| // path containing one or more elements | |||||
| final StringBuffer result = new StringBuffer( path[ 0 ].toString() ); | |||||
| for( int i = 1; i < path.length; i++ ) | |||||
| { | |||||
| result.append( File.pathSeparatorChar ); | |||||
| result.append( path[ i ].getAbsolutePath() ); | |||||
| } | |||||
| return result.toString(); | |||||
| } | |||||
| } | |||||
| @@ -30,7 +30,7 @@ import org.apache.myrmidon.interfaces.classloader.ClassLoaderException; | |||||
| import org.apache.myrmidon.interfaces.classloader.ClassLoaderManager; | import org.apache.myrmidon.interfaces.classloader.ClassLoaderManager; | ||||
| import org.apache.myrmidon.interfaces.deployer.DeploymentException; | import org.apache.myrmidon.interfaces.deployer.DeploymentException; | ||||
| import org.apache.myrmidon.interfaces.extensions.ExtensionManager; | import org.apache.myrmidon.interfaces.extensions.ExtensionManager; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.aut.nativelib.PathUtil; | |||||
| /** | /** | ||||
| * A default implementation of a ClassLoader manager. | * A default implementation of a ClassLoader manager. | ||||
| @@ -9,10 +9,10 @@ package org.apache.myrmidon.framework.file; | |||||
| import org.apache.aut.converter.AbstractConverter; | import org.apache.aut.converter.AbstractConverter; | ||||
| import org.apache.aut.converter.ConverterException; | import org.apache.aut.converter.ConverterException; | ||||
| import org.apache.aut.nativelib.PathUtil; | |||||
| import org.apache.myrmidon.api.TaskContext; | import org.apache.myrmidon.api.TaskContext; | ||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.framework.file.FileList; | import org.apache.myrmidon.framework.file.FileList; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| /** | /** | ||||
| * Converters from FileList to String. | * Converters from FileList to String. | ||||
| @@ -5,70 +5,28 @@ | |||||
| * version 1.1, a copy of which has been included with this distribution in | * version 1.1, a copy of which has been included with this distribution in | ||||
| * the LICENSE.txt file. | * the LICENSE.txt file. | ||||
| */ | */ | ||||
| package org.apache.tools.todo.types; | |||||
| package org.apache.myrmidon.framework.file; | |||||
| import java.io.File; | |||||
| import java.io.IOException; | |||||
| import java.net.URL; | |||||
| import java.util.Locale; | |||||
| import org.apache.myrmidon.api.TaskContext; | import org.apache.myrmidon.api.TaskContext; | ||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.framework.file.Path; | |||||
| import org.apache.myrmidon.framework.file.FileList; | |||||
| import org.apache.myrmidon.interfaces.classloader.ClassLoaderManager; | import org.apache.myrmidon.interfaces.classloader.ClassLoaderManager; | ||||
| import org.apache.myrmidon.interfaces.classloader.ClassLoaderException; | import org.apache.myrmidon.interfaces.classloader.ClassLoaderException; | ||||
| import org.apache.aut.nativelib.Os; | |||||
| import org.apache.aut.nativelib.PathUtil; | |||||
| import java.io.File; | |||||
| import java.io.IOException; | |||||
| import java.net.URL; | |||||
| /** | /** | ||||
| * Utilities for operating on Path objects. | |||||
| * Utility methods for dealing with {@link FileList} objects. | |||||
| * | * | ||||
| * @author <a href="mailto:peter@apache.org">Peter Donald</a> | * @author <a href="mailto:peter@apache.org">Peter Donald</a> | ||||
| * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a> | |||||
| * @version $Revision$ $Date$ | * @version $Revision$ $Date$ | ||||
| */ | */ | ||||
| public class PathUtil | |||||
| public final class FileListUtil | |||||
| { | { | ||||
| /** | |||||
| * Formats a path into its native representation. | |||||
| */ | |||||
| public static String formatPath( final String[] path ) | |||||
| { | |||||
| // empty path return empty string | |||||
| if( path.length == 0 ) | |||||
| { | |||||
| return ""; | |||||
| } | |||||
| // path containing one or more elements | |||||
| final StringBuffer result = new StringBuffer( path[ 0 ].toString() ); | |||||
| for( int i = 1; i < path.length; i++ ) | |||||
| { | |||||
| result.append( File.pathSeparatorChar ); | |||||
| result.append( path[ i ] ); | |||||
| } | |||||
| return result.toString(); | |||||
| } | |||||
| /** | |||||
| * Formats a path into its native representation. | |||||
| */ | |||||
| public static String formatPath( final File[] path ) | |||||
| private FileListUtil() | |||||
| { | { | ||||
| // empty path return empty string | |||||
| if( path.length == 0 ) | |||||
| { | |||||
| return ""; | |||||
| } | |||||
| // path containing one or more elements | |||||
| final StringBuffer result = new StringBuffer( path[ 0 ].toString() ); | |||||
| for( int i = 1; i < path.length; i++ ) | |||||
| { | |||||
| result.append( File.pathSeparatorChar ); | |||||
| result.append( path[ i ].getAbsolutePath() ); | |||||
| } | |||||
| return result.toString(); | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -78,7 +36,7 @@ public class PathUtil | |||||
| throws TaskException | throws TaskException | ||||
| { | { | ||||
| final String[] list = path.listFiles( context ); | final String[] list = path.listFiles( context ); | ||||
| return formatPath( list ); | |||||
| return PathUtil.formatPath( list ); | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -141,25 +99,4 @@ public class PathUtil | |||||
| } | } | ||||
| } | } | ||||
| /** | |||||
| * Adds the contents of a set of directories to a path. | |||||
| */ | |||||
| public static void addExtdirs( final Path toPath, | |||||
| final Path extDirs, | |||||
| final TaskContext context ) | |||||
| throws TaskException | |||||
| { | |||||
| final String[] dirs = extDirs.listFiles( context ); | |||||
| for( int i = 0; i < dirs.length; i++ ) | |||||
| { | |||||
| final File dir = new File( dirs[ i ] ); | |||||
| if( dir.exists() && dir.isDirectory() ) | |||||
| { | |||||
| final FileSet fileSet = new FileSet(); | |||||
| fileSet.setDir( dir ); | |||||
| fileSet.setIncludes( "*" ); | |||||
| toPath.addFileset( fileSet ); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | } | ||||
| @@ -11,15 +11,16 @@ import java.io.File; | |||||
| import java.lang.reflect.InvocationTargetException; | import java.lang.reflect.InvocationTargetException; | ||||
| import java.lang.reflect.Method; | import java.lang.reflect.Method; | ||||
| import org.apache.aut.nativelib.Os; | import org.apache.aut.nativelib.Os; | ||||
| import org.apache.aut.nativelib.PathUtil; | |||||
| import org.apache.avalon.excalibur.i18n.ResourceManager; | import org.apache.avalon.excalibur.i18n.ResourceManager; | ||||
| import org.apache.avalon.excalibur.i18n.Resources; | import org.apache.avalon.excalibur.i18n.Resources; | ||||
| import org.apache.myrmidon.api.TaskContext; | import org.apache.myrmidon.api.TaskContext; | ||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.framework.Execute; | import org.apache.myrmidon.framework.Execute; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| import org.apache.tools.todo.types.Commandline; | import org.apache.tools.todo.types.Commandline; | ||||
| import org.apache.tools.todo.types.EnvironmentData; | import org.apache.tools.todo.types.EnvironmentData; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.tools.todo.types.SysProperties; | import org.apache.tools.todo.types.SysProperties; | ||||
| import org.apache.tools.todo.util.FileUtils; | import org.apache.tools.todo.util.FileUtils; | ||||
| @@ -197,7 +198,7 @@ public class ExecuteJava | |||||
| final String message = REZ.getString( "executejava.jar-no-fork.error" ); | final String message = REZ.getString( "executejava.jar-no-fork.error" ); | ||||
| throw new TaskException( message ); | throw new TaskException( message ); | ||||
| } | } | ||||
| if( m_vmArgs.size() > 0 ) | |||||
| if( m_vmArgs.getArguments().length > 0 ) | |||||
| { | { | ||||
| final String message = REZ.getString( "executejava.ignore-jvm-args.notice" ); | final String message = REZ.getString( "executejava.ignore-jvm-args.notice" ); | ||||
| context.warn( message ); | context.warn( message ); | ||||
| @@ -234,7 +235,7 @@ public class ExecuteJava | |||||
| Class target; | Class target; | ||||
| try | try | ||||
| { | { | ||||
| final ClassLoader classLoader = PathUtil.createClassLoader( m_classPath, context ); | |||||
| final ClassLoader classLoader = FileListUtil.createClassLoader( m_classPath, context ); | |||||
| target = classLoader.loadClass( m_className ); | target = classLoader.loadClass( m_className ); | ||||
| } | } | ||||
| catch( final Exception e ) | catch( final Exception e ) | ||||
| @@ -21,7 +21,7 @@ import org.apache.tools.todo.taskdefs.javac.DefaultCompilerAdapter; | |||||
| import org.apache.tools.todo.taskdefs.javac.Javac; | import org.apache.tools.todo.taskdefs.javac.Javac; | ||||
| import org.apache.tools.todo.types.DirectoryScanner; | import org.apache.tools.todo.types.DirectoryScanner; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| import org.apache.antlib.java.JavaTask; | import org.apache.antlib.java.JavaTask; | ||||
| /** | /** | ||||
| @@ -774,7 +774,7 @@ public class IContract extends MatchingTask | |||||
| } | } | ||||
| iControlProps.setProperty( "sourceRoot", srcDir.getAbsolutePath() ); | iControlProps.setProperty( "sourceRoot", srcDir.getAbsolutePath() ); | ||||
| iControlProps.setProperty( "classRoot", classDir.getAbsolutePath() ); | iControlProps.setProperty( "classRoot", classDir.getAbsolutePath() ); | ||||
| final String classpath = PathUtil.formatPath( afterInstrumentationClasspath, getContext() ); | |||||
| final String classpath = FileListUtil.formatPath( afterInstrumentationClasspath, getContext() ); | |||||
| iControlProps.setProperty( "classpath", classpath ); | iControlProps.setProperty( "classpath", classpath ); | ||||
| iControlProps.setProperty( "controlFile", controlFile.getAbsolutePath() ); | iControlProps.setProperty( "controlFile", controlFile.getAbsolutePath() ); | ||||
| iControlProps.setProperty( "targetsFile", targets.getAbsolutePath() ); | iControlProps.setProperty( "targetsFile", targets.getAbsolutePath() ); | ||||
| @@ -15,8 +15,9 @@ import org.apache.avalon.excalibur.util.StringUtil; | |||||
| import org.apache.myrmidon.api.AbstractTask; | import org.apache.myrmidon.api.AbstractTask; | ||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.tools.todo.types.Commandline; | import org.apache.tools.todo.types.Commandline; | ||||
| import org.apache.tools.todo.util.FileUtils; | |||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| /** | /** | ||||
| * Task to generate JNI header files using javah. This task can take the | * Task to generate JNI header files using javah. This task can take the | ||||
| @@ -207,10 +208,12 @@ public class Javah | |||||
| * &qout;niceSourceList" | * &qout;niceSourceList" | ||||
| */ | */ | ||||
| private void logAndAddFilesToCompile( final Commandline cmd ) | private void logAndAddFilesToCompile( final Commandline cmd ) | ||||
| throws TaskException | |||||
| { | { | ||||
| int n = 0; | |||||
| getContext().debug( "Compilation args: " + cmd.toString() ); | |||||
| final String[] args = cmd.getArguments(); | |||||
| getContext().debug( "Compilation args: " + FileUtils.formatCommandLine( args ) ); | |||||
| int n = 0; | |||||
| StringBuffer niceClassList = new StringBuffer(); | StringBuffer niceClassList = new StringBuffer(); | ||||
| if( m_cls != null ) | if( m_cls != null ) | ||||
| { | { | ||||
| @@ -268,7 +271,7 @@ public class Javah | |||||
| if( m_classpath != null ) | if( m_classpath != null ) | ||||
| { | { | ||||
| cmd.addArgument( "-classpath" ); | cmd.addArgument( "-classpath" ); | ||||
| cmd.addArgument( PathUtil.formatPath( m_classpath, getContext() ) ); | |||||
| cmd.addArgument( FileListUtil.formatPath( m_classpath, getContext() ) ); | |||||
| } | } | ||||
| if( m_verbose ) | if( m_verbose ) | ||||
| @@ -296,7 +299,7 @@ public class Javah | |||||
| if( m_bootclasspath != null ) | if( m_bootclasspath != null ) | ||||
| { | { | ||||
| cmd.addArgument( "-bootclasspath" ); | cmd.addArgument( "-bootclasspath" ); | ||||
| cmd.addArgument( PathUtil.formatPath( m_bootclasspath, getContext() ) ); | |||||
| cmd.addArgument( FileListUtil.formatPath( m_bootclasspath, getContext() ) ); | |||||
| } | } | ||||
| logAndAddFilesToCompile( cmd ); | logAndAddFilesToCompile( cmd ); | ||||
| @@ -15,7 +15,7 @@ import java.util.Properties; | |||||
| import org.apache.myrmidon.api.AbstractTask; | import org.apache.myrmidon.api.AbstractTask; | ||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| /** | /** | ||||
| * Will set a Project property. Used to be a hack in ProjectHelper Will not | * Will set a Project property. Used to be a hack in ProjectHelper Will not | ||||
| @@ -120,7 +120,7 @@ public class Property | |||||
| getContext().debug( "Resource Loading " + name ); | getContext().debug( "Resource Loading " + name ); | ||||
| try | try | ||||
| { | { | ||||
| final ClassLoader classLoader = PathUtil.createClassLoader( m_classpath, getContext() ); | |||||
| final ClassLoader classLoader = FileListUtil.createClassLoader( m_classpath, getContext() ); | |||||
| final InputStream is = classLoader.getResourceAsStream( name ); | final InputStream is = classLoader.getResourceAsStream( name ); | ||||
| if( is != null ) | if( is != null ) | ||||
| @@ -33,10 +33,10 @@ import java.util.StringTokenizer; | |||||
| import org.apache.myrmidon.api.AbstractTask; | import org.apache.myrmidon.api.AbstractTask; | ||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| import org.apache.tools.todo.types.DirectoryScanner; | import org.apache.tools.todo.types.DirectoryScanner; | ||||
| import org.apache.tools.todo.types.EnumeratedAttribute; | import org.apache.tools.todo.types.EnumeratedAttribute; | ||||
| import org.apache.tools.todo.types.FileSet; | import org.apache.tools.todo.types.FileSet; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.tools.todo.types.ScannerUtil; | import org.apache.tools.todo.types.ScannerUtil; | ||||
| /** | /** | ||||
| @@ -417,7 +417,7 @@ public class SQLExec | |||||
| // Load the driver using the | // Load the driver using the | ||||
| try | try | ||||
| { | { | ||||
| final ClassLoader classLoader = PathUtil.createClassLoader( classpath, getContext() ); | |||||
| final ClassLoader classLoader = FileListUtil.createClassLoader( classpath, getContext() ); | |||||
| final Class dc = classLoader.loadClass( driver ); | final Class dc = classLoader.loadClass( driver ); | ||||
| driverInstance = (Driver)dc.newInstance(); | driverInstance = (Driver)dc.newInstance(); | ||||
| } | } | ||||
| @@ -18,7 +18,10 @@ import org.apache.myrmidon.api.TaskException; | |||||
| import org.apache.myrmidon.framework.Execute; | import org.apache.myrmidon.framework.Execute; | ||||
| import org.apache.tools.todo.types.Commandline; | import org.apache.tools.todo.types.Commandline; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| import org.apache.tools.todo.types.FileSet; | |||||
| import org.apache.tools.todo.util.FileUtils; | |||||
| import org.apache.aut.nativelib.PathUtil; | |||||
| /** | /** | ||||
| * This is the default implementation for the CompilerAdapter interface. | * This is the default implementation for the CompilerAdapter interface. | ||||
| @@ -114,7 +117,8 @@ public abstract class DefaultCompilerAdapter | |||||
| { | { | ||||
| Commandline cmd = new Commandline(); | Commandline cmd = new Commandline(); | ||||
| setupJavacCommandlineSwitches( cmd, debugLevelCheck ); | setupJavacCommandlineSwitches( cmd, debugLevelCheck ); | ||||
| logAndAddFilesToCompile( cmd ); | |||||
| logFilesToCompile( cmd ); | |||||
| addFilesToCompile( cmd ); | |||||
| return cmd; | return cmd; | ||||
| } | } | ||||
| @@ -176,10 +180,10 @@ public abstract class DefaultCompilerAdapter | |||||
| } | } | ||||
| cmd.addArgument( "-classpath" ); | cmd.addArgument( "-classpath" ); | ||||
| cmd.addArgument( PathUtil.formatPath( classpath, getTaskContext() ) ); | |||||
| cmd.addArgument( FileListUtil.formatPath( classpath, getTaskContext() ) ); | |||||
| cmd.addArgument( "-sourcepath" ); | cmd.addArgument( "-sourcepath" ); | ||||
| cmd.addArgument( PathUtil.formatPath( src, getTaskContext() ) ); | |||||
| cmd.addArgument( FileListUtil.formatPath( src, getTaskContext() ) ); | |||||
| if( target != null ) | if( target != null ) | ||||
| { | { | ||||
| @@ -197,7 +201,7 @@ public abstract class DefaultCompilerAdapter | |||||
| if( m_extdirs != null ) | if( m_extdirs != null ) | ||||
| { | { | ||||
| cmd.addArgument( "-extdirs" ); | cmd.addArgument( "-extdirs" ); | ||||
| cmd.addArgument( PathUtil.formatPath( m_extdirs, getTaskContext() ) ); | |||||
| cmd.addArgument( FileListUtil.formatPath( m_extdirs, getTaskContext() ) ); | |||||
| } | } | ||||
| if( m_encoding != null ) | if( m_encoding != null ) | ||||
| @@ -255,7 +259,8 @@ public abstract class DefaultCompilerAdapter | |||||
| Commandline cmd = new Commandline(); | Commandline cmd = new Commandline(); | ||||
| setupModernJavacCommandlineSwitches( cmd ); | setupModernJavacCommandlineSwitches( cmd ); | ||||
| logAndAddFilesToCompile( cmd ); | |||||
| logFilesToCompile( cmd ); | |||||
| addFilesToCompile( cmd ); | |||||
| return cmd; | return cmd; | ||||
| } | } | ||||
| @@ -312,14 +317,14 @@ public abstract class DefaultCompilerAdapter | |||||
| /** | /** | ||||
| * Do the compile with the specified arguments. | * Do the compile with the specified arguments. | ||||
| * | * | ||||
| * @param args - arguments to pass to process on command line | |||||
| * @param firstFileName - index of the first source file in args | |||||
| * @return Description of the Returned Value | |||||
| * @param cmd - the command line, to which the names of the files to | |||||
| * compile are added. | |||||
| */ | */ | ||||
| protected int executeExternalCompile( String[] args, int firstFileName ) | |||||
| protected boolean executeExternalCompile( final Commandline cmd ) | |||||
| throws TaskException | throws TaskException | ||||
| { | { | ||||
| String[] commandArray = null; | |||||
| logFilesToCompile( cmd ); | |||||
| File tmpFile = null; | File tmpFile = null; | ||||
| try | try | ||||
| @@ -329,43 +334,38 @@ public abstract class DefaultCompilerAdapter | |||||
| * long command lines - no, not only Windows ;-). | * long command lines - no, not only Windows ;-). | ||||
| * | * | ||||
| * POSIX seems to define a lower limit of 4k, so use a temporary | * POSIX seems to define a lower limit of 4k, so use a temporary | ||||
| * file if the total length of the command line exceeds this limit. | |||||
| * file. | |||||
| */ | */ | ||||
| if( StringUtil.join( args, " " ).length() > 4096 ) | |||||
| try | |||||
| { | { | ||||
| PrintWriter out = null; | |||||
| tmpFile = File.createTempFile( "javac", "", new File( "." ) ); | |||||
| final FileWriter fout = new FileWriter( tmpFile ); | |||||
| try | try | ||||
| { | { | ||||
| tmpFile = File.createTempFile( "jikes", "", new File( "." ) ); | |||||
| out = new PrintWriter( new FileWriter( tmpFile ) ); | |||||
| for( int i = firstFileName; i < args.length; i++ ) | |||||
| final PrintWriter out = new PrintWriter( fout ); | |||||
| for( int i = 0; i < m_compileList.length; i++ ) | |||||
| { | { | ||||
| out.println( args[ i ] ); | |||||
| File file = m_compileList[i ]; | |||||
| out.println( file.getAbsolutePath() ); | |||||
| } | } | ||||
| out.flush(); | |||||
| commandArray = new String[ firstFileName + 1 ]; | |||||
| System.arraycopy( args, 0, commandArray, 0, firstFileName ); | |||||
| commandArray[ firstFileName ] = "@" + tmpFile.getAbsolutePath(); | |||||
| } | |||||
| catch( final IOException ioe ) | |||||
| { | |||||
| throw new TaskException( "Error creating temporary file", ioe ); | |||||
| out.close(); | |||||
| } | } | ||||
| finally | finally | ||||
| { | { | ||||
| IOUtil.shutdownWriter( out ); | |||||
| IOUtil.shutdownWriter( fout ); | |||||
| } | } | ||||
| } | } | ||||
| else | |||||
| catch( final IOException ioe ) | |||||
| { | { | ||||
| commandArray = args; | |||||
| throw new TaskException( "Error creating temporary file", ioe ); | |||||
| } | } | ||||
| cmd.addArgument( "@" + tmpFile.getAbsolutePath() ); | |||||
| final Execute exe = new Execute(); | final Execute exe = new Execute(); | ||||
| exe.setIgnoreReturnCode( true ); | exe.setIgnoreReturnCode( true ); | ||||
| final String[] commandline = commandArray; | |||||
| exe.setCommandline( new Commandline( commandline ) ); | |||||
| return exe.execute( getTaskContext() ); | |||||
| exe.setCommandline( cmd ); | |||||
| return exe.execute( getTaskContext() ) == 0; | |||||
| } | } | ||||
| finally | finally | ||||
| { | { | ||||
| @@ -382,9 +382,11 @@ public abstract class DefaultCompilerAdapter | |||||
| * | * | ||||
| * @param cmd Description of Parameter | * @param cmd Description of Parameter | ||||
| */ | */ | ||||
| protected void logAndAddFilesToCompile( Commandline cmd ) | |||||
| protected void logFilesToCompile( final Commandline cmd ) | |||||
| throws TaskException | |||||
| { | { | ||||
| getTaskContext().debug( "Compilation args: " + cmd.toString() ); | |||||
| final String[] cmdline = cmd.getArguments(); | |||||
| getTaskContext().debug( "Compilation args: " + FileUtils.formatCommandLine( cmdline ) ); | |||||
| StringBuffer niceSourceList = new StringBuffer( "File" ); | StringBuffer niceSourceList = new StringBuffer( "File" ); | ||||
| if( m_compileList.length != 1 ) | if( m_compileList.length != 1 ) | ||||
| @@ -398,13 +400,24 @@ public abstract class DefaultCompilerAdapter | |||||
| for( int i = 0; i < m_compileList.length; i++ ) | for( int i = 0; i < m_compileList.length; i++ ) | ||||
| { | { | ||||
| String arg = m_compileList[ i ].getAbsolutePath(); | String arg = m_compileList[ i ].getAbsolutePath(); | ||||
| cmd.addArgument( arg ); | |||||
| niceSourceList.append( " " + arg + StringUtil.LINE_SEPARATOR ); | niceSourceList.append( " " + arg + StringUtil.LINE_SEPARATOR ); | ||||
| } | } | ||||
| getTaskContext().debug( niceSourceList.toString() ); | getTaskContext().debug( niceSourceList.toString() ); | ||||
| } | } | ||||
| /** | |||||
| * Adds the files to compile to a command-line | |||||
| */ | |||||
| protected void addFilesToCompile( final Commandline cmd ) | |||||
| { | |||||
| for( int i = 0; i < m_compileList.length; i++ ) | |||||
| { | |||||
| File file = m_compileList[i ]; | |||||
| cmd.addArgument( file ); | |||||
| } | |||||
| } | |||||
| /** | /** | ||||
| * Emulation of extdirs feature in java >= 1.2. This method adds all files | * Emulation of extdirs feature in java >= 1.2. This method adds all files | ||||
| * in the given directories (but not in sub-directories!) to the classpath, | * in the given directories (but not in sub-directories!) to the classpath, | ||||
| @@ -426,7 +439,29 @@ public abstract class DefaultCompilerAdapter | |||||
| } | } | ||||
| } | } | ||||
| PathUtil.addExtdirs( path, m_extdirs, getTaskContext() ); | |||||
| addExtdirs( path, m_extdirs, getTaskContext() ); | |||||
| } | |||||
| /** | |||||
| * Adds the contents of a set of directories to a path. | |||||
| */ | |||||
| public static void addExtdirs( final Path toPath, | |||||
| final Path extDirs, | |||||
| final TaskContext context ) | |||||
| throws TaskException | |||||
| { | |||||
| final String[] dirs = extDirs.listFiles( context ); | |||||
| for( int i = 0; i < dirs.length; i++ ) | |||||
| { | |||||
| final File dir = new File( dirs[ i ] ); | |||||
| if( dir.exists() && dir.isDirectory() ) | |||||
| { | |||||
| final FileSet fileSet = new FileSet(); | |||||
| fileSet.setDir( dir ); | |||||
| fileSet.setIncludes( "*" ); | |||||
| toPath.addFileset( fileSet ); | |||||
| } | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @@ -10,7 +10,7 @@ package org.apache.tools.todo.taskdefs.javac; | |||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.tools.todo.types.Commandline; | import org.apache.tools.todo.types.Commandline; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| /** | /** | ||||
| * The implementation of the gcj compiler. This is primarily a cut-and-paste | * The implementation of the gcj compiler. This is primarily a cut-and-paste | ||||
| @@ -35,10 +35,7 @@ public class Gcj extends DefaultCompilerAdapter | |||||
| getTaskContext().debug( "Using gcj compiler" ); | getTaskContext().debug( "Using gcj compiler" ); | ||||
| cmd = setupGCJCommand(); | cmd = setupGCJCommand(); | ||||
| int firstFileName = cmd.size(); | |||||
| logAndAddFilesToCompile( cmd ); | |||||
| return executeExternalCompile( cmd.getCommandline(), firstFileName ) == 0; | |||||
| return executeExternalCompile( cmd ); | |||||
| } | } | ||||
| protected Commandline setupGCJCommand() | protected Commandline setupGCJCommand() | ||||
| @@ -83,7 +80,7 @@ public class Gcj extends DefaultCompilerAdapter | |||||
| } | } | ||||
| cmd.addArgument( "-classpath" ); | cmd.addArgument( "-classpath" ); | ||||
| cmd.addArgument( PathUtil.formatPath( classpath, getTaskContext() ) ); | |||||
| cmd.addArgument( FileListUtil.formatPath( classpath, getTaskContext() ) ); | |||||
| if( m_encoding != null ) | if( m_encoding != null ) | ||||
| { | { | ||||
| @@ -34,10 +34,8 @@ public class JavacExternal extends DefaultCompilerAdapter | |||||
| Commandline cmd = new Commandline(); | Commandline cmd = new Commandline(); | ||||
| cmd.setExecutable( getJavac().getJavacExecutable() ); | cmd.setExecutable( getJavac().getJavacExecutable() ); | ||||
| setupModernJavacCommandlineSwitches( cmd ); | setupModernJavacCommandlineSwitches( cmd ); | ||||
| int firstFileName = cmd.size(); | |||||
| logAndAddFilesToCompile( cmd ); | |||||
| return executeExternalCompile( cmd.getCommandline(), firstFileName ) == 0; | |||||
| return executeExternalCompile( cmd ); | |||||
| } | } | ||||
| } | } | ||||
| @@ -10,7 +10,7 @@ package org.apache.tools.todo.taskdefs.javac; | |||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.tools.todo.types.Commandline; | import org.apache.tools.todo.types.Commandline; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| /** | /** | ||||
| * The implementation of the jikes compiler. This is primarily a cut-and-paste | * The implementation of the jikes compiler. This is primarily a cut-and-paste | ||||
| @@ -91,7 +91,7 @@ public class Jikes | |||||
| } | } | ||||
| cmd.addArgument( "-classpath" ); | cmd.addArgument( "-classpath" ); | ||||
| cmd.addArgument( PathUtil.formatPath( classpath, getTaskContext() ) ); | |||||
| cmd.addArgument( FileListUtil.formatPath( classpath, getTaskContext() ) ); | |||||
| if( m_encoding != null ) | if( m_encoding != null ) | ||||
| { | { | ||||
| @@ -128,10 +128,7 @@ public class Jikes | |||||
| addCurrentCompilerArgs( cmd ); | addCurrentCompilerArgs( cmd ); | ||||
| int firstFileName = cmd.size(); | |||||
| logAndAddFilesToCompile( cmd ); | |||||
| return executeExternalCompile( cmd.getCommandline(), firstFileName ) == 0; | |||||
| return executeExternalCompile( cmd ); | |||||
| } | } | ||||
| } | } | ||||
| @@ -10,7 +10,7 @@ package org.apache.tools.todo.taskdefs.javac; | |||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.tools.todo.types.Commandline; | import org.apache.tools.todo.types.Commandline; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| /** | /** | ||||
| * The implementation of the jvc compiler from microsoft. This is primarily a | * The implementation of the jvc compiler from microsoft. This is primarily a | ||||
| @@ -68,7 +68,7 @@ public class Jvc extends DefaultCompilerAdapter | |||||
| // Add the Classpath before the "internal" one. | // Add the Classpath before the "internal" one. | ||||
| cmd.addArgument( "/cp:p" ); | cmd.addArgument( "/cp:p" ); | ||||
| cmd.addArgument( PathUtil.formatPath( classpath, getTaskContext() ) ); | |||||
| cmd.addArgument( FileListUtil.formatPath( classpath, getTaskContext() ) ); | |||||
| // Enable MS-Extensions and ... | // Enable MS-Extensions and ... | ||||
| cmd.addArgument( "/x-" ); | cmd.addArgument( "/x-" ); | ||||
| @@ -92,9 +92,6 @@ public class Jvc extends DefaultCompilerAdapter | |||||
| addCurrentCompilerArgs( cmd ); | addCurrentCompilerArgs( cmd ); | ||||
| int firstFileName = cmd.size(); | |||||
| logAndAddFilesToCompile( cmd ); | |||||
| return executeExternalCompile( cmd.getCommandline(), firstFileName ) == 0; | |||||
| return executeExternalCompile( cmd ); | |||||
| } | } | ||||
| } | } | ||||
| @@ -11,7 +11,7 @@ import java.lang.reflect.Method; | |||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.tools.todo.types.Commandline; | import org.apache.tools.todo.types.Commandline; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| /** | /** | ||||
| * The implementation of the Java compiler for KJC. This is primarily a | * The implementation of the Java compiler for KJC. This is primarily a | ||||
| @@ -99,7 +99,7 @@ public class Kjc extends DefaultCompilerAdapter | |||||
| cp.add( classpath ); | cp.add( classpath ); | ||||
| cp.add( src ); | cp.add( src ); | ||||
| cmd.addArgument( PathUtil.formatPath( cp, getTaskContext() ) ); | |||||
| cmd.addArgument( FileListUtil.formatPath( cp, getTaskContext() ) ); | |||||
| // kjc-1.5A doesn't support -encoding option now. | // kjc-1.5A doesn't support -encoding option now. | ||||
| // but it will be supported near the feature. | // but it will be supported near the feature. | ||||
| @@ -126,7 +126,8 @@ public class Kjc extends DefaultCompilerAdapter | |||||
| addCurrentCompilerArgs( cmd ); | addCurrentCompilerArgs( cmd ); | ||||
| logAndAddFilesToCompile( cmd ); | |||||
| logFilesToCompile( cmd ); | |||||
| addFilesToCompile( cmd ); | |||||
| return cmd; | return cmd; | ||||
| } | } | ||||
| } | } | ||||
| @@ -33,12 +33,11 @@ public class Sj extends DefaultCompilerAdapter | |||||
| { | { | ||||
| getTaskContext().debug( "Using symantec java compiler" ); | getTaskContext().debug( "Using symantec java compiler" ); | ||||
| Commandline cmd = setupJavacCommand(); | |||||
| Commandline cmd = new Commandline(); | |||||
| setupJavacCommandlineSwitches( cmd, false ); | |||||
| cmd.setExecutable( "sj" ); | cmd.setExecutable( "sj" ); | ||||
| int firstFileName = cmd.size() - m_compileList.length; | |||||
| return executeExternalCompile( cmd.getCommandline(), firstFileName ) == 0; | |||||
| return executeExternalCompile( cmd ); | |||||
| } | } | ||||
| } | } | ||||
| @@ -14,7 +14,6 @@ import org.apache.myrmidon.api.AbstractTask; | |||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.framework.java.ExecuteJava; | import org.apache.myrmidon.framework.java.ExecuteJava; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| /** | /** | ||||
| * Taskdef for the JJTree compiler compiler. | * Taskdef for the JJTree compiler compiler. | ||||
| @@ -14,7 +14,6 @@ import org.apache.myrmidon.api.AbstractTask; | |||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.framework.java.ExecuteJava; | import org.apache.myrmidon.framework.java.ExecuteJava; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| /** | /** | ||||
| * Taskdef for the JavaCC compiler compiler. | * Taskdef for the JavaCC compiler compiler. | ||||
| @@ -25,7 +25,7 @@ import org.apache.tools.todo.types.Commandline; | |||||
| import org.apache.tools.todo.types.DirectoryScanner; | import org.apache.tools.todo.types.DirectoryScanner; | ||||
| import org.apache.tools.todo.types.FileSet; | import org.apache.tools.todo.types.FileSet; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| import org.apache.tools.todo.types.ScannerUtil; | import org.apache.tools.todo.types.ScannerUtil; | ||||
| /** | /** | ||||
| @@ -570,7 +570,7 @@ public class Javadoc | |||||
| classpath.add( m_classpath ); | classpath.add( m_classpath ); | ||||
| } | } | ||||
| cmd.addArgument( "-classpath" ); | cmd.addArgument( "-classpath" ); | ||||
| cmd.addArgument( PathUtil.formatPath( classpath, getContext() ) ); | |||||
| cmd.addArgument( FileListUtil.formatPath( classpath, getContext() ) ); | |||||
| if( m_version && m_doclet == null ) | if( m_version && m_doclet == null ) | ||||
| { | { | ||||
| @@ -607,7 +607,7 @@ public class Javadoc | |||||
| if( m_doclet.getPath() != null ) | if( m_doclet.getPath() != null ) | ||||
| { | { | ||||
| cmd.addArgument( "-docletpath" ); | cmd.addArgument( "-docletpath" ); | ||||
| cmd.addArgument( PathUtil.formatPath( m_doclet.getPath(), getContext() ) ); | |||||
| cmd.addArgument( FileListUtil.formatPath( m_doclet.getPath(), getContext() ) ); | |||||
| } | } | ||||
| for( Iterator e = m_doclet.getParams(); e.hasNext(); ) | for( Iterator e = m_doclet.getParams(); e.hasNext(); ) | ||||
| { | { | ||||
| @@ -628,7 +628,7 @@ public class Javadoc | |||||
| if( m_bootclasspath != null ) | if( m_bootclasspath != null ) | ||||
| { | { | ||||
| cmd.addArgument( "-bootclasspath" ); | cmd.addArgument( "-bootclasspath" ); | ||||
| cmd.addArgument( PathUtil.formatPath( m_bootclasspath, getContext() ) ); | |||||
| cmd.addArgument( FileListUtil.formatPath( m_bootclasspath, getContext() ) ); | |||||
| } | } | ||||
| // add the links arguments | // add the links arguments | ||||
| @@ -886,7 +886,7 @@ public class Javadoc | |||||
| ArrayList packages, ArrayList excludePackages ) | ArrayList packages, ArrayList excludePackages ) | ||||
| throws TaskException | throws TaskException | ||||
| { | { | ||||
| getContext().debug( "Source path = " + PathUtil.formatPath( sourcePath, getContext() ) ); | |||||
| getContext().debug( "Source path = " + FileListUtil.formatPath( sourcePath, getContext() ) ); | |||||
| StringBuffer msg = new StringBuffer( "Packages = " ); | StringBuffer msg = new StringBuffer( "Packages = " ); | ||||
| for( int i = 0; i < packages.size(); i++ ) | for( int i = 0; i < packages.size(); i++ ) | ||||
| { | { | ||||
| @@ -16,7 +16,7 @@ import org.apache.myrmidon.framework.java.ExecuteJava; | |||||
| import org.apache.tools.todo.taskdefs.MatchingTask; | import org.apache.tools.todo.taskdefs.MatchingTask; | ||||
| import org.apache.tools.todo.types.DirectoryScanner; | import org.apache.tools.todo.types.DirectoryScanner; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| /** | /** | ||||
| * Class to precompile JSP's using weblogic's jsp compiler (weblogic.jspc) | * Class to precompile JSP's using weblogic's jsp compiler (weblogic.jspc) | ||||
| @@ -190,7 +190,7 @@ public class WLJspc extends MatchingTask | |||||
| // Does not take the classpath from the env.... | // Does not take the classpath from the env.... | ||||
| // Am i missing something about the Java task?? | // Am i missing something about the Java task?? | ||||
| args[ j++ ] = "-classpath"; | args[ j++ ] = "-classpath"; | ||||
| args[ j++ ] = PathUtil.formatPath( compileClasspath, getContext() ); | |||||
| args[ j++ ] = FileListUtil.formatPath( compileClasspath, getContext() ); | |||||
| this.scanDir( files ); | this.scanDir( files ); | ||||
| getContext().info( "Compiling " + filesToDo.size() + " JSP files" ); | getContext().info( "Compiling " + filesToDo.size() + " JSP files" ); | ||||
| @@ -11,8 +11,10 @@ import java.util.ArrayList; | |||||
| import java.util.Iterator; | import java.util.Iterator; | ||||
| import org.apache.avalon.excalibur.util.StringUtil; | import org.apache.avalon.excalibur.util.StringUtil; | ||||
| import org.apache.myrmidon.api.TaskContext; | import org.apache.myrmidon.api.TaskContext; | ||||
| import org.apache.myrmidon.api.TaskException; | |||||
| import org.apache.tools.todo.taskdefs.jsp.JspC; | import org.apache.tools.todo.taskdefs.jsp.JspC; | ||||
| import org.apache.tools.todo.types.Commandline; | import org.apache.tools.todo.types.Commandline; | ||||
| import org.apache.tools.todo.util.FileUtils; | |||||
| /** | /** | ||||
| * This is the default implementation for the CompilerAdapter interface. This is | * This is the default implementation for the CompilerAdapter interface. This is | ||||
| @@ -60,8 +62,10 @@ public abstract class DefaultCompilerAdapter | |||||
| protected void logAndAddFilesToCompile( JspC jspc, | protected void logAndAddFilesToCompile( JspC jspc, | ||||
| ArrayList compileList, | ArrayList compileList, | ||||
| Commandline cmd ) | Commandline cmd ) | ||||
| throws TaskException | |||||
| { | { | ||||
| getTaskContext().debug( "Compilation args: " + cmd.toString() ); | |||||
| final String[] args = cmd.getArguments(); | |||||
| getTaskContext().debug( "Compilation args: " + FileUtils.formatCommandLine( args ) ); | |||||
| StringBuffer niceSourceList = new StringBuffer( "File" ); | StringBuffer niceSourceList = new StringBuffer( "File" ); | ||||
| if( compileList.size() != 1 ) | if( compileList.size() != 1 ) | ||||
| @@ -9,6 +9,7 @@ package org.apache.tools.todo.taskdefs.jsp.compilers; | |||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.api.TaskContext; | import org.apache.myrmidon.api.TaskContext; | ||||
| import org.apache.myrmidon.framework.java.ExecuteJava; | |||||
| import org.apache.antlib.java.JavaTask; | import org.apache.antlib.java.JavaTask; | ||||
| import org.apache.tools.todo.taskdefs.jsp.JspC; | import org.apache.tools.todo.taskdefs.jsp.JspC; | ||||
| import org.apache.tools.todo.types.Argument; | import org.apache.tools.todo.types.Argument; | ||||
| @@ -30,47 +31,28 @@ public class JasperC | |||||
| throws TaskException | throws TaskException | ||||
| { | { | ||||
| getTaskContext().debug( "Using jasper compiler" ); | getTaskContext().debug( "Using jasper compiler" ); | ||||
| Commandline cmd = setupJasperCommand(); | |||||
| try | |||||
| final ExecuteJava exe = new ExecuteJava(); | |||||
| exe.setClassName( "org.apache.jasper.JspC" ); | |||||
| if( getJspc().getClasspath() != null ) | |||||
| { | { | ||||
| // Create an instance of the compiler, redirecting output to | |||||
| // the project log | |||||
| //FIXME | |||||
| JavaTask java = null;//(Java)( getJspc().getProject() ).createTask( "java" ); | |||||
| if( getJspc().getClasspath() != null ) | |||||
| { | |||||
| java.addClasspath( getJspc().getClasspath() ); | |||||
| } | |||||
| java.setClassname( "org.apache.jasper.JspC" ); | |||||
| String args[] = cmd.getArguments(); | |||||
| for( int i = 0; i < args.length; i++ ) | |||||
| { | |||||
| java.addArg( new Argument( args[ i ] ) ); | |||||
| } | |||||
| java.execute(); | |||||
| return true; | |||||
| } | |||||
| catch( Exception ex ) | |||||
| { | |||||
| if( ex instanceof TaskException ) | |||||
| { | |||||
| throw (TaskException)ex; | |||||
| } | |||||
| else | |||||
| { | |||||
| throw new TaskException( "Error running jsp compiler: ", | |||||
| ex ); | |||||
| } | |||||
| exe.getClassPath().add( getJspc().getClasspath() ); | |||||
| } | } | ||||
| setupJasperCommand( exe.getArguments() ); | |||||
| // Create an instance of the compiler, redirecting output to | |||||
| // the project log | |||||
| exe.execute( getTaskContext() ); | |||||
| return true; | |||||
| } | } | ||||
| /* | /* | ||||
| * ------------------------------------------------------------ | * ------------------------------------------------------------ | ||||
| */ | */ | ||||
| private Commandline setupJasperCommand() | |||||
| private void setupJasperCommand( final Commandline cmd ) | |||||
| throws TaskException | |||||
| { | { | ||||
| Commandline cmd = new Commandline(); | |||||
| JspC jspc = getJspc(); | JspC jspc = getJspc(); | ||||
| if( jspc.getDestdir() != null ) | if( jspc.getDestdir() != null ) | ||||
| { | { | ||||
| @@ -106,9 +88,5 @@ public class JasperC | |||||
| cmd.addArgument( jspc.getUribase().toString() ); | cmd.addArgument( jspc.getUribase().toString() ); | ||||
| } | } | ||||
| logAndAddFilesToCompile( getJspc(), getJspc().getCompileList(), cmd ); | logAndAddFilesToCompile( getJspc(), getJspc().getCompileList(), cmd ); | ||||
| return cmd; | |||||
| } | } | ||||
| /* | |||||
| * ------------------------------------------------------------ | |||||
| */ | |||||
| } | } | ||||
| @@ -19,13 +19,13 @@ import org.apache.myrmidon.api.AbstractTask; | |||||
| import org.apache.myrmidon.api.TaskContext; | import org.apache.myrmidon.api.TaskContext; | ||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| import org.apache.myrmidon.framework.java.ExecuteJava; | import org.apache.myrmidon.framework.java.ExecuteJava; | ||||
| import org.apache.tools.todo.types.Argument; | import org.apache.tools.todo.types.Argument; | ||||
| import org.apache.tools.todo.types.Commandline; | import org.apache.tools.todo.types.Commandline; | ||||
| import org.apache.tools.todo.types.EnumeratedAttribute; | import org.apache.tools.todo.types.EnumeratedAttribute; | ||||
| import org.apache.tools.todo.types.EnvironmentData; | import org.apache.tools.todo.types.EnvironmentData; | ||||
| import org.apache.tools.todo.types.EnvironmentVariable; | import org.apache.tools.todo.types.EnvironmentVariable; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.tools.todo.types.SysProperties; | import org.apache.tools.todo.types.SysProperties; | ||||
| /** | /** | ||||
| @@ -640,7 +640,7 @@ public class JUnitTask extends AbstractTask | |||||
| try | try | ||||
| { | { | ||||
| getContext().debug( "Using System properties " + System.getProperties() ); | getContext().debug( "Using System properties " + System.getProperties() ); | ||||
| final ClassLoader classLoader = PathUtil.createClassLoader( classPath, getContext() ); | |||||
| final ClassLoader classLoader = FileListUtil.createClassLoader( classPath, getContext() ); | |||||
| runner = new JUnitTestRunner( test, | runner = new JUnitTestRunner( test, | ||||
| test.getHaltonerror(), | test.getHaltonerror(), | ||||
| @@ -11,7 +11,7 @@ import java.io.File; | |||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| /** | /** | ||||
| * Metamata Audit evaluates Java code for programming errors, weaknesses, and | * Metamata Audit evaluates Java code for programming errors, weaknesses, and | ||||
| @@ -129,7 +129,7 @@ public class MAudit | |||||
| // don't forget to modify the pattern if you change the options reporting | // don't forget to modify the pattern if you change the options reporting | ||||
| classpath.add( getClassPath() ); | classpath.add( getClassPath() ); | ||||
| final String formattedClasspath = PathUtil.formatPath( classpath, getContext() ); | |||||
| final String formattedClasspath = FileListUtil.formatPath( classpath, getContext() ); | |||||
| if( formattedClasspath.length() > 0 ) | if( formattedClasspath.length() > 0 ) | ||||
| { | { | ||||
| options.add( "-classpath" ); | options.add( "-classpath" ); | ||||
| @@ -162,7 +162,7 @@ public class MAudit | |||||
| if( m_unused ) | if( m_unused ) | ||||
| { | { | ||||
| options.add( "-unused" ); | options.add( "-unused" ); | ||||
| options.add( PathUtil.formatPath( m_searchPath, getContext() ) ); | |||||
| options.add( FileListUtil.formatPath( m_searchPath, getContext() ) ); | |||||
| } | } | ||||
| addAllArrayList( options, getIncludedFiles().keySet().iterator() ); | addAllArrayList( options, getIncludedFiles().keySet().iterator() ); | ||||
| return options; | return options; | ||||
| @@ -15,7 +15,7 @@ import java.util.ArrayList; | |||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.tools.todo.taskdefs.exec.ExecuteStreamHandler; | import org.apache.tools.todo.taskdefs.exec.ExecuteStreamHandler; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| /** | /** | ||||
| * Calculates global complexity and quality metrics on Java source code. You | * Calculates global complexity and quality metrics on Java source code. You | ||||
| @@ -132,7 +132,7 @@ public class MMetrics extends AbstractMetamataTask | |||||
| // don't forget to modify the pattern if you change the options reporting | // don't forget to modify the pattern if you change the options reporting | ||||
| classpath.add( getClassPath() ); | classpath.add( getClassPath() ); | ||||
| final String formattedClasspath = PathUtil.formatPath( classpath, getContext() ); | |||||
| final String formattedClasspath = FileListUtil.formatPath( classpath, getContext() ); | |||||
| if( formattedClasspath.length() > 0 ) | if( formattedClasspath.length() > 0 ) | ||||
| { | { | ||||
| options.add( "-classpath" ); | options.add( "-classpath" ); | ||||
| @@ -19,7 +19,7 @@ import org.apache.myrmidon.api.TaskException; | |||||
| import org.apache.myrmidon.framework.java.ExecuteJava; | import org.apache.myrmidon.framework.java.ExecuteJava; | ||||
| import org.apache.tools.todo.types.Argument; | import org.apache.tools.todo.types.Argument; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.aut.nativelib.PathUtil; | |||||
| /** | /** | ||||
| * Simple Metamata MParse task based on the original written by <a | * Simple Metamata MParse task based on the original written by <a | ||||
| @@ -152,14 +152,6 @@ public abstract class P4Base | |||||
| } | } | ||||
| cmd.addLine( command ); | cmd.addLine( command ); | ||||
| String[] cmdline = cmd.getCommandline(); | |||||
| String cmdl = ""; | |||||
| for( int i = 0; i < cmdline.length; i++ ) | |||||
| { | |||||
| cmdl += cmdline[ i ] + " "; | |||||
| } | |||||
| getContext().debug( "Execing " + cmdl ); | |||||
| if( handler == null ) | if( handler == null ) | ||||
| { | { | ||||
| handler = this; | handler = this; | ||||
| @@ -241,7 +241,6 @@ public class Pvcs | |||||
| // Capture output | // Capture output | ||||
| // build the command line from what we got the format is | // build the command line from what we got the format is | ||||
| final Commandline cmd = buildPCLICommand(); | final Commandline cmd = buildPCLICommand(); | ||||
| getContext().debug( "Executing " + cmd.toString() ); | |||||
| File tmp = null; | File tmp = null; | ||||
| @@ -272,17 +271,9 @@ public class Pvcs | |||||
| massagePCLI( tmp, fileList ); | massagePCLI( tmp, fileList ); | ||||
| return fileList; | return fileList; | ||||
| } | } | ||||
| catch( final ParseException pe ) | |||||
| catch( final Exception e ) | |||||
| { | { | ||||
| final String message = "Failed executing: " + | |||||
| cmd.toString() + ". Exception: " + pe.getMessage(); | |||||
| throw new TaskException( message ); | |||||
| } | |||||
| catch( final IOException ioe ) | |||||
| { | |||||
| final String message = "Failed executing: " + | |||||
| cmd.toString() + ". Exception: " + ioe.getMessage(); | |||||
| throw new TaskException( message ); | |||||
| throw new TaskException( "Failed execution.", e ); | |||||
| } | } | ||||
| finally | finally | ||||
| { | { | ||||
| @@ -14,8 +14,9 @@ import org.apache.myrmidon.api.TaskContext; | |||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.framework.FileNameMapper; | import org.apache.myrmidon.framework.FileNameMapper; | ||||
| import org.apache.tools.todo.types.Commandline; | import org.apache.tools.todo.types.Commandline; | ||||
| import org.apache.tools.todo.util.FileUtils; | |||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| /** | /** | ||||
| * This is the default implementation for the RmicAdapter interface. Currently, | * This is the default implementation for the RmicAdapter interface. Currently, | ||||
| @@ -106,10 +107,7 @@ public abstract class DefaultRmicAdapter | |||||
| if( options != null ) | if( options != null ) | ||||
| { | { | ||||
| for( int i = 0; i < options.length; i++ ) | |||||
| { | |||||
| cmd.addArgument( options[ i ] ); | |||||
| } | |||||
| cmd.addArguments( options ); | |||||
| } | } | ||||
| Path classpath = getCompileClasspath(); | Path classpath = getCompileClasspath(); | ||||
| @@ -120,11 +118,11 @@ public abstract class DefaultRmicAdapter | |||||
| if( attributes.getExtdirs() != null ) | if( attributes.getExtdirs() != null ) | ||||
| { | { | ||||
| cmd.addArgument( "-extdirs" ); | cmd.addArgument( "-extdirs" ); | ||||
| cmd.addArgument( PathUtil.formatPath( attributes.getExtdirs(), getTaskContext() ) ); | |||||
| cmd.addArgument( FileListUtil.formatPath( attributes.getExtdirs(), getTaskContext() ) ); | |||||
| } | } | ||||
| cmd.addArgument( "-classpath" ); | cmd.addArgument( "-classpath" ); | ||||
| cmd.addArgument( PathUtil.formatPath( classpath, getTaskContext() ) ); | |||||
| cmd.addArgument( FileListUtil.formatPath( classpath, getTaskContext() ) ); | |||||
| String stubVersion = attributes.getStubVersion(); | String stubVersion = attributes.getStubVersion(); | ||||
| if( null != stubVersion ) | if( null != stubVersion ) | ||||
| @@ -222,11 +220,13 @@ public abstract class DefaultRmicAdapter | |||||
| * | * | ||||
| * @param cmd Description of Parameter | * @param cmd Description of Parameter | ||||
| */ | */ | ||||
| protected void logAndAddFilesToCompile( Commandline cmd ) | |||||
| protected void logAndAddFilesToCompile( final Commandline cmd ) | |||||
| throws TaskException | |||||
| { | { | ||||
| ArrayList compileList = attributes.getCompileList(); | ArrayList compileList = attributes.getCompileList(); | ||||
| getTaskContext().debug( "Compilation args: " + cmd.toString() ); | |||||
| final String[] args = cmd.getArguments(); | |||||
| getTaskContext().debug( "Compilation args: " + FileUtils.formatCommandLine( args ) ); | |||||
| StringBuffer niceSourceList = new StringBuffer( "File" ); | StringBuffer niceSourceList = new StringBuffer( "File" ); | ||||
| if( compileList.size() != 1 ) | if( compileList.size() != 1 ) | ||||
| @@ -15,9 +15,9 @@ import org.apache.avalon.excalibur.io.FileUtil; | |||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.framework.FileNameMapper; | import org.apache.myrmidon.framework.FileNameMapper; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.myrmidon.framework.file.FileListUtil; | |||||
| import org.apache.tools.todo.taskdefs.MatchingTask; | import org.apache.tools.todo.taskdefs.MatchingTask; | ||||
| import org.apache.tools.todo.types.DirectoryScanner; | import org.apache.tools.todo.types.DirectoryScanner; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.tools.todo.types.SourceFileScanner; | import org.apache.tools.todo.types.SourceFileScanner; | ||||
| /** | /** | ||||
| @@ -483,7 +483,7 @@ public class Rmic extends MatchingTask | |||||
| adapter.setRmic( this ); | adapter.setRmic( this ); | ||||
| Path classpath = adapter.getClasspath(); | Path classpath = adapter.getClasspath(); | ||||
| loader = PathUtil.createClassLoader( classpath, getContext() ); | |||||
| loader = FileListUtil.createClassLoader( classpath, getContext() ); | |||||
| // scan base dirs to build up compile lists only if a | // scan base dirs to build up compile lists only if a | ||||
| // specific classname is not given | // specific classname is not given | ||||
| @@ -10,6 +10,7 @@ package org.apache.tools.todo.taskdefs.rmic; | |||||
| import java.lang.reflect.Method; | import java.lang.reflect.Method; | ||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.api.TaskContext; | import org.apache.myrmidon.api.TaskContext; | ||||
| import org.apache.myrmidon.framework.java.ExecuteJava; | |||||
| import org.apache.tools.todo.types.Commandline; | import org.apache.tools.todo.types.Commandline; | ||||
| import org.apache.tools.todo.taskdefs.rmic.DefaultRmicAdapter; | import org.apache.tools.todo.taskdefs.rmic.DefaultRmicAdapter; | ||||
| @@ -45,33 +46,13 @@ public class WLRmic extends DefaultRmicAdapter | |||||
| throws TaskException | throws TaskException | ||||
| { | { | ||||
| getTaskContext().debug( "Using WebLogic rmic" ); | getTaskContext().debug( "Using WebLogic rmic" ); | ||||
| Commandline cmd = setupRmicCommand( new String[]{"-noexit"} ); | |||||
| try | |||||
| { | |||||
| // Create an instance of the rmic | |||||
| Class c = Class.forName( "weblogic.rmic" ); | |||||
| Method doRmic = c.getMethod( "main", | |||||
| new Class[]{String[].class} ); | |||||
| doRmic.invoke( null, new Object[]{cmd.getArguments()} ); | |||||
| return true; | |||||
| } | |||||
| catch( ClassNotFoundException ex ) | |||||
| { | |||||
| throw new TaskException( "Cannot use WebLogic rmic, as it is not available" + | |||||
| " A common solution is to set the environment variable" + | |||||
| " CLASSPATH." ); | |||||
| } | |||||
| catch( Exception ex ) | |||||
| { | |||||
| if( ex instanceof TaskException ) | |||||
| { | |||||
| throw (TaskException)ex; | |||||
| } | |||||
| else | |||||
| { | |||||
| throw new TaskException( "Error starting WebLogic rmic: ", ex ); | |||||
| } | |||||
| } | |||||
| final ExecuteJava exe = new ExecuteJava(); | |||||
| exe.setClassName( "weblogic.rmic" ); | |||||
| final Commandline cmd = setupRmicCommand( new String[]{"-noexit"} ); | |||||
| exe.getArguments().addArguments( cmd ); | |||||
| exe.execute( getTaskContext() ); | |||||
| return true; | |||||
| } | } | ||||
| } | } | ||||
| @@ -20,7 +20,7 @@ import org.apache.tools.todo.types.Argument; | |||||
| import org.apache.tools.todo.types.Commandline; | import org.apache.tools.todo.types.Commandline; | ||||
| import org.apache.tools.todo.types.FileSet; | import org.apache.tools.todo.types.FileSet; | ||||
| import org.apache.myrmidon.framework.file.Path; | import org.apache.myrmidon.framework.file.Path; | ||||
| import org.apache.tools.todo.types.PathUtil; | |||||
| import org.apache.aut.nativelib.PathUtil; | |||||
| /** | /** | ||||
| * Convenient task to run Sitraka JProbe Coverage from Ant. Options are pretty | * Convenient task to run Sitraka JProbe Coverage from Ant. Options are pretty | ||||
| @@ -304,7 +304,7 @@ public class Coverage | |||||
| params.addArguments( m_vmArgs ); | params.addArguments( m_vmArgs ); | ||||
| // classpath | // classpath | ||||
| final String[] classpath = m_classpath.listFiles(); | |||||
| final String[] classpath = m_classpath.listFiles( getContext() ); | |||||
| if( classpath.length > 0 ) | if( classpath.length > 0 ) | ||||
| { | { | ||||
| params.addArgument( "-classpath" ); | params.addArgument( "-classpath" ); | ||||
| @@ -152,14 +152,4 @@ public class Commandline | |||||
| addArgument( parts[ i ] ); | addArgument( parts[ i ] ); | ||||
| } | } | ||||
| } | } | ||||
| public int size() | |||||
| { | |||||
| return getCommandline().length; | |||||
| } | |||||
| public String toString() | |||||
| { | |||||
| return StringUtil.join( getCommandline(), " " ); | |||||
| } | |||||
| } | } | ||||