Class Distributor
- java.lang.Object
-
- org.openqa.selenium.grid.distributor.Distributor
-
- All Implemented Interfaces:
java.util.function.Predicate<org.openqa.selenium.remote.http.HttpRequest>
,org.openqa.selenium.remote.http.HttpHandler
,org.openqa.selenium.remote.http.Routable
- Direct Known Subclasses:
LocalDistributor
,RemoteDistributor
public abstract class Distributor extends java.lang.Object implements java.util.function.Predicate<org.openqa.selenium.remote.http.HttpRequest>, org.openqa.selenium.remote.http.Routable, org.openqa.selenium.remote.http.HttpHandler
Responsible for being the central place where theNode
s on whichSession
s run are determined.This class responds to the following URLs:
Verb URL Template Meaning POST /session This is exactly the same as the New Session command from the WebDriver spec. POST /se/grid/distributor/node Adds a new Node
to this distributor. Please read the javadocs forNode
for how the Node should be serialized.DELETE /se/grid/distributor/node/{nodeId} Remove the Node
identified bynodeId
from this distributor. It is expected that any sessions running on the Node are allowed to complete: this simply means that no new sessions will be scheduled on this Node.
-
-
Field Summary
Fields Modifier and Type Field Description protected io.opentracing.Tracer
tracer
-
Constructor Summary
Constructors Modifier Constructor Description protected
Distributor(io.opentracing.Tracer tracer, org.openqa.selenium.remote.http.HttpClient.Factory httpClientFactory)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract Distributor
add(Node node)
org.openqa.selenium.remote.http.HttpResponse
execute(org.openqa.selenium.remote.http.HttpRequest req)
abstract DistributorStatus
getStatus()
boolean
matches(org.openqa.selenium.remote.http.HttpRequest req)
abstract CreateSessionResponse
newSession(org.openqa.selenium.remote.http.HttpRequest request)
abstract void
remove(java.util.UUID nodeId)
boolean
test(org.openqa.selenium.remote.http.HttpRequest httpRequest)
-
-
-
Method Detail
-
newSession
public abstract CreateSessionResponse newSession(org.openqa.selenium.remote.http.HttpRequest request) throws org.openqa.selenium.SessionNotCreatedException
- Throws:
org.openqa.selenium.SessionNotCreatedException
-
add
public abstract Distributor add(Node node)
-
remove
public abstract void remove(java.util.UUID nodeId)
-
getStatus
public abstract DistributorStatus getStatus()
-
test
public boolean test(org.openqa.selenium.remote.http.HttpRequest httpRequest)
- Specified by:
test
in interfacejava.util.function.Predicate<org.openqa.selenium.remote.http.HttpRequest>
-
matches
public boolean matches(org.openqa.selenium.remote.http.HttpRequest req)
- Specified by:
matches
in interfaceorg.openqa.selenium.remote.http.Routable
-
execute
public org.openqa.selenium.remote.http.HttpResponse execute(org.openqa.selenium.remote.http.HttpRequest req) throws java.io.UncheckedIOException
- Specified by:
execute
in interfaceorg.openqa.selenium.remote.http.HttpHandler
- Throws:
java.io.UncheckedIOException
-
-