Class ExclusiveResource


  • @API(status=STABLE,
         since="1.10")
    public class ExclusiveResource
    extends java.lang.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=STABLE,
             since="1.10")
        public static final java.lang.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
      • key

        private final java.lang.String key
      • hash

        private int hash
    • Constructor Detail

      • ExclusiveResource

        public ExclusiveResource​(java.lang.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
    • Method Detail

      • getKey

        public java.lang.String getKey()
        Get the key of this resource.
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

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