Class QuicClientConnectorConfigurator
- All Implemented Interfaces:
Container
,Destroyable
,Dumpable
,Dumpable.DumpableContainer
,LifeCycle
A QUIC specific ClientConnector.Configurator
.
Since QUIC is based on UDP, this class creates DatagramChannel
s instead of
SocketChannel
s, and DatagramChannelEndPoint
s instead of
SocketChannelEndPoint
s.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.eclipse.jetty.io.ClientConnector.Configurator
ClientConnector.Configurator.ChannelWithAddress
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener, AbstractLifeCycle.StopException
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
Container.InheritedListener, Container.Listener
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
Dumpable.DumpableContainer
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
LifeCycle.Listener
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
doStart()
Starts the managed lifecycle beans in the order they were added.protected void
doStop()
Stops the managed lifecycle beans in the reverse order they were added.boolean
isIntrinsicallySecure
(ClientConnector clientConnector, SocketAddress address) Returns whether the connection to a givenSocketAddress
is intrinsically secure.newChannelWithAddress
(ClientConnector clientConnector, SocketAddress address, Map<String, Object> context) Creates a newSocketChannel
to connect to aSocketAddress
derived from the input socket address.newConnection
(ClientConnector clientConnector, SocketAddress address, EndPoint endPoint, Map<String, Object> context) newEndPoint
(ClientConnector clientConnector, SocketAddress address, SelectableChannel selectable, ManagedSelector selector, SelectionKey selectionKey) Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, addBean, addEventListener, addManaged, contains, destroy, dump, dump, dump, dumpObjects, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, start, stop, unmanage, updateBean, updateBean, updateBeans, updateBeans
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stop, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.eclipse.jetty.util.component.Container
getCachedBeans, getEventListeners
Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpable
-
Constructor Details
-
QuicClientConnectorConfigurator
public QuicClientConnectorConfigurator() -
QuicClientConnectorConfigurator
-
-
Method Details
-
getQuicConfiguration
-
doStart
Description copied from class:ContainerLifeCycle
Starts the managed lifecycle beans in the order they were added.- Overrides:
doStart
in classContainerLifeCycle
- Throws:
AbstractLifeCycle.StopException
- If thrown, the lifecycle will immediately be stopped.Exception
- If there was a problem starting. Will cause a transition to FAILED state
-
doStop
Description copied from class:ContainerLifeCycle
Stops the managed lifecycle beans in the reverse order they were added.- Overrides:
doStop
in classContainerLifeCycle
- Throws:
Exception
- If there was a problem stopping. Will cause a transition to FAILED state
-
isIntrinsicallySecure
Description copied from class:ClientConnector.Configurator
Returns whether the connection to a given
SocketAddress
is intrinsically secure.A protocol such as HTTP/1.1 can be transported by TCP; however, TCP is not secure because it does not offer any encryption.
Encryption is provided by using TLS to wrap the HTTP/1.1 bytes, and then transporting the TLS bytes over TCP.
On the other hand, protocols such as QUIC are intrinsically secure, and therefore it is not necessary to wrap the HTTP/1.1 bytes with TLS: the HTTP/1.1 bytes are transported over QUIC in an intrinsically secure way.
- Overrides:
isIntrinsicallySecure
in classClientConnector.Configurator
- Parameters:
clientConnector
- the ClientConnectoraddress
- the SocketAddress to connect to- Returns:
- whether the connection to the given SocketAddress is intrinsically secure
-
newChannelWithAddress
public ClientConnector.Configurator.ChannelWithAddress newChannelWithAddress(ClientConnector clientConnector, SocketAddress address, Map<String, Object> context) throws IOExceptionDescription copied from class:ClientConnector.Configurator
Creates a new
SocketChannel
to connect to aSocketAddress
derived from the input socket address.The input socket address represents the destination socket address to connect to, as it is typically specified by a URI authority, for example
localhost:8080
if the URI ishttp://localhost:8080/path
.However, the returned socket address may be different as the implementation may use a Unix-Domain socket address to physically connect to the virtual destination socket address given as input.
The return type is a pair/record holding the socket channel and the socket address, with the socket channel not yet connected. The implementation of this methods must not call
SocketChannel.connect(SocketAddress)
, as this is done later, after configuring the socket, by theClientConnector
implementation.- Overrides:
newChannelWithAddress
in classClientConnector.Configurator
- Parameters:
clientConnector
- the client connector requesting channel with associated addressaddress
- the destination socket address, typically specified in a URIcontext
- the context to create the new socket channel- Returns:
- a new
SocketChannel
with an associatedSocketAddress
to connect to - Throws:
IOException
- if the socket channel or the socket address cannot be created
-
newEndPoint
public EndPoint newEndPoint(ClientConnector clientConnector, SocketAddress address, SelectableChannel selectable, ManagedSelector selector, SelectionKey selectionKey) - Overrides:
newEndPoint
in classClientConnector.Configurator
-
newConnection
public Connection newConnection(ClientConnector clientConnector, SocketAddress address, EndPoint endPoint, Map<String, Object> context) - Overrides:
newConnection
in classClientConnector.Configurator
-