1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.buildcache;
20
21 import javax.annotation.Priority;
22 import javax.inject.Inject;
23 import javax.inject.Named;
24 import javax.inject.Provider;
25 import javax.inject.Singleton;
26
27 import org.apache.maven.buildcache.xml.CacheConfig;
28 import org.apache.maven.buildcache.xml.CacheState;
29 import org.codehaus.plexus.PlexusContainer;
30 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
31
32
33
34
35 @Singleton
36 @Named("#factory#")
37 @Priority(10)
38 public class RemoteCacheRepositoryProvider implements Provider<RemoteCacheRepository> {
39
40 private final RemoteCacheRepository repository;
41
42 @Inject
43 public RemoteCacheRepositoryProvider(CacheConfig config, PlexusContainer container)
44 throws ComponentLookupException {
45 String hint = "noop";
46 if (config.initialize() == CacheState.INITIALIZED) {
47 hint = config.getTransport();
48 }
49
50 repository = container.lookup(RemoteCacheRepository.class, hint);
51 }
52
53 public RemoteCacheRepository get() {
54 return repository;
55 }
56 }