1 | 2 | |
2 | |
|
3 | |
|
4 | |
|
5 | |
|
6 | |
|
7 | |
|
8 | |
|
9 | |
|
10 | |
|
11 | |
|
12 | |
|
13 | |
|
14 | |
|
15 | |
|
16 | |
|
17 | |
|
18 | |
|
19 | |
|
20 | |
|
21 | |
|
22 | |
|
23 | |
|
24 | |
|
25 | |
|
26 | |
|
27 | |
|
28 | |
|
29 | |
|
30 | |
package com.jcabi.aether; |
31 | |
|
32 | |
import com.jcabi.aspects.Immutable; |
33 | |
import com.jcabi.aspects.Loggable; |
34 | |
import lombok.EqualsAndHashCode; |
35 | |
import lombok.ToString; |
36 | |
import org.apache.maven.repository.internal.DefaultArtifactDescriptorReader; |
37 | |
import org.apache.maven.repository.internal.DefaultVersionRangeResolver; |
38 | |
import org.apache.maven.repository.internal.DefaultVersionResolver; |
39 | |
import org.sonatype.aether.RepositorySystem; |
40 | |
import org.sonatype.aether.connector.async.AsyncRepositoryConnectorFactory; |
41 | |
import org.sonatype.aether.connector.file.FileRepositoryConnectorFactory; |
42 | |
import org.sonatype.aether.connector.wagon.PlexusWagonConfigurator; |
43 | |
import org.sonatype.aether.connector.wagon.WagonConfigurator; |
44 | |
import org.sonatype.aether.connector.wagon.WagonProvider; |
45 | |
import org.sonatype.aether.connector.wagon.WagonRepositoryConnectorFactory; |
46 | |
import org.sonatype.aether.impl.ArtifactDescriptorReader; |
47 | |
import org.sonatype.aether.impl.VersionRangeResolver; |
48 | |
import org.sonatype.aether.impl.VersionResolver; |
49 | |
import org.sonatype.aether.impl.internal.DefaultRepositorySystem; |
50 | |
import org.sonatype.aether.impl.internal.DefaultServiceLocator; |
51 | |
import org.sonatype.aether.spi.connector.RepositoryConnectorFactory; |
52 | |
|
53 | |
|
54 | |
|
55 | |
|
56 | |
|
57 | |
|
58 | |
|
59 | |
|
60 | |
@Immutable |
61 | 0 | @ToString |
62 | 0 | @EqualsAndHashCode |
63 | 13 | final class RepositorySystemBuilder { |
64 | |
|
65 | |
|
66 | |
|
67 | |
|
68 | |
|
69 | |
@Loggable(Loggable.DEBUG) |
70 | |
public RepositorySystem build() { |
71 | 26 | final DefaultServiceLocator locator = new DefaultServiceLocator(); |
72 | 13 | locator.addService( |
73 | |
RepositoryConnectorFactory.class, |
74 | |
FileRepositoryConnectorFactory.class |
75 | |
); |
76 | 13 | locator.addService( |
77 | |
RepositoryConnectorFactory.class, |
78 | |
AsyncRepositoryConnectorFactory.class |
79 | |
); |
80 | 13 | locator.addService( |
81 | |
WagonProvider.class, |
82 | |
AmazonWagonProvider.class |
83 | |
); |
84 | 13 | locator.addService( |
85 | |
WagonConfigurator.class, |
86 | |
PlexusWagonConfigurator.class |
87 | |
); |
88 | 13 | locator.addService( |
89 | |
RepositoryConnectorFactory.class, |
90 | |
WagonRepositoryConnectorFactory.class |
91 | |
); |
92 | 13 | locator.addService( |
93 | |
RepositorySystem.class, |
94 | |
DefaultRepositorySystem.class |
95 | |
); |
96 | 13 | locator.addService( |
97 | |
VersionResolver.class, |
98 | |
DefaultVersionResolver.class |
99 | |
); |
100 | 13 | locator.addService( |
101 | |
VersionRangeResolver.class, |
102 | |
DefaultVersionRangeResolver.class |
103 | |
); |
104 | 13 | locator.addService( |
105 | |
ArtifactDescriptorReader.class, |
106 | |
DefaultArtifactDescriptorReader.class |
107 | |
); |
108 | 13 | final RepositorySystem system = |
109 | |
locator.getService(RepositorySystem.class); |
110 | 13 | if (system == null) { |
111 | 0 | throw new IllegalStateException("failed to get service"); |
112 | |
} |
113 | 13 | return system; |
114 | |
} |
115 | |
|
116 | |
} |