Class DetectorConnectionFactory
java.lang.Object
org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.ContainerLifeCycle
org.eclipse.jetty.server.AbstractConnectionFactory
org.eclipse.jetty.server.DetectorConnectionFactory
- All Implemented Interfaces:
ConnectionFactory, ConnectionFactory.Detecting, Container, Destroyable, Dumpable, Dumpable.DumpableContainer, LifeCycle
- Direct Known Subclasses:
OptionalSslConnectionFactory, ProxyConnectionFactory
public class DetectorConnectionFactory
extends AbstractConnectionFactory
implements ConnectionFactory.Detecting
A
ConnectionFactory combining multiple ConnectionFactory.Detecting instances that will upgrade to
the first one recognizing the bytes in the buffer.-
Nested Class Summary
Nested classes/interfaces inherited from class AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener, AbstractLifeCycle.StopExceptionNested classes/interfaces inherited from interface ConnectionFactory
ConnectionFactory.Configuring, ConnectionFactory.Detecting, ConnectionFactory.UpgradingNested classes/interfaces inherited from interface ConnectionFactory.Detecting
ConnectionFactory.Detecting.DetectionNested classes/interfaces inherited from interface Container
Container.InheritedListener, Container.ListenerNested classes/interfaces inherited from interface Dumpable
Dumpable.DumpableContainerNested classes/interfaces inherited from interface LifeCycle
LifeCycle.Listener -
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionDetectorConnectionFactory(ConnectionFactory.Detecting... detectingConnectionFactories) When the first bytes are not recognized by thedetectingConnectionFactories, the default behavior is to upgrade to the protocol returned byAbstractConnectionFactory.findNextProtocol(Connector). -
Method Summary
Modifier and TypeMethodDescriptiondetect(ByteBuffer buffer) Performs a detection using multipleConnectionFactory.Detectinginstances and returns the aggregated outcome.newConnection(Connector connector, EndPoint endPoint) Creates a newConnectionwith the given parametersprotected voidnextProtocol(Connector connector, EndPoint endPoint, ByteBuffer buffer) Callback method called when detection was unsuccessful.protected static voidupgradeToConnectionFactory(ConnectionFactory connectionFactory, Connector connector, EndPoint endPoint) Utility method that performs an upgrade to the specified connection factory, disposing of the given resources when needed.Methods inherited from class AbstractConnectionFactory
configure, findNextProtocol, findNextProtocol, getFactories, getInputBufferSize, getProtocol, getProtocols, setInputBufferSize, toStringMethods inherited from class 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 AbstractLifeCycle
getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stopMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface ConnectionFactory
getProtocol, getProtocolsMethods inherited from interface Container
getCachedBeans, getEventListenersMethods inherited from interface Dumpable.DumpableContainer
isDumpable
-
Constructor Details
-
DetectorConnectionFactory
When the first bytes are not recognized by the
detectingConnectionFactories, the default behavior is to upgrade to the protocol returned byAbstractConnectionFactory.findNextProtocol(Connector).- Parameters:
detectingConnectionFactories- theConnectionFactory.Detectinginstances.
-
-
Method Details
-
detect
Performs a detection using multipleConnectionFactory.Detectinginstances and returns the aggregated outcome.- Specified by:
detectin interfaceConnectionFactory.Detecting- Parameters:
buffer- the buffer to perform a detection against.- Returns:
- A
ConnectionFactory.Detecting.Detectionvalue with the detection outcome of thedetectingConnectionFactories.
-
upgradeToConnectionFactory
protected static void upgradeToConnectionFactory(ConnectionFactory connectionFactory, Connector connector, EndPoint endPoint) throws IllegalStateException Utility method that performs an upgrade to the specified connection factory, disposing of the given resources when needed.- Parameters:
connectionFactory- the connection factory to upgrade to.connector- the connector.endPoint- the endpoint.- Throws:
IllegalStateException
-
nextProtocol
protected void nextProtocol(Connector connector, EndPoint endPoint, ByteBuffer buffer) throws IllegalStateException Callback method called when detection was unsuccessful. This implementation upgrades to the protocol returned by
AbstractConnectionFactory.findNextProtocol(Connector).- Parameters:
connector- the connector.endPoint- the endpoint.buffer- the buffer.- Throws:
IllegalStateException
-
newConnection
Description copied from interface:ConnectionFactoryCreates a new
Connectionwith the given parameters- Specified by:
newConnectionin interfaceConnectionFactory- Parameters:
connector- TheConnectorcreating this connectionendPoint- theEndPointassociated with the connection- Returns:
- a new
Connection
-