Author: bentmann Date: Fri Feb 20 15:25:37 2009 New Revision: 746277 URL: http://svn.apache.org/viewvc?rev=746277&view=rev Log: o Polished code: - Improved exception handling - Centralized retrieval of report files - Reduced visibility of internal methods
Modified: maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerReport.java Modified: maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerReport.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerReport.java?rev=746277&r1=746276&r2=746277&view=diff ============================================================================== --- maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerReport.java (original) +++ maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerReport.java Fri Feb 20 15:25:37 2009 @@ -130,34 +130,36 @@ sink.text( getText( locale, "report.invoker.result.description" ) ); sink.paragraph_(); sink.section1_(); - + // ---------------------------------- // build buildJob beans // ---------------------------------- - File[] reportFiles = reportsDirectory.listFiles(); - if ( reportFiles == null || reportFiles.length < 1 ) + File[] reportFiles = getReportFiles(); + if ( reportFiles.length <= 0 ) { getLog().info( "no invoker report files found, skip report generation" ); return; } + List buildJobs = new ArrayList( reportFiles.length ); - try + for ( int i = 0, size = reportFiles.length; i < size; i++ ) { - for ( int i = 0, size = reportFiles.length; i < size; i++ ) + File reportFile = reportFiles[i]; + try { BuildJobXpp3Reader reader = new BuildJobXpp3Reader(); - buildJobs.add( reader.read( ReaderFactory.newXmlReader( reportFiles[i] ) ) ); + buildJobs.add( reader.read( ReaderFactory.newXmlReader( reportFile ) ) ); + } + catch ( XmlPullParserException e ) + { + throw new MavenReportException( "Failed to parse report file: " + reportFile, e ); + } + catch ( IOException e ) + { + throw new MavenReportException( "Failed to read report file: " + reportFile, e ); } } - catch ( XmlPullParserException e ) - { - throw new MavenReportException( e.getMessage(), e ); - } - catch ( IOException e ) - { - throw new MavenReportException( e.getMessage(), e ); - } - + // ---------------------------------- // summary // ---------------------------------- @@ -205,7 +207,7 @@ sink.close(); } - protected void constructSummarySection( List /* BuildJob */ buildJobs, Locale locale ) + private void constructSummarySection( List /* BuildJob */ buildJobs, Locale locale ) { Sink sink = getSink(); @@ -276,7 +278,7 @@ } - protected void renderBuildJob( BuildJob buildJob, Locale locale ) + private void renderBuildJob( BuildJob buildJob, Locale locale ) { Sink sink = getSink(); sink.tableRow(); @@ -332,11 +334,22 @@ public boolean canGenerateReport() { - if ( reportsDirectory == null ) + return getReportFiles().length > 0; + } + + /** + * Gets the paths to the available invoker reports to generate the site output from. + * + * @return The paths to the invoker reports, can be empty but never <code>null</code>. + */ + private File[] getReportFiles() + { + File[] reportFiles = ( reportsDirectory != null ) ? reportsDirectory.listFiles() : null; + if ( reportFiles == null ) { - return false; + reportFiles = new File[0]; } - return reportsDirectory.exists() && reportsDirectory.listFiles().length > 0; + return reportFiles; } private String getText( Locale locale, String key )