You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Hervé Boutemy (JIRA)" <ji...@apache.org> on 2017/03/23 07:26:41 UTC
[jira] [Updated] (MNG-6190) maven-resolver-provider's
DefaultArtifactDescriptorReader has mismatched constructor and initService
methods
[ https://issues.apache.org/jira/browse/MNG-6190?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Hervé Boutemy updated MNG-6190:
-------------------------------
Affects Version/s: 3.5.0-beta-1
> maven-resolver-provider's DefaultArtifactDescriptorReader has mismatched constructor and initService methods
> ------------------------------------------------------------------------------------------------------------
>
> Key: MNG-6190
> URL: https://issues.apache.org/jira/browse/MNG-6190
> Project: Maven
> Issue Type: Bug
> Components: Dependencies
> Affects Versions: 3.5.0-alpha-1, 3.5.0-beta-1
> Reporter: Laird Nelson
> Assignee: Christian Schulte
> Fix For: 3.5.0
>
>
> In {{DefaultArtifactDescriptorReader.java}}, the constructor annotated with {{@Inject}} differs in the parameters it takes from its {{initService()}} method.
> This discrepancy means among other things that its {{versionRangeResolver}} field is never initialized when a DI container is doing injection.
> Here is the relevant code, starting at line 112, with a comment where the problem is:
> {code}
> @Inject
> DefaultArtifactDescriptorReader( RemoteRepositoryManager remoteRepositoryManager, VersionResolver versionResolver,
> ArtifactResolver artifactResolver, ModelBuilder modelBuilder,
> RepositoryEventDispatcher repositoryEventDispatcher, LoggerFactory loggerFactory )
> {
> setRemoteRepositoryManager( remoteRepositoryManager );
> setVersionResolver( versionResolver );
> // XXX <-- Note: no versionRangeResolver
> setArtifactResolver( artifactResolver );
> setModelBuilder( modelBuilder );
> setLoggerFactory( loggerFactory );
> setRepositoryEventDispatcher( repositoryEventDispatcher );
> }
> public void initService( ServiceLocator locator )
> {
> setLoggerFactory( locator.getService( LoggerFactory.class ) );
> setRemoteRepositoryManager( locator.getService( RemoteRepositoryManager.class ) );
> setVersionResolver( locator.getService( VersionResolver.class ) );
> setVersionRangeResolver( locator.getService( VersionRangeResolver.class ) );
> setArtifactResolver( locator.getService( ArtifactResolver.class ) );
> setRepositoryEventDispatcher( locator.getService( RepositoryEventDispatcher.class ) );
> modelBuilder = locator.getService( ModelBuilder.class );
> if ( modelBuilder == null )
> {
> setModelBuilder( new DefaultModelBuilderFactory().newInstance() );
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)