more rome classes

This commit is contained in:
Athou
2024-08-16 06:40:41 +02:00
parent 4ef53eab3a
commit 214dfe580a
2 changed files with 59 additions and 6 deletions

View File

@@ -1,6 +1,8 @@
package com.commafeed;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -10,6 +12,7 @@ import org.junit.jupiter.api.Test;
import org.reflections.Reflections;
import org.reflections.scanners.Scanners;
import com.rometools.rome.feed.CopyFrom;
import com.rometools.rome.feed.module.Module;
import com.rometools.rome.io.WireFeedGenerator;
import com.rometools.rome.io.WireFeedParser;
@@ -24,15 +27,17 @@ class NativeImageClassesTest {
Set<Class<?>> classesInAnnotation = Set
.copyOf(List.of(NativeImageClasses.class.getAnnotation(RegisterForReflection.class).targets()));
for (Class<?> clazz : Set.of(Module.class, WireFeedParser.class, WireFeedGenerator.class)) {
List<Class<?>> missingClasses = new ArrayList<>();
for (Class<?> clazz : List.of(Module.class, Cloneable.class, CopyFrom.class, WireFeedParser.class, WireFeedGenerator.class)) {
Set<Class<?>> moduleClasses = new HashSet<>(reflections.get(Scanners.SubTypes.of(clazz).asClass()));
moduleClasses.removeIf(c -> c.isInterface() || Modifier.isAbstract(c.getModifiers()));
moduleClasses.removeIf(c -> c.isInterface() || Modifier.isAbstract(c.getModifiers()) || !Modifier.isPublic(c.getModifiers()));
moduleClasses.removeAll(classesInAnnotation);
moduleClasses.forEach(c -> System.out.println(c.getName() + ".class,"));
Assertions.assertEquals(Set.of(), moduleClasses);
missingClasses.addAll(moduleClasses);
}
missingClasses.sort(Comparator.comparing(Class::getName));
missingClasses.forEach(c -> System.out.println(c.getName() + ".class,"));
Assertions.assertEquals(List.of(), missingClasses);
}
}