Skip to content

Commit 8ea71a6

Browse files
committed
GH-763 - Open up ApplicationModules.of(…) to take a DescribedPredicate<? super JavaClass>.
1 parent 24d18c9 commit 8ea71a6

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

spring-modulith-core/src/main/java/org/springframework/modulith/core/ApplicationModules.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,15 @@ public class ApplicationModules implements Iterable<ApplicationModule> {
9696
private boolean verified;
9797

9898
protected ApplicationModules(ModulithMetadata metadata, Collection<String> packages,
99-
DescribedPredicate<JavaClass> ignored, boolean useFullyQualifiedModuleNames, ImportOption option) {
99+
DescribedPredicate<? super JavaClass> ignored, boolean useFullyQualifiedModuleNames, ImportOption option) {
100+
101+
DescribedPredicate<? super JavaClass> excluded = DescribedPredicate.or(ignored, IS_AOT_TYPE);
100102

101103
this.metadata = metadata;
102104
this.allClasses = new ClassFileImporter() //
103105
.withImportOption(option) //
104106
.importPackages(packages) //
105-
.that(not(ignored.or(IS_AOT_TYPE)));
107+
.that(not(excluded));
106108

107109
Classes classes = Classes.of(allClasses);
108110

@@ -185,7 +187,7 @@ public static ApplicationModules of(Class<?> modulithType) {
185187
* @param ignored must not be {@literal null}.
186188
* @return will never be {@literal null}.
187189
*/
188-
public static ApplicationModules of(Class<?> modulithType, DescribedPredicate<JavaClass> ignored) {
190+
public static ApplicationModules of(Class<?> modulithType, DescribedPredicate<? super JavaClass> ignored) {
189191

190192
CacheKey key = new TypeKey(modulithType, ignored);
191193

@@ -215,7 +217,7 @@ public static ApplicationModules of(String javaPackage) {
215217
* @param ignored must not be {@literal null}.
216218
* @return will never be {@literal null}.
217219
*/
218-
public static ApplicationModules of(String javaPackage, DescribedPredicate<JavaClass> ignored) {
220+
public static ApplicationModules of(String javaPackage, DescribedPredicate<? super JavaClass> ignored) {
219221

220222
CacheKey key = new PackageKey(javaPackage, ignored);
221223

@@ -613,23 +615,23 @@ private static interface CacheKey {
613615

614616
String getBasePackage();
615617

616-
DescribedPredicate<JavaClass> getIgnored();
618+
DescribedPredicate<? super JavaClass> getIgnored();
617619

618620
ModulithMetadata getMetadata();
619621
}
620622

621623
private static final class TypeKey implements CacheKey {
622624

623625
private final Class<?> type;
624-
private final DescribedPredicate<JavaClass> ignored;
626+
private final DescribedPredicate<? super JavaClass> ignored;
625627

626628
/**
627629
* Creates a new {@link TypeKey} for the given type and {@link DescribedPredicate} of ignored {@link JavaClass}es.
628630
*
629631
* @param type must not be {@literal null}.
630632
* @param ignored must not be {@literal null}.
631633
*/
632-
TypeKey(Class<?> type, DescribedPredicate<JavaClass> ignored) {
634+
TypeKey(Class<?> type, DescribedPredicate<? super JavaClass> ignored) {
633635

634636
this.type = type;
635637
this.ignored = ignored;
@@ -658,7 +660,7 @@ public ModulithMetadata getMetadata() {
658660
* @see org.springframework.modulith.model.ApplicationModules.CacheKey#getIgnored()
659661
*/
660662
@Override
661-
public DescribedPredicate<JavaClass> getIgnored() {
663+
public DescribedPredicate<? super JavaClass> getIgnored() {
662664
return ignored;
663665
}
664666

@@ -694,7 +696,7 @@ public int hashCode() {
694696
private static final class PackageKey implements CacheKey {
695697

696698
private final String basePackage;
697-
private final DescribedPredicate<JavaClass> ignored;
699+
private final DescribedPredicate<? super JavaClass> ignored;
698700

699701
/**
700702
* Creates a new {@link PackageKey} for the given base package and {@link DescribedPredicate} of ignored
@@ -703,7 +705,7 @@ private static final class PackageKey implements CacheKey {
703705
* @param basePackage must not be {@literal null}.
704706
* @param ignored must not be {@literal null}.
705707
*/
706-
PackageKey(String basePackage, DescribedPredicate<JavaClass> ignored) {
708+
PackageKey(String basePackage, DescribedPredicate<? super JavaClass> ignored) {
707709

708710
this.basePackage = basePackage;
709711
this.ignored = ignored;
@@ -722,7 +724,7 @@ public String getBasePackage() {
722724
* (non-Javadoc)
723725
* @see org.springframework.modulith.model.ApplicationModules.CacheKey#getIgnored()
724726
*/
725-
public DescribedPredicate<JavaClass> getIgnored() {
727+
public DescribedPredicate<? super JavaClass> getIgnored() {
726728
return ignored;
727729
}
728730

0 commit comments

Comments
 (0)