Author: brett Date: Tue Sep 20 19:46:44 2005 New Revision: 290603 URL: http://svn.apache.org/viewcvs?rev=290603&view=rev Log: more cleanup of site plugin
Modified: maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java Modified: maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java?rev=290603&r1=290602&r2=290603&view=diff ============================================================================== --- maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java (original) +++ maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java Tue Sep 20 19:46:44 2005 @@ -77,11 +77,6 @@ private static final String DEFAULT_TEMPLATE = RESOURCE_DIR + "/maven-site.vm"; /** - * OutputName of all reports files generated by Maven - */ - private static List generatedReportsFileName = new ArrayList(); - - /** * Patterns which should be excluded by default. */ // TODO Push me into a shared area (plexus-utils?) @@ -229,8 +224,6 @@ } } - List reports = getReports(); - if ( attributes == null ) { attributes = new HashMap(); @@ -258,16 +251,10 @@ Locale defaultLocale = (Locale) localesList.get( 0 ); Locale.setDefault( defaultLocale ); - List projectInfos = new ArrayList(); - List projectReports = new ArrayList(); - categorizeReports( reports, defaultLocale, projectInfos, projectReports ); - for ( Iterator iterator = localesList.iterator(); iterator.hasNext(); ) { Locale locale = (Locale) iterator.next(); - String siteDescriptor = getSiteDescriptor( reports, locale, projectInfos, projectReports ); - File outputDirectory = getOutputDirectory( locale, defaultLocale ); // Safety @@ -276,14 +263,6 @@ outputDirectory.mkdirs(); } - // Handle the GeneratedSite Directory - File generatedSiteFile = new File( generatedSiteDirectory ); - if ( generatedSiteFile.exists() ) - { - siteRenderer.render( generatedSiteFile, outputDirectory, siteDescriptor, template, attributes, - locale ); - } - // Generate static site File siteDirectoryFile = new File( siteDirectory ); if ( !locale.getLanguage().equals( defaultLocale.getLanguage() ) ) @@ -297,6 +276,10 @@ { tryToFindDuplicates( siteDirectoryFile, duplicate ); } + + // Handle the GeneratedSite Directory + File generatedSiteFile = new File( generatedSiteDirectory ); + if ( generatedSiteFile.exists() ) { tryToFindDuplicates( generatedSiteFile, duplicate ); @@ -309,10 +292,37 @@ throw new MavenReportException( msg ); } + List reports = getReports(); + + Map categories = categorizeReports( reports ); + + List projectInfos = (List) categories.get( MavenReport.CATEGORY_PROJECT_INFORMATION ); + List projectReports = (List) categories.get( MavenReport.CATEGORY_PROJECT_REPORTS ); + + if ( projectInfos == null ) + { + projectInfos = Collections.EMPTY_LIST; + } + + if ( projectReports == null ) + { + projectReports = Collections.EMPTY_LIST; + } + + String siteDescriptor = getSiteDescriptor( reports, locale, projectInfos, projectReports ); + + if ( generatedSiteFile.exists() ) + { + siteRenderer.render( generatedSiteFile, outputDirectory, siteDescriptor, template, attributes, + locale ); + } + //Generate reports + List generatedReportsFileName = Collections.EMPTY_LIST; if ( reports != null ) { - generateReportsPages( reports, locale, outputDirectory, defaultLocale, siteDescriptor ); + generatedReportsFileName = generateReportsPages( reports, locale, outputDirectory, defaultLocale, + siteDescriptor ); } //Generate overview pages @@ -418,26 +428,23 @@ } } - private void categorizeReports( List reports, Locale defaultLocale, List projectInfos, List projectReports ) - throws MojoExecutionException + private Map categorizeReports( List reports ) { + Map categories = new HashMap(); + for ( Iterator i = reports.iterator(); i.hasNext(); ) { MavenReport report = (MavenReport) i.next(); - if ( MavenReport.CATEGORY_PROJECT_INFORMATION.equals( report.getCategoryName() ) ) - { - projectInfos.add( report ); - } - else if ( MavenReport.CATEGORY_PROJECT_REPORTS.equals( report.getCategoryName() ) ) - { - projectReports.add( report ); - } - else + + List category = (List) categories.get( report.getCategoryName() ); + if ( category == null ) { - throw new MojoExecutionException( "'" + report.getCategoryName() + "' category define for " + - report.getName( defaultLocale ) + " mojo isn't valid." ); + category = new ArrayList(); + categories.put( report.getCategoryName(), category ); } + category.add( report ); } + return categories; } /** @@ -741,10 +748,12 @@ * @param locale * @param localeOutputDirectory */ - private void generateReportsPages( List reports, Locale locale, File localeOutputDirectory, Locale defaultLocale, + private List generateReportsPages( List reports, Locale locale, File localeOutputDirectory, Locale defaultLocale, String siteDescriptor ) throws RendererException, IOException, MavenReportException { + List generatedReportsFileName = new ArrayList(); + for ( Iterator j = reports.iterator(); j.hasNext(); ) { MavenReport report = (MavenReport) j.next(); @@ -785,6 +794,7 @@ sink, locale ); } } + return generatedReportsFileName; } private void generateProjectInfoPage( String siteDescriptor, Locale locale, List projectInfos, --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]