- All Implemented Interfaces:
HttpClient.Aware,HttpClientTransport,org.eclipse.jetty.io.ClientConnectionFactory,org.eclipse.jetty.util.component.Container,org.eclipse.jetty.util.component.Destroyable,org.eclipse.jetty.util.component.Dumpable,org.eclipse.jetty.util.component.Dumpable.DumpableContainer,org.eclipse.jetty.util.component.LifeCycle,org.eclipse.jetty.util.thread.Invocable
- Direct Known Subclasses:
AbstractConnectorHttpClientTransport
-
Nested Class Summary
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener, org.eclipse.jetty.util.component.AbstractLifeCycle.StopExceptionNested classes/interfaces inherited from interface org.eclipse.jetty.io.ClientConnectionFactory
org.eclipse.jetty.io.ClientConnectionFactory.Decorator, org.eclipse.jetty.io.ClientConnectionFactory.InfoNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.ListenerNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
org.eclipse.jetty.util.component.Dumpable.DumpableContainerNested classes/interfaces inherited from interface org.eclipse.jetty.util.thread.Invocable
org.eclipse.jetty.util.thread.Invocable.Callable, org.eclipse.jetty.util.thread.Invocable.InvocationType, org.eclipse.jetty.util.thread.Invocable.ReadyTask, org.eclipse.jetty.util.thread.Invocable.TaskNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
org.eclipse.jetty.util.component.LifeCycle.Listener -
Field Summary
Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
FAILED, STARTED, STARTING, STOPPED, STOPPINGFields inherited from interface org.eclipse.jetty.io.ClientConnectionFactory
CLIENT_CONTEXT_KEYFields inherited from interface org.eclipse.jetty.util.component.Dumpable
KEYFields inherited from interface org.eclipse.jetty.client.HttpClientTransport
HTTP_CONNECTION_PROMISE_CONTEXT_KEY, HTTP_DESTINATION_CONTEXT_KEYFields inherited from interface org.eclipse.jetty.util.thread.Invocable
__nonBlocking, NOOP -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidconnectFailed(Map<String, Object> context, Throwable failure) protected HttpClientorg.eclipse.jetty.util.thread.Invocable.InvocationTypevoidSet the factory for ConnectionPool instances.voidsetHttpClient(HttpClient client) Sets theHttpClientinstance on this transport.voidsetInvocationType(org.eclipse.jetty.util.thread.Invocable.InvocationType invocationType) Sets theInvocable.InvocationTypeassociated with thisHttpClientTransport.Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, addBean, addEventListener, addManaged, contains, destroy, doStart, doStop, dump, dump, dump, dumpObjects, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, installBean, installBean, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, start, stop, unmanage, updateBean, updateBean, updateBeans, updateBeansMethods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stop, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.jetty.io.ClientConnectionFactory
customize, newConnectionMethods inherited from interface org.eclipse.jetty.util.component.Container
getCachedBeans, getEventListenersMethods inherited from interface org.eclipse.jetty.util.component.Dumpable
dumpSelfMethods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpableMethods inherited from interface org.eclipse.jetty.client.HttpClientTransport
connect, newDestination, newOrigin
-
Constructor Details
-
AbstractHttpClientTransport
public AbstractHttpClientTransport()
-
-
Method Details
-
getHttpClient
-
setHttpClient
Description copied from interface:HttpClientTransportSets theHttpClientinstance on this transport.This is needed because of a chicken-egg problem: in order to create the
HttpClienta HttpClientTransport is needed, that therefore cannot have a reference yet to theHttpClient.- Specified by:
setHttpClientin interfaceHttpClient.Aware- Specified by:
setHttpClientin interfaceHttpClientTransport- Parameters:
client- theHttpClientthat uses this transport.
-
getConnectionPoolFactory
- Specified by:
getConnectionPoolFactoryin interfaceHttpClientTransport- Returns:
- the factory for ConnectionPool instances
-
setConnectionPoolFactory
Description copied from interface:HttpClientTransportSet the factory for ConnectionPool instances.- Specified by:
setConnectionPoolFactoryin interfaceHttpClientTransport- Parameters:
factory- the factory for ConnectionPool instances
-
connectFailed
-
getInvocationType
public org.eclipse.jetty.util.thread.Invocable.InvocationType getInvocationType()- Specified by:
getInvocationTypein interfaceHttpClientTransport- Specified by:
getInvocationTypein interfaceorg.eclipse.jetty.util.thread.Invocable- Returns:
- the
Invocable.InvocationTypeassociated with thisHttpClientTransport. - See Also:
-
setInvocationType
public void setInvocationType(org.eclipse.jetty.util.thread.Invocable.InvocationType invocationType) Description copied from interface:HttpClientTransportSets the
Invocable.InvocationTypeassociated with thisHttpClientTransport.The values are typically either:
Invocable.InvocationType.BLOCKING, to indicate that response listeners are executing blocking code, for example blocking network I/O, JDBC, etc.Invocable.InvocationType.NON_BLOCKING, to indicate that response listeners are executing non-blocking code.
By default, the value is
Invocable.InvocationType.BLOCKING.A response listener declared to be
Invocable.InvocationType.BLOCKINGincurs in one additional context switch, where the NIO processing thread delegates the response processing to another thread. This ensures that the NIO processing thread can immediately continue with other NIO processing activities, if any (for example, processing another connection). This also means that processing of different connections is parallelized.Invocable.InvocationType.BLOCKINGmust be used when you want response listeners to be invoked by virtual threads.On the other hand, a response listener declared to be
Invocable.InvocationType.NON_BLOCKINGdoes not incur in the additional context switch, and therefore it is potentially more efficient. However, the processing of different connections is serialized, which means that the last connection will be processed only after the previous connections (and their respective response listeners) have been processed.A response listener declared to be
Invocable.InvocationType.NON_BLOCKING, but then executing blocking code, will block the NIO processing performed byHttpClient's implementation: the current connection and possibly other connections will not be further processed, until the blocking response listener returns.- Specified by:
setInvocationTypein interfaceHttpClientTransport- Parameters:
invocationType- theInvocable.InvocationTypeassociated with thisHttpClientTransport.- See Also:
-