org.optaplanner.core.config.domain

## Class ReflectionsWorkaroundClasspathHelper

- java.lang.Object
- - org.optaplanner.core.config.domain.ReflectionsWorkaroundClasspathHelper

-     public abstract class ReflectionsWorkaroundClasspathHelper
      extends Object

  Workaround for bug in `ClasspathHelper`. This workaround expires once https://github.com/ronmamo/reflections/pull/118 is fixed.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ReflectionsWorkaroundClasspathHelper()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static ClassLoader[]` | `classLoaders(ClassLoader... classLoaders)` Returns an array of class Loaders initialized from the specified array.
    `static String` | `cleanPath(URL url)` Cleans the URL.
    `static ClassLoader` | `contextClassLoader()` Gets the current thread context class loader.
    `static URL` | `forClass(Class<?> aClass, ClassLoader... classLoaders)` Returns the URL that contains a `Class`.
    `static Collection<URL>` | `forClassLoader()` Returns a distinct collection of URLs based on URLs derived from class loaders.
    `static Collection<URL>` | `forClassLoader(ClassLoader... classLoaders)` Returns a distinct collection of URLs based on URLs derived from class loaders.
    `static Collection<URL>` | `forJavaClassPath()` Returns a distinct collection of URLs based on the `java.class.path` system property.
    `static Collection<URL>` | `forPackage(String name, ClassLoader... classLoaders)` Returns a distinct collection of URLs based on a package name.
    `static Collection<URL>` | `forResource(String resourceName, ClassLoader... classLoaders)` Returns a distinct collection of URLs based on a resource.
    `static ClassLoader` | `staticClassLoader()` Gets the class loader of this library.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ReflectionsWorkaroundClasspathHelper

          public ReflectionsWorkaroundClasspathHelper()

  - ### Method Detail

    - #### contextClassLoader

          public static ClassLoader contextClassLoader()

      Gets the current thread context class loader. `Thread.currentThread().getContextClassLoader()`.
      Returns:
        the context class loader, may be null

    - #### staticClassLoader

          public static ClassLoader staticClassLoader()

      Gets the class loader of this library. `Reflections.class.getClassLoader()`.
      Returns:
        the static library class loader, may be null

    - #### classLoaders

          public static ClassLoader[] classLoaders(ClassLoader... classLoaders)

      Returns an array of class Loaders initialized from the specified array.

      If the input is null or empty, it defaults to both `contextClassLoader()` and `staticClassLoader()`

      Returns:
        the array of class loaders, not null

    - #### forPackage

          public static Collection<URL> forPackage(String name,
                                                   ClassLoader... classLoaders)

      Returns a distinct collection of URLs based on a package name.

      This searches for the package name as a resource, using `ClassLoader.getResources(String)`. For example, `forPackage(org.reflections)` effectively returns URLs from the classpath containing packages starting with `org.reflections`.

      If the optional `ClassLoader`s are not specified, then both `contextClassLoader()` and `staticClassLoader()` are used for `ClassLoader.getResources(String)`.

      The returned URLs retains the order of the given `classLoaders`.

      Returns:
        the collection of URLs, not null

    - #### forResource

          public static Collection<URL> forResource(String resourceName,
                                                    ClassLoader... classLoaders)

      Returns a distinct collection of URLs based on a resource.

      This searches for the resource name, using `ClassLoader.getResources(String)`. For example, `forResource(test.properties)` effectively returns URLs from the classpath containing files of that name.

      If the optional `ClassLoader`s are not specified, then both `contextClassLoader()` and `staticClassLoader()` are used for `ClassLoader.getResources(String)`.

      The returned URLs retains the order of the given `classLoaders`.

      Returns:
        the collection of URLs, not null

    - #### forClass

          public static URL forClass(Class<?> aClass,
                                     ClassLoader... classLoaders)

      Returns the URL that contains a `Class`.

      This searches for the class using `ClassLoader.getResource(String)`.

      If the optional `ClassLoader`s are not specified, then both `contextClassLoader()` and `staticClassLoader()` are used for `ClassLoader.getResources(String)`.

      Returns:
        the URL containing the class, null if not found

    - #### forClassLoader

          public static Collection<URL> forClassLoader()

      Returns a distinct collection of URLs based on URLs derived from class loaders.

      This finds the URLs using `URLClassLoader.getURLs()` using both `contextClassLoader()` and `staticClassLoader()`.

      The returned URLs retains the order of the given `classLoaders`.

      Returns:
        the collection of URLs, not null

    - #### forClassLoader

          public static Collection<URL> forClassLoader(ClassLoader... classLoaders)

      Returns a distinct collection of URLs based on URLs derived from class loaders.

      This finds the URLs using `URLClassLoader.getURLs()` using the specified class loader, searching up the parent hierarchy.

      If the optional `ClassLoader`s are not specified, then both `contextClassLoader()` and `staticClassLoader()` are used for `ClassLoader.getResources(String)`.

      The returned URLs retains the order of the given `classLoaders`.

      Returns:
        the collection of URLs, not null

    - #### forJavaClassPath

          public static Collection<URL> forJavaClassPath()

      Returns a distinct collection of URLs based on the `java.class.path` system property.

      This finds the URLs using the `java.class.path` system property.

      The returned collection of URLs retains the classpath order.

      Returns:
        the collection of URLs, not null

    - #### cleanPath

          public static String cleanPath(URL url)

      Cleans the URL.
      Parameters:
        `url` - the URL to clean, not null
      Returns:
        the path, not null

Copyright © 2006–2020 JBoss by Red Hat. All rights reserved.