This is an automated email from the ASF dual-hosted git repository. rfscholte pushed a commit to branch MPIR-367 in repository https://gitbox.apache.org/repos/asf/maven-project-info-reports-plugin.git
commit da3aa3e07e35963b4150b179f14209fddad0c126 Author: rfscholte <rfscho...@apache.org> AuthorDate: Sat Apr 7 14:14:40 2018 +0200 [MPIR-367] Remove Dependency Repository Locations from dependency report Remove wagon --- pom.xml | 26 -- src/it/full-pom/verify.bsh | 17 - .../report/projectinfo/DependenciesReport.java | 30 +- .../projectinfo/DependencyManagementReport.java | 11 +- .../DependenciesReportConfiguration.java | 14 +- .../projectinfo/dependencies/RepositoryUtils.java | 197 +---------- .../renderer/DependenciesRenderer.java | 385 +-------------------- 7 files changed, 7 insertions(+), 673 deletions(-) diff --git a/pom.xml b/pom.xml index d3a991e..ecdd8ce 100644 --- a/pom.xml +++ b/pom.xml @@ -120,7 +120,6 @@ under the License. <doxiaVersion>1.6</doxiaVersion> <doxia-sitetoolsVersion>1.6</doxia-sitetoolsVersion> <mavenVersion>2.2.1</mavenVersion> - <wagonVersion>2.10</wagonVersion> <scmVersion>1.9.5</scmVersion> <sitePluginVersion>3.5.1</sitePluginVersion> </properties> @@ -200,31 +199,6 @@ under the License. <version>1.4</version> </dependency> - <!-- Wagon --> - <dependency> - <groupId>org.apache.maven.wagon</groupId> - <artifactId>wagon-provider-api</artifactId> - <version>${wagonVersion}</version> - </dependency> - <dependency> - <groupId>org.apache.maven.wagon</groupId> - <artifactId>wagon-ssh</artifactId> - <version>${wagonVersion}</version> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>org.apache.maven.wagon</groupId> - <artifactId>wagon-file</artifactId> - <version>${wagonVersion}</version> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>org.apache.maven.wagon</groupId> - <artifactId>wagon-http-lightweight</artifactId> - <version>${wagonVersion}</version> - <scope>runtime</scope> - </dependency> - <!-- SCM --> <dependency> <groupId>org.apache.maven.scm</groupId> diff --git a/src/it/full-pom/verify.bsh b/src/it/full-pom/verify.bsh index 314810f..369aae3 100644 --- a/src/it/full-pom/verify.bsh +++ b/src/it/full-pom/verify.bsh @@ -98,23 +98,6 @@ try System.err.println( "dependencies.html doesn't contain doxia-core-1.2.jar" ); return false; } - if ( !content.contains( "<td>central</td>" ) ) - { - if ( content.contains( "<td>mirror-test</td><td><a class=\"externalLink\" href=\"http://mirrors.ibiblio.org/pub/mirrors/maven2/\">http://mirrors.ibiblio.org/pub/mirrors/maven2/</a></td>" ) ) - { - System.err.println( "MPIR-244: 'Dependency Repository Locations' in dependencies.html doesn't refer to central repository but mirror-test which is its corresponding mirror." ); - } - else - { - System.err.println( "[ERROR] 'Dependency Repository Locations' in dependencies.html doesn't refer to central repository nor mirror-test." ); - } - return false; - } - if ( content.contains( "<th>mirror-test</th>" ) ) - { - // MPIR-267, not fixed yet: just display ERROR but do not fail - System.err.println( "[ERROR] 'Repository locations for each of the Dependencies.' in dependencies.html doesn't refer to central repository but mirror-test." ); - } // MPIR-216: dependency with range File dependencyMgmt = new File( siteDir, "dependency-management.html"); diff --git a/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java b/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java index 6756807..76f8028 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/DependenciesReport.java @@ -30,7 +30,6 @@ import java.io.OutputStream; import java.util.Locale; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.factory.ArtifactFactory; -import org.apache.maven.artifact.manager.WagonManager; import org.apache.maven.artifact.metadata.ArtifactMetadataSource; import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager; import org.apache.maven.artifact.resolver.filter.ArtifactFilter; @@ -85,14 +84,6 @@ public class DependenciesReport protected ArtifactMetadataSource artifactMetadataSource; /** - * Wagon manager component. - * - * @since 2.1 - */ - @Component - private WagonManager wagonManager; - - /** * Dependency graph builder component. * * @since 2.5 @@ -137,15 +128,6 @@ public class DependenciesReport @Parameter( property = "dependency.details.enabled", defaultValue = "true" ) private boolean dependencyDetailsEnabled; - /** - * Display the repository locations of the dependencies. If Maven is configured to be offline, this parameter - * will be ignored. - * - * @since 2.1 - */ - @Parameter( property = "dependency.locations.enabled", defaultValue = "true" ) - private boolean dependencyLocationsEnabled; - // ---------------------------------------------------------------------- // Public methods // ---------------------------------------------------------------------- @@ -168,12 +150,6 @@ public class DependenciesReport @Override public void executeReport( Locale locale ) { - if ( settings.isOffline() && dependencyLocationsEnabled ) - { - getLog().warn( "The parameter 'dependencyLocationsEnabled' is ignored in offline mode." ); - dependencyLocationsEnabled = false; - } - try { copyResources( new File( getOutputDirectory() ) ); @@ -184,7 +160,7 @@ public class DependenciesReport } @SuppressWarnings( "unchecked" ) RepositoryUtils repoUtils = - new RepositoryUtils( getLog(), wagonManager, settings, mavenProjectBuilder, factory, resolver, + new RepositoryUtils( getLog(), mavenProjectBuilder, factory, resolver, project.getRemoteArtifactRepositories(), project.getPluginArtifactRepositories(), localRepository, repositoryMetadataManager ); @@ -193,10 +169,10 @@ public class DependenciesReport Dependencies dependencies = new Dependencies( project, dependencyNode, classesAnalyzer ); DependenciesReportConfiguration config = - new DependenciesReportConfiguration( dependencyDetailsEnabled, dependencyLocationsEnabled ); + new DependenciesReportConfiguration( dependencyDetailsEnabled ); DependenciesRenderer r = - new DependenciesRenderer( getSink(), locale, getI18N( locale ), getLog(), settings, dependencies, + new DependenciesRenderer( getSink(), locale, getI18N( locale ), getLog(), dependencies, dependencyNode, config, repoUtils, artifactFactory, mavenProjectBuilder, remoteRepositories, localRepository ); r.render(); diff --git a/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java b/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java index e5b990d..b6ce4b7 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java +++ b/src/main/java/org/apache/maven/report/projectinfo/DependencyManagementReport.java @@ -20,7 +20,6 @@ package org.apache.maven.report.projectinfo; */ import org.apache.maven.artifact.factory.ArtifactFactory; -import org.apache.maven.artifact.manager.WagonManager; import org.apache.maven.artifact.metadata.ArtifactMetadataSource; import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager; import org.apache.maven.plugins.annotations.Component; @@ -69,14 +68,6 @@ public class DependencyManagementReport private ArtifactFactory artifactFactory; /** - * Wagon manager component. - * - * @since 2.3 - */ - @Component - private WagonManager wagonManager; - - /** * Repository metadata component. * * @since 2.3 @@ -113,7 +104,7 @@ public class DependencyManagementReport public void executeReport( Locale locale ) { @SuppressWarnings( "unchecked" ) RepositoryUtils repoUtils = - new RepositoryUtils( getLog(), wagonManager, settings, mavenProjectBuilder, factory, resolver, + new RepositoryUtils( getLog(), mavenProjectBuilder, factory, resolver, project.getRemoteArtifactRepositories(), project.getPluginArtifactRepositories(), localRepository, repositoryMetadataManager ); diff --git a/src/main/java/org/apache/maven/report/projectinfo/dependencies/DependenciesReportConfiguration.java b/src/main/java/org/apache/maven/report/projectinfo/dependencies/DependenciesReportConfiguration.java index f86343d..db3f2ea 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/dependencies/DependenciesReportConfiguration.java +++ b/src/main/java/org/apache/maven/report/projectinfo/dependencies/DependenciesReportConfiguration.java @@ -29,16 +29,12 @@ public class DependenciesReportConfiguration { private boolean dependencyDetailsEnabled; - private boolean dependencyLocationsEnabled; - /** * @param detailsEnabled whether details is enabled. - * @param locationEnabled whether location is enabled. */ - public DependenciesReportConfiguration( boolean detailsEnabled, boolean locationEnabled ) + public DependenciesReportConfiguration( boolean detailsEnabled ) { this.dependencyDetailsEnabled = detailsEnabled; - this.dependencyLocationsEnabled = locationEnabled; } /** @@ -48,12 +44,4 @@ public class DependenciesReportConfiguration { return dependencyDetailsEnabled; } - - /** - * @return value of Mojo dependencyLocationsEnabled parameter. - */ - public boolean getDependencyLocationsEnabled() - { - return dependencyLocationsEnabled; - } } diff --git a/src/main/java/org/apache/maven/report/projectinfo/dependencies/RepositoryUtils.java b/src/main/java/org/apache/maven/report/projectinfo/dependencies/RepositoryUtils.java index 25346b6..81ead9d 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/dependencies/RepositoryUtils.java +++ b/src/main/java/org/apache/maven/report/projectinfo/dependencies/RepositoryUtils.java @@ -19,15 +19,12 @@ package org.apache.maven.report.projectinfo.dependencies; * under the License. */ -import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.ArtifactUtils; import org.apache.maven.artifact.factory.ArtifactFactory; -import org.apache.maven.artifact.manager.WagonConfigurationException; -import org.apache.maven.artifact.manager.WagonManager; import org.apache.maven.artifact.metadata.ArtifactMetadata; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.metadata.Metadata; @@ -41,18 +38,6 @@ import org.apache.maven.plugin.logging.Log; import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProjectBuilder; import org.apache.maven.project.ProjectBuildingException; -import org.apache.maven.settings.Proxy; -import org.apache.maven.settings.Settings; -import org.apache.maven.wagon.ConnectionException; -import org.apache.maven.wagon.TransferFailedException; -import org.apache.maven.wagon.UnsupportedProtocolException; -import org.apache.maven.wagon.Wagon; -import org.apache.maven.wagon.authentication.AuthenticationException; -import org.apache.maven.wagon.authentication.AuthenticationInfo; -import org.apache.maven.wagon.authorization.AuthorizationException; -import org.apache.maven.wagon.observers.Debug; -import org.apache.maven.wagon.proxy.ProxyInfo; -import org.apache.maven.wagon.repository.Repository; import org.codehaus.plexus.util.StringUtils; /** @@ -63,14 +48,8 @@ import org.codehaus.plexus.util.StringUtils; */ public class RepositoryUtils { - private static final List<String> UNKNOWN_HOSTS = new ArrayList<String>(); - private final Log log; - private final WagonManager wagonManager; - - private final Settings settings; - private final MavenProjectBuilder mavenProjectBuilder; private final ArtifactFactory factory; @@ -85,8 +64,6 @@ public class RepositoryUtils /** * @param log {@link Log} - * @param wagonManager {@link WagonManager} - * @param settings {@link Settings} * @param mavenProjectBuilder {@link MavenProjectBuilder} * @param factory {@link ArtifactFactory} * @param resolver {@link ArtifactResolver} @@ -95,15 +72,12 @@ public class RepositoryUtils * @param localRepository {@link ArtifactRepository} * @param repositoryMetadataManager {@link RepositoryMetadataManager} */ - public RepositoryUtils( Log log, WagonManager wagonManager, Settings settings, - MavenProjectBuilder mavenProjectBuilder, ArtifactFactory factory, + public RepositoryUtils( Log log, MavenProjectBuilder mavenProjectBuilder, ArtifactFactory factory, ArtifactResolver resolver, List<ArtifactRepository> remoteRepositories, List<ArtifactRepository> pluginRepositories, ArtifactRepository localRepository, RepositoryMetadataManager repositoryMetadataManager ) { this.log = log; - this.wagonManager = wagonManager; - this.settings = settings; this.mavenProjectBuilder = mavenProjectBuilder; this.factory = factory; this.resolver = resolver; @@ -154,127 +128,6 @@ public class RepositoryUtils } /** - * @param repo not null - * @param artifact not null - * @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; - } - - if ( UNKNOWN_HOSTS.contains( repo.getUrl() ) ) - { - if ( log.isDebugEnabled() ) - { - log.debug( "The repo url '" + repo.getUrl() + "' is unknown - Ignored it" ); - } - return false; - } - - repo = wagonManager.getMirrorRepository( repo ); - - String id = repo.getId(); - Repository repository = new Repository( id, repo.getUrl() ); - - Wagon wagon; - try - { - wagon = wagonManager.getWagon( repository ); - } - catch ( UnsupportedProtocolException e ) - { - logError( "Unsupported protocol: '" + repo.getProtocol() + "'", e ); - return false; - } - catch ( WagonConfigurationException e ) - { - logError( "Unsupported protocol: '" + repo.getProtocol() + "'", e ); - return false; - } - - wagon.setTimeout( 1000 ); - - if ( log.isDebugEnabled() ) - { - Debug debug = new Debug(); - - wagon.addSessionListener( debug ); - wagon.addTransferListener( debug ); - } - - try - { - // FIXME when upgrading to maven 3.x : this must be changed. - AuthenticationInfo auth = wagonManager.getAuthenticationInfo( repo.getId() ); - - ProxyInfo proxyInfo = getProxyInfo(); - if ( proxyInfo != null ) - { - wagon.connect( repository, auth, proxyInfo ); - } - else - { - wagon.connect( repository, auth ); - } - - return wagon.resourceExists( StringUtils.replace( getDependencyUrlFromRepository( artifact, repo ), - repo.getUrl(), "" ) ); - } - catch ( ConnectionException e ) - { - logError( "Unable to connect to: " + repo.getUrl(), e ); - return false; - } - catch ( AuthenticationException e ) - { - logError( "Unable to connect to: " + repo.getUrl(), e ); - return false; - } - catch ( TransferFailedException e ) - { - if ( e.getCause() instanceof UnknownHostException ) - { - log.error( "Unknown host " + e.getCause().getMessage() + " - ignored it" ); - UNKNOWN_HOSTS.add( repo.getUrl() ); - } - else - { - logError( "Unable to determine if resource " + artifact + " exists in " + repo.getUrl(), e ); - } - return false; - } - catch ( AuthorizationException e ) - { - logError( "Unable to connect to: " + repo.getUrl(), e ); - return false; - } - catch ( AbstractMethodError e ) - { - log.error( "Wagon " + wagon.getClass().getName() + " does not support the resourceExists method" ); - return false; - } - finally - { - try - { - wagon.disconnect(); - } - catch ( ConnectionException e ) - { - logError( "Error disconnecting wagon - ignored", e ); - } - } - } - - /** * Get the <code>Maven project</code> from the repository depending the <code>Artifact</code> given. * * @param artifact an artifact @@ -363,52 +216,4 @@ public class RepositoryUtils return repo.getUrl() + "/" + repo.pathOf( copyArtifact ); } - - // ---------------------------------------------------------------------- - // Private methods - // ---------------------------------------------------------------------- - - /** - * Convenience method to map a <code>Proxy</code> object from the user system settings to a <code>ProxyInfo</code> - * object. - * - * @return a proxyInfo object instanced or null if no active proxy is define in the settings.xml - */ - private ProxyInfo getProxyInfo() - { - if ( settings == null || settings.getActiveProxy() == null ) - { - return null; - } - - Proxy settingsProxy = settings.getActiveProxy(); - - ProxyInfo proxyInfo = new ProxyInfo(); - proxyInfo.setHost( settingsProxy.getHost() ); - proxyInfo.setType( settingsProxy.getProtocol() ); - proxyInfo.setPort( settingsProxy.getPort() ); - proxyInfo.setNonProxyHosts( settingsProxy.getNonProxyHosts() ); - proxyInfo.setUserName( settingsProxy.getUsername() ); - proxyInfo.setPassword( settingsProxy.getPassword() ); - - return proxyInfo; - } - - /** - * Log an error, adding the stacktrace only is debug is enabled. - * - * @param message the error message - * @param e the cause - */ - private void logError( String message, Exception e ) - { - if ( log.isDebugEnabled() ) - { - log.error( message, e ); - } - else - { - log.error( message ); - } - } } diff --git a/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java b/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java index 327ac79..87a2f93 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java +++ b/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java @@ -23,8 +23,6 @@ import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; -import java.lang.reflect.InvocationTargetException; -import java.net.URL; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.text.FieldPosition; @@ -44,7 +42,6 @@ import java.util.TreeSet; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.factory.ArtifactFactory; import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy; import org.apache.maven.artifact.resolver.ArtifactNotFoundException; import org.apache.maven.artifact.resolver.ArtifactResolutionException; import org.apache.maven.doxia.sink.Sink; @@ -61,7 +58,6 @@ import org.apache.maven.report.projectinfo.ProjectInfoReportUtils; import org.apache.maven.report.projectinfo.dependencies.Dependencies; import org.apache.maven.report.projectinfo.dependencies.DependenciesReportConfiguration; import org.apache.maven.report.projectinfo.dependencies.RepositoryUtils; -import org.apache.maven.settings.Settings; import org.apache.maven.shared.dependency.graph.DependencyNode; import org.apache.maven.shared.jar.JarData; import org.codehaus.plexus.i18n.I18N; @@ -95,8 +91,6 @@ public class DependenciesRenderer private final Log log; - private final Settings settings; - private final RepositoryUtils repoUtils; /** Used to format file length values */ @@ -160,7 +154,6 @@ public class DependenciesRenderer * @param locale {@link Locale} * @param i18n {@link I18N} * @param log {@link Log} - * @param settings {@link Settings} * @param dependencies {@link Dependencies} * @param dependencyTreeNode {@link DependencyNode} * @param config {@link DependenciesReportConfiguration} @@ -170,7 +163,7 @@ public class DependenciesRenderer * @param remoteRepositories {@link ArtifactRepository} * @param localRepository {@link ArtifactRepository} */ - public DependenciesRenderer( Sink sink, Locale locale, I18N i18n, Log log, Settings settings, + public DependenciesRenderer( Sink sink, Locale locale, I18N i18n, Log log, Dependencies dependencies, DependencyNode dependencyTreeNode, DependenciesReportConfiguration config, RepositoryUtils repoUtils, ArtifactFactory artifactFactory, MavenProjectBuilder mavenProjectBuilder, @@ -179,7 +172,6 @@ public class DependenciesRenderer super( sink, i18n, locale ); this.log = log; - this.settings = settings; this.dependencies = dependencies; this.dependencyNode = dependencyTreeNode; this.repoUtils = repoUtils; @@ -239,12 +231,6 @@ public class DependenciesRenderer // === Section: Dependency File Details. renderSectionDependencyFileDetails(); } - - if ( configuration.getDependencyLocationsEnabled() ) - { - // === Section: Dependency Repository Locations. - renderSectionDependencyRepositoryLocations(); - } } // ---------------------------------------------------------------------- @@ -732,94 +718,6 @@ public class DependenciesRenderer "", "", "" } ); } - private void populateRepositoryMap( Map<String, ArtifactRepository> repos, List<ArtifactRepository> rowRepos ) - { - for ( ArtifactRepository repo : rowRepos ) - { - repos.put( repo.getId(), repo ); - } - } - - private void blacklistRepositoryMap( Map<String, ArtifactRepository> repos, List<String> repoUrlBlackListed ) - { - for ( ArtifactRepository repo : repos.values() ) - { - // ping repo - if ( repo.isBlacklisted() ) - { - repoUrlBlackListed.add( repo.getUrl() ); - } - else - { - if ( repoUrlBlackListed.contains( repo.getUrl() ) ) - { - repo.setBlacklisted( true ); - } - else - { - try - { - URL repoUrl = new URL( repo.getUrl() ); - if ( ProjectInfoReportUtils.getContent( repoUrl, settings ) == null ) - { - log.warn( "The repository url '" + repoUrl + "' has no stream - Repository '" - + repo.getId() + "' will be blacklisted." ); - repo.setBlacklisted( true ); - repoUrlBlackListed.add( repo.getUrl() ); - } - } - catch ( IOException e ) - { - log.warn( "The repository url '" + repo.getUrl() + "' is invalid - Repository '" + repo.getId() - + "' will be blacklisted." ); - repo.setBlacklisted( true ); - repoUrlBlackListed.add( repo.getUrl() ); - } - } - } - } - } - - @SuppressWarnings( "unchecked" ) - private void renderSectionDependencyRepositoryLocations() - { - startSection( getI18nString( "repo.locations.title" ) ); - - // Collect Alphabetical Dependencies - List<Artifact> alldeps = dependencies.getAllDependencies(); - Collections.sort( alldeps, getArtifactComparator() ); - - // Collect Repositories - Map<String, ArtifactRepository> repoMap = new HashMap<String, ArtifactRepository>(); - - populateRepositoryMap( repoMap, repoUtils.getRemoteArtifactRepositories() ); - for ( Artifact artifact : alldeps ) - { - try - { - MavenProject artifactProject = repoUtils.getMavenProjectFromRepository( artifact ); - populateRepositoryMap( repoMap, artifactProject.getRemoteArtifactRepositories() ); - } - catch ( ProjectBuildingException e ) - { - log.warn( "Unable to create Maven project from repository for artifact " + artifact.getId(), e ); - } - } - - List<String> repoUrlBlackListed = new ArrayList<String>(); - blacklistRepositoryMap( repoMap, repoUrlBlackListed ); - - // Render Repository List - - printRepositories( repoMap, repoUrlBlackListed ); - - // Render Artifacts locations - - printArtifactsLocations( repoMap, repoUrlBlackListed, alldeps ); - - endSection(); - } - private void renderSectionDependencyLicenseListing() { startSection( getI18nString( "graph.tables.licenses" ) ); @@ -1161,102 +1059,6 @@ public class DependenciesRenderer } } - private void printRepositories( Map<String, ArtifactRepository> repoMap, List<String> repoUrlBlackListed ) - { - // i18n - String repoid = getI18nString( "repo.locations.column.repoid" ); - String url = getI18nString( "repo.locations.column.url" ); - String release = getI18nString( "repo.locations.column.release" ); - String snapshot = getI18nString( "repo.locations.column.snapshot" ); - String blacklisted = getI18nString( "repo.locations.column.blacklisted" ); - String releaseEnabled = getI18nString( "repo.locations.cell.release.enabled" ); - String releaseDisabled = getI18nString( "repo.locations.cell.release.disabled" ); - String snapshotEnabled = getI18nString( "repo.locations.cell.snapshot.enabled" ); - String snapshotDisabled = getI18nString( "repo.locations.cell.snapshot.disabled" ); - String blacklistedEnabled = getI18nString( "repo.locations.cell.blacklisted.enabled" ); - String blacklistedDisabled = getI18nString( "repo.locations.cell.blacklisted.disabled" ); - - // Table header - - String[] tableHeader; - int[] justificationRepo; - if ( repoUrlBlackListed.isEmpty() ) - { - tableHeader = new String[] { repoid, url, release, snapshot }; - justificationRepo = - new int[] { Sink.JUSTIFY_LEFT, Sink.JUSTIFY_LEFT, Sink.JUSTIFY_CENTER, Sink.JUSTIFY_CENTER }; - } - else - { - tableHeader = new String[] { repoid, url, release, snapshot, blacklisted }; - justificationRepo = - new int[] { Sink.JUSTIFY_LEFT, Sink.JUSTIFY_LEFT, Sink.JUSTIFY_CENTER, Sink.JUSTIFY_CENTER, - Sink.JUSTIFY_CENTER }; - } - - startTable( justificationRepo, false ); - - tableHeader( tableHeader ); - - // Table rows - - for ( ArtifactRepository repo : repoMap.values() ) - { - List<ArtifactRepository> mirroredRepos = getMirroredRepositories( repo ); - - sink.tableRow(); - sink.tableCell(); - boolean addLineBreak = false; - for ( ArtifactRepository r : mirroredRepos ) - { - if ( addLineBreak ) - { - sink.lineBreak(); - } - addLineBreak = true; - sink.text( r.getId() ); - } - sink.tableCell_(); - - sink.tableCell(); - addLineBreak = false; - for ( ArtifactRepository r : mirroredRepos ) - { - if ( addLineBreak ) - { - sink.lineBreak(); - } - addLineBreak = true; - if ( repo.isBlacklisted() ) - { - sink.text( r.getUrl() ); - } - else - { - sink.link( r.getUrl() ); - sink.text( r.getUrl() ); - sink.link_(); - } - } - sink.tableCell_(); - - ArtifactRepositoryPolicy releasePolicy = repo.getReleases(); - tableCell( releasePolicy.isEnabled() ? releaseEnabled : releaseDisabled ); - - ArtifactRepositoryPolicy snapshotPolicy = repo.getSnapshots(); - tableCell( snapshotPolicy.isEnabled() ? snapshotEnabled : snapshotDisabled ); - - if ( !repoUrlBlackListed.isEmpty() ) - { - tableCell( repoUrlBlackListed.contains( repo.getUrl() ) ? blacklistedEnabled : blacklistedDisabled ); - } - - sink.tableRow_(); - } - - endTable(); - } - /** * Resolves all given artifacts with {@link RepositoryUtils}. * @@ -1308,191 +1110,6 @@ public class DependenciesRenderer } } - private Object invoke( Object object, String method ) - throws IllegalAccessException, InvocationTargetException, NoSuchMethodException - { - return object.getClass().getMethod( method ).invoke( object ); - } - - /** - * Get the repos that can be hidden behind a mirror. - * - * @param repo the repo used to download artifacts - * @return the mirrored repositories or a singleton with actual repo if it is not a mirror - */ - private List<ArtifactRepository> getMirroredRepositories( ArtifactRepository repo ) - { - try - { - @SuppressWarnings( "unchecked" ) - List<ArtifactRepository> mirroredRepos = - (List<ArtifactRepository>) invoke( repo, "getMirroredRepositories" ); - - if ( ( mirroredRepos != null ) && ( !mirroredRepos.isEmpty() ) ) - { - return mirroredRepos; - } - } - catch ( IllegalArgumentException e ) - { - // ignore: API not available before Maven 3.0.3 - } - catch ( SecurityException e ) - { - // ignore: API not available before Maven 3.0.3 - } - catch ( IllegalAccessException e ) - { - // ignore: API not available before Maven 3.0.3 - } - catch ( InvocationTargetException e ) - { - // ignore: API not available before Maven 3.0.3 - } - catch ( NoSuchMethodException e ) - { - // ignore: API not available before Maven 3.0.3 - } - // before Maven 3.0.3, we can't do anything: Maven 3.0-alpha to 3.0.2 will show the mirror - return Collections.singletonList( repo ); - } - - private void printArtifactsLocations( Map<String, ArtifactRepository> repoMap, List<String> repoUrlBlackListed, - List<Artifact> alldeps ) - { - // i18n - String artifact = getI18nString( "repo.locations.column.artifact" ); - - sink.paragraph(); - sink.text( getI18nString( "repo.locations.artifact.breakdown" ) ); - sink.paragraph_(); - - List<String> repoIdList = new ArrayList<String>(); - // removed blacklisted repo - for ( Map.Entry<String, ArtifactRepository> entry : repoMap.entrySet() ) - { - String repokey = entry.getKey(); - ArtifactRepository repo = entry.getValue(); - if ( !( repo.isBlacklisted() || repoUrlBlackListed.contains( repo.getUrl() ) ) ) - { - repoIdList.add( repokey ); - } - } - - String[] tableHeader = new String[repoIdList.size() + 1]; - int[] justificationRepo = new int[repoIdList.size() + 1]; - - tableHeader[0] = artifact; - justificationRepo[0] = Sink.JUSTIFY_LEFT; - - int idnum = 1; - for ( String id : repoIdList ) - { - tableHeader[idnum] = id; - justificationRepo[idnum] = Sink.JUSTIFY_CENTER; - idnum++; - } - - Map<String, Integer> totalByRepo = new HashMap<String, Integer>(); - TotalCell totaldeps = new TotalCell( DEFAULT_DECIMAL_FORMAT ); - - startTable( justificationRepo, false ); - - tableHeader( tableHeader ); - - for ( Artifact dependency : alldeps ) - { - totaldeps.incrementTotal( dependency.getScope() ); - - sink.tableRow(); - - tableCell( dependency.getId() ); - - if ( Artifact.SCOPE_SYSTEM.equals( dependency.getScope() ) ) - { - for ( @SuppressWarnings( "unused" ) - String repoId : repoIdList ) - { - tableCell( "-" ); - } - } - else - { - for ( String repokey : repoIdList ) - { - ArtifactRepository repo = repoMap.get( repokey ); - - String depUrl = repoUtils.getDependencyUrlFromRepository( dependency, repo ); - - Integer old = totalByRepo.get( repokey ); - if ( old == null ) - { - old = 0; - totalByRepo.put( repokey, old ); - } - - boolean dependencyExists = false; - // check snapshots in snapshots repository only and releases in release repositories... - if ( ( dependency.isSnapshot() && repo.getSnapshots().isEnabled() ) - || ( !dependency.isSnapshot() && repo.getReleases().isEnabled() ) ) - { - dependencyExists = repoUtils.dependencyExistsInRepo( repo, dependency ); - } - - if ( dependencyExists ) - { - sink.tableCell(); - if ( StringUtils.isNotEmpty( depUrl ) ) - { - sink.link( depUrl ); - } - else - { - sink.text( depUrl ); - } - - sink.figure(); - sink.figureCaption(); - // TODO Translate me! - sink.text( "Found at " + repo.getUrl() ); - sink.figureCaption_(); - sink.figureGraphics( "images/icon_success_sml.gif" ); - sink.figure_(); - - sink.link_(); - sink.tableCell_(); - - totalByRepo.put( repokey, old.intValue() + 1 ); - } - else - { - tableCell( "-" ); - } - } - } - - sink.tableRow_(); - } - - // Total row - - // reused key - tableHeader[0] = getI18nString( "file.details.total" ); - tableHeader( tableHeader ); - String[] totalRow = new String[repoIdList.size() + 1]; - totalRow[0] = totaldeps.toString(); - idnum = 1; - for ( String repokey : repoIdList ) - { - Integer deps = totalByRepo.get( repokey ); - totalRow[idnum++] = deps != null ? deps.toString() : "0"; - } - - tableRow( totalRow ); - - endTable(); - } - /** * @param artifacts not null * @return <code>true</code> if one artifact in the list has a classifier, <code>false</code> otherwise. -- To stop receiving notification emails like this one, please contact rfscho...@apache.org.