19
19
import com .fasterxml .jackson .dataformat .xml .annotation .JacksonXmlProperty ;
20
20
import lombok .*;
21
21
import lombok .experimental .FieldDefaults ;
22
- import lombok .experimental .NonFinal ;
23
22
import org .openrewrite .ExecutionContext ;
24
23
import org .openrewrite .Parser ;
25
24
import org .openrewrite .internal .lang .Nullable ;
26
25
import org .openrewrite .maven .internal .MavenXmlMapper ;
27
- import org .openrewrite .maven .internal .RawRepository ;
26
+ import org .openrewrite .maven .internal .RawRepositories ;
28
27
import org .openrewrite .maven .tree .ProfileActivation ;
29
28
30
29
import java .io .IOException ;
34
33
35
34
import static java .util .Collections .emptyList ;
36
35
37
- @ FieldDefaults (level = AccessLevel .PRIVATE )
36
+ @ FieldDefaults (makeFinal = true , level = AccessLevel .PRIVATE )
38
37
@ ToString (onlyExplicitlyIncluded = true )
39
38
@ EqualsAndHashCode (onlyExplicitlyIncluded = true )
40
39
@ Data
41
40
public class MavenSettings {
41
+ @ Nullable
42
+ Profiles profiles ;
42
43
43
- @ NonFinal
44
- @ JacksonXmlElementWrapper (localName = "profiles" )
45
- @ JacksonXmlProperty (localName = "profile" )
46
- List <Profile > profiles = emptyList ();
47
-
48
- @ NonFinal
49
- @ JacksonXmlElementWrapper (localName = "activeProfiles" )
50
- @ JacksonXmlProperty (localName = "activeProfile" )
51
- List <String > activeProfiles = emptyList ();
44
+ @ Nullable
45
+ ActiveProfiles activeProfiles ;
52
46
53
- @ NonFinal
54
- @ JacksonXmlElementWrapper (localName = "mirrors" )
55
- @ JacksonXmlProperty (localName = "mirror" )
56
- List <Mirror > mirrors = emptyList ();
47
+ @ Nullable
48
+ @ Getter
49
+ Mirrors mirrors ;
57
50
58
- @ NonFinal
59
51
@ Nullable
60
- @ JacksonXmlElementWrapper ( localName = "servers" )
61
- @ JacksonXmlProperty ( localName = "server" )
62
- List < Server > servers = emptyList () ;
52
+ @ Getter
53
+ @ With
54
+ Servers servers ;
63
55
64
56
@ Nullable
65
57
public static MavenSettings parse (Parser .Input source , ExecutionContext ctx ) {
@@ -71,20 +63,41 @@ public static MavenSettings parse(Parser.Input source, ExecutionContext ctx) {
71
63
}
72
64
}
73
65
74
- public List <RawRepository > getActiveRepositories (Iterable <String > activeProfiles ) {
75
- List <RawRepository > activeRepositories = new ArrayList <>();
66
+ public List <RawRepositories . Repository > getActiveRepositories (Iterable <String > activeProfiles ) {
67
+ List <RawRepositories . Repository > activeRepositories = new ArrayList <>();
76
68
77
- for (Profile profile : profiles ) {
78
- if (profile .isActive (activeProfiles ) || profile .isActive (this .activeProfiles )) {
79
- if (profile .getRepositories () != null ) {
80
- activeRepositories .addAll (profile .getRepositories ());
69
+ if (profiles != null ) {
70
+ for (Profile profile : profiles .getProfiles ()) {
71
+ if (profile .isActive (activeProfiles ) || (this .activeProfiles != null &&
72
+ profile .isActive (this .activeProfiles .getActiveProfiles ()))) {
73
+ if (profile .repositories != null ) {
74
+ activeRepositories .addAll (profile .repositories .getRepositories ());
75
+ }
81
76
}
82
77
}
83
78
}
84
79
85
80
return activeRepositories ;
86
81
}
87
82
83
+ @ FieldDefaults (level = AccessLevel .PRIVATE )
84
+ @ Getter
85
+ @ Setter
86
+ public static class Profiles {
87
+ @ JacksonXmlProperty (localName = "profile" )
88
+ @ JacksonXmlElementWrapper (useWrapping = false )
89
+ List <Profile > profiles = emptyList ();
90
+ }
91
+
92
+ @ FieldDefaults (level = AccessLevel .PRIVATE )
93
+ @ Getter
94
+ @ Setter
95
+ public static class ActiveProfiles {
96
+ @ JacksonXmlProperty (localName = "activeProfile" )
97
+ @ JacksonXmlElementWrapper (useWrapping = false )
98
+ List <String > activeProfiles = emptyList ();
99
+ }
100
+
88
101
@ FieldDefaults (makeFinal = true , level = AccessLevel .PRIVATE )
89
102
@ Data
90
103
public static class Profile {
@@ -94,11 +107,8 @@ public static class Profile {
94
107
@ Nullable
95
108
ProfileActivation activation ;
96
109
97
- @ NonFinal
98
110
@ Nullable
99
- @ JacksonXmlElementWrapper (localName = "repositories" )
100
- @ JacksonXmlProperty (localName = "repository" )
101
- List <RawRepository > repositories ;
111
+ RawRepositories repositories ;
102
112
103
113
public boolean isActive (Iterable <String > activeProfiles ) {
104
114
return ProfileActivation .isActive (id , activeProfiles , activation );
@@ -109,6 +119,15 @@ public boolean isActive(String... activeProfiles) {
109
119
}
110
120
}
111
121
122
+ @ FieldDefaults (level = AccessLevel .PRIVATE )
123
+ @ Getter
124
+ @ Setter
125
+ public static class Mirrors {
126
+ @ JacksonXmlProperty (localName = "mirror" )
127
+ @ JacksonXmlElementWrapper (useWrapping = false )
128
+ List <Mirror > mirrors = emptyList ();
129
+ }
130
+
112
131
@ FieldDefaults (makeFinal = true , level = AccessLevel .PRIVATE )
113
132
@ Data
114
133
public static class Mirror {
@@ -128,6 +147,15 @@ public static class Mirror {
128
147
Boolean snapshots ;
129
148
}
130
149
150
+ @ FieldDefaults (level = AccessLevel .PRIVATE )
151
+ @ Getter
152
+ @ Setter
153
+ public static class Servers {
154
+ @ JacksonXmlProperty (localName = "server" )
155
+ @ JacksonXmlElementWrapper (useWrapping = false )
156
+ List <Server > servers = emptyList ();
157
+ }
158
+
131
159
@ FieldDefaults (makeFinal = true , level = AccessLevel .PRIVATE )
132
160
@ Data
133
161
public static class Server {
0 commit comments