File tree Expand file tree Collapse file tree 2 files changed +22
-5
lines changed
main/java/org/springframework/modulith/core
test/java/org/springframework/modulith/core Expand file tree Collapse file tree 2 files changed +22
-5
lines changed Original file line number Diff line number Diff line change 19
19
import java .util .Arrays ;
20
20
import java .util .List ;
21
21
import java .util .Optional ;
22
+ import java .util .function .Predicate ;
22
23
import java .util .stream .Stream ;
23
24
24
25
import org .springframework .core .annotation .AnnotatedElementUtils ;
@@ -146,11 +147,14 @@ public List<String> getBasePackages() {
146
147
var result = new ArrayList <String >();
147
148
result .add (basePackage );
148
149
149
- for (var candidate : annotation .additionalPackages ()) {
150
- if (!result .contains (candidate )) {
151
- result .add (candidate );
152
- }
153
- }
150
+ var name = PackageName .of (basePackage );
151
+
152
+ // Only add non-nested additional packages
153
+ Stream .of (annotation .additionalPackages ())
154
+ .map (PackageName ::of )
155
+ .filter (Predicate .not (name ::contains ))
156
+ .map (PackageName ::getName )
157
+ .forEach (result ::add );
154
158
155
159
return result ;
156
160
}
Original file line number Diff line number Diff line change @@ -54,6 +54,16 @@ void usesSimpleClassNameAsDefaultSystemName() {
54
54
});
55
55
}
56
56
57
+ @ Test // GH-1247
58
+ void skipsNestedAdditionalPackages () {
59
+
60
+ assertThat (AnnotationModulithMetadata .of (WithInvalidAdditionalpackages .class )).hasValueSatisfying (it -> {
61
+ assertThat (it .getBasePackages ())
62
+ .hasSize (1 )
63
+ .contains (WithInvalidAdditionalpackages .class .getPackageName ());
64
+ });
65
+ }
66
+
57
67
@ Modulithic (useFullyQualifiedModuleNames = true )
58
68
static class Sample {}
59
69
@@ -63,4 +73,7 @@ static class MetaSample {}
63
73
@ Retention (RetentionPolicy .RUNTIME )
64
74
@ Modulithic (useFullyQualifiedModuleNames = true )
65
75
@interface Intermediate {}
76
+
77
+ @ Modulithic (additionalPackages = "org.springframework.modulith.core.nested" )
78
+ static class WithInvalidAdditionalpackages {}
66
79
}
You can’t perform that action at this time.
0 commit comments