import java.io.*;
import java.util.*;
import org.codehaus.plexus.util.*;

try
{
    File outputFolder = new File( basedir, "target/" );
    
    File testFile = new File( outputFolder, "testfile");
    if ( !testFile.isFile() )
    {
        System.err.println( "Could not find generated file: " + testFile );
        return false;
    }
    
    File depFile = new File( outputFolder, "org/apache/commons/commons-io/1.3.2/commons-io-1.3.2.jar");
    if ( !depFile.isFile() )
    {
        System.err.println( "Could not find copied dependency file: " + depFile );
        return false;
    }
    
}
catch( Throwable t )
{
    t.printStackTrace();
    return false;
}

return true;
