Class DiscoveryIndexReader
java.lang.Object
tech.guilhermekaua.spigotboot.core.context.discovery.DiscoveryIndexReader
Aggregates every
DiscoveryIndex found on the classpath into a single lookup table keyed
by category. Runtime scan sites query this first and fall back to
classpath scanning only when the reader has no indexes available.
Indexes are discovered by enumerating marker files under
"META-INF/spigot-boot/discovery"/<GeneratedIndexClassFQCN>. This mirrors the mechanism used by
ModuleDiscovery: each jar contributes one or more uniquely-named marker files, so the
Maven Shade Plugin merges them without requiring an explicit resource transformer.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionclassesInCategory(@NotNull String category) Returns every class registered undercategoryby any loaded index.classesInCategory(@NotNull String category, @Nullable String packageFilter) Returns classes registered undercategorywhose fully-qualified name starts withpackageFilter.static DiscoveryIndexReadercreate()Convenience factory that uses the current thread's context class loader (falling back to this class's loader if the context loader isnull).booleanbooleanhasEntriesFor(@NotNull String category)
-
Constructor Details
-
DiscoveryIndexReader
-
-
Method Details
-
create
Convenience factory that uses the current thread's context class loader (falling back to this class's loader if the context loader isnull). -
hasAnyIndex
public boolean hasAnyIndex()- Returns:
trueif at least oneDiscoveryIndexwas loaded successfully. Whenfalse, callers should fall back to classpath scanning.
-
hasEntriesFor
- Returns:
truewhen any loaded index contains entries forcategory.
-
classesInCategory
Returns every class registered undercategoryby any loaded index. -
classesInCategory
@NotNull public @NotNull List<Class<?>> classesInCategory(@NotNull @NotNull String category, @Nullable @Nullable String packageFilter) Returns classes registered undercategorywhose fully-qualified name starts withpackageFilter. A null or empty filter means "no filter". The filter matchespackageFilterexactly orpackageFilter + "."as a prefix, so"com.foo"does not match"com.foobar.Baz". -
knownCategories
- Returns:
- every category key present across all loaded indexes (unordered).
-