1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.internal.impl;
20
21 import javax.inject.Inject;
22 import javax.inject.Named;
23 import javax.inject.Singleton;
24
25 import org.eclipse.aether.RepositorySystemSession;
26 import org.eclipse.aether.repository.LocalRepository;
27 import org.eclipse.aether.repository.LocalRepositoryManager;
28 import org.eclipse.aether.repository.NoLocalRepositoryManagerException;
29 import org.eclipse.aether.spi.localrepo.LocalRepositoryManagerFactory;
30 import org.eclipse.aether.spi.remoterepo.RepositoryKeyFunctionFactory;
31 import org.eclipse.aether.util.repository.RepositoryIdHelper;
32
33 import static java.util.Objects.requireNonNull;
34
35
36
37
38 @Singleton
39 @Named(SimpleLocalRepositoryManagerFactory.NAME)
40 public class SimpleLocalRepositoryManagerFactory implements LocalRepositoryManagerFactory {
41 public static final String NAME = "simple";
42 private float priority;
43
44 private final LocalPathComposer localPathComposer;
45 private final RepositoryKeyFunctionFactory repositoryKeyFunctionFactory;
46
47
48
49
50 public SimpleLocalRepositoryManagerFactory() {
51 this.localPathComposer = new DefaultLocalPathComposer();
52 this.repositoryKeyFunctionFactory = new DefaultRepositoryKeyFunctionFactory();
53 }
54
55 @Inject
56 public SimpleLocalRepositoryManagerFactory(
57 final LocalPathComposer localPathComposer,
58 final RepositoryKeyFunctionFactory repositoryKeyFunctionFactory) {
59 this.localPathComposer = requireNonNull(localPathComposer);
60 this.repositoryKeyFunctionFactory = requireNonNull(repositoryKeyFunctionFactory);
61 }
62
63 @Override
64 public LocalRepositoryManager newInstance(RepositorySystemSession session, LocalRepository repository)
65 throws NoLocalRepositoryManagerException {
66 requireNonNull(session, "session cannot be null");
67 requireNonNull(repository, "repository cannot be null");
68
69 if ("".equals(repository.getContentType()) || "simple".equals(repository.getContentType())) {
70 return new SimpleLocalRepositoryManager(
71 repository.getBasePath(),
72 "simple",
73 localPathComposer,
74 repositoryKeyFunctionFactory.repositoryKeyFunction(
75 SimpleLocalRepositoryManagerFactory.class,
76 session,
77 RepositoryIdHelper.RepositoryKeyType.SIMPLE.name(),
78 null));
79 } else {
80 throw new NoLocalRepositoryManagerException(repository);
81 }
82 }
83
84 @Override
85 public float getPriority() {
86 return priority;
87 }
88
89
90
91
92
93
94
95 public SimpleLocalRepositoryManagerFactory setPriority(float priority) {
96 this.priority = priority;
97 return this;
98 }
99 }