- 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(), " " ); | |||||
} | |||||
} | } |