1 package org.eclipse.aether.internal.impl.synccontext.named;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.eclipse.aether.named.NamedLockFactory;
23 import org.eclipse.aether.named.providers.FileLockNamedLockFactory;
24 import org.eclipse.aether.named.providers.LocalReadWriteLockNamedLockFactory;
25 import org.eclipse.aether.named.providers.LocalSemaphoreNamedLockFactory;
26 import org.eclipse.aether.named.providers.NoopNamedLockFactory;
27
28 import javax.inject.Inject;
29 import javax.inject.Named;
30 import javax.inject.Singleton;
31 import java.util.HashMap;
32 import java.util.Map;
33
34
35
36
37
38
39
40 @Singleton
41 @Named
42 public final class SimpleNamedLockFactorySelector
43 extends NamedLockFactorySelectorSupport
44 {
45 private static final Map<String, NamedLockFactory> FACTORIES;
46
47 private static final Map<String, NameMapper> NAME_MAPPERS;
48
49 static
50 {
51 FACTORIES = new HashMap<>();
52 FACTORIES.put( NoopNamedLockFactory.NAME, new NoopNamedLockFactory() );
53 FACTORIES.put( LocalReadWriteLockNamedLockFactory.NAME, new LocalReadWriteLockNamedLockFactory() );
54 FACTORIES.put( LocalSemaphoreNamedLockFactory.NAME, new LocalSemaphoreNamedLockFactory() );
55 FACTORIES.put( FileLockNamedLockFactory.NAME, new FileLockNamedLockFactory() );
56
57 NAME_MAPPERS = new HashMap<>();
58 NAME_MAPPERS.put( StaticNameMapper.NAME, new StaticNameMapper() );
59 NAME_MAPPERS.put( GAVNameMapper.NAME, new GAVNameMapper() );
60 NAME_MAPPERS.put( DiscriminatingNameMapper.NAME, new DiscriminatingNameMapper( new GAVNameMapper() ) );
61 NAME_MAPPERS.put( FileGAVNameMapper.NAME, new FileGAVNameMapper() );
62 }
63
64
65
66
67 public SimpleNamedLockFactorySelector()
68 {
69 this( FACTORIES, NAME_MAPPERS );
70 }
71
72 @Inject
73 public SimpleNamedLockFactorySelector( final Map<String, NamedLockFactory> factories,
74 final Map<String, NameMapper> nameMappers )
75 {
76 super(
77 factories,
78 LocalReadWriteLockNamedLockFactory.NAME,
79 nameMappers,
80 GAVNameMapper.NAME
81 );
82 }
83 }