Interface ClassLoaderService

All Superinterfaces:
ResourceLocator, ResourceStreamLocator, Serializable, Service, Stoppable
All Known Implementing Classes:
ClassLoaderServiceImpl

public interface ClassLoaderService extends ResourceLocator, ResourceStreamLocator, Service, Stoppable
A service for interacting with class loaders.
  • Method Details

    • classForName

      <T> Class<T> classForName(String className)
      Locate a class by name.
      Type Parameters:
      T - The returned class type.
      Parameters:
      className - The name of the class to locate
      Returns:
      The class reference
      Throws:
      ClassLoadingException - Indicates the class could not be found
    • classForTypeName

      default <T> Class<T> classForTypeName(String className)
    • locateResource

      URL locateResource(String name)
      Locate a resource by name (classpath lookup).
      Specified by:
      locateResource in interface ResourceLocator
      Parameters:
      name - The resource name.
      Returns:
      The located URL; may return null to indicate the resource was not found
    • locateResourceStream

      InputStream locateResourceStream(String name)
      Locate a resource by name (classpath lookup) and gets its stream.
      Specified by:
      locateResourceStream in interface ResourceStreamLocator
      Parameters:
      name - The resource name.
      Returns:
      The stream of the located resource; may return null to indicate the resource was not found
    • locateResources

      List<URL> locateResources(String name)
      Locate a series of resource by name (classpath lookup).
      Parameters:
      name - The resource name.
      Returns:
      The list of URL matching; may return null to indicate the resource was not found
    • loadJavaServices

      <S> Collection<S> loadJavaServices(Class<S> serviceContract)
      Discovers and instantiates implementations of the named service contract.
      Type Parameters:
      S - The type of the service contract
      Parameters:
      serviceContract - The java type defining the service contract
      Returns:
      The ordered set of discovered services.
      See Also:
      API Note:
      The term "service" here does not refer to a Service. Here it refers to a Java ServiceLoader.
    • generateProxy

      <T> T generateProxy(InvocationHandler handler, Class<?>... interfaces)
    • packageForNameOrNull

      Package packageForNameOrNull(String packageName)
      Loading a Package from the ClassLoader.
      Returns:
      The Package. null if no such Package is found, or if the ClassLoader call leads to an exception (LinkageError, e.g.).
    • workWithClassLoader

      <T> T workWithClassLoader(ClassLoaderService.Work<T> work)