Browse Source

Start to refactor and cleanup javac task

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270682 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 23 years ago
parent
commit
df65abbefe
14 changed files with 178 additions and 486 deletions
  1. +76
    -232
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Java.java
  2. +1
    -1
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/BorlandGenerateClient.java
  3. +2
    -2
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/jsp/WLJspc.java
  4. +2
    -2
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JasperC.java
  5. +6
    -4
      proposal/myrmidon/src/main/org/apache/tools/ant/types/CommandlineJava.java
  6. +1
    -1
      proposal/myrmidon/src/main/org/apache/tools/ant/types/SysProperties.java
  7. +1
    -1
      proposal/myrmidon/src/main/org/apache/tools/ant/util/SourceFileScanner.java
  8. +76
    -232
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Java.java
  9. +1
    -1
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/BorlandGenerateClient.java
  10. +2
    -2
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/jsp/WLJspc.java
  11. +2
    -2
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JasperC.java
  12. +6
    -4
      proposal/myrmidon/src/todo/org/apache/tools/ant/types/CommandlineJava.java
  13. +1
    -1
      proposal/myrmidon/src/todo/org/apache/tools/ant/types/SysProperties.java
  14. +1
    -1
      proposal/myrmidon/src/todo/org/apache/tools/ant/util/SourceFileScanner.java

+ 76
- 232
proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Java.java View File

