Browse Source

Cleanup class and move ClassArgument to top level class

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270580 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 24 years ago
parent
commit
450b3303ea
4 changed files with 240 additions and 352 deletions
  1. +27
    -0
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ClassArgument.java
  2. +93
    -176
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/Javah.java
  3. +27
    -0
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ClassArgument.java
  4. +93
    -176
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/Javah.java

+ 27
- 0
proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ClassArgument.java View File

@@ -0,0 +1,27 @@
/*
* 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.tools.ant.taskdefs.optional;

import org.apache.avalon.framework.logger.AbstractLogEnabled;

public class ClassArgument
extends AbstractLogEnabled
{
private String m_name;

public void setName( String name )
{
m_name = name;
getLogger().info( "ClassArgument.name=" + name );
}

public String getName()
{
return m_name;
}
}

+ 93
- 176
proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/Javah.java View File

@@ -12,12 +12,10 @@ import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import org.apache.avalon.excalibur.util.StringUtil; import org.apache.avalon.excalibur.util.StringUtil;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.JavaVersion;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.types.Commandline;
import org.apache.tools.ant.types.Path; import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.types.Reference;


/** /**
* 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
@@ -53,267 +51,209 @@ import org.apache.tools.ant.types.Reference;
* richard.beton@physics.org</a> * richard.beton@physics.org</a>
*/ */


