1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.resolver.examples.supplier;
20
21 import java.util.HashMap;
22 import java.util.LinkedHashMap;
23 import java.util.Map;
24
25 import org.eclipse.aether.RepositorySystem;
26 import org.eclipse.aether.RepositorySystemSession;
27 import org.eclipse.aether.artifact.Artifact;
28 import org.eclipse.aether.generator.gnupg.GnupgSignatureArtifactGeneratorFactory;
29 import org.eclipse.aether.generator.gnupg.loaders.GpgAgentPasswordLoader;
30 import org.eclipse.aether.generator.gnupg.loaders.GpgConfLoader;
31 import org.eclipse.aether.generator.gnupg.loaders.GpgEnvLoader;
32 import org.eclipse.aether.resolution.ArtifactDescriptorResult;
33 import org.eclipse.aether.spi.artifact.decorator.ArtifactDecorator;
34 import org.eclipse.aether.spi.artifact.decorator.ArtifactDecoratorFactory;
35 import org.eclipse.aether.spi.artifact.generator.ArtifactGeneratorFactory;
36 import org.eclipse.aether.spi.connector.transport.TransporterFactory;
37 import org.eclipse.aether.supplier.RepositorySystemSupplier;
38 import org.eclipse.aether.transport.jdk.JdkTransporterFactory;
39 import org.eclipse.aether.transport.jetty.JettyTransporterFactory;
40
41
42
43
44 public class SupplierRepositorySystemFactory {
45 public static RepositorySystem newRepositorySystem() {
46 return new RepositorySystemSupplier() {
47 @Override
48 protected Map<String, ArtifactGeneratorFactory> createArtifactGeneratorFactories() {
49 Map<String, ArtifactGeneratorFactory> result = super.createArtifactGeneratorFactories();
50 result.put(
51 GnupgSignatureArtifactGeneratorFactory.NAME,
52 new GnupgSignatureArtifactGeneratorFactory(
53 getArtifactPredicateFactory(), getGnupgSignatureArtifactGeneratorFactoryLoaders()));
54 return result;
55 }
56
57 private Map<String, GnupgSignatureArtifactGeneratorFactory.Loader>
58 getGnupgSignatureArtifactGeneratorFactoryLoaders() {
59
60 LinkedHashMap<String, GnupgSignatureArtifactGeneratorFactory.Loader> loaders = new LinkedHashMap<>();
61 loaders.put(GpgEnvLoader.NAME, new GpgEnvLoader());
62 loaders.put(GpgConfLoader.NAME, new GpgConfLoader());
63 loaders.put(GpgAgentPasswordLoader.NAME, new GpgAgentPasswordLoader());
64 return loaders;
65 }
66
67 @Override
68 protected Map<String, ArtifactDecoratorFactory> createArtifactDecoratorFactories() {
69 Map<String, ArtifactDecoratorFactory> result = super.createArtifactDecoratorFactories();
70 result.put("color", new ArtifactDecoratorFactory() {
71 @Override
72 public ArtifactDecorator newInstance(RepositorySystemSession session) {
73 return new ArtifactDecorator() {
74 @Override
75 public Artifact decorateArtifact(ArtifactDescriptorResult artifactDescriptorResult) {
76 Map<String, String> properties = new HashMap<>(
77 artifactDescriptorResult.getArtifact().getProperties());
78 properties.put("color", "red");
79 return artifactDescriptorResult.getArtifact().setProperties(properties);
80 }
81 };
82 }
83
84 @Override
85 public float getPriority() {
86 return 0;
87 }
88 });
89 return result;
90 }
91
92 @Override
93 protected Map<String, TransporterFactory> createTransporterFactories() {
94 Map<String, TransporterFactory> result = super.createTransporterFactories();
95 result.put(
96 JdkTransporterFactory.NAME,
97 new JdkTransporterFactory(getChecksumExtractor(), getPathProcessor()));
98 result.put(
99 JettyTransporterFactory.NAME,
100 new JettyTransporterFactory(getChecksumExtractor(), getPathProcessor()));
101 return result;
102 }
103 }.get();
104 }
105 }