import java.io.*;

File f = new File( basedir, "child/target/child-1-src/test.txt" );

if ( !f.exists() )
{
    System.out.println( "Filtered file from file-set: " + f + " is missing." );
    return false;
}

StringBuffer sb = new StringBuffer();

FileReader reader = new FileReader( f );
char[] cbuf = new char[16];
int read = -1;
while( ( read = reader.read( cbuf ) ) > -1 )
{
    sb.append( cbuf, 0, read );
}

reader.close();

System.out.println( "Contents of test.txt: '" + sb.toString() + "' should contain the unix newline: '\\n'." );

if ( sb.toString().indexOf( "1\nchild" ) == -1 )
{
    System.out.println( "test.txt has wrong line ending" );
    return false;
}
if ( sb.toString().indexOf( "child\n" ) > -1 )
{
    System.out.println( "test.txt has an extra line ending at the end of the file" );
    return false;
}
return true;