diff --git a/spring-modulith-core/src/main/java/org/springframework/modulith/core/ApplicationModule.java b/spring-modulith-core/src/main/java/org/springframework/modulith/core/ApplicationModule.java index 678473f7..621feaed 100644 --- a/spring-modulith-core/src/main/java/org/springframework/modulith/core/ApplicationModule.java +++ b/spring-modulith-core/src/main/java/org/springframework/modulith/core/ApplicationModule.java @@ -341,7 +341,7 @@ public class ApplicationModule implements Comparable { * @param type must not be {@literal null}. */ public boolean contains(JavaClass type) { - return contains(type.getName()); + return classes.contains(type); } /** @@ -350,7 +350,7 @@ public class ApplicationModule implements Comparable { * @param type must not be {@literal null}. */ public boolean contains(Class type) { - return contains(type.getName()); + return classes.contains(type); } /** diff --git a/spring-modulith-core/src/main/java/org/springframework/modulith/core/ApplicationModules.java b/spring-modulith-core/src/main/java/org/springframework/modulith/core/ApplicationModules.java index 2f3ed13e..d9e55a77 100644 --- a/spring-modulith-core/src/main/java/org/springframework/modulith/core/ApplicationModules.java +++ b/spring-modulith-core/src/main/java/org/springframework/modulith/core/ApplicationModules.java @@ -412,7 +412,10 @@ public class ApplicationModules implements Iterable { * @return will never be {@literal null}. */ public Optional getModuleByType(Class candidate) { - return getModuleByType(candidate.getName()); + + return allModules() + .filter(it -> it.contains(candidate)) + .findFirst(); } /** diff --git a/spring-modulith-core/src/main/java/org/springframework/modulith/core/Classes.java b/spring-modulith-core/src/main/java/org/springframework/modulith/core/Classes.java index 16eb52c0..6d3bf3ef 100644 --- a/spring-modulith-core/src/main/java/org/springframework/modulith/core/Classes.java +++ b/spring-modulith-core/src/main/java/org/springframework/modulith/core/Classes.java @@ -172,7 +172,11 @@ class Classes implements DescribedIterable { } boolean contains(JavaClass type) { - return !that(new SameClass(type)).isEmpty(); + return classes.contains(type); + } + + boolean contains(Class type) { + return classes.stream().anyMatch(it -> it.isEquivalentTo(type)); } boolean contains(String className) {