Author: vsiveton Date: Mon Jul 14 08:42:28 2008 New Revision: 676627 URL: http://svn.apache.org/viewvc?rev=676627&view=rev Log: o take care if the repo is blacklisted or not o ping repo url before calling wagon to prevent TransferFailedException o display stacktrace for error logs in dependencyExistsInRepo() only if log is in debug mode o added a new Blacklisted column in Dependency Repository Locations table
Modified: maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/RepositoryUtils.java maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report.properties maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report_fr.properties Modified: maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/RepositoryUtils.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/RepositoryUtils.java?rev=676627&r1=676626&r2=676627&view=diff ============================================================================== --- maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/RepositoryUtils.java (original) +++ maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/RepositoryUtils.java Mon Jul 14 08:42:28 2008 @@ -160,10 +160,20 @@ /** * @param repo not null * @param artifact not null - * @return <code>true</code> if the artifact exists in the given repo, <code>false</ccode> otherwise + * @return <code>true</code> if the artifact exists in the given repo, <code>false</code> otherwise or if + * the repo is blacklisted. */ public boolean dependencyExistsInRepo( ArtifactRepository repo, Artifact artifact ) { + if ( repo.isBlacklisted() ) + { + if ( log.isDebugEnabled() ) + { + log.debug( "The repo '" + repo.getId() + "' is black listed - Ignored it" ); + } + return false; + } + Wagon wagon; try { @@ -205,22 +215,50 @@ } catch ( ConnectionException e ) { - log.error( "Unable to connect to: " + repo.getUrl(), e ); + if ( log.isDebugEnabled() ) + { + log.error( "Unable to connect to: " + repo.getUrl(), e ); + } + else + { + log.error( "Unable to connect to: " + repo.getUrl() ); + } return false; } catch ( AuthenticationException e ) { - log.error( "Unable to connect to: " + repo.getUrl(), e ); + if ( log.isDebugEnabled() ) + { + log.error( "Unable to connect to: " + repo.getUrl(), e ); + } + else + { + log.error( "Unable to connect to: " + repo.getUrl() ); + } return false; } catch ( TransferFailedException e ) { - log.error( "Unable to determine if resource " + artifact + " exists in " + repo.getUrl(), e ); + if ( log.isDebugEnabled() ) + { + log.error( "Unable to determine if resource " + artifact + " exists in " + repo.getUrl(), e ); + } + else + { + log.error( "Unable to determine if resource " + artifact + " exists in " + repo.getUrl() ); + } return false; } catch ( AuthorizationException e ) { - log.error( "Unable to connect to: " + repo.getUrl(), e ); + if ( log.isDebugEnabled() ) + { + log.error( "Unable to connect to: " + repo.getUrl(), e ); + } + else + { + log.error( "Unable to connect to: " + repo.getUrl() ); + } return false; } catch ( AbstractMethodError e ) @@ -236,7 +274,14 @@ } catch ( ConnectionException e ) { - log.error( "Error disconnecting wagon - ignored", e ); + if ( log.isDebugEnabled() ) + { + log.error( "Error disconnecting wagon - ignored", e ); + } + else + { + log.error( "Error disconnecting wagon - ignored" ); + } } } } Modified: maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java?rev=676627&r1=676626&r2=676627&view=diff ============================================================================== --- maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java (original) +++ maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java Mon Jul 14 08:42:28 2008 @@ -21,6 +21,7 @@ import java.io.File; import java.io.IOException; +import java.net.URL; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.text.DecimalFormat; @@ -55,7 +56,6 @@ import org.apache.maven.reporting.AbstractMavenReportRenderer; import org.apache.maven.shared.dependency.tree.DependencyNode; import org.apache.maven.shared.jar.JarData; -import org.apache.maven.wagon.Wagon; import org.codehaus.plexus.i18n.I18N; import org.codehaus.plexus.util.StringUtils; @@ -582,10 +582,55 @@ while ( it.hasNext() ) { ArtifactRepository repo = (ArtifactRepository) it.next(); + repos.put( repo.getId(), repo ); } } + private void blacklistRepositoryMap( Map repos, List repoUrlBlackListed ) + { + for ( Iterator it = repos.keySet().iterator(); it.hasNext(); ) + { + String key = (String) it.next(); + ArtifactRepository repo = (ArtifactRepository) repos.get( key ); + + // ping repo + if ( !repo.isBlacklisted() ) + { + if ( !repoUrlBlackListed.contains( repo.getUrl() ) ) + { + try + { + URL repoUrl = new URL( repo.getUrl() ); + if ( repoUrl.openStream() == null ) + { + log.warn( "The repository url '" + repoUrl + "' has no stream - Repository '" + + repo.getId() + "' will be blacklisted." ); + repo.setBlacklisted( true ); + repoUrlBlackListed.add( repo.getUrl() ); + } + } + catch ( Exception e ) + { + log.warn( "The repository url '" + repo.getUrl() + "' is invalid - Repository '" + repo.getId() + + "' will be blacklisted." ); + repo.setBlacklisted( true ); + repoUrlBlackListed.add( repo.getUrl() ); + } + } + else + { + repo.setBlacklisted( true ); + } + } + else + { + repoUrlBlackListed.add( repo.getUrl() ); + } + } + } + + private void renderSectionDependencyRepositoryLocations() { startSection( getReportString( "report.dependencies.repo.locations.title" ) ); @@ -598,14 +643,12 @@ Map repoMap = new HashMap(); populateRepositoryMap( repoMap, repoUtils.getRemoteArtifactRepositories() ); - for ( Iterator it = alldeps.iterator(); it.hasNext(); ) { Artifact artifact = (Artifact) it.next(); try { MavenProject artifactProject = repoUtils.getMavenProjectFromRepository( artifact ); - populateRepositoryMap( repoMap, artifactProject.getRemoteArtifactRepositories() ); } catch ( ProjectBuildingException e ) @@ -614,6 +657,9 @@ } } + List repoUrlBlackListed = new ArrayList(); + blacklistRepositoryMap( repoMap, repoUrlBlackListed ); + // Render Repository List startTable(); @@ -621,8 +667,17 @@ String url = getReportString( "report.dependencies.repo.locations.column.url" ); String release = getReportString( "report.dependencies.repo.locations.column.release" ); String snapshot = getReportString( "report.dependencies.repo.locations.column.snapshot" ); + String blacklisted = getReportString( "report.dependencies.repo.locations.column.blacklisted" ); - String[] tableHeader = new String[]{repoid, url, release, snapshot}; + String[] tableHeader; + if ( repoUrlBlackListed.isEmpty() ) + { + tableHeader = new String[] { repoid, url, release, snapshot }; + } + else + { + tableHeader = new String[] { repoid, url, release, snapshot, blacklisted }; + } tableHeader( tableHeader ); String releaseEnabled = getReportString( "report.dependencies.repo.locations.cell.release.enabled" ); @@ -631,6 +686,9 @@ String snapshotEnabled = getReportString( "report.dependencies.repo.locations.cell.snapshot.enabled" ); String snapshotDisabled = getReportString( "report.dependencies.repo.locations.cell.snapshot.disabled" ); + String blacklistedEnabled = getReportString( "report.dependencies.repo.locations.cell.blacklisted.enabled" ); + String blacklistedDisabled = getReportString( "report.dependencies.repo.locations.cell.blacklisted.disabled" ); + for ( Iterator it = repoMap.keySet().iterator(); it.hasNext(); ) { String key = (String) it.next(); @@ -640,9 +698,16 @@ tableCell( repo.getId() ); sink.tableCell(); - sink.link( repo.getUrl() ); - sink.text( repo.getUrl() ); - sink.link_(); + if ( repo.isBlacklisted() ) + { + sink.text( repo.getUrl() ); + } + else + { + sink.link( repo.getUrl() ); + sink.text( repo.getUrl() ); + sink.link_(); + } sink.tableCell_(); ArtifactRepositoryPolicy releasePolicy = repo.getReleases(); @@ -650,6 +715,11 @@ ArtifactRepositoryPolicy snapshotPolicy = repo.getSnapshots(); tableCell( snapshotPolicy.isEnabled() ? snapshotEnabled : snapshotDisabled ); + + if ( !repoUrlBlackListed.isEmpty() ) + { + tableCell( repo.isBlacklisted() ? blacklistedEnabled : blacklistedDisabled ); + } sink.tableRow_(); } Modified: maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report.properties URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report.properties?rev=676627&r1=676626&r2=676627&view=diff ============================================================================== --- maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report.properties (original) +++ maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report.properties Mon Jul 14 08:42:28 2008 @@ -73,7 +73,10 @@ report.dependencies.repo.locations.cell.release.enabled = Yes report.dependencies.repo.locations.cell.snapshot.disabled = - report.dependencies.repo.locations.cell.snapshot.enabled = Yes +report.dependencies.repo.locations.cell.blacklisted.disabled = - +report.dependencies.repo.locations.cell.blacklisted.enabled = Yes report.dependencies.repo.locations.column.artifact = Artifact +report.dependencies.repo.locations.column.blacklisted = Blacklisted report.dependencies.repo.locations.column.release = Release report.dependencies.repo.locations.column.repoid = Repo ID report.dependencies.repo.locations.column.snapshot = Snapshot Modified: maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report_fr.properties URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report_fr.properties?rev=676627&r1=676626&r2=676627&view=diff ============================================================================== --- maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report_fr.properties (original) +++ maven/plugins/trunk/maven-project-info-reports-plugin/src/main/resources/project-info-report_fr.properties Mon Jul 14 08:42:28 2008 @@ -73,7 +73,10 @@ report.dependencies.repo.locations.cell.release.enabled = Oui report.dependencies.repo.locations.cell.snapshot.disabled = - report.dependencies.repo.locations.cell.snapshot.enabled = Oui -report.dependencies.repo.locations.column.artifact = artefact +report.dependencies.repo.locations.cell.blacklisted.disabled = - +report.dependencies.repo.locations.cell.blacklisted.enabled = Oui +report.dependencies.repo.locations.column.artifact = Artefact +report.dependencies.repo.locations.column.blacklisted = Blacklist\u00e9 report.dependencies.repo.locations.column.release = D\u00e9gagement report.dependencies.repo.locations.column.repoid = R\u00e9f\u00e9rentiel ID report.dependencies.repo.locations.column.snapshot = Snapshot