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