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 1919import java .util .Arrays ;
2020import java .util .List ;
2121import java .util .Optional ;
22+ import java .util .function .Predicate ;
2223import java .util .stream .Stream ;
2324
2425import org .springframework .core .annotation .AnnotatedElementUtils ;
@@ -146,11 +147,14 @@ public List<String> getBasePackages() {
146147 var result = new ArrayList <String >();
147148 result .add (basePackage );
148149
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 );
154158
155159 return result ;
156160 }
Original file line number Diff line number Diff line change @@ -54,6 +54,16 @@ void usesSimpleClassNameAsDefaultSystemName() {
5454 });
5555 }
5656
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+
5767 @ Modulithic (useFullyQualifiedModuleNames = true )
5868 static class Sample {}
5969
@@ -63,4 +73,7 @@ static class MetaSample {}
6373 @ Retention (RetentionPolicy .RUNTIME )
6474 @ Modulithic (useFullyQualifiedModuleNames = true )
6575 @interface Intermediate {}
76+
77+ @ Modulithic (additionalPackages = "org.springframework.modulith.core.nested" )
78+ static class WithInvalidAdditionalpackages {}
6679}
You can’t perform that action at this time.
0 commit comments