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