catch( BuildException e ) { throw e; }
    public void execute()    {        final Project project = getProject();        final File docs = getContext().getDocsDirectory();        //        // get the directory containing the filtered docs source files        // (normally target/src/docs)        //        final File build = getContext().getBuildDirectory();        final String docsPath = project.getProperty( DOC_SRC_KEY );        if( null == docsPath )        {            final String message =              "Cannot continue as doc src directory not defined.";            log( message );            return;        }        final File srcDir = new File( build, docsPath );        if( !srcDir.exists() )        {            return;        }        log( "Filtered source: " + srcDir.getAbsolutePath() );        //        // create the temporary directory into which we generate the        // navigation structure (normally target/temp/docs)        //        final File temp = getContext().getTempDirectory();        final String tempPath = project.getProperty( DOC_TEMP_KEY );        final File destDir = new File( temp, tempPath );        mkDir( destDir );        //        // get the theme, output formats, etc.        //        log( "Destination: " + docs.getAbsolutePath() );        mkDir( docs );        final String theme = getTheme();        final String output = getOutputFormat();        final File themeRoot = getThemesDirectory();        final File themeDir = new File( themeRoot, theme + "/" + output );        final String resourcesPath = project.getProperty( DOC_RESOURCES_KEY );        final File resources = new File( build, resourcesPath );        log( "Year: " + getYear() );        log( "Theme: " + themeDir );        //        // initiate the transformation starting with the generation of        // the navigation structure based on the src directory content        // into the temporary destingation directory, copy the content        // sources to to the temp directory, transform the content and        // generated navigation in the temp dir using the selected them        // into the final docs directory, and copy over resources to        // the final docs directory        //        try        {            transformNavigation( themeDir, srcDir, destDir );            copySources( srcDir, destDir );            transformDocs( themeDir, destDir, docs );            copyThemeResources( themeDir, docs );            copySrcResources( resources, docs );        }        catch( Throwable e )        {            log( "XSLT execution failed: " + e.getMessage() );            throw new BuildException( e );        }    }