1 package org.apache.maven.shared.dependency.graph.internal.maven30;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.shared.dependency.graph.internal.maven30.ConflictResolver.ScopeContext;
23 import org.apache.maven.shared.dependency.graph.internal.maven30.ConflictResolver.ScopeDeriver;
24 import org.sonatype.aether.RepositoryException;
25 import org.sonatype.aether.util.artifact.JavaScopes;
26
27
28
29
30
31
32
33 public class JavaScopeDeriver
34 extends ScopeDeriver
35 {
36
37 @Override
38 public void deriveScope( ScopeContext context )
39 throws RepositoryException
40 {
41 context.setDerivedScope( getDerivedScope( context.getParentScope(), context.getChildScope() ) );
42 }
43
44 private String getDerivedScope( String parentScope, String childScope )
45 {
46 String derivedScope;
47
48 if ( JavaScopes.SYSTEM.equals( childScope ) || JavaScopes.TEST.equals( childScope ) )
49 {
50 derivedScope = childScope;
51 }
52 else if ( parentScope == null || parentScope.length() <= 0 || JavaScopes.COMPILE.equals( parentScope ) )
53 {
54 derivedScope = childScope;
55 }
56 else if ( JavaScopes.TEST.equals( parentScope ) || JavaScopes.RUNTIME.equals( parentScope ) )
57 {
58 derivedScope = parentScope;
59 }
60 else if ( JavaScopes.SYSTEM.equals( parentScope ) || JavaScopes.PROVIDED.equals( parentScope ) )
61 {
62 derivedScope = JavaScopes.PROVIDED;
63 }
64 else
65 {
66 derivedScope = JavaScopes.RUNTIME;
67 }
68
69 return derivedScope;
70 }
71
72 }