You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2021/12/12 21:44:55 UTC

[maven-resolver] branch refactor-selector created (now 07e628d)

This is an automated email from the ASF dual-hosted git repository.

cstamas pushed a change to branch refactor-selector
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git.


      at 07e628d  Refactor selector

This branch includes the following new commits:

     new 07e628d  Refactor selector

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[maven-resolver] 01/01: Refactor selector

Posted by cs...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

cstamas pushed a commit to branch refactor-selector
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git

commit 07e628d02f120f4e0458e1df2ea8da84ed1b04e7
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Sun Dec 12 22:44:34 2021 +0100

    Refactor selector
    
    To make it more extensible
---
 ...r.java => NamedLockFactorySelectorSupport.java} | 52 +++---------
 .../named/SimpleNamedLockFactorySelector.java      | 98 ++--------------------
 2 files changed, 19 insertions(+), 131 deletions(-)

diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/synccontext/named/SimpleNamedLockFactorySelector.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/synccontext/named/NamedLockFactorySelectorSupport.java
similarity index 61%
copy from maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/synccontext/named/SimpleNamedLockFactorySelector.java
copy to maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/synccontext/named/NamedLockFactorySelectorSupport.java
index 8c96173..488d29e 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/synccontext/named/SimpleNamedLockFactorySelector.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/synccontext/named/NamedLockFactorySelectorSupport.java
@@ -20,23 +20,14 @@ package org.eclipse.aether.internal.impl.synccontext.named;
  */
 
 import org.eclipse.aether.named.NamedLockFactory;
-import org.eclipse.aether.named.providers.FileLockNamedLockFactory;
 import org.eclipse.aether.named.providers.LocalReadWriteLockNamedLockFactory;
-import org.eclipse.aether.named.providers.LocalSemaphoreNamedLockFactory;
-import org.eclipse.aether.named.providers.NoopNamedLockFactory;
 
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-import java.util.HashMap;
 import java.util.Map;
 
 /**
- * Simple selector implementation that uses Java system properties and sane default values.
+ * Selector implementation support class.
  */
