core/src/main/java/org/trimou/engine/resolver/ReflectionResolver.java
public void invalidateMemberCache(Predicate<Class<?>> predicate) {
        if (memberCache == null) {
            return;
        }
        if (predicate == null) {
            memberCache.clear();
        } else {
            memberCache.invalidate((key) -> predicate.test(key.getClazz()));
        }
    }
public void invalidateMemberCache(Predicate<Class<?>> predicate) {
        if (memberCache == null) {
            return;
        }
        if (predicate == null) {
            memberCache.clear();
        } else {
            memberCache.invalidate((key) -> predicate.test(key.getClazz()));
        }
    }
The member cache may theoretically cause memory leaks due to using hard
references to {@link Class} and {@link Member} instances. As a temporary
workaround we provide a way to invalidate the cache or some of its
entries (e.g. for a concrete classloader).

@param predicate
If null, all cache entries are discarded, otherwise an entry
is only discarded if the given predicate returns
<code>true</code> for the {@link MemberKey#getClass()}