diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/CVSPass.java b/proposal/myrmidon/src/java/org/apache/antlib/cvslib/CVSPass.java
similarity index 99%
rename from proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/CVSPass.java
rename to proposal/myrmidon/src/java/org/apache/antlib/cvslib/CVSPass.java
index 6c82ee6df..dd18ea9ee 100644
--- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/CVSPass.java
+++ b/proposal/myrmidon/src/java/org/apache/antlib/cvslib/CVSPass.java
@@ -5,7 +5,7 @@
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
-package org.apache.tools.ant.taskdefs;
+package org.apache.antlib.cvslib;
import java.io.BufferedReader;
import java.io.File;
diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Cvs.java b/proposal/myrmidon/src/java/org/apache/antlib/cvslib/Cvs.java
similarity index 96%
rename from proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Cvs.java
rename to proposal/myrmidon/src/java/org/apache/antlib/cvslib/Cvs.java
index 3bce941e3..896078724 100644
--- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Cvs.java
+++ b/proposal/myrmidon/src/java/org/apache/antlib/cvslib/Cvs.java
@@ -5,7 +5,7 @@
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
-package org.apache.tools.ant.taskdefs;
+package org.apache.antlib.cvslib;
import java.io.BufferedOutputStream;
import java.io.File;
@@ -16,6 +16,11 @@ import java.io.PrintStream;
import org.apache.myrmidon.api.TaskException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
+import org.apache.tools.ant.taskdefs.ExecuteStreamHandler;
+import org.apache.tools.ant.taskdefs.LogStreamHandler;
+import org.apache.tools.ant.taskdefs.LogOutputStream;
+import org.apache.tools.ant.taskdefs.PumpStreamHandler;
+import org.apache.tools.ant.taskdefs.Execute;
import org.apache.tools.ant.types.Commandline;
import org.apache.tools.ant.types.Environment;
diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/CVSPass.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/CVSPass.java
deleted file mode 100644
index 6c82ee6df..000000000
--- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/CVSPass.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * 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 file.
- */
-package org.apache.tools.ant.taskdefs;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.tools.ant.Task;
-
-/**
- * CVSLogin Adds an new entry to a CVS password file
- *
- * @author Jeff Martin
- * @version $Revision$
- */
-public class CVSPass extends Task
-{
- /**
- * CVS Root
- */
- private String cvsRoot = null;
- /**
- * Password file to add password to
- */
- private File passFile = null;
- /**
- * Password to add to file
- */
- private String password = null;
- /**
- * End of line character
- */
- private final String EOL = System.getProperty( "line.separator" );
-
- /**
- * Array contain char conversion data
- */
- private final char shifts[] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 114, 120, 53, 79, 96, 109, 72, 108, 70, 64, 76, 67, 116, 74, 68, 87,
- 111, 52, 75, 119, 49, 34, 82, 81, 95, 65, 112, 86, 118, 110, 122, 105,
- 41, 57, 83, 43, 46, 102, 40, 89, 38, 103, 45, 50, 42, 123, 91, 35,
- 125, 55, 54, 66, 124, 126, 59, 47, 92, 71, 115, 78, 88, 107, 106, 56,
- 36, 121, 117, 104, 101, 100, 69, 73, 99, 63, 94, 93, 39, 37, 61, 48,
- 58, 113, 32, 90, 44, 98, 60, 51, 33, 97, 62, 77, 84, 80, 85, 223,
- 225, 216, 187, 166, 229, 189, 222, 188, 141, 249, 148, 200, 184, 136, 248, 190,
- 199, 170, 181, 204, 138, 232, 218, 183, 255, 234, 220, 247, 213, 203, 226, 193,
- 174, 172, 228, 252, 217, 201, 131, 230, 197, 211, 145, 238, 161, 179, 160, 212,
- 207, 221, 254, 173, 202, 146, 224, 151, 140, 196, 205, 130, 135, 133, 143, 246,
- 192, 159, 244, 239, 185, 168, 215, 144, 139, 165, 180, 157, 147, 186, 214, 176,
- 227, 231, 219, 169, 175, 156, 206, 198, 129, 164, 150, 210, 154, 177, 134, 127,
- 182, 128, 158, 208, 162, 132, 167, 209, 149, 241, 153, 251, 237, 236, 171, 195,
- 243, 233, 253, 240, 194, 250, 191, 155, 142, 137, 245, 235, 163, 242, 178, 152};
-
- public CVSPass()
- {
- passFile = new File( System.getProperty( "user.home" ) + "/.cvspass" );
- }
-
- /**
- * Sets cvs root to be added to the password file
- *
- * @param cvsRoot The new Cvsroot value
- */
- public void setCvsroot( String cvsRoot )
- {
- this.cvsRoot = cvsRoot;
- }
-
- /**
- * Sets the password file attribute.
- *
- * @param passFile The new Passfile value
- */
- public void setPassfile( File passFile )
- {
- this.passFile = passFile;
- }
-
- /**
- * Sets the password attribute.
- *
- * @param password The new Password value
- */
- public void setPassword( String password )
- {
- this.password = password;
- }
-
- /**
- * Does the work.
- *
- * @exception TaskException if someting goes wrong with the build
- */
- public final void execute()
- throws TaskException
- {
- if( cvsRoot == null )
- throw new TaskException( "cvsroot is required" );
- if( password == null )
- throw new TaskException( "password is required" );
-
- log( "cvsRoot: " + cvsRoot, project.MSG_DEBUG );
- log( "password: " + password, project.MSG_DEBUG );
- log( "passFile: " + passFile, project.MSG_DEBUG );
-
- try
- {
- StringBuffer buf = new StringBuffer();
-
- if( passFile.exists() )
- {
- BufferedReader reader =
- new BufferedReader( new FileReader( passFile ) );
-
- String line = null;
-
- while( ( line = reader.readLine() ) != null )
- {
- if( !line.startsWith( cvsRoot ) )
- {
- buf.append( line + EOL );
- }
- }
-
- reader.close();
- }
-
- String pwdfile = buf.toString() + cvsRoot + " A" + mangle( password );
-
- log( "Writing -> " + pwdfile, project.MSG_DEBUG );
-
- PrintWriter writer = new PrintWriter( new FileWriter( passFile ) );
-
- writer.println( pwdfile );
-
- writer.close();
- }
- catch( IOException e )
- {
- throw new TaskException( "Error", e );
- }
-
- }
-
- private final String mangle( String password )
- {
- StringBuffer buf = new StringBuffer();
- for( int i = 0; i < password.length(); i++ )
- {
- buf.append( shifts[ password.charAt( i ) ] );
- }
- return buf.toString();
- }
-
-}
diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Cvs.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Cvs.java
deleted file mode 100644
index 3bce941e3..000000000
--- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Cvs.java
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
- * 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 file.
- */
-package org.apache.tools.ant.taskdefs;
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.types.Commandline;
-import org.apache.tools.ant.types.Environment;
-
-/**
- * @author costin@dnt.ro
- * @author stefano@apache.org
- * @author Wolfgang Werner
- * wwerner@picturesafe.de
- */
-
-public class Cvs extends Task
-{
-
- private Commandline cmd = new Commandline();
-
- /**
- * the CVS command to execute.
- */
- private String command = "checkout";
-
- /**
- * suppress information messages.
- */
- private boolean quiet = false;
-
- /**
- * report only, don't change any files.
- */
- private boolean noexec = false;
-
- /**
- * CVS port
- */
- private int port = 0;
-
- /**
- * CVS password file
- */
- private File passFile = null;
-
- /**
- * If true it will stop the build if cvs exits with error. Default is false.
- * (Iulian)
- */
- private boolean failOnError = false;
-
- /**
- * the CVSROOT variable.
- */
- private String cvsRoot;
-
- /**
- * the CVS_RSH variable.
- */
- private String cvsRsh;
-
- /**
- * the directory where the checked out files should be placed.
- */
- private File dest;
-
- /**
- * the file to direct standard error from the command.
- */
- private File error;
-
- /**
- * the file to direct standard output from the command.
- */
- private File output;
-
- /**
- * the package/module to check out.
- */
- private String pack;
-
- public void setCommand( String c )
- {
- this.command = c;
- }
-
- public void setCvsRoot( String root )
- {
- // Check if not real cvsroot => set it to null
- if( root != null )
- {
- if( root.trim().equals( "" ) )
- root = null;
- }
-
- this.cvsRoot = root;
- }
-
- public void setCvsRsh( String rsh )
- {
- // Check if not real cvsrsh => set it to null
- if( rsh != null )
- {
- if( rsh.trim().equals( "" ) )
- rsh = null;
- }
-
- this.cvsRsh = rsh;
- }
-
- public void setDate( String p )
- {
- if( p != null && p.trim().length() > 0 )
- {
- cmd.createArgument().setValue( "-D" );
- cmd.createArgument().setValue( p );
- }
- }
-
- public void setDest( File dest )
- {
- this.dest = dest;
- }
-
- public void setError( File error )
- {
- this.error = error;
- }
-
- public void setFailOnError( boolean failOnError )
- {
- this.failOnError = failOnError;
- }
-
- public void setNoexec( boolean ne )
- {
- noexec = ne;
- }
-
- public void setOutput( File output )
- {
- this.output = output;
- }
-
- public void setPackage( String p )
- {
- this.pack = p;
- }
-
- public void setPassfile( File passFile )
- {
- this.passFile = passFile;
- }
-
- public void setPort( int port )
- {
- this.port = port;
- }
-
- public void setQuiet( boolean q )
- {
- quiet = q;
- }
-
- public void setTag( String p )
- {
- // Check if not real tag => set it to null
- if( p != null && p.trim().length() > 0 )
- {
- cmd.createArgument().setValue( "-r" );
- cmd.createArgument().setValue( p );
- }
- }
-
- public void execute()
- throws TaskException
- {
- // XXX: we should use JCVS (www.ice.com/JCVS) instead of command line
- // execution so that we don't rely on having native CVS stuff around (SM)
-
- // We can't do it ourselves as jCVS is GPLed, a third party task
- // outside of jakarta repositories would be possible though (SB).
-
- Commandline toExecute = new Commandline();
-
- toExecute.setExecutable( "cvs" );
- if( cvsRoot != null )
- {
- toExecute.createArgument().setValue( "-d" );
- toExecute.createArgument().setValue( cvsRoot );
- }
- if( noexec )
- {
- toExecute.createArgument().setValue( "-n" );
- }
- if( quiet )
- {
- toExecute.createArgument().setValue( "-q" );
- }
- toExecute.createArgument().setLine( command );
- toExecute.addArguments( cmd.getCommandline() );
-
- if( pack != null )
- {
- toExecute.createArgument().setLine( pack );
- }
-
- Environment env = new Environment();
-
- if( port > 0 )
- {
- Environment.Variable var = new Environment.Variable();
- var.setKey( "CVS_CLIENT_PORT" );
- var.setValue( String.valueOf( port ) );
- env.addVariable( var );
- }
-
- if( passFile != null )
- {
- Environment.Variable var = new Environment.Variable();
- var.setKey( "CVS_PASSFILE" );
- var.setValue( String.valueOf( passFile ) );
- env.addVariable( var );
- }
-
- if( cvsRsh != null )
- {
- Environment.Variable var = new Environment.Variable();
- var.setKey( "CVS_RSH" );
- var.setValue( String.valueOf( cvsRsh ) );
- env.addVariable( var );
- }
-
- ExecuteStreamHandler streamhandler = null;
- OutputStream outputstream = null;
- OutputStream errorstream = null;
- if( error == null && output == null )
- {
- streamhandler = new LogStreamHandler( this, Project.MSG_INFO,
- Project.MSG_WARN );
- }
- else
- {
- if( output != null )
- {
- try
- {
- outputstream = new PrintStream( new BufferedOutputStream( new FileOutputStream( output ) ) );
- }
- catch( IOException e )
- {
- throw new TaskException( e.toString(), e );
- }
- }
- else
- {
- outputstream = new LogOutputStream( this, Project.MSG_INFO );
- }
- if( error != null )
- {
- try
- {
- errorstream = new PrintStream( new BufferedOutputStream( new FileOutputStream( error ) ) );
- }
- catch( IOException e )
- {
- throw new TaskException( e.toString(), e );
- }
- }
- else
- {
- errorstream = new LogOutputStream( this, Project.MSG_WARN );
- }
- streamhandler = new PumpStreamHandler( outputstream, errorstream );
- }
-
- Execute exe = new Execute( streamhandler,
- null );
-
- exe.setAntRun( project );
- if( dest == null ) dest = getBaseDirectory();
- exe.setWorkingDirectory( dest );
-
- exe.setCommandline( toExecute.getCommandline() );
- exe.setEnvironment( env.getVariables() );
- try
- {
- int retCode = exe.execute();
- /*
- * Throw an exception if cvs exited with error. (Iulian)
- */
- if( failOnError && retCode != 0 )
- throw new TaskException( "cvs exited with error code " + retCode );
- }
- catch( IOException e )
- {
- throw new TaskException( e.toString(), e );
- }
- finally
- {
- if( output != null )
- {
- try
- {
- outputstream.close();
- }
- catch( IOException e )
- {
- }
- }
- if( error != null )
- {
- try
- {
- errorstream.close();
- }
- catch( IOException e )
- {
- }
- }
- }
- }
-}
-