-@Singleton
-@Named
-public final class SimpleNamedLockFactorySelector
+public abstract class NamedLockFactorySelectorSupport
     implements NamedLockFactorySelector
 {
     public static final String FACTORY_KEY = "aether.syncContext.named.factory";
@@ -50,50 +41,31 @@ public final class SimpleNamedLockFactorySelector
     /**
      * Constructor used with DI, where factories are injected and selected based on key.
      */
-    @Inject
-    public SimpleNamedLockFactorySelector( final Map<String, NamedLockFactory> factories,
-                                           final Map<String, NameMapper> nameMappers )
+    public NamedLockFactorySelectorSupport( final Map<String, NamedLockFactory> factories,
+                                            final String defaultFactoryName,
+                                            final Map<String, NameMapper> nameMappers,
+                                            final String defaultNameMapperName )
     {
-        this.namedLockFactory = selectNamedLockFactory( factories, getFactoryName() );
-        this.nameMapper = selectNameMapper( nameMappers, getNameMapperName() );
+        this.namedLockFactory = selectNamedLockFactory( factories, getFactoryName( defaultFactoryName ) );
+        this.nameMapper = selectNameMapper( nameMappers, getNameMapperName( defaultNameMapperName ) );
     }
 
     /**
      * Returns selected factory name (or sane default) using System property value of {@link #FACTORY_KEY} and defaults
      * to {@link LocalReadWriteLockNamedLockFactory#NAME}.
      */
-    private String getFactoryName()
+    protected String getFactoryName( final String defaultFactoryName )
     {
-        return System.getProperty( FACTORY_KEY, LocalReadWriteLockNamedLockFactory.NAME );
+        return System.getProperty( FACTORY_KEY, defaultFactoryName );
     }
 
     /**
      * Returns selected name mapper name (or sane default) using System property value of {@link #NAME_MAPPER_KEY} and
      * defaults to {@link GAVNameMapper#NAME}.
      */
-    private String getNameMapperName()
+    protected String getNameMapperName( final String defaultNameMapperName )
     {
-        return System.getProperty( NAME_MAPPER_KEY, GAVNameMapper.NAME );
-    }
-
-    /**
-     * Default constructor for ServiceLocator.
-     */
-    public SimpleNamedLockFactorySelector()
-    {
-        Map<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.namedLockFactory = selectNamedLockFactory( factories, getFactoryName() );
-
-        Map<String, NameMapper> nameMappers = new HashMap<>();
-        nameMappers.put( StaticNameMapper.NAME, new StaticNameMapper() );
-        nameMappers.put( GAVNameMapper.NAME, new GAVNameMapper() );
-        nameMappers.put( DiscriminatingNameMapper.NAME, new DiscriminatingNameMapper( new GAVNameMapper() ) );
-        nameMappers.put( FileGAVNameMapper.NAME, new FileGAVNameMapper() );
-        this.nameMapper = selectNameMapper( nameMappers, getNameMapperName() );
+        return System.getProperty( NAME_MAPPER_KEY, defaultNameMapperName );
     }
 
     /**
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/synccontext/named/SimpleNamedLockFactorySelector.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/synccontext/named/SimpleNamedLockFactorySelector.java
index 8c96173..ff0778d 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/synccontext/named/SimpleNamedLockFactorySelector.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/synccontext/named/SimpleNamedLockFactorySelector.java
@@ -37,16 +37,8 @@ import java.util.Map;
 @Singleton
 @Named
 public final class SimpleNamedLockFactorySelector
-    implements NamedLockFactorySelector
+    extends NamedLockFactorySelectorSupport
 {
-    public static final String FACTORY_KEY = "aether.syncContext.named.factory";
-
-    public static final String NAME_MAPPER_KEY = "aether.syncContext.named.nameMapper";
-
-    private final NamedLockFactory namedLockFactory;
-
-    private final NameMapper nameMapper;
-
     /**
      * Constructor used with DI, where factories are injected and selected based on key.
      */
@@ -54,87 +46,11 @@ public final class SimpleNamedLockFactorySelector
     public SimpleNamedLockFactorySelector( final Map<String, NamedLockFactory> factories,
                                            final Map<String, NameMapper> nameMappers )
     {
-        this.namedLockFactory = selectNamedLockFactory( factories, getFactoryName() );
-        this.nameMapper = selectNameMapper( nameMappers, getNameMapperName() );
-    }
-
-    /**
-     * Returns selected factory name (or sane default) using System property value of {@link #FACTORY_KEY} and defaults
-     * to {@link LocalReadWriteLockNamedLockFactory#NAME}.
-     */
-    private String getFactoryName()
-    {
-        return System.getProperty( FACTORY_KEY, LocalReadWriteLockNamedLockFactory.NAME );
-    }
-
-    /**
-     * Returns selected name mapper name (or sane default) using System property value of {@link #NAME_MAPPER_KEY} and
-     * defaults to {@link GAVNameMapper#NAME}.
-     */
-    private String getNameMapperName()
-    {
-        return System.getProperty( NAME_MAPPER_KEY, GAVNameMapper.NAME );
-    }
-
-    /**
-     * Default constructor for ServiceLocator.
-     */
-    public SimpleNamedLockFactorySelector()
-    {
-        Map<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.namedLockFactory = selectNamedLockFactory( factories, getFactoryName() );
-
-        Map<String, NameMapper> nameMappers = new HashMap<>();
-        nameMappers.put( StaticNameMapper.NAME, new StaticNameMapper() );
-        nameMappers.put( GAVNameMapper.NAME, new GAVNameMapper() );
-        nameMappers.put( DiscriminatingNameMapper.NAME, new DiscriminatingNameMapper( new GAVNameMapper() ) );
-        nameMappers.put( FileGAVNameMapper.NAME, new FileGAVNameMapper() );
-        this.nameMapper = selectNameMapper( nameMappers, getNameMapperName() );
-    }
-
-    /**
-     * Returns the selected {@link NamedLockFactory}, never null.
-     */
-    @Override
-    public NamedLockFactory getSelectedNamedLockFactory()
-    {
-        return namedLockFactory;
-    }
-
-    /**
-     * Returns the selected {@link NameMapper}, never null.
-     */
-    @Override
-    public NameMapper getSelectedNameMapper()
-    {
-        return nameMapper;
-    }
-
-    private NamedLockFactory selectNamedLockFactory( final Map<String, NamedLockFactory> factories,
-                                                     final String factoryName )
-    {
-        NamedLockFactory factory = factories.get( factoryName );
-        if ( factory == null )
-        {
-            throw new IllegalArgumentException( "Unknown NamedLockFactory name: " + factoryName
-                + ", known ones: " + factories.keySet() );
-        }
-        return factory;
-    }
-
-    private NameMapper selectNameMapper( final Map<String, NameMapper> nameMappers,
-                                         final String mapperName )
-    {
-        NameMapper nameMapper = nameMappers.get( mapperName );
-        if ( nameMapper == null )
-        {
-            throw new IllegalArgumentException( "Unknown NameMapper name: " + mapperName
-                + ", known ones: " + nameMappers.keySet() );
-        }
-        return nameMapper;
+        super(
+            factories,
+            LocalReadWriteLockNamedLockFactory.NAME,
+            nameMappers,
+            GAVNameMapper.NAME
+        );
     }
 }