import java.io.*;
import java.util.*;
import java.util.regex.*;

try
{
    // make sure the Invoker Plugin was indeed run and the build didn't fail somewhere else
    File touchFile = new File( basedir, "target/it/project/touch.txt" );
    System.out.println( "Checking for existence of touch file: " + touchFile );
    if ( !touchFile.exists() )
    {
        System.out.println( "FAILED!" );
        return false;
    }
}
catch( Throwable t )
{
    t.printStackTrace();
    return false;
}

return true;
