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.*;
30 import org.eclipse.aether.resolution.ArtifactDescriptorResult;
31 import org.eclipse.aether.spi.artifact.decorator.ArtifactDecorator;
32 import org.eclipse.aether.spi.artifact.decorator.ArtifactDecoratorFactory;
33 import org.eclipse.aether.spi.artifact.generator.ArtifactGeneratorFactory;
34 import org.eclipse.aether.spi.connector.transport.TransporterFactory;
35 import org.eclipse.aether.supplier.RepositorySystemSupplier;
36 import org.eclipse.aether.transport.jdk.JdkTransporterFactory;
37 import org.eclipse.aether.transport.jetty.JettyTransporterFactory;
38
39
40
41
42 public class SupplierRepositorySystemFactory {
43 public static RepositorySystem newRepositorySystem() {
44 return new RepositorySystemSupplier() {
45 @Override
46 protected Map<String, ArtifactGeneratorFactory> createArtifactGeneratorFactories() {
47 Map<String, ArtifactGeneratorFactory> result = super.createArtifactGeneratorFactories();
48 result.put(
49 GnupgSignatureArtifactGeneratorFactory.NAME,
50 new GnupgSignatureArtifactGeneratorFactory(
51 getArtifactPredicateFactory(), getGnupgSignatureArtifactGeneratorFactoryLoaders()));
52 return result;
53 }
54
55 private Map<String, GnupgSignatureArtifactGeneratorFactory.Loader>
56 getGnupgSignatureArtifactGeneratorFactoryLoaders() {
57
58 LinkedHashMap<String, GnupgSignatureArtifactGeneratorFactory.Loader> loaders = new LinkedHashMap<>();
59 loaders.put(GpgEnvLoader.NAME, new GpgEnvLoader());
60 loaders.put(GpgConfLoader.NAME, new GpgConfLoader());
61 loaders.put(GpgAgentPasswordLoader.NAME, new GpgAgentPasswordLoader());
62 return loaders;
63 }
64
65 @Override
66 protected Map<String, ArtifactDecoratorFactory> createArtifactDecoratorFactories() {
67 Map<String, ArtifactDecoratorFactory> result = super.createArtifactDecoratorFactories();
68 result.put("color", new ArtifactDecoratorFactory() {
69 @Override
70 public ArtifactDecorator newInstance(RepositorySystemSession session) {
71 return new ArtifactDecorator() {
72 @Override
73 public Artifact decorateArtifact(ArtifactDescriptorResult artifactDescriptorResult) {
74 Map<String, String> properties = new HashMap<>(
75 artifactDescriptorResult.getArtifact().getProperties());
76 properties.put("color", "red");
77 return artifactDescriptorResult.getArtifact().setProperties(properties);
78 }
79 };
80 }
81
82 @Override
83 public float getPriority() {
84 return 0;
85 }
86 });
87 return result;
88 }
89
90 @Override
91 protected Map<String, TransporterFactory> createTransporterFactories() {
92 Map<String, TransporterFactory> result = super.createTransporterFactories();
93 result.put(
94 JdkTransporterFactory.NAME,
95 new JdkTransporterFactory(getChecksumExtractor(), getPathProcessor()));
96 result.put(
97 JettyTransporterFactory.NAME,
98 new JettyTransporterFactory(getChecksumExtractor(), getPathProcessor()));
99 return result;
100 }
101 }.get();
102 }
103 }