1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.transport.wagon;
20
21 import javax.inject.Inject;
22 import javax.inject.Named;
23
24 import org.eclipse.aether.RepositorySystemSession;
25 import org.eclipse.aether.repository.RemoteRepository;
26 import org.eclipse.aether.spi.connector.transport.Transporter;
27 import org.eclipse.aether.spi.connector.transport.TransporterFactory;
28 import org.eclipse.aether.spi.locator.Service;
29 import org.eclipse.aether.spi.locator.ServiceLocator;
30 import org.eclipse.aether.transfer.NoTransporterException;
31
32 import static java.util.Objects.requireNonNull;
33
34
35
36
37
38
39 @Named("wagon")
40 public final class WagonTransporterFactory implements TransporterFactory, Service {
41
42 private WagonProvider wagonProvider;
43
44 private WagonConfigurator wagonConfigurator;
45
46 private float priority = -1.0f;
47
48
49
50
51
52
53 public WagonTransporterFactory() {
54
55 }
56
57 @Inject
58 WagonTransporterFactory(WagonProvider wagonProvider, WagonConfigurator wagonConfigurator) {
59 setWagonProvider(wagonProvider);
60 setWagonConfigurator(wagonConfigurator);
61 }
62
63 @Override
64 public void initService(ServiceLocator locator) {
65 setWagonProvider(locator.getService(WagonProvider.class));
66 setWagonConfigurator(locator.getService(WagonConfigurator.class));
67 }
68
69
70
71
72
73
74
75 public WagonTransporterFactory setWagonProvider(WagonProvider wagonProvider) {
76 this.wagonProvider = wagonProvider;
77 return this;
78 }
79
80
81
82
83
84
85
86 public WagonTransporterFactory setWagonConfigurator(WagonConfigurator wagonConfigurator) {
87 this.wagonConfigurator = wagonConfigurator;
88 return this;
89 }
90
91 @Override
92 public float getPriority() {
93 return priority;
94 }
95
96
97
98
99
100
101
102 public WagonTransporterFactory setPriority(float priority) {
103 this.priority = priority;
104 return this;
105 }
106
107 @Override
108 public Transporter newInstance(RepositorySystemSession session, RemoteRepository repository)
109 throws NoTransporterException {
110 requireNonNull(session, "session cannot be null");
111 requireNonNull(repository, "repository cannot be null");
112
113 return new WagonTransporter(wagonProvider, wagonConfigurator, repository, session);
114 }
115 }