Class ClasspathResourceSelector

  • All Implemented Interfaces:
    DiscoverySelector

    @API(status=STABLE,
         since="1.0")
    public class ClasspathResourceSelector
    extends java.lang.Object
    implements DiscoverySelector
    A DiscoverySelector that selects the name of a classpath resource so that TestEngines can load resources from the classpath — for example, to load XML or JSON files from the classpath, potentially within JARs.

    Since engines are not expected to modify the classpath, the classpath resource represented by this selector must be on the classpath of the context class loader of the thread that uses it.

    Note: Since Java 9, all resources are on the module path. Either in named or unnamed modules. These resources are also considered to be classpath resources.

    Since:
    1.0
    See Also:
    DiscoverySelectors.selectClasspathResource(String), ClasspathRootSelector, getClasspathResourceName()
    • Field Detail

      • classpathResourceName

        private final java.lang.String classpathResourceName
      • resources

        private java.util.Set<org.junit.platform.commons.io.Resource> resources
    • Constructor Detail

      • ClasspathResourceSelector

        ClasspathResourceSelector​(java.lang.String classpathResourceName,
                                  FilePosition position)
      • ClasspathResourceSelector

        ClasspathResourceSelector​(java.util.Set<? extends org.junit.platform.commons.io.Resource> resources)
    • Method Detail

      • getClasspathResourceName

        public java.lang.String getClasspathResourceName()
        Get the name of the selected classpath resource.

        The name of a classpath resource must follow the semantics for resource paths as defined in ClassLoader.getResource(String).

        See Also:
        ClassLoader.getResource(String), ClassLoader.getResourceAsStream(String), ClassLoader.getResources(String)
      • getClasspathResources

        @API(status=DEPRECATED,
             since="1.14")
        @Deprecated
        public java.util.Set<org.junit.platform.commons.support.Resource> getClasspathResources()
        Deprecated.
        Please use {getResources()} instead.
        Get the selected resources.

        If the resources were not provided, but only their name, this method attempts to lazily load the resources based on their name and throws a PreconditionViolationException if the resource cannot be loaded.

        Since:
        1.12
      • getResources

        @API(status=MAINTAINED,
             since="1.14")
        public java.util.Set<org.junit.platform.commons.io.Resource> getResources()
        Get the selected resources.

        If the resources were not provided, but only their name, this method attempts to lazily load the resources based on their name and throws a PreconditionViolationException if the resource cannot be loaded.

        Since:
        1.14
      • getPosition

        public java.util.Optional<FilePosition> getPosition()
        Get the selected FilePosition within the classpath resource.
      • equals

        @API(status=STABLE,
             since="1.3")
        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
        Since:
        1.3
      • hashCode

        @API(status=STABLE,
             since="1.3")
        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
        Since:
        1.3
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object