@@ -8,14 +8,13 @@
package org.apache.tools.ant.taskdefs;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.api.AbstractTask;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.taskdefs.exec.Execute;
import org.apache.tools.ant.taskdefs.exec.LogOutputStream;
import org.apache.tools.ant.taskdefs.exec.Execute2;
import org.apache.tools.ant.types.Argument;
import org.apache.tools.ant.types.CommandlineJava;
import org.apache.tools.ant.types.EnvironmentVariable;
@@ -29,41 +28,29 @@ import org.apache.tools.ant.types.Path;
* stefano@apache.org</a>
* @author <a href="mailto:stefan.bodewig@epost.de">Stefan Bodewig</a>
*/
public class Java extends Task
public class Java
extends AbstractTask
{

private CommandlineJava cmdl = new CommandlineJava();
private boolean fork = false;
private File dir = null;
private PrintStream outStream = null;
private boolean failOnError = false;
private File out;
private CommandlineJava m_cmdl = new CommandlineJava();
private boolean m_fork;
private File m_dir;
private PrintStream m_outStream;

/**
* Set the class name.
*
* @param s The new Classname value
* @exception TaskException Description of Exception
*/
public void setClassname( String s )
throws TaskException
{
if( cmdl.getJar() != null )
{
throw new TaskException( "Cannot use 'jar' and 'classname' attributes in same command" );
}
cmdl.setClassname( s );
m_cmdl.setClassname( s );
}

/**
* Set the classpath to be used for this compilation.
*
* @param s The new Classpath value
*/
public void setClasspath( Path s )
public void setClasspath( final Path classpath )
throws TaskException
{
createClasspath().append( s );
createClasspath().append( classpath );
}

/**
@@ -71,145 +58,83 @@ public class Java extends Task
*
* @param d The new Dir value
*/
public void setDir( File d )
public void setDir( final File dir )
{
this.dir = d;
}

/**
* Throw a TaskException if process returns non 0.
*
* @param fail The new Failonerror value
*/
public void setFailonerror( boolean fail )
{
failOnError = fail;
m_dir = dir;
}

/**
* Set the forking flag.
*
* @param s The new Fork value
*/
public void setFork( boolean s )
public void setFork( final boolean fork )
{
this.fork = s;
m_fork = fork;
}

/**
* set the jar name...
*
* @param jarfile The new Jar value
* @exception TaskException Description of Exception
*/
public void setJar( File jarfile )
throws TaskException
public void setJar( final File jar )
{
if( cmdl.getClassname() != null )
{
throw new TaskException( "Cannot use 'jar' and 'classname' attributes in same command." );
}
cmdl.setJar( jarfile.getAbsolutePath() );
m_cmdl.setJar( jar.getAbsolutePath() );
}

/**
* Set the command used to start the VM (only if fork==false).
*
* @param s The new Jvm value
*/
public void setJvm( String s )
public void setJvm( final String jvm )
{
cmdl.setVm( s );
m_cmdl.setVm( jvm );
}

/**
* -mx or -Xmx depending on VM version
*
* @param max The new Maxmemory value
*/
public void setMaxmemory( String max )
{
cmdl.setMaxmemory( max );
}

/**
* File the output of the process is redirected to.
*
* @param out The new Output value
*/
public void setOutput( File out )
public void setMaxmemory( final String max )
{
this.out = out;
m_cmdl.setMaxmemory( max );
}

/**
* Add a nested sysproperty element.
*
* @param sysp The feature to be added to the Sysproperty attribute
*/
public void addSysproperty( EnvironmentVariable sysp )
public void addSysproperty( final EnvironmentVariable sysp )
{
cmdl.addSysproperty( sysp );
}

/**
* Clear out the arguments to this java task.
*/
public void clearArgs()
{
cmdl.clearJavaArgs();
m_cmdl.addSysproperty( sysp );
}

/**
* Creates a nested arg element.
*
* @return Description of the Returned Value
*/
public Argument createArg()
{
return cmdl.createArgument();
return m_cmdl.createArgument();
}

/**
* Creates a nested classpath element
*
* @return Description of the Returned Value
*/
public Path createClasspath()
throws TaskException
{
return cmdl.createClasspath().createPath();
return m_cmdl.createClasspath().createPath();
}

/**
* Creates a nested jvmarg element.
*
* @return Description of the Returned Value
*/
public Argument createJvmarg()
{
return cmdl.createVmArgument();
return m_cmdl.createVmArgument();
}

/**
* Do the execution.
*
* @exception TaskException Description of Exception
*/
public void execute()
throws TaskException
{
int err = -1;
if( ( err = executeJava() ) != 0 )
final int err = executeJava();
if( 0 != err )
{
if( failOnError )
{
throw new TaskException( "Java returned: " + err );
}
else
{
getLogger().error( "Java Result: " + err );
}
throw new TaskException( "Java returned: " + err );
}
}

@@ -223,188 +148,107 @@ public class Java extends Task
public int executeJava()
throws TaskException
{
String classname = cmdl.getClassname();
if( classname == null && cmdl.getJar() == null )
final String classname = m_cmdl.getClassname();
final String jar = m_cmdl.getJar();
if( classname != null && jar != null )
{
throw new TaskException( "Only one of Classname and Jar can be set." );
}
else if( classname == null && jar == null )
{
throw new TaskException( "Classname must not be null." );
}
if( !fork && cmdl.getJar() != null )

if( !m_fork && jar != null )
{
throw new TaskException( "Cannot execute a jar in non-forked mode. Please set fork='true'. " );
}

if( fork )
if( m_fork )
{
getLogger().debug( "Forking " + cmdl.toString() );
getLogger().debug( "Forking " + m_cmdl.toString() );

return run( cmdl.getCommandline() );
return run( m_cmdl.getCommandline() );
}
else
{
if( cmdl.getVmCommand().size() > 1 )
if( m_cmdl.getVmCommand().size() > 1 )
{
getLogger().warn( "JVM args ignored when same JVM is used." );
}
if( dir != null )
if( m_dir != null )
{
getLogger().warn( "Working directory ignored when same JVM is used." );
}

getLogger().debug( "Running in same VM " + cmdl.getJavaCommand().toString() );
run( cmdl );
getLogger().debug( "Running in same VM " + m_cmdl.getJavaCommand().toString() );
run( m_cmdl );
return 0;
}
}

protected void handleErrorOutput( String line )
{
if( outStream != null )
{
outStream.println( line );
}
else
{
super.handleErrorOutput( line );
}
}

protected void handleOutput( String line )
{
if( outStream != null )
{
outStream.println( line );
}
else
{
super.handleOutput( line );
}
}

/**
* Executes the given classname with the given arguments as it was a command
* line application.
*
* @param classname Description of Parameter
* @param args Description of Parameter
* @exception TaskException Description of Exception
*/
protected void run( String classname, ArrayList args )
protected void run( final String classname, final ArrayList args )
throws TaskException
{
CommandlineJava cmdj = new CommandlineJava();
cmdj.setClassname( classname );
for( int i = 0; i < args.size(); i++ )
final CommandlineJava java = new CommandlineJava();
java.setClassname( classname );

final int size = args.size();
for( int i = 0; i < size; i++ )
{
cmdj.createArgument().setValue( (String)args.get( i ) );
final String arg = (String)args.get( i );
java.createArgument().setValue( arg );
}
run( cmdj );
run( java );
}

/**
* Executes the given classname with the given arguments as it was a command
* line application.
*
* @param command Description of Parameter
* @exception TaskException Description of Exception
*/
private void run( CommandlineJava command )
private void run( final CommandlineJava command )
throws TaskException
{
ExecuteJava exe = new ExecuteJava();
final ExecuteJava exe = new ExecuteJava();
exe.setJavaCommand( command.getJavaCommand() );
exe.setClasspath( command.getClasspath() );
exe.setSystemProperties( command.getSystemProperties() );
if( out != null )
{
try
{
outStream = new PrintStream( new FileOutputStream( out ) );
exe.execute( getProject() );
}
catch( IOException io )
{
throw new TaskException( "Error", io );
}
finally
{
if( outStream != null )
{
outStream.close();
}
}
}
else
{
exe.execute( getProject() );
}
exe.execute();
}

/**
* Executes the given classname with the given arguments in a separate VM.
*
* @param command Description of Parameter
* @return Description of the Returned Value
* @exception TaskException Description of Exception
*/
private int run( String[] command )
private int run( final String[] command )
throws TaskException
{
FileOutputStream fos = null;
try
{
Execute exe = null;
if( out == null )
{
exe = new Execute();
exe.setOutput( new LogOutputStream( getLogger(), false ) );
exe.setError( new LogOutputStream( getLogger(), true ) );

}
else
{
fos = new FileOutputStream( out );
exe = new Execute();
exe.setOutput( fos );
exe.setError( fos );
}

if( dir == null )
{
dir = getBaseDirectory();
}
else if( !dir.exists() || !dir.isDirectory() )
{
throw new TaskException( dir.getAbsolutePath() + " is not a valid directory" );
}

exe.setWorkingDirectory( dir );
final Execute2 exe = new Execute2();
setupLogger( exe );

exe.setCommandline( command );
try
{
return exe.execute();
}
catch( IOException e )
{
throw new TaskException( "Error", e );
}
if( m_dir == null )
{
m_dir = getBaseDirectory();
}
catch( IOException io )
else if( !m_dir.exists() || !m_dir.isDirectory() )
{
throw new TaskException( "Error", io );
final String message = m_dir.getAbsolutePath() + " is not a valid directory";
throw new TaskException( message );
}
finally

exe.setWorkingDirectory( m_dir );
exe.setCommandline( command );
try
{
if( fos != null )
{
try
{
fos.close();
}
catch( IOException io )
{
}
}
return exe.execute();
}
catch( IOException e )
{
final String message = "Error executing class";
throw new TaskException( message, e );
}
}
}

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

@@ -198,7 +198,7 @@ public class BorlandGenerateClient extends Task
getLogger().info( "mode : java" );

org.apache.tools.ant.taskdefs.Java execTask = null;
execTask = (Java)getProject().createTask( "java" );
execTask = null;//(Java)getProject().createTask( "java" );

execTask.setDir( new File( "." ) );
execTask.setClassname( "com.inprise.server.commandline.EJBUtilities" );


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

@@ -170,7 +170,7 @@ public class WLJspc extends MatchingTask
// Therefore, takes loads of time
// Can pass directories at a time (*.jsp) but easily runs out of memory on hefty dirs
// (even on a Sun)
Java helperTask = (Java)getProject().createTask( "java" );
Java helperTask = null;//(Java)getProject().createTask( "java" );
helperTask.setFork( true );
helperTask.setClassname( "weblogic.jspc" );
String[] args = new String[ 12 ];
@@ -227,7 +227,7 @@ public class WLJspc extends MatchingTask

System.out.println( "arg = " + arg );

helperTask.clearArgs();
//helperTask.clearArgs();
helperTask.createArg().setValue( arg );
helperTask.setClasspath( compileClasspath );
if( helperTask.executeJava() != 0 )


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

@@ -34,14 +34,14 @@ public class JasperC
{
// Create an instance of the compiler, redirecting output to
// the project log
Java java = (Java)( getJspc().getProject() ).createTask( "java" );
//FIXME
Java java = null;//(Java)( getJspc().getProject() ).createTask( "java" );
if( getJspc().getClasspath() != null )
java.setClasspath( getJspc().getClasspath() );
java.setClassname( "org.apache.jasper.JspC" );
String args[] = cmd.getArguments();
for( int i = 0; i < args.length; i++ )
java.createArg().setValue( args[ i ] );
java.setFailonerror( true );
java.execute();
return true;
}


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

@@ -8,7 +8,8 @@
package org.apache.tools.ant.types;

import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Os;
import org.apache.aut.nativelib.Os;
import java.io.File;

/**
* A representation of a Java command line that is nothing more than a composite
@@ -18,7 +19,8 @@ import org.apache.myrmidon.framework.Os;
* @author thomas.haas@softwired-inc.com
* @author <a href="sbailliez@apache.org">Stephane Bailliez</a>
*/
public class CommandlineJava implements Cloneable
public class CommandlineJava
implements Cloneable
{
private Commandline vmCommand = new Commandline();
private Commandline javaCommand = new Commandline();
@@ -265,8 +267,8 @@ public class CommandlineJava implements Cloneable
// on Windows java.home doesn't always refer to the correct location,
// so we need to fall back to assuming java is somewhere on the
// PATH.
java.io.File jExecutable =
new java.io.File( System.getProperty( "java.home" ) +
File jExecutable =
new File( System.getProperty( "java.home" ) +
"/../bin/java" + extension );

if( jExecutable.exists() && !Os.isFamily( "netware" ) )


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

@@ -11,7 +11,7 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.Properties;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.exec.ExecException;
import org.apache.aut.nativelib.ExecException;

/**
* Specialized EnvironmentData class for System properties


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

@@ -12,7 +12,7 @@ import java.util.ArrayList;
import org.apache.avalon.excalibur.io.FileUtil;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Os;
import org.apache.aut.nativelib.Os;
import org.apache.tools.ant.Task;

/**


+ 76
- 232
proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Java.java View File

@@ -8,14 +8,13 @@
package org.apache.tools.ant.taskdefs;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.api.AbstractTask;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.taskdefs.exec.Execute;
import org.apache.tools.ant.taskdefs.exec.LogOutputStream;
import org.apache.tools.ant.taskdefs.exec.Execute2;
import org.apache.tools.ant.types.Argument;
import org.apache.tools.ant.types.CommandlineJava;
import org.apache.tools.ant.types.EnvironmentVariable;
@@ -29,41 +28,29 @@ import org.apache.tools.ant.types.Path;
* stefano@apache.org</a>
* @author <a href="mailto:stefan.bodewig@epost.de">Stefan Bodewig</a>
*/
public class Java extends Task
public class Java
extends AbstractTask
{

private CommandlineJava cmdl = new CommandlineJava();
private boolean fork = false;
private File dir = null;
private PrintStream outStream = null;
private boolean failOnError = false;
private File out;
private CommandlineJava m_cmdl = new CommandlineJava();
private boolean m_fork;
private File m_dir;
private PrintStream m_outStream;

/**
* Set the class name.
*
* @param s The new Classname value
* @exception TaskException Description of Exception
*/
public void setClassname( String s )
throws TaskException
{
if( cmdl.getJar() != null )
{
throw new TaskException( "Cannot use 'jar' and 'classname' attributes in same command" );
}
cmdl.setClassname( s );
m_cmdl.setClassname( s );
}

/**
* Set the classpath to be used for this compilation.
*
* @param s The new Classpath value
*/
public void setClasspath( Path s )
public void setClasspath( final Path classpath )
throws TaskException
{
createClasspath().append( s );
createClasspath().append( classpath );
}

/**
@@ -71,145 +58,83 @@ public class Java extends Task
*
* @param d The new Dir value
*/
public void setDir( File d )
public void setDir( final File dir )
{
this.dir = d;
}

/**
* Throw a TaskException if process returns non 0.
*
* @param fail The new Failonerror value
*/
public void setFailonerror( boolean fail )
{
failOnError = fail;
m_dir = dir;
}

/**
* Set the forking flag.
*
* @param s The new Fork value
*/
public void setFork( boolean s )
public void setFork( final boolean fork )
{
this.fork = s;
m_fork = fork;
}

/**
* set the jar name...
*
* @param jarfile The new Jar value
* @exception TaskException Description of Exception
*/
public void setJar( File jarfile )
throws TaskException
public void setJar( final File jar )
{
if( cmdl.getClassname() != null )
{
throw new TaskException( "Cannot use 'jar' and 'classname' attributes in same command." );
}
cmdl.setJar( jarfile.getAbsolutePath() );
m_cmdl.setJar( jar.getAbsolutePath() );
}

/**
* Set the command used to start the VM (only if fork==false).
*
* @param s The new Jvm value
*/
public void setJvm( String s )
public void setJvm( final String jvm )
{
cmdl.setVm( s );
m_cmdl.setVm( jvm );
}

/**
* -mx or -Xmx depending on VM version
*
* @param max The new Maxmemory value
*/
public void setMaxmemory( String max )
{
cmdl.setMaxmemory( max );
}

/**
* File the output of the process is redirected to.
*
* @param out The new Output value
*/
public void setOutput( File out )
public void setMaxmemory( final String max )
{
this.out = out;
m_cmdl.setMaxmemory( max );
}

/**
* Add a nested sysproperty element.
*
* @param sysp The feature to be added to the Sysproperty attribute
*/
public void addSysproperty( EnvironmentVariable sysp )
public void addSysproperty( final EnvironmentVariable sysp )
{
cmdl.addSysproperty( sysp );
}

/**
* Clear out the arguments to this java task.
*/
public void clearArgs()
{
cmdl.clearJavaArgs();
m_cmdl.addSysproperty( sysp );
}

/**
* Creates a nested arg element.
*
* @return Description of the Returned Value
*/
public Argument createArg()
{
return cmdl.createArgument();
return m_cmdl.createArgument();
}

/**
* Creates a nested classpath element
*
* @return Description of the Returned Value
*/
public Path createClasspath()
throws TaskException
{
return cmdl.createClasspath().createPath();
return m_cmdl.createClasspath().createPath();
}

/**
* Creates a nested jvmarg element.
*
* @return Description of the Returned Value
*/
public Argument createJvmarg()
{
return cmdl.createVmArgument();
return m_cmdl.createVmArgument();
}

/**
* Do the execution.
*
* @exception TaskException Description of Exception
*/
public void execute()
throws TaskException
{
int err = -1;
if( ( err = executeJava() ) != 0 )
final int err = executeJava();
if( 0 != err )
{
if( failOnError )
{
throw new TaskException( "Java returned: " + err );
}
else
{
getLogger().error( "Java Result: " + err );
}
throw new TaskException( "Java returned: " + err );
}
}

@@ -223,188 +148,107 @@ public class Java extends Task
public int executeJava()
throws TaskException
{
String classname = cmdl.getClassname();
if( classname == null && cmdl.getJar() == null )
final String classname = m_cmdl.getClassname();
final String jar = m_cmdl.getJar();
if( classname != null && jar != null )
{
throw new TaskException( "Only one of Classname and Jar can be set." );
}
else if( classname == null && jar == null )
{
throw new TaskException( "Classname must not be null." );
}
if( !fork && cmdl.getJar() != null )

if( !m_fork && jar != null )
{
throw new TaskException( "Cannot execute a jar in non-forked mode. Please set fork='true'. " );
}

if( fork )
if( m_fork )
{
getLogger().debug( "Forking " + cmdl.toString() );
getLogger().debug( "Forking " + m_cmdl.toString() );

return run( cmdl.getCommandline() );
return run( m_cmdl.getCommandline() );
}
else
{
if( cmdl.getVmCommand().size() > 1 )
if( m_cmdl.getVmCommand().size() > 1 )
{
getLogger().warn( "JVM args ignored when same JVM is used." );
}
if( dir != null )
if( m_dir != null )
{
getLogger().warn( "Working directory ignored when same JVM is used." );
}

getLogger().debug( "Running in same VM " + cmdl.getJavaCommand().toString() );
run( cmdl );
getLogger().debug( "Running in same VM " + m_cmdl.getJavaCommand().toString() );
run( m_cmdl );
return 0;
}
}

protected void handleErrorOutput( String line )
{
if( outStream != null )
{
outStream.println( line );
}
else
{
super.handleErrorOutput( line );
}
}

protected void handleOutput( String line )
{
if( outStream != null )
{
outStream.println( line );
}
else
{
super.handleOutput( line );
}
}

/**
* Executes the given classname with the given arguments as it was a command
* line application.
*
* @param classname Description of Parameter
* @param args Description of Parameter
* @exception TaskException Description of Exception
*/
protected void run( String classname, ArrayList args )
protected void run( final String classname, final ArrayList args )
throws TaskException
{
CommandlineJava cmdj = new CommandlineJava();
cmdj.setClassname( classname );
for( int i = 0; i < args.size(); i++ )
final CommandlineJava java = new CommandlineJava();
java.setClassname( classname );

final int size = args.size();
for( int i = 0; i < size; i++ )
{
cmdj.createArgument().setValue( (String)args.get( i ) );
final String arg = (String)args.get( i );
java.createArgument().setValue( arg );
}
run( cmdj );
run( java );
}

/**
* Executes the given classname with the given arguments as it was a command
* line application.
*
* @param command Description of Parameter
* @exception TaskException Description of Exception
*/
private void run( CommandlineJava command )
private void run( final CommandlineJava command )
throws TaskException
{
ExecuteJava exe = new ExecuteJava();
final ExecuteJava exe = new ExecuteJava();
exe.setJavaCommand( command.getJavaCommand() );
exe.setClasspath( command.getClasspath() );
exe.setSystemProperties( command.getSystemProperties() );
if( out != null )
{
try
{
outStream = new PrintStream( new FileOutputStream( out ) );
exe.execute( getProject() );
}
catch( IOException io )
{
throw new TaskException( "Error", io );
}
finally
{
if( outStream != null )
{
outStream.close();
}
}
}
else
{
exe.execute( getProject() );
}
exe.execute();
}

/**
* Executes the given classname with the given arguments in a separate VM.
*
* @param command Description of Parameter
* @return Description of the Returned Value
* @exception TaskException Description of Exception
*/
private int run( String[] command )
private int run( final String[] command )
throws TaskException
{
FileOutputStream fos = null;
try
{
Execute exe = null;
if( out == null )
{
exe = new Execute();
exe.setOutput( new LogOutputStream( getLogger(), false ) );
exe.setError( new LogOutputStream( getLogger(), true ) );

}
else
{
fos = new FileOutputStream( out );
exe = new Execute();
exe.setOutput( fos );
exe.setError( fos );
}

if( dir == null )
{
dir = getBaseDirectory();
}
else if( !dir.exists() || !dir.isDirectory() )
{
throw new TaskException( dir.getAbsolutePath() + " is not a valid directory" );
}

exe.setWorkingDirectory( dir );
final Execute2 exe = new Execute2();
setupLogger( exe );

exe.setCommandline( command );
try
{
return exe.execute();
}
catch( IOException e )
{
throw new TaskException( "Error", e );
}
if( m_dir == null )
{
m_dir = getBaseDirectory();
}
catch( IOException io )
else if( !m_dir.exists() || !m_dir.isDirectory() )
{
throw new TaskException( "Error", io );
final String message = m_dir.getAbsolutePath() + " is not a valid directory";
throw new TaskException( message );
}
finally

exe.setWorkingDirectory( m_dir );
exe.setCommandline( command );
try
{
if( fos != null )
{
try
{
fos.close();
}
catch( IOException io )
{
}
}
return exe.execute();
}
catch( IOException e )
{
final String message = "Error executing class";
throw new TaskException( message, e );
}
}
}

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

@@ -198,7 +198,7 @@ public class BorlandGenerateClient extends Task
getLogger().info( "mode : java" );

org.apache.tools.ant.taskdefs.Java execTask = null;
execTask = (Java)getProject().createTask( "java" );
execTask = null;//(Java)getProject().createTask( "java" );

execTask.setDir( new File( "." ) );
execTask.setClassname( "com.inprise.server.commandline.EJBUtilities" );


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

@@ -170,7 +170,7 @@ public class WLJspc extends MatchingTask
// Therefore, takes loads of time
// Can pass directories at a time (*.jsp) but easily runs out of memory on hefty dirs
// (even on a Sun)
Java helperTask = (Java)getProject().createTask( "java" );
Java helperTask = null;//(Java)getProject().createTask( "java" );
helperTask.setFork( true );
helperTask.setClassname( "weblogic.jspc" );
String[] args = new String[ 12 ];
@@ -227,7 +227,7 @@ public class WLJspc extends MatchingTask

System.out.println( "arg = " + arg );

helperTask.clearArgs();
//helperTask.clearArgs();
helperTask.createArg().setValue( arg );
helperTask.setClasspath( compileClasspath );
if( helperTask.executeJava() != 0 )


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

@@ -34,14 +34,14 @@ public class JasperC
{
// Create an instance of the compiler, redirecting output to
// the project log
Java java = (Java)( getJspc().getProject() ).createTask( "java" );
//FIXME
Java java = null;//(Java)( getJspc().getProject() ).createTask( "java" );
if( getJspc().getClasspath() != null )
java.setClasspath( getJspc().getClasspath() );
java.setClassname( "org.apache.jasper.JspC" );
String args[] = cmd.getArguments();
for( int i = 0; i < args.length; i++ )
java.createArg().setValue( args[ i ] );
java.setFailonerror( true );
java.execute();
return true;
}


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

@@ -8,7 +8,8 @@
package org.apache.tools.ant.types;

import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Os;
import org.apache.aut.nativelib.Os;
import java.io.File;

/**
* A representation of a Java command line that is nothing more than a composite
@@ -18,7 +19,8 @@ import org.apache.myrmidon.framework.Os;
* @author thomas.haas@softwired-inc.com
* @author <a href="sbailliez@apache.org">Stephane Bailliez</a>
*/
public class CommandlineJava implements Cloneable
public class CommandlineJava
implements Cloneable
{
private Commandline vmCommand = new Commandline();
private Commandline javaCommand = new Commandline();
@@ -265,8 +267,8 @@ public class CommandlineJava implements Cloneable
// on Windows java.home doesn't always refer to the correct location,
// so we need to fall back to assuming java is somewhere on the
// PATH.
java.io.File jExecutable =
new java.io.File( System.getProperty( "java.home" ) +
File jExecutable =
new File( System.getProperty( "java.home" ) +
"/../bin/java" + extension );

if( jExecutable.exists() && !Os.isFamily( "netware" ) )


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

@@ -11,7 +11,7 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.Properties;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.exec.ExecException;
import org.apache.aut.nativelib.ExecException;

/**
* Specialized EnvironmentData class for System properties


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

@@ -12,7 +12,7 @@ import java.util.ArrayList;
import org.apache.avalon.excalibur.io.FileUtil;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Os;
import org.apache.aut.nativelib.Os;
import org.apache.tools.ant.Task;

/**


Loading…
Cancel
Save