loadJar

fun loadJar(jarPath: Path, parent: ClassLoader = defaultParent(), cache: BundleDescriptorCache = BundleDescriptorCache()): List<LoadedBundle>(source)

Loads every bundle declared in jarPath via ServiceLoader. Each returned LoadedBundle owns the freshly-created classloader; if the JAR declares multiple bundles they share the loader.

Return

zero or more bundles (empty if the JAR has no services file registration for KSLModelBundle)

Parameters

jarPath

path to a regular JAR file

parent

parent classloader for delegation; defaults to the loader that holds KSLCore so bundle code resolves KSL types

cache

on-disk descriptor cache for lazy extraction; defaults to one rooted at ~/.ksl/bundle-cache