public class Javah extends Task
public class Javah
extends AbstractLogEnabled
{ {

private final static String FAIL_MSG = "Compile failed, messages should have been provided."; private final static String FAIL_MSG = "Compile failed, messages should have been provided.";


private ArrayList classes = new ArrayList( 2 );
private Path classpath = null;
private File outputFile = null;
private boolean verbose = false;
private boolean force = false;
private boolean old = false;
private boolean stubs = false;
private Path bootclasspath;
private String cls;
private File destDir;

/**
* Adds a reference to a CLASSPATH defined elsewhere.
*
* @param r The new BootClasspathRef value
*/
public void setBootClasspathRef( Reference r )
{
createBootclasspath().setRefid( r );
}

public void setBootclasspath( Path src )
private ArrayList m_classes = new ArrayList( 2 );
private Path m_classpath;
private File m_outputFile;
private boolean m_verbose;
private boolean m_force;
private boolean m_old;
private boolean m_stubs;
private Path m_bootclasspath;
private String m_cls;
private File m_destDir;

public void setBootclasspath( final Path bootclasspath )
throws TaskException
{ {
if( bootclasspath == null )
if( m_bootclasspath == null )
{ {
bootclasspath = src;
m_bootclasspath = bootclasspath;
} }
else else
{ {
bootclasspath.append( src );
m_bootclasspath.append( bootclasspath );
} }
} }


public void setClass( String cls )
public void setClass( final String cls )
{ {
this.cls = cls;
m_cls = cls;
} }


public void setClasspath( Path src )
public void setClasspath( final Path classpath )
throws TaskException
{ {
if( classpath == null )
if( m_classpath == null )
{ {
classpath = src;
m_classpath = classpath;
} }
else else
{ {
classpath.append( src );
m_classpath.append( classpath );
} }
} }


/**
* Adds a reference to a CLASSPATH defined elsewhere.
*
* @param r The new ClasspathRef value
*/
public void setClasspathRef( Reference r )
{
createClasspath().setRefid( r );
}

/** /**
* Set the destination directory into which the Java source files should be * Set the destination directory into which the Java source files should be
* compiled. * compiled.
* *
* @param destDir The new Destdir value * @param destDir The new Destdir value
*/ */
public void setDestdir( File destDir )
public void setDestdir( final File destDir )
{ {
this.destDir = destDir;
m_destDir = destDir;
} }


/** /**
* Set the force-write flag. * Set the force-write flag.
*
* @param force The new Force value
*/ */
public void setForce( boolean force )
public void setForce( final boolean force )
{ {
this.force = force;
m_force = force;
} }


/** /**
* Set the old flag. * Set the old flag.
*
* @param old The new Old value
*/ */
public void setOld( boolean old )
public void setOld( final boolean old )
{ {
this.old = old;
m_old = old;
} }


///**
// * Sets the extension directories that will be used during the
// * compilation.
// */
//public void setExtdirs(Path extdirs) {
// if (this.extdirs == null) {
// this.extdirs = extdirs;
// } else {
// this.extdirs.append(extdirs);
// }
//}

///**
// * Maybe creates a nested classpath element.
// */
//public Path createExtdirs() {
// if (extdirs == null) {
// extdirs = new Path(project);
// }
// return extdirs.createPath();
//}

/** /**
* Set the output file name. * Set the output file name.
*
* @param outputFile The new OutputFile value
*/ */
public void setOutputFile( File outputFile )
public void setOutputFile( final File outputFile )
{ {
this.outputFile = outputFile;
m_outputFile = outputFile;
} }


/** /**
* Set the stubs flag. * Set the stubs flag.
*
* @param stubs The new Stubs value
*/ */
public void setStubs( boolean stubs )
public void setStubs( final boolean stubs )
{ {
this.stubs = stubs;
m_stubs = stubs;
} }


/** /**
* Set the verbose flag. * Set the verbose flag.
*
* @param verbose The new Verbose value
*/ */
public void setVerbose( boolean verbose )
public void setVerbose( final boolean verbose )
{ {
this.verbose = verbose;
m_verbose = verbose;
} }


public Path createBootclasspath() public Path createBootclasspath()
{ {
if( bootclasspath == null )
if( m_bootclasspath == null )
{ {
bootclasspath = new Path();
m_bootclasspath = new Path();
} }
return bootclasspath.createPath();
return m_bootclasspath.createPath();
} }


public ClassArgument createClass() public ClassArgument createClass()
{ {
ClassArgument ga = new ClassArgument();
classes.add( ga );
final ClassArgument ga = new ClassArgument();
setupLogger( ga );
m_classes.add( ga );
return ga; return ga;
} }


public Path createClasspath() public Path createClasspath()
{ {
if( classpath == null )
if( m_classpath == null )
{ {
classpath = new Path();
m_classpath = new Path();
} }
return classpath.createPath();
return m_classpath.createPath();
} }


/** /**
* Executes the task. * Executes the task.
*
* @exception TaskException Description of Exception
*/ */
public void execute() public void execute()
throws TaskException throws TaskException
{ {
// first off, make sure that we've got a srcdir
validate();


if( ( cls == null ) && ( classes.size() == 0 ) )
if( m_classpath == null )
{ {
throw new TaskException( "class attribute must be set!" );
m_classpath = Path.systemClasspath;
} }


if( ( cls != null ) && ( classes.size() > 0 ) )
{
throw new TaskException( "set class attribute or class element, not both." );
}
doClassicCompile();
}


if( destDir != null )
private void validate() throws TaskException
{
if( ( m_cls == null ) && ( m_classes.size() == 0 ) )
{ {
if( !destDir.isDirectory() )
{
throw new TaskException( "destination directory \"" + destDir + "\" does not exist or is not a directory" );
}
if( outputFile != null )
{
throw new TaskException( "destdir and outputFile are mutually exclusive" );
}
final String message = "class attribute must be set!";
throw new TaskException( message );
} }


if( classpath == null )
if( ( m_cls != null ) && ( m_classes.size() > 0 ) )
{ {
classpath = Path.systemClasspath;
final String message = "set class attribute or class element, not both.";
throw new TaskException( message );
} }


String compiler = getProject().getProperty( "build.compiler" );
if( compiler == null )
if( m_destDir != null )
{ {
if( JavaVersion.JAVA1_2 != JavaVersion.getCurrentJavaVersion() )
if( !m_destDir.isDirectory() )
{ {
compiler = "modern";
final String message = "destination directory \"" + m_destDir +
"\" does not exist or is not a directory";
throw new TaskException( message );
} }
else
if( m_outputFile != null )
{ {
compiler = "classic";
final String message = "destdir and outputFile are mutually exclusive";
throw new TaskException( message );
} }
} }

doClassicCompile();
} }


/** /**
* Logs the compilation parameters, adds the files to compile and logs the * Logs the compilation parameters, adds the files to compile and logs the
* &qout;niceSourceList&quot; * &qout;niceSourceList&quot;
*
* @param cmd Description of Parameter
*/ */
protected void logAndAddFilesToCompile( Commandline cmd )
private void logAndAddFilesToCompile( final Commandline cmd )
{ {
int n = 0; int n = 0;
getLogger().debug( "Compilation args: " + cmd.toString() ); getLogger().debug( "Compilation args: " + cmd.toString() );


StringBuffer niceClassList = new StringBuffer(); StringBuffer niceClassList = new StringBuffer();
if( cls != null )
if( m_cls != null )
{ {
StringTokenizer tok = new StringTokenizer( cls, ",", false );
final StringTokenizer tok = new StringTokenizer( m_cls, ",", false );
while( tok.hasMoreTokens() ) while( tok.hasMoreTokens() )
{ {
String aClass = tok.nextToken().trim();
final String aClass = tok.nextToken().trim();
cmd.createArgument().setValue( aClass ); cmd.createArgument().setValue( aClass );
niceClassList.append( " " + aClass + StringUtil.LINE_SEPARATOR ); niceClassList.append( " " + aClass + StringUtil.LINE_SEPARATOR );
n++; n++;
} }
} }


Iterator enum = classes.iterator();
final Iterator enum = m_classes.iterator();
while( enum.hasNext() ) while( enum.hasNext() )
{ {
ClassArgument arg = (ClassArgument)enum.next();
String aClass = arg.getName();
final ClassArgument arg = (ClassArgument)enum.next();
final String aClass = arg.getName();
cmd.createArgument().setValue( aClass ); cmd.createArgument().setValue( aClass );
niceClassList.append( " " + aClass + StringUtil.LINE_SEPARATOR ); niceClassList.append( " " + aClass + StringUtil.LINE_SEPARATOR );
n++; n++;
} }


StringBuffer prefix = new StringBuffer( "Class" );
final StringBuffer prefix = new StringBuffer( "Class" );
if( n > 1 ) if( n > 1 )
{ {
prefix.append( "es" ); prefix.append( "es" );
@@ -326,65 +266,62 @@ public class Javah extends Task


/** /**
* Does the command line argument processing common to classic and modern. * Does the command line argument processing common to classic and modern.
*
* @return Description of the Returned Value
*/ */
private Commandline setupJavahCommand() private Commandline setupJavahCommand()
throws TaskException
{ {
Commandline cmd = new Commandline();
final Commandline cmd = new Commandline();


if( destDir != null )
if( m_destDir != null )
{ {
cmd.createArgument().setValue( "-d" ); cmd.createArgument().setValue( "-d" );
cmd.createArgument().setFile( destDir );
cmd.createArgument().setFile( m_destDir );
} }


if( outputFile != null )
if( m_outputFile != null )
{ {
cmd.createArgument().setValue( "-o" ); cmd.createArgument().setValue( "-o" );
cmd.createArgument().setFile( outputFile );
cmd.createArgument().setFile( m_outputFile );
} }


if( classpath != null )
if( m_classpath != null )
{ {
cmd.createArgument().setValue( "-classpath" ); cmd.createArgument().setValue( "-classpath" );
cmd.createArgument().setPath( classpath );
cmd.createArgument().setPath( m_classpath );
} }


if( verbose )
if( m_verbose )
{ {
cmd.createArgument().setValue( "-verbose" ); cmd.createArgument().setValue( "-verbose" );
} }
if( old )
if( m_old )
{ {
cmd.createArgument().setValue( "-old" ); cmd.createArgument().setValue( "-old" );
} }
if( force )
if( m_force )
{ {
cmd.createArgument().setValue( "-force" ); cmd.createArgument().setValue( "-force" );
} }


if( stubs )
if( m_stubs )
{ {
if( !old )
if( !m_old )
{ {
throw new TaskException( "stubs only available in old mode." );
final String message = "stubs only available in old mode.";
throw new TaskException( message );
} }
cmd.createArgument().setValue( "-stubs" ); cmd.createArgument().setValue( "-stubs" );
} }
if( bootclasspath != null )
if( m_bootclasspath != null )
{ {
cmd.createArgument().setValue( "-bootclasspath" ); cmd.createArgument().setValue( "-bootclasspath" );
cmd.createArgument().setPath( bootclasspath );
cmd.createArgument().setPath( m_bootclasspath );
} }


logAndAddFilesToCompile( cmd ); logAndAddFilesToCompile( cmd );
return cmd; return cmd;
} }


// XXX
// we need a way to not use the current classpath.

/** /**
* Peforms a compile using the classic compiler that shipped with JDK 1.1 * Peforms a compile using the classic compiler that shipped with JDK 1.1
* and 1.2. * and 1.2.
@@ -433,25 +370,5 @@ public class Javah extends Task
} }
} }
} }

public class ClassArgument
{
private String name;

public ClassArgument()
{
}

public void setName( String name )
{
this.name = name;
getLogger().info( "ClassArgument.name=" + name );
}

public String getName()
{
return name;
}
}
} }



+ 27
- 0
proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ClassArgument.java View File

@@ -0,0 +1,27 @@
/*
* 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.tools.ant.taskdefs.optional;

import org.apache.avalon.framework.logger.AbstractLogEnabled;

public class ClassArgument
extends AbstractLogEnabled
{
private String m_name;

public void setName( String name )
{
m_name = name;
getLogger().info( "ClassArgument.name=" + name );
}

public String getName()
{
return m_name;
}
}

+ 93
- 176
proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/Javah.java View File

@@ -12,12 +12,10 @@ import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import org.apache.avalon.excalibur.util.StringUtil; import org.apache.avalon.excalibur.util.StringUtil;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.JavaVersion;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.types.Commandline;
import org.apache.tools.ant.types.Path; import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.types.Reference;


/** /**
* 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
@@ -53,267 +51,209 @@ import org.apache.tools.ant.types.Reference;
* richard.beton@physics.org</a> * richard.beton@physics.org</a>
*/ */


public class Javah extends Task
public class Javah
extends AbstractLogEnabled
{ {

private final static String FAIL_MSG = "Compile failed, messages should have been provided."; private final static String FAIL_MSG = "Compile failed, messages should have been provided.";


private ArrayList classes = new ArrayList( 2 );
private Path classpath = null;
private File outputFile = null;
private boolean verbose = false;
private boolean force = false;
private boolean old = false;
private boolean stubs = false;
private Path bootclasspath;
private String cls;
private File destDir;

/**
* Adds a reference to a CLASSPATH defined elsewhere.
*
* @param r The new BootClasspathRef value
*/
public void setBootClasspathRef( Reference r )
{
createBootclasspath().setRefid( r );
}

public void setBootclasspath( Path src )
private ArrayList m_classes = new ArrayList( 2 );
private Path m_classpath;
private File m_outputFile;
private boolean m_verbose;
private boolean m_force;
private boolean m_old;
private boolean m_stubs;
private Path m_bootclasspath;
private String m_cls;
private File m_destDir;

public void setBootclasspath( final Path bootclasspath )
throws TaskException
{ {
if( bootclasspath == null )
if( m_bootclasspath == null )
{ {
bootclasspath = src;
m_bootclasspath = bootclasspath;
} }
else else
{ {
bootclasspath.append( src );
m_bootclasspath.append( bootclasspath );
} }
} }


public void setClass( String cls )
public void setClass( final String cls )
{ {
this.cls = cls;
m_cls = cls;
} }


public void setClasspath( Path src )
public void setClasspath( final Path classpath )
throws TaskException
{ {
if( classpath == null )
if( m_classpath == null )
{ {
classpath = src;
m_classpath = classpath;
} }
else else
{ {
classpath.append( src );
m_classpath.append( classpath );
} }
} }


/**
* Adds a reference to a CLASSPATH defined elsewhere.
*
* @param r The new ClasspathRef value
*/
public void setClasspathRef( Reference r )
{
createClasspath().setRefid( r );
}

/** /**
* Set the destination directory into which the Java source files should be * Set the destination directory into which the Java source files should be
* compiled. * compiled.
* *
* @param destDir The new Destdir value * @param destDir The new Destdir value
*/ */
public void setDestdir( File destDir )
public void setDestdir( final File destDir )
{ {
this.destDir = destDir;
m_destDir = destDir;
} }


/** /**
* Set the force-write flag. * Set the force-write flag.
*
* @param force The new Force value
*/ */
public void setForce( boolean force )
public void setForce( final boolean force )
{ {
this.force = force;
m_force = force;
} }


/** /**
* Set the old flag. * Set the old flag.
*
* @param old The new Old value
*/ */
public void setOld( boolean old )
public void setOld( final boolean old )
{ {
this.old = old;
m_old = old;
} }


///**
// * Sets the extension directories that will be used during the
// * compilation.
// */
//public void setExtdirs(Path extdirs) {
// if (this.extdirs == null) {
// this.extdirs = extdirs;
// } else {
// this.extdirs.append(extdirs);
// }
//}

///**
// * Maybe creates a nested classpath element.
// */
//public Path createExtdirs() {
// if (extdirs == null) {
// extdirs = new Path(project);
// }
// return extdirs.createPath();
//}

/** /**
* Set the output file name. * Set the output file name.
*
* @param outputFile The new OutputFile value
*/ */
public void setOutputFile( File outputFile )
public void setOutputFile( final File outputFile )
{ {
this.outputFile = outputFile;
m_outputFile = outputFile;
} }


/** /**
* Set the stubs flag. * Set the stubs flag.
*
* @param stubs The new Stubs value
*/ */
public void setStubs( boolean stubs )
public void setStubs( final boolean stubs )
{ {
this.stubs = stubs;
m_stubs = stubs;
} }


/** /**
* Set the verbose flag. * Set the verbose flag.
*
* @param verbose The new Verbose value
*/ */
public void setVerbose( boolean verbose )
public void setVerbose( final boolean verbose )
{ {
this.verbose = verbose;
m_verbose = verbose;
} }


public Path createBootclasspath() public Path createBootclasspath()
{ {
if( bootclasspath == null )
if( m_bootclasspath == null )
{ {
bootclasspath = new Path();
m_bootclasspath = new Path();
} }
return bootclasspath.createPath();
return m_bootclasspath.createPath();
} }


public ClassArgument createClass() public ClassArgument createClass()
{ {
ClassArgument ga = new ClassArgument();
classes.add( ga );
final ClassArgument ga = new ClassArgument();
setupLogger( ga );
m_classes.add( ga );
return ga; return ga;
} }


public Path createClasspath() public Path createClasspath()
{ {
if( classpath == null )
if( m_classpath == null )
{ {
classpath = new Path();
m_classpath = new Path();
} }
return classpath.createPath();
return m_classpath.createPath();
} }


/** /**
* Executes the task. * Executes the task.
*
* @exception TaskException Description of Exception
*/ */
public void execute() public void execute()
throws TaskException throws TaskException
{ {
// first off, make sure that we've got a srcdir
validate();


if( ( cls == null ) && ( classes.size() == 0 ) )
if( m_classpath == null )
{ {
throw new TaskException( "class attribute must be set!" );
m_classpath = Path.systemClasspath;
} }


if( ( cls != null ) && ( classes.size() > 0 ) )
{
throw new TaskException( "set class attribute or class element, not both." );
}
doClassicCompile();
}


if( destDir != null )
private void validate() throws TaskException
{
if( ( m_cls == null ) && ( m_classes.size() == 0 ) )
{ {
if( !destDir.isDirectory() )
{
throw new TaskException( "destination directory \"" + destDir + "\" does not exist or is not a directory" );
}
if( outputFile != null )
{
throw new TaskException( "destdir and outputFile are mutually exclusive" );
}
final String message = "class attribute must be set!";
throw new TaskException( message );
} }


if( classpath == null )
if( ( m_cls != null ) && ( m_classes.size() > 0 ) )
{ {
classpath = Path.systemClasspath;
final String message = "set class attribute or class element, not both.";
throw new TaskException( message );
} }


String compiler = getProject().getProperty( "build.compiler" );
if( compiler == null )
if( m_destDir != null )
{ {
if( JavaVersion.JAVA1_2 != JavaVersion.getCurrentJavaVersion() )
if( !m_destDir.isDirectory() )
{ {
compiler = "modern";
final String message = "destination directory \"" + m_destDir +
"\" does not exist or is not a directory";
throw new TaskException( message );
} }
else
if( m_outputFile != null )
{ {
compiler = "classic";
final String message = "destdir and outputFile are mutually exclusive";
throw new TaskException( message );
} }
} }

doClassicCompile();
} }


/** /**
* Logs the compilation parameters, adds the files to compile and logs the * Logs the compilation parameters, adds the files to compile and logs the
* &qout;niceSourceList&quot; * &qout;niceSourceList&quot;
*
* @param cmd Description of Parameter
*/ */
protected void logAndAddFilesToCompile( Commandline cmd )
private void logAndAddFilesToCompile( final Commandline cmd )
{ {
int n = 0; int n = 0;
getLogger().debug( "Compilation args: " + cmd.toString() ); getLogger().debug( "Compilation args: " + cmd.toString() );


StringBuffer niceClassList = new StringBuffer(); StringBuffer niceClassList = new StringBuffer();
if( cls != null )
if( m_cls != null )
{ {
StringTokenizer tok = new StringTokenizer( cls, ",", false );
final StringTokenizer tok = new StringTokenizer( m_cls, ",", false );
while( tok.hasMoreTokens() ) while( tok.hasMoreTokens() )
{ {
String aClass = tok.nextToken().trim();
final String aClass = tok.nextToken().trim();
cmd.createArgument().setValue( aClass ); cmd.createArgument().setValue( aClass );
niceClassList.append( " " + aClass + StringUtil.LINE_SEPARATOR ); niceClassList.append( " " + aClass + StringUtil.LINE_SEPARATOR );
n++; n++;
} }
} }


Iterator enum = classes.iterator();
final Iterator enum = m_classes.iterator();
while( enum.hasNext() ) while( enum.hasNext() )
{ {
ClassArgument arg = (ClassArgument)enum.next();
String aClass = arg.getName();
final ClassArgument arg = (ClassArgument)enum.next();
final String aClass = arg.getName();
cmd.createArgument().setValue( aClass ); cmd.createArgument().setValue( aClass );
niceClassList.append( " " + aClass + StringUtil.LINE_SEPARATOR ); niceClassList.append( " " + aClass + StringUtil.LINE_SEPARATOR );
n++; n++;
} }


StringBuffer prefix = new StringBuffer( "Class" );
final StringBuffer prefix = new StringBuffer( "Class" );
if( n > 1 ) if( n > 1 )
{ {
prefix.append( "es" ); prefix.append( "es" );
@@ -326,65 +266,62 @@ public class Javah extends Task


/** /**
* Does the command line argument processing common to classic and modern. * Does the command line argument processing common to classic and modern.
*
* @return Description of the Returned Value
*/ */
private Commandline setupJavahCommand() private Commandline setupJavahCommand()
throws TaskException
{ {
Commandline cmd = new Commandline();
final Commandline cmd = new Commandline();


if( destDir != null )
if( m_destDir != null )
{ {
cmd.createArgument().setValue( "-d" ); cmd.createArgument().setValue( "-d" );
cmd.createArgument().setFile( destDir );
cmd.createArgument().setFile( m_destDir );
} }


if( outputFile != null )
if( m_outputFile != null )
{ {
cmd.createArgument().setValue( "-o" ); cmd.createArgument().setValue( "-o" );
cmd.createArgument().setFile( outputFile );
cmd.createArgument().setFile( m_outputFile );
} }


if( classpath != null )
if( m_classpath != null )
{ {
cmd.createArgument().setValue( "-classpath" ); cmd.createArgument().setValue( "-classpath" );
cmd.createArgument().setPath( classpath );
cmd.createArgument().setPath( m_classpath );
} }


if( verbose )
if( m_verbose )
{ {
cmd.createArgument().setValue( "-verbose" ); cmd.createArgument().setValue( "-verbose" );
} }
if( old )
if( m_old )
{ {
cmd.createArgument().setValue( "-old" ); cmd.createArgument().setValue( "-old" );
} }
if( force )
if( m_force )
{ {
cmd.createArgument().setValue( "-force" ); cmd.createArgument().setValue( "-force" );
} }


if( stubs )
if( m_stubs )
{ {
if( !old )
if( !m_old )
{ {
throw new TaskException( "stubs only available in old mode." );
final String message = "stubs only available in old mode.";
throw new TaskException( message );
} }
cmd.createArgument().setValue( "-stubs" ); cmd.createArgument().setValue( "-stubs" );
} }
if( bootclasspath != null )
if( m_bootclasspath != null )
{ {
cmd.createArgument().setValue( "-bootclasspath" ); cmd.createArgument().setValue( "-bootclasspath" );
cmd.createArgument().setPath( bootclasspath );
cmd.createArgument().setPath( m_bootclasspath );
} }


logAndAddFilesToCompile( cmd ); logAndAddFilesToCompile( cmd );
return cmd; return cmd;
} }


// XXX
// we need a way to not use the current classpath.

/** /**
* Peforms a compile using the classic compiler that shipped with JDK 1.1 * Peforms a compile using the classic compiler that shipped with JDK 1.1
* and 1.2. * and 1.2.
@@ -433,25 +370,5 @@ public class Javah extends Task
} }
} }
} }

public class ClassArgument
{
private String name;

public ClassArgument()
{
}

public void setName( String name )
{
this.name = name;
getLogger().info( "ClassArgument.name=" + name );
}

public String getName()
{
return name;
}
}
} }



Loading…
Cancel
Save