GH-662 - Fix named interface detection in case of nested packages.
If named interfaces are declared in nested packages, the name detection might accidentally pick up the names declared in child packages. We now deliberately only inspect the base package.
This commit is contained in:
@@ -72,12 +72,13 @@ public class NamedInterface implements Iterable<JavaClass> {
|
||||
*/
|
||||
static List<NamedInterface> of(JavaPackage javaPackage) {
|
||||
|
||||
var names = javaPackage.findAnnotation(org.springframework.modulith.NamedInterface.class) //
|
||||
var basePackage = javaPackage.toSingle();
|
||||
var names = basePackage.findAnnotation(org.springframework.modulith.NamedInterface.class) //
|
||||
.map(it -> getDefaultedNames(it, javaPackage.getName())) //
|
||||
.orElseThrow(() -> new IllegalArgumentException(
|
||||
String.format("Couldn't find NamedInterface annotation on package %s!", javaPackage)));
|
||||
|
||||
var classes = javaPackage.toSingle().getExposedClasses();
|
||||
var classes = basePackage.getExposedClasses();
|
||||
|
||||
return names.stream()
|
||||
.<NamedInterface> map(it -> new NamedInterface(it, classes)) //
|
||||
|
||||
Reference in New Issue
Block a user