package net.djpowell.liverepl.discovery.impl; import net.djpowell.liverepl.discovery.ClassLoaderDiscovery; import net.djpowell.liverepl.discovery.ClassLoaderInfo; import net.djpowell.liverepl.discovery.ClassLoaderRegistry; import java.util.Collection; import java.util.Collections; /** * Simple implementation of ClassLoaderDiscovery for returning the SystemClassLoader. * This implementation should be registered first with Discovery to ensure that the * well-known SystemClassLoader gets assigned 0 as its id. */ public class SystemDiscovery implements ClassLoaderDiscovery { private final String id; public SystemDiscovery(ClassLoaderRegistry registry) { id = registry.registerClassLoader(ClassLoader.getSystemClassLoader()); } public Collection<ClassLoaderInfo> listClassLoaders() { ClassLoaderInfo cli = new ClassLoaderInfo(id, ClassLoader.getSystemClassLoader(), "<system>"); return Collections.singletonList(cli); } public String discoveryName() { return "System Class Loader"; } }