1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.internal.aether;
20
21 import javax.inject.Inject;
22 import javax.inject.Named;
23 import javax.inject.Singleton;
24
25 import java.util.HashMap;
26 import java.util.Map;
27 import java.util.Properties;
28
29 import org.apache.maven.api.services.Lookup;
30 import org.apache.maven.api.spi.PropertyContributor;
31 import org.apache.maven.execution.MavenExecutionRequest;
32
33
34
35
36
37
38 @Named
39 @Singleton
40 class PropertyContributorExtender implements MavenExecutionRequestExtender {
41 private final Lookup lookup;
42
43 @Inject
44 PropertyContributorExtender(Lookup lookup) {
45 this.lookup = lookup;
46 }
47
48 @SuppressWarnings({"rawtypes", "unchecked"})
49 @Override
50 public void extend(MavenExecutionRequest mavenExecutionRequest) {
51 Map<String, PropertyContributor> effectivePropertyContributors = lookup.lookupMap(PropertyContributor.class);
52 if (!effectivePropertyContributors.isEmpty()) {
53 HashMap<String, String> userPropertiesMap = new HashMap<>((Map) mavenExecutionRequest.getUserProperties());
54 for (PropertyContributor contributor : effectivePropertyContributors.values()) {
55 contributor.contribute(userPropertiesMap);
56 }
57 Properties newProperties = new Properties();
58 newProperties.putAll(userPropertiesMap);
59 mavenExecutionRequest.setUserProperties(newProperties);
60 }
61 }
62 }