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 49d6a93d..02ae5831 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 @@ -100,7 +100,7 @@ public class ApplicationModules implements Iterable { * @param option must not be {@literal null}. */ protected ApplicationModules(ModulithMetadata metadata, - DescribedPredicate ignored, boolean useFullyQualifiedModuleNames, ImportOption option) { + DescribedPredicate ignored, boolean useFullyQualifiedModuleNames, ImportOption option) { this(metadata, metadata.getBasePackages(), ignored, useFullyQualifiedModuleNames, option); } @@ -118,18 +118,20 @@ public class ApplicationModules implements Iterable { */ @Deprecated(forRemoval = true) protected ApplicationModules(ModulithMetadata metadata, Collection packages, - DescribedPredicate ignored, boolean useFullyQualifiedModuleNames, ImportOption option) { + DescribedPredicate ignored, boolean useFullyQualifiedModuleNames, ImportOption option) { Assert.notNull(metadata, "ModulithMetadata must not be null!"); Assert.notNull(packages, "Base packages must not be null!"); Assert.notNull(ignored, "Ignores must not be null!"); Assert.notNull(option, "ImportOptions must not be null!"); + DescribedPredicate excluded = DescribedPredicate.or(ignored, IS_AOT_TYPE, IS_SPRING_CGLIB_PROXY); + this.metadata = metadata; this.allClasses = new ClassFileImporter() // .withImportOption(option) // .importPackages(packages) // - .that(not(ignored.or(IS_AOT_TYPE).or(IS_SPRING_CGLIB_PROXY))); + .that(not(excluded)); Assert.notEmpty(allClasses, () -> "No classes found in packages %s!".formatted(packages)); @@ -215,7 +217,7 @@ public class ApplicationModules implements Iterable { * @param ignored must not be {@literal null}. * @return will never be {@literal null}. */ - public static ApplicationModules of(Class modulithType, DescribedPredicate ignored) { + public static ApplicationModules of(Class modulithType, DescribedPredicate ignored) { Assert.notNull(modulithType, "Modulith root type must not be null!"); Assert.notNull(ignored, "Predicate to describe ignored types must not be null!"); @@ -653,12 +655,12 @@ public class ApplicationModules implements Iterable { private static class CacheKey { - private final DescribedPredicate ignored; + private final DescribedPredicate ignored; private final ImportOption options; private final Object metadataSource; private final Supplier metadata; - public CacheKey(DescribedPredicate ignored, ImportOption options, Object metadataSource, + public CacheKey(DescribedPredicate ignored, ImportOption options, Object metadataSource, Supplier metadata) { this.ignored = ignored; @@ -667,15 +669,15 @@ public class ApplicationModules implements Iterable { this.metadata = SingletonSupplier.of(metadata); } - static CacheKey of(String pkg, DescribedPredicate ignored, ImportOption options) { + static CacheKey of(String pkg, DescribedPredicate ignored, ImportOption options) { return new CacheKey(ignored, options, pkg, () -> ModulithMetadata.of(pkg)); } - static CacheKey of(Class type, DescribedPredicate ignored, ImportOption options) { + static CacheKey of(Class type, DescribedPredicate ignored, ImportOption options) { return new CacheKey(ignored, options, type, () -> ModulithMetadata.of(type)); } - DescribedPredicate getIgnored() { + DescribedPredicate getIgnored() { return ignored; }