diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/Cab.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/Cab.java index 6d793819f..9918c19e5 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/Cab.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/Cab.java @@ -14,41 +14,36 @@ import java.io.OutputStream; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Iterator; -import org.apache.myrmidon.api.TaskException; import org.apache.aut.nativelib.Os; -import org.apache.tools.ant.DirectoryScanner; +import org.apache.myrmidon.api.TaskException; +import org.apache.tools.ant.types.DirectoryScanner; import org.apache.tools.ant.taskdefs.MatchingTask; -import org.apache.tools.ant.taskdefs.exec.ExecTask; +import org.apache.tools.ant.taskdefs.exec.Execute2; +import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.types.FileSet; /** * Create a CAB archive. * - * @author Roger Vaughn - * rvaughn@seaconinc.com + * @author Roger Vaughn */ - -public class Cab extends MatchingTask +public class Cab + extends MatchingTask { - private ArrayList filesets = new ArrayList(); - private boolean doCompress = true; - private boolean doVerbose = false; - - protected String archiveType = "cab"; - - private File baseDir; - - private File cabFile; - private String cmdOptions; + private ArrayList m_filesets = new ArrayList(); + private boolean m_compress = true; + private File m_baseDir; + private File m_cabFile; + private String m_options; /** * This is the base directory to look in for things to cab. * * @param baseDir The new Basedir value */ - public void setBasedir( File baseDir ) + public void setBasedir( final File baseDir ) { - this.baseDir = baseDir; + m_baseDir = baseDir; } /** @@ -56,9 +51,9 @@ public class Cab extends MatchingTask * * @param cabFile The new Cabfile value */ - public void setCabfile( File cabFile ) + public void setCabfile( final File cabFile ) { - this.cabFile = cabFile; + m_cabFile = cabFile; } /** @@ -66,9 +61,9 @@ public class Cab extends MatchingTask * * @param compress The new Compress value */ - public void setCompress( boolean compress ) + public void setCompress( final boolean compress ) { - doCompress = compress; + m_compress = compress; } /** @@ -76,19 +71,9 @@ public class Cab extends MatchingTask * * @param options The new Options value */ - public void setOptions( String options ) - { - cmdOptions = options; - } - - /** - * Sets whether we want to see or suppress cabarc output. - * - * @param verbose The new Verbose value - */ - public void setVerbose( boolean verbose ) + public void setOptions( final String options ) { - doVerbose = verbose; + m_options = options; } /** @@ -96,38 +81,38 @@ public class Cab extends MatchingTask * * @param set The feature to be added to the Fileset attribute */ - public void addFileset( FileSet set ) + public void addFileset( final FileSet set ) { - filesets.add( set ); + m_filesets.add( set ); } public void execute() throws TaskException { - checkConfiguration(); - ArrayList files = getFileList(); + final ArrayList files = getFileList(); // quick exit if the target is up to date if( isUpToDate( files ) ) + { return; + } - getLogger().info( "Building " + archiveType + ": " + cabFile.getAbsolutePath() ); + getLogger().info( "Building cab: " + m_cabFile.getAbsolutePath() ); if( !Os.isFamily( "windows" ) ) { getLogger().debug( "Using listcab/libcabinet" ); - StringBuffer sb = new StringBuffer(); - - Iterator fileEnum = files.iterator(); + final StringBuffer sb = new StringBuffer(); - while( fileEnum.hasNext() ) + final Iterator e = files.iterator(); + while( e.hasNext() ) { - sb.append( fileEnum.next() ).append( "\n" ); + sb.append( e.next() ).append( "\n" ); } - sb.append( "\n" ).append( cabFile.getAbsolutePath() ).append( "\n" ); + sb.append( "\n" ).append( m_cabFile.getAbsolutePath() ).append( "\n" ); try { @@ -139,7 +124,7 @@ public class Cab extends MatchingTask } catch( IOException ex ) { - String msg = "Problem creating " + cabFile + " " + ex.getMessage(); + String msg = "Problem creating " + m_cabFile + " " + ex.getMessage(); throw new TaskException( msg ); } } @@ -148,32 +133,20 @@ public class Cab extends MatchingTask try { File listFile = createListFile( files ); - ExecTask exec = createExec(); - File outFile = null; - - // die if cabarc fails - exec.setDir( baseDir ); - - if( !doVerbose ) - { - outFile = File.createTempFile( "ant", "", getBaseDirectory() ); - exec.setOutput( outFile ); - } - - setupCommand( listFile, exec ); - exec.execute(); - - if( outFile != null ) - { - outFile.delete(); - } + Execute2 exe = new Execute2(); + setupLogger( exe ); + exe.setWorkingDirectory( m_baseDir ); + final Commandline cmd = createCommand( listFile ); + exe.setCommandline( cmd.getCommandline() ); + exe.execute(); listFile.delete(); } - catch( IOException ioe ) + catch( final IOException ioe ) { - String msg = "Problem creating " + cabFile + " " + ioe.getMessage(); - throw new TaskException( msg ); + final String message = + "Problem creating " + m_cabFile + " " + ioe.getMessage(); + throw new TaskException( message ); } } } @@ -182,26 +155,23 @@ public class Cab extends MatchingTask * Get the complete list of files to be included in the cab. Filenames are * gathered from filesets if any have been added, otherwise from the * traditional include parameters. - * - * @return The FileList value - * @exception TaskException Description of Exception */ protected ArrayList getFileList() throws TaskException { ArrayList files = new ArrayList(); - if( filesets.size() == 0 ) + if( m_filesets.size() == 0 ) { // get files from old methods - includes and nested include - appendFiles( files, super.getDirectoryScanner( baseDir ) ); + appendFiles( files, super.getDirectoryScanner( m_baseDir ) ); } else { // get files from filesets - for( int i = 0; i < filesets.size(); i++ ) + for( int i = 0; i < m_filesets.size(); i++ ) { - FileSet fs = (FileSet)filesets.get( i ); + FileSet fs = (FileSet)m_filesets.get( i ); if( fs != null ) { appendFiles( files, fs.getDirectoryScanner() ); @@ -224,8 +194,8 @@ public class Cab extends MatchingTask for( int i = 0; i < files.size() && upToDate; i++ ) { String file = files.get( i ).toString(); - if( new File( baseDir, file ).lastModified() > - cabFile.lastModified() ) + if( new File( m_baseDir, file ).lastModified() > + m_cabFile.lastModified() ) upToDate = false; } return upToDate; @@ -255,15 +225,15 @@ public class Cab extends MatchingTask protected void checkConfiguration() throws TaskException { - if( baseDir == null ) + if( m_baseDir == null ) { throw new TaskException( "basedir attribute must be set!" ); } - if( !baseDir.exists() ) + if( !m_baseDir.exists() ) { throw new TaskException( "basedir does not exist!" ); } - if( cabFile == null ) + if( m_cabFile == null ) { throw new TaskException( "cabfile attribute must be set!" ); } @@ -271,44 +241,31 @@ public class Cab extends MatchingTask /** * Create the cabarc command line to use. - * - * @param listFile Description of Parameter - * @return Description of the Returned Value */ - protected void setupCommand( File listFile, ExecTask exec ) + protected Commandline createCommand( final File listFile ) throws TaskException { - exec.setExecutable( "cabarc" ); - exec.createArg().setValue( "-r" ); - exec.createArg().setValue( "-p" ); + final Commandline cmd = new Commandline(); + cmd.setExecutable( "cabarc" ); + cmd.createArgument().setValue( "-r" ); + cmd.createArgument().setValue( "-p" ); - if( !doCompress ) + if( !m_compress ) { - exec.createArg().setValue( "-m" ); - exec.createArg().setValue( "none" ); + cmd.createArgument().setValue( "-m" ); + cmd.createArgument().setValue( "none" ); } - if( cmdOptions != null ) + if( m_options != null ) { - exec.createArg().setLine( cmdOptions ); + cmd.createArgument().setLine( m_options ); } - exec.createArg().setValue( "n" ); - exec.createArg().setFile( cabFile ); - exec.createArg().setValue( "@" + listFile.getAbsolutePath() ); - } + cmd.createArgument().setValue( "n" ); + cmd.createArgument().setFile( m_cabFile ); + cmd.createArgument().setValue( "@" + listFile.getAbsolutePath() ); - /** - * Create a new exec delegate. The delegate task is populated so that it - * appears in the logs to be the same task as this one. - * - * @return Description of the Returned Value - * @exception TaskException Description of Exception - */ - protected ExecTask createExec() - throws TaskException - { - return (ExecTask)getProject().createTask( "exec" ); + return cmd; } /** diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/security/GenerateKey.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/security/GenerateKey.java index 39fff4555..55dcd8007 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/security/GenerateKey.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/security/GenerateKey.java @@ -7,17 +7,19 @@ */ package org.apache.tools.ant.taskdefs.security; +import org.apache.myrmidon.api.AbstractTask; import org.apache.myrmidon.api.TaskException; -import org.apache.tools.ant.Task; -import org.apache.tools.ant.taskdefs.exec.ExecTask; +import org.apache.tools.ant.taskdefs.exec.Execute2; +import org.apache.tools.ant.types.Commandline; +import java.io.IOException; /** * Generates a key. * - * @author Peter Donald + * @author Peter Donald */ public class GenerateKey - extends Task + extends AbstractTask { /** * The alias of signer. @@ -141,87 +143,103 @@ public class GenerateKey final String message = "Generating Key for " + m_alias; getLogger().info( message ); - final ExecTask cmd = (ExecTask)getProject().createTask( "exec" ); + final Commandline cmd = createCommand(); + final Execute2 exe = new Execute2(); + exe.setWorkingDirectory( getBaseDirectory() ); + exe.setCommandline( cmd.getCommandline() ); + try + { + exe.execute(); + } + catch( final IOException ioe ) + { + throw new TaskException( ioe.getMessage(), ioe ); + } + } + + private Commandline createCommand() + { + final Commandline cmd = new Commandline(); cmd.setExecutable( "keytool" ); - cmd.createArg().setValue( "-genkey " ); + cmd.createArgument().setValue( "-genkey " ); if( m_verbose ) { - cmd.createArg().setValue( "-v " ); + cmd.createArgument().setValue( "-v " ); } - cmd.createArg().setValue( "-alias" ); - cmd.createArg().setValue( m_alias ); + cmd.createArgument().setValue( "-alias" ); + cmd.createArgument().setValue( m_alias ); if( null != m_dname ) { - cmd.createArg().setValue( "-dname" ); - cmd.createArg().setValue( m_dname ); + cmd.createArgument().setValue( "-dname" ); + cmd.createArgument().setValue( m_dname ); } if( null != m_expandedDname ) { - cmd.createArg().setValue( "-dname" ); - cmd.createArg().setValue( m_expandedDname.toString() ); + cmd.createArgument().setValue( "-dname" ); + cmd.createArgument().setValue( m_expandedDname.toString() ); } if( null != m_keystore ) { - cmd.createArg().setValue( "-keystore" ); - cmd.createArg().setValue( m_keystore ); + cmd.createArgument().setValue( "-keystore" ); + cmd.createArgument().setValue( m_keystore ); } if( null != m_storepass ) { - cmd.createArg().setValue( "-storepass" ); - cmd.createArg().setValue( m_storepass ); + cmd.createArgument().setValue( "-storepass" ); + cmd.createArgument().setValue( m_storepass ); } if( null != m_storetype ) { - cmd.createArg().setValue( "-storetype" ); - cmd.createArg().setValue( m_storetype ); + cmd.createArgument().setValue( "-storetype" ); + cmd.createArgument().setValue( m_storetype ); } - cmd.createArg().setValue( "-keypass" ); + cmd.createArgument().setValue( "-keypass" ); if( null != m_keypass ) { - cmd.createArg().setValue( m_keypass ); + cmd.createArgument().setValue( m_keypass ); } else { - cmd.createArg().setValue( m_storepass ); + cmd.createArgument().setValue( m_storepass ); } if( null != m_sigalg ) { - cmd.createArg().setValue( "-sigalg" ); - cmd.createArg().setValue( m_sigalg ); + cmd.createArgument().setValue( "-sigalg" ); + cmd.createArgument().setValue( m_sigalg ); } if( null != m_keyalg ) { - cmd.createArg().setValue( "-keyalg" ); - cmd.createArg().setValue( m_keyalg ); + cmd.createArgument().setValue( "-keyalg" ); + cmd.createArgument().setValue( m_keyalg ); } if( 0 < m_keysize ) { - cmd.createArg().setValue( "-keysize" ); - cmd.createArg().setValue( "" + m_keysize ); + cmd.createArgument().setValue( "-keysize" ); + cmd.createArgument().setValue( "" + m_keysize ); } if( 0 < m_validity ) { - cmd.createArg().setValue( "-validity" ); - cmd.createArg().setValue( "" + m_validity ); + cmd.createArgument().setValue( "-validity" ); + cmd.createArgument().setValue( "" + m_validity ); } - - cmd.execute(); + return cmd; } - private void validate() throws TaskException + private void validate() + throws TaskException { if( null == m_alias ) { diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/security/SignJar.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/security/SignJar.java index 567d85f3b..56053f6d5 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/security/SignJar.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/security/SignJar.java @@ -15,15 +15,16 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import org.apache.myrmidon.api.AbstractTask; import org.apache.myrmidon.api.TaskException; -import org.apache.tools.ant.DirectoryScanner; -import org.apache.tools.ant.taskdefs.exec.ExecTask; +import org.apache.tools.ant.types.DirectoryScanner; +import org.apache.tools.ant.taskdefs.exec.Execute2; +import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.types.FileSet; /** * Sign a archive. * - * @author Peter Donald donaldp@apache.org - * @author Nick Fortescue nick@ox.compsoc.net + * @author Peter Donald + * @author Nick Fortescue */ public class SignJar extends AbstractTask @@ -285,67 +286,82 @@ public class SignJar final StringBuffer sb = new StringBuffer(); - final ExecTask cmd = null;//(ExecTask)getProject().createTask( "exec" ); + final String message = "Signing Jar : " + jarSource.getAbsolutePath(); + getLogger().info( message ); + + final Commandline cmd = buildCommand( jarTarget, jarSource ); + final Execute2 exe = new Execute2(); + setupLogger( exe ); + try + { + exe.execute(); + } + catch( final IOException ioe ) + { + throw new TaskException( ioe.getMessage(), ioe ); + } + } + + private Commandline buildCommand( final File jarTarget, final File jarSource ) + { + final Commandline cmd = new Commandline(); cmd.setExecutable( "jarsigner" ); if( null != m_keystore ) { - cmd.createArg().setValue( "-keystore" ); - cmd.createArg().setValue( m_keystore.toString() ); + cmd.createArgument().setValue( "-keystore" ); + cmd.createArgument().setValue( m_keystore.toString() ); } if( null != m_storepass ) { - cmd.createArg().setValue( "-storepass" ); - cmd.createArg().setValue( m_storepass ); + cmd.createArgument().setValue( "-storepass" ); + cmd.createArgument().setValue( m_storepass ); } if( null != m_storetype ) { - cmd.createArg().setValue( "-storetype" ); - cmd.createArg().setValue( m_storetype ); + cmd.createArgument().setValue( "-storetype" ); + cmd.createArgument().setValue( m_storetype ); } if( null != m_keypass ) { - cmd.createArg().setValue( "-keypass" ); - cmd.createArg().setValue( m_keypass ); + cmd.createArgument().setValue( "-keypass" ); + cmd.createArgument().setValue( m_keypass ); } if( null != m_sigfile ) { - cmd.createArg().setValue( "-sigfile" ); - cmd.createArg().setValue( m_sigfile.toString() ); + cmd.createArgument().setValue( "-sigfile" ); + cmd.createArgument().setValue( m_sigfile.toString() ); } if( null != jarTarget ) { - cmd.createArg().setValue( "-signedjar" ); - cmd.createArg().setValue( jarTarget.toString() ); + cmd.createArgument().setValue( "-signedjar" ); + cmd.createArgument().setValue( jarTarget.toString() ); } if( m_verbose ) { - cmd.createArg().setValue( "-verbose" ); + cmd.createArgument().setValue( "-verbose" ); } if( m_internalsf ) { - cmd.createArg().setValue( "-internalsf" ); + cmd.createArgument().setValue( "-internalsf" ); } if( m_sectionsonly ) { - cmd.createArg().setValue( "-sectionsonly" ); + cmd.createArgument().setValue( "-sectionsonly" ); } - cmd.createArg().setValue( jarSource.toString() ); + cmd.createArgument().setValue( jarSource.toString() ); - cmd.createArg().setValue( m_alias ); - - final String message = "Signing Jar : " + jarSource.getAbsolutePath(); - getLogger().info( message ); - cmd.execute(); + cmd.createArgument().setValue( m_alias ); + return cmd; } } diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/Cab.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/Cab.java index 6d793819f..9918c19e5 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/Cab.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/Cab.java @@ -14,41 +14,36 @@ import java.io.OutputStream; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Iterator; -import org.apache.myrmidon.api.TaskException; import org.apache.aut.nativelib.Os; -import org.apache.tools.ant.DirectoryScanner; +import org.apache.myrmidon.api.TaskException; +import org.apache.tools.ant.types.DirectoryScanner; import org.apache.tools.ant.taskdefs.MatchingTask; -import org.apache.tools.ant.taskdefs.exec.ExecTask; +import org.apache.tools.ant.taskdefs.exec.Execute2; +import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.types.FileSet; /** * Create a CAB archive. * - * @author Roger Vaughn - * rvaughn@seaconinc.com + * @author Roger Vaughn */ - -public class Cab extends MatchingTask +public class Cab + extends MatchingTask { - private ArrayList filesets = new ArrayList(); - private boolean doCompress = true; - private boolean doVerbose = false; - - protected String archiveType = "cab"; - - private File baseDir; - - private File cabFile; - private String cmdOptions; + private ArrayList m_filesets = new ArrayList(); + private boolean m_compress = true; + private File m_baseDir; + private File m_cabFile; + private String m_options; /** * This is the base directory to look in for things to cab. * * @param baseDir The new Basedir value */ - public void setBasedir( File baseDir ) + public void setBasedir( final File baseDir ) { - this.baseDir = baseDir; + m_baseDir = baseDir; } /** @@ -56,9 +51,9 @@ public class Cab extends MatchingTask * * @param cabFile The new Cabfile value */ - public void setCabfile( File cabFile ) + public void setCabfile( final File cabFile ) { - this.cabFile = cabFile; + m_cabFile = cabFile; } /** @@ -66,9 +61,9 @@ public class Cab extends MatchingTask * * @param compress The new Compress value */ - public void setCompress( boolean compress ) + public void setCompress( final boolean compress ) { - doCompress = compress; + m_compress = compress; } /** @@ -76,19 +71,9 @@ public class Cab extends MatchingTask * * @param options The new Options value */ - public void setOptions( String options ) - { - cmdOptions = options; - } - - /** - * Sets whether we want to see or suppress cabarc output. - * - * @param verbose The new Verbose value - */ - public void setVerbose( boolean verbose ) + public void setOptions( final String options ) { - doVerbose = verbose; + m_options = options; } /** @@ -96,38 +81,38 @@ public class Cab extends MatchingTask * * @param set The feature to be added to the Fileset attribute */ - public void addFileset( FileSet set ) + public void addFileset( final FileSet set ) { - filesets.add( set ); + m_filesets.add( set ); } public void execute() throws TaskException { - checkConfiguration(); - ArrayList files = getFileList(); + final ArrayList files = getFileList(); // quick exit if the target is up to date if( isUpToDate( files ) ) + { return; + } - getLogger().info( "Building " + archiveType + ": " + cabFile.getAbsolutePath() ); + getLogger().info( "Building cab: " + m_cabFile.getAbsolutePath() ); if( !Os.isFamily( "windows" ) ) { getLogger().debug( "Using listcab/libcabinet" ); - StringBuffer sb = new StringBuffer(); - - Iterator fileEnum = files.iterator(); + final StringBuffer sb = new StringBuffer(); - while( fileEnum.hasNext() ) + final Iterator e = files.iterator(); + while( e.hasNext() ) { - sb.append( fileEnum.next() ).append( "\n" ); + sb.append( e.next() ).append( "\n" ); } - sb.append( "\n" ).append( cabFile.getAbsolutePath() ).append( "\n" ); + sb.append( "\n" ).append( m_cabFile.getAbsolutePath() ).append( "\n" ); try { @@ -139,7 +124,7 @@ public class Cab extends MatchingTask } catch( IOException ex ) { - String msg = "Problem creating " + cabFile + " " + ex.getMessage(); + String msg = "Problem creating " + m_cabFile + " " + ex.getMessage(); throw new TaskException( msg ); } } @@ -148,32 +133,20 @@ public class Cab extends MatchingTask try { File listFile = createListFile( files ); - ExecTask exec = createExec(); - File outFile = null; - - // die if cabarc fails - exec.setDir( baseDir ); - - if( !doVerbose ) - { - outFile = File.createTempFile( "ant", "", getBaseDirectory() ); - exec.setOutput( outFile ); - } - - setupCommand( listFile, exec ); - exec.execute(); - - if( outFile != null ) - { - outFile.delete(); - } + Execute2 exe = new Execute2(); + setupLogger( exe ); + exe.setWorkingDirectory( m_baseDir ); + final Commandline cmd = createCommand( listFile ); + exe.setCommandline( cmd.getCommandline() ); + exe.execute(); listFile.delete(); } - catch( IOException ioe ) + catch( final IOException ioe ) { - String msg = "Problem creating " + cabFile + " " + ioe.getMessage(); - throw new TaskException( msg ); + final String message = + "Problem creating " + m_cabFile + " " + ioe.getMessage(); + throw new TaskException( message ); } } } @@ -182,26 +155,23 @@ public class Cab extends MatchingTask * Get the complete list of files to be included in the cab. Filenames are * gathered from filesets if any have been added, otherwise from the * traditional include parameters. - * - * @return The FileList value - * @exception TaskException Description of Exception */ protected ArrayList getFileList() throws TaskException { ArrayList files = new ArrayList(); - if( filesets.size() == 0 ) + if( m_filesets.size() == 0 ) { // get files from old methods - includes and nested include - appendFiles( files, super.getDirectoryScanner( baseDir ) ); + appendFiles( files, super.getDirectoryScanner( m_baseDir ) ); } else { // get files from filesets - for( int i = 0; i < filesets.size(); i++ ) + for( int i = 0; i < m_filesets.size(); i++ ) { - FileSet fs = (FileSet)filesets.get( i ); + FileSet fs = (FileSet)m_filesets.get( i ); if( fs != null ) { appendFiles( files, fs.getDirectoryScanner() ); @@ -224,8 +194,8 @@ public class Cab extends MatchingTask for( int i = 0; i < files.size() && upToDate; i++ ) { String file = files.get( i ).toString(); - if( new File( baseDir, file ).lastModified() > - cabFile.lastModified() ) + if( new File( m_baseDir, file ).lastModified() > + m_cabFile.lastModified() ) upToDate = false; } return upToDate; @@ -255,15 +225,15 @@ public class Cab extends MatchingTask protected void checkConfiguration() throws TaskException { - if( baseDir == null ) + if( m_baseDir == null ) { throw new TaskException( "basedir attribute must be set!" ); } - if( !baseDir.exists() ) + if( !m_baseDir.exists() ) { throw new TaskException( "basedir does not exist!" ); } - if( cabFile == null ) + if( m_cabFile == null ) { throw new TaskException( "cabfile attribute must be set!" ); } @@ -271,44 +241,31 @@ public class Cab extends MatchingTask /** * Create the cabarc command line to use. - * - * @param listFile Description of Parameter - * @return Description of the Returned Value */ - protected void setupCommand( File listFile, ExecTask exec ) + protected Commandline createCommand( final File listFile ) throws TaskException { - exec.setExecutable( "cabarc" ); - exec.createArg().setValue( "-r" ); - exec.createArg().setValue( "-p" ); + final Commandline cmd = new Commandline(); + cmd.setExecutable( "cabarc" ); + cmd.createArgument().setValue( "-r" ); + cmd.createArgument().setValue( "-p" ); - if( !doCompress ) + if( !m_compress ) { - exec.createArg().setValue( "-m" ); - exec.createArg().setValue( "none" ); + cmd.createArgument().setValue( "-m" ); + cmd.createArgument().setValue( "none" ); } - if( cmdOptions != null ) + if( m_options != null ) { - exec.createArg().setLine( cmdOptions ); + cmd.createArgument().setLine( m_options ); } - exec.createArg().setValue( "n" ); - exec.createArg().setFile( cabFile ); - exec.createArg().setValue( "@" + listFile.getAbsolutePath() ); - } + cmd.createArgument().setValue( "n" ); + cmd.createArgument().setFile( m_cabFile ); + cmd.createArgument().setValue( "@" + listFile.getAbsolutePath() ); - /** - * Create a new exec delegate. The delegate task is populated so that it - * appears in the logs to be the same task as this one. - * - * @return Description of the Returned Value - * @exception TaskException Description of Exception - */ - protected ExecTask createExec() - throws TaskException - { - return (ExecTask)getProject().createTask( "exec" ); + return cmd; } /** diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/security/GenerateKey.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/security/GenerateKey.java index 39fff4555..55dcd8007 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/security/GenerateKey.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/security/GenerateKey.java @@ -7,17 +7,19 @@ */ package org.apache.tools.ant.taskdefs.security; +import org.apache.myrmidon.api.AbstractTask; import org.apache.myrmidon.api.TaskException; -import org.apache.tools.ant.Task; -import org.apache.tools.ant.taskdefs.exec.ExecTask; +import org.apache.tools.ant.taskdefs.exec.Execute2; +import org.apache.tools.ant.types.Commandline; +import java.io.IOException; /** * Generates a key. * - * @author Peter Donald + * @author Peter Donald */ public class GenerateKey - extends Task + extends AbstractTask { /** * The alias of signer. @@ -141,87 +143,103 @@ public class GenerateKey final String message = "Generating Key for " + m_alias; getLogger().info( message ); - final ExecTask cmd = (ExecTask)getProject().createTask( "exec" ); + final Commandline cmd = createCommand(); + final Execute2 exe = new Execute2(); + exe.setWorkingDirectory( getBaseDirectory() ); + exe.setCommandline( cmd.getCommandline() ); + try + { + exe.execute(); + } + catch( final IOException ioe ) + { + throw new TaskException( ioe.getMessage(), ioe ); + } + } + + private Commandline createCommand() + { + final Commandline cmd = new Commandline(); cmd.setExecutable( "keytool" ); - cmd.createArg().setValue( "-genkey " ); + cmd.createArgument().setValue( "-genkey " ); if( m_verbose ) { - cmd.createArg().setValue( "-v " ); + cmd.createArgument().setValue( "-v " ); } - cmd.createArg().setValue( "-alias" ); - cmd.createArg().setValue( m_alias ); + cmd.createArgument().setValue( "-alias" ); + cmd.createArgument().setValue( m_alias ); if( null != m_dname ) { - cmd.createArg().setValue( "-dname" ); - cmd.createArg().setValue( m_dname ); + cmd.createArgument().setValue( "-dname" ); + cmd.createArgument().setValue( m_dname ); } if( null != m_expandedDname ) { - cmd.createArg().setValue( "-dname" ); - cmd.createArg().setValue( m_expandedDname.toString() ); + cmd.createArgument().setValue( "-dname" ); + cmd.createArgument().setValue( m_expandedDname.toString() ); } if( null != m_keystore ) { - cmd.createArg().setValue( "-keystore" ); - cmd.createArg().setValue( m_keystore ); + cmd.createArgument().setValue( "-keystore" ); + cmd.createArgument().setValue( m_keystore ); } if( null != m_storepass ) { - cmd.createArg().setValue( "-storepass" ); - cmd.createArg().setValue( m_storepass ); + cmd.createArgument().setValue( "-storepass" ); + cmd.createArgument().setValue( m_storepass ); } if( null != m_storetype ) { - cmd.createArg().setValue( "-storetype" ); - cmd.createArg().setValue( m_storetype ); + cmd.createArgument().setValue( "-storetype" ); + cmd.createArgument().setValue( m_storetype ); } - cmd.createArg().setValue( "-keypass" ); + cmd.createArgument().setValue( "-keypass" ); if( null != m_keypass ) { - cmd.createArg().setValue( m_keypass ); + cmd.createArgument().setValue( m_keypass ); } else { - cmd.createArg().setValue( m_storepass ); + cmd.createArgument().setValue( m_storepass ); } if( null != m_sigalg ) { - cmd.createArg().setValue( "-sigalg" ); - cmd.createArg().setValue( m_sigalg ); + cmd.createArgument().setValue( "-sigalg" ); + cmd.createArgument().setValue( m_sigalg ); } if( null != m_keyalg ) { - cmd.createArg().setValue( "-keyalg" ); - cmd.createArg().setValue( m_keyalg ); + cmd.createArgument().setValue( "-keyalg" ); + cmd.createArgument().setValue( m_keyalg ); } if( 0 < m_keysize ) { - cmd.createArg().setValue( "-keysize" ); - cmd.createArg().setValue( "" + m_keysize ); + cmd.createArgument().setValue( "-keysize" ); + cmd.createArgument().setValue( "" + m_keysize ); } if( 0 < m_validity ) { - cmd.createArg().setValue( "-validity" ); - cmd.createArg().setValue( "" + m_validity ); + cmd.createArgument().setValue( "-validity" ); + cmd.createArgument().setValue( "" + m_validity ); } - - cmd.execute(); + return cmd; } - private void validate() throws TaskException + private void validate() + throws TaskException { if( null == m_alias ) { diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/security/SignJar.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/security/SignJar.java index 567d85f3b..56053f6d5 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/security/SignJar.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/security/SignJar.java @@ -15,15 +15,16 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import org.apache.myrmidon.api.AbstractTask; import org.apache.myrmidon.api.TaskException; -import org.apache.tools.ant.DirectoryScanner; -import org.apache.tools.ant.taskdefs.exec.ExecTask; +import org.apache.tools.ant.types.DirectoryScanner; +import org.apache.tools.ant.taskdefs.exec.Execute2; +import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.types.FileSet; /** * Sign a archive. * - * @author Peter Donald donaldp@apache.org - * @author Nick Fortescue nick@ox.compsoc.net + * @author Peter Donald + * @author Nick Fortescue */ public class SignJar extends AbstractTask @@ -285,67 +286,82 @@ public class SignJar final StringBuffer sb = new StringBuffer(); - final ExecTask cmd = null;//(ExecTask)getProject().createTask( "exec" ); + final String message = "Signing Jar : " + jarSource.getAbsolutePath(); + getLogger().info( message ); + + final Commandline cmd = buildCommand( jarTarget, jarSource ); + final Execute2 exe = new Execute2(); + setupLogger( exe ); + try + { + exe.execute(); + } + catch( final IOException ioe ) + { + throw new TaskException( ioe.getMessage(), ioe ); + } + } + + private Commandline buildCommand( final File jarTarget, final File jarSource ) + { + final Commandline cmd = new Commandline(); cmd.setExecutable( "jarsigner" ); if( null != m_keystore ) { - cmd.createArg().setValue( "-keystore" ); - cmd.createArg().setValue( m_keystore.toString() ); + cmd.createArgument().setValue( "-keystore" ); + cmd.createArgument().setValue( m_keystore.toString() ); } if( null != m_storepass ) { - cmd.createArg().setValue( "-storepass" ); - cmd.createArg().setValue( m_storepass ); + cmd.createArgument().setValue( "-storepass" ); + cmd.createArgument().setValue( m_storepass ); } if( null != m_storetype ) { - cmd.createArg().setValue( "-storetype" ); - cmd.createArg().setValue( m_storetype ); + cmd.createArgument().setValue( "-storetype" ); + cmd.createArgument().setValue( m_storetype ); } if( null != m_keypass ) { - cmd.createArg().setValue( "-keypass" ); - cmd.createArg().setValue( m_keypass ); + cmd.createArgument().setValue( "-keypass" ); + cmd.createArgument().setValue( m_keypass ); } if( null != m_sigfile ) { - cmd.createArg().setValue( "-sigfile" ); - cmd.createArg().setValue( m_sigfile.toString() ); + cmd.createArgument().setValue( "-sigfile" ); + cmd.createArgument().setValue( m_sigfile.toString() ); } if( null != jarTarget ) { - cmd.createArg().setValue( "-signedjar" ); - cmd.createArg().setValue( jarTarget.toString() ); + cmd.createArgument().setValue( "-signedjar" ); + cmd.createArgument().setValue( jarTarget.toString() ); } if( m_verbose ) { - cmd.createArg().setValue( "-verbose" ); + cmd.createArgument().setValue( "-verbose" ); } if( m_internalsf ) { - cmd.createArg().setValue( "-internalsf" ); + cmd.createArgument().setValue( "-internalsf" ); } if( m_sectionsonly ) { - cmd.createArg().setValue( "-sectionsonly" ); + cmd.createArgument().setValue( "-sectionsonly" ); } - cmd.createArg().setValue( jarSource.toString() ); + cmd.createArgument().setValue( jarSource.toString() ); - cmd.createArg().setValue( m_alias ); - - final String message = "Signing Jar : " + jarSource.getAbsolutePath(); - getLogger().info( message ); - cmd.execute(); + cmd.createArgument().setValue( m_alias ); + return cmd; } }