1 package org.apache.maven.model.composition;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.ArrayList;
23 import java.util.LinkedHashMap;
24 import java.util.List;
25 import java.util.Map;
26
27 import org.apache.maven.model.Dependency;
28 import org.apache.maven.model.DependencyManagement;
29 import org.apache.maven.model.Model;
30 import org.apache.maven.model.building.ModelBuildingRequest;
31 import org.apache.maven.model.building.ModelProblemCollector;
32 import org.codehaus.plexus.component.annotations.Component;
33
34
35
36
37
38
39 @Component( role = DependencyManagementImporter.class )
40 public class DefaultDependencyManagementImporter
41 implements DependencyManagementImporter
42 {
43
44 public void importManagement( Model target, List<? extends DependencyManagement> sources,
45 ModelBuildingRequest request, ModelProblemCollector problems )
46 {
47 if ( sources != null && !sources.isEmpty() )
48 {
49 Map<String, Dependency> dependencies = new LinkedHashMap<String, Dependency>();
50
51 DependencyManagement depMngt = target.getDependencyManagement();
52
53 if ( depMngt != null )
54 {
55 for ( Dependency dependency : depMngt.getDependencies() )
56 {
57 dependencies.put( dependency.getManagementKey(), dependency );
58 }
59 }
60 else
61 {
62 depMngt = new DependencyManagement();
63 target.setDependencyManagement( depMngt );
64 }
65
66 for ( DependencyManagement source : sources )
67 {
68 for ( Dependency dependency : source.getDependencies() )
69 {
70 String key = dependency.getManagementKey();
71 if ( !dependencies.containsKey( key ) )
72 {
73 dependencies.put( key, dependency );
74 }
75 }
76 }
77
78 depMngt.setDependencies( new ArrayList<Dependency>( dependencies.values() ) );
79 }
80 }
81
82 }