Class ExclusiveResource


  • @API(status=EXPERIMENTAL,
         since="1.3")
    public class ExclusiveResource
    extends Object
    An exclusive resource identified by a key with a lock mode that is used to synchronize access to shared resources when executing nodes in parallel.
    Since:
    1.3
    See Also:
    Node.getExecutionMode()
    • Field Detail

      • GLOBAL_KEY

        @API(status=EXPERIMENTAL,
             since="1.7")
        public static final String GLOBAL_KEY
        Key of the global resource lock that all direct children of the engine descriptor acquire in read mode by default: "org.junit.platform.engine.support.hierarchical.ExclusiveResource.GLOBAL_KEY"

        If any node requires an exclusive resource with the same key in read-write mode, the lock will be coarsened to be acquired by the node's ancestor that is a direct child of the engine descriptor and all of the ancestor's descendants will be forced to run in the same thread.

        Since:
        1.7
        See Also:
        Constant Field Values
    • Constructor Detail

      • ExclusiveResource

        public ExclusiveResource​(String key,
                                 ExclusiveResource.LockMode lockMode)
        Create a new ExclusiveResource.
        Parameters:
        key - the identifier of the resource; never null or blank
        lockMode - the lock mode to use to synchronize access to the resource; never null