michael-o commented on code in PR #196:
URL: https://github.com/apache/maven-resolver/pull/196#discussion_r979298783
##########
maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/synccontext/DefaultSyncContextFactory.java:
##########
@@ -66,24 +101,69 @@ public DefaultSyncContextFactory()
@Override
public void initService( final ServiceLocator locator )
{
- NamedLockFactorySelector selector = Objects.requireNonNull(
- locator.getService( NamedLockFactorySelector.class ) );
- this.namedLockFactoryAdapter = new NamedLockFactoryAdapter(
- selector.getSelectedNameMapper(),
- selector.getSelectedNamedLockFactory()
- );
+ HashMap<String, NameMapper> mappers = new HashMap<>();
+ mappers.put( StaticNameMapper.NAME, new StaticNameMapper() );
+ mappers.put( GAVNameMapper.NAME, new GAVNameMapper() );
+ mappers.put( DiscriminatingNameMapper.NAME, new
DiscriminatingNameMapper( new GAVNameMapper() ) );
+ mappers.put( FileGAVNameMapper.NAME, new FileGAVNameMapper() );
+ this.nameMappers = mappers;
+
+ HashMap<String, NamedLockFactory> factories = new HashMap<>();
+ factories.put( NoopNamedLockFactory.NAME, new NoopNamedLockFactory() );
+ factories.put( LocalReadWriteLockNamedLockFactory.NAME, new
LocalReadWriteLockNamedLockFactory() );
+ factories.put( LocalSemaphoreNamedLockFactory.NAME, new
LocalSemaphoreNamedLockFactory() );
+ factories.put( FileLockNamedLockFactory.NAME, new
FileLockNamedLockFactory() );
+ this.namedLockFactories = factories;
}
@Override
public SyncContext newInstance( final RepositorySystemSession session,
final boolean shared )
{
requireNonNull( session, "session cannot be null" );
- return namedLockFactoryAdapter.newInstance( session, shared );
+ NamedLockFactoryAdapter adapter =
+ (NamedLockFactoryAdapter) session.getData().computeIfAbsent(
+ ADAPTER_KEY,
+ () -> createAdapter( session )
+ );
+ return adapter.newInstance( session, shared );
+ }
+
+ private NamedLockFactoryAdapter createAdapter( final
RepositorySystemSession session )
+ {
+ String nameMapperName = ConfigUtils.getString( session,
DEFAULT_NAME_MAPPER, NAME_MAPPER_KEY );
+ String namedLockFactoryName = ConfigUtils.getString( session,
DEFAULT_FACTORY, FACTORY_KEY );
+ NameMapper nameMapper = nameMappers.get( nameMapperName );
+ if ( nameMapper == null )
+ {
+ throw new IllegalArgumentException( "Unknown NameMapper name: " +
namedLockFactoryName
Review Comment:
This is wrong. It must be `nameMapperName`. Just copy and paste.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]