compile( sourceFile, (String) config.getSourceLocations().get( 0 ), config.getOutputLocation(), errors );
ClassLoader classLoader = new URLClassLoader( urls );  SourceCodeLocator sourceCodeLocator = new SourceCodeLocator( config.getSourceLocations() );  INameEnvironment env = new EclipseCompilerINameEnvironment( sourceCodeLocator, classLoader, errors );  IErrorHandlingPolicy policy = DefaultErrorHandlingPolicies.proceedWithAllProblems();  Map settings = new HashMap();  settings.put( CompilerOptions.OPTION_LineNumberAttribute, CompilerOptions.GENERATE );  settings.put( CompilerOptions.OPTION_SourceFileAttribute, CompilerOptions.GENERATE );  settings.put( CompilerOptions.OPTION_ReportDeprecation, CompilerOptions.IGNORE );  if ( sourceEncoding != null ) { settings.put( CompilerOptions.OPTION_Encoding, sourceEncoding );
    public List compile( CompilerConfiguration config )        throws Exception    {        String[] sourceFiles = getSourceFiles( config );        List errors = new LinkedList();        for ( int i = 0; i < sourceFiles.length; i++ )        {            String sourceFile = sourceFiles[ i ];            compile( sourceFile,                     (String) config.getSourceLocations().get( 0 ),                     config.getOutputLocation(),                     errors );        }        return errors;    }