Class UnixSocketConnector

  • All Implemented Interfaces:
    org.eclipse.jetty.server.Connector, 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.Graceful, org.eclipse.jetty.util.component.LifeCycle

    @ManagedObject("Connector using UNIX Socket")
    public class UnixSocketConnector
    extends org.eclipse.jetty.server.AbstractConnector

    A server-side connector for UNIX sockets.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected class  UnixSocketConnector.UnixSocketConnectorManager  
      • Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container

        org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.Listener
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable

        org.eclipse.jetty.util.component.Dumpable.DumpableContainer
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Graceful

        org.eclipse.jetty.util.component.Graceful.Shutdown
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle

        org.eclipse.jetty.util.component.LifeCycle.Listener
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private jnr.unixsocket.UnixServerSocketChannel _acceptChannel  
      private int _acceptQueueSize  
      private org.eclipse.jetty.io.SelectorManager _manager  
      private boolean _reuseAddress  
      private java.lang.String _unixSocket  
      private static org.eclipse.jetty.util.log.Logger LOG  
      static int MAX_UNIX_SOCKET_PATH_LENGTH  
      • Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        FAILED, RUNNING, STARTED, STARTING, STOPPED, STOPPING
      • Fields inherited from interface org.eclipse.jetty.util.component.Dumpable

        KEY
    • Constructor Summary

      Constructors 
      Constructor Description
      UnixSocketConnector​(org.eclipse.jetty.server.Server server)
      Constructs a UnixSocketConnector with the default configuration.
      UnixSocketConnector​(org.eclipse.jetty.server.Server server, int selectors)
      Constructs a UnixSocketConnector with the given number of selectors
      UnixSocketConnector​(org.eclipse.jetty.server.Server server, int selectors, org.eclipse.jetty.server.ConnectionFactory... factories)
      Constructs a UnixSocketConnector with the given selectors and ConnectionFactories.
      UnixSocketConnector​(org.eclipse.jetty.server.Server server, int selectors, org.eclipse.jetty.util.ssl.SslContextFactory sslContextFactory)
      Constructs a UnixSocketConnector with the given selectors and SslContextFactory.
      UnixSocketConnector​(org.eclipse.jetty.server.Server server, java.util.concurrent.Executor executor, org.eclipse.jetty.util.thread.Scheduler scheduler, org.eclipse.jetty.io.ByteBufferPool bufferPool, int selectors, org.eclipse.jetty.server.ConnectionFactory... factories)
      Constructs a UnixSocketConnector with the given parameters.
      UnixSocketConnector​(org.eclipse.jetty.server.Server server, org.eclipse.jetty.server.ConnectionFactory... factories)
      Constructs a UnixSocketConnector with the given ConnectionFactories.
      UnixSocketConnector​(org.eclipse.jetty.server.Server server, org.eclipse.jetty.util.ssl.SslContextFactory sslContextFactory)
      Constructs a UnixSocketConnector with the given SslContextFactory.
      UnixSocketConnector​(org.eclipse.jetty.server.Server server, org.eclipse.jetty.util.ssl.SslContextFactory sslContextFactory, org.eclipse.jetty.server.ConnectionFactory... factories)
      Constructs a UnixSocketConnector with the given SslContextFactory and ConnectionFactories.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void accept​(int acceptorID)  
      protected void accepted​(jnr.unixsocket.UnixSocketChannel channel)  
      void close()  
      protected void doStart()  
      protected void doStop()  
      int getAcceptQueueSize()  
      boolean getReuseAddress()  
      org.eclipse.jetty.io.SelectorManager getSelectorManager()  
      java.lang.Object getTransport()  
      java.lang.String getUnixSocket()  
      boolean isOpen()  
      protected UnixSocketEndPoint newEndPoint​(java.nio.channels.SelectableChannel channel, org.eclipse.jetty.io.ManagedSelector selector, java.nio.channels.SelectionKey key)  
      protected org.eclipse.jetty.io.SelectorManager newSelectorManager​(java.util.concurrent.Executor executor, org.eclipse.jetty.util.thread.Scheduler scheduler, int selectors)  
      void open()  
      void setAcceptQueueSize​(int acceptQueueSize)  
      void setReuseAddress​(boolean reuseAddress)  
      void setUnixSocket​(java.lang.String filename)  
      java.lang.String toString()  
      • Methods inherited from class org.eclipse.jetty.server.AbstractConnector

        addConnectionFactory, addFirstConnectionFactory, addIfAbsentConnectionFactory, clearConnectionFactories, getAcceptorPriorityDelta, getAcceptors, getByteBufferPool, getConnectedEndPoints, getConnectionFactories, getConnectionFactory, getConnectionFactory, getDefaultConnectionFactory, getDefaultProtocol, getExecutor, getHttpChannelListeners, getIdleTimeout, getName, getProtocols, getScheduler, getServer, handleAcceptFailure, interruptAcceptors, isAccepting, isShutdown, join, join, onEndPointClosed, onEndPointOpened, removeConnectionFactory, setAccepting, setAcceptorPriorityDelta, setConnectionFactories, setDefaultProtocol, setIdleTimeout, setName, shutdown
      • Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle

        addBean, addBean, addEventListener, addManaged, contains, destroy, dump, dump, dump, dump, dump, dumpBeans, dumpObject, dumpObjects, dumpStdErr, dumpThis, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, setStopTimeout, start, stop, unmanage, updateBean, updateBean, updateBeans
      • Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop
      • 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

        addBean, addBean, addEventListener, getBean, getBeans, getBeans, getContainedBeans, isManaged, manage, removeBean, removeEventListener, unmanage
      • Methods inherited from interface org.eclipse.jetty.util.component.Dumpable

        dump, dump, dumpSelf
      • Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer

        isDumpable
      • Methods inherited from interface org.eclipse.jetty.util.component.LifeCycle

        addLifeCycleListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop
    • Field Detail

      • MAX_UNIX_SOCKET_PATH_LENGTH

        public static final int MAX_UNIX_SOCKET_PATH_LENGTH
        See Also:
        Constant Field Values
      • LOG

        private static final org.eclipse.jetty.util.log.Logger LOG
      • _manager

        private final org.eclipse.jetty.io.SelectorManager _manager
      • _unixSocket

        private java.lang.String _unixSocket
      • _acceptChannel

        private volatile jnr.unixsocket.UnixServerSocketChannel _acceptChannel
      • _acceptQueueSize

        private volatile int _acceptQueueSize
      • _reuseAddress

        private volatile boolean _reuseAddress
    • Constructor Detail

      • UnixSocketConnector

        public UnixSocketConnector​(@Name("server")
                                   org.eclipse.jetty.server.Server server)

        Constructs a UnixSocketConnector with the default configuration.

        Parameters:
        server - the Server this connector will accept connections for.
      • UnixSocketConnector

        public UnixSocketConnector​(@Name("server")
                                   org.eclipse.jetty.server.Server server,
                                   @Name("selectors")
                                   int selectors)

        Constructs a UnixSocketConnector with the given number of selectors

        Parameters:
        server - the Server this connector will accept connections for.
        selectors - the number of selectors, or <=0 for a default value.
      • UnixSocketConnector

        public UnixSocketConnector​(@Name("server")
                                   org.eclipse.jetty.server.Server server,
                                   @Name("factories")
                                   org.eclipse.jetty.server.ConnectionFactory... factories)

        Constructs a UnixSocketConnector with the given ConnectionFactories.

        Parameters:
        server - the Server this connector will accept connections for.
        factories - zero or more ConnectionFactory instances used to create and configure connections.
      • UnixSocketConnector

        public UnixSocketConnector​(@Name("server")
                                   org.eclipse.jetty.server.Server server,
                                   @Name("selectors")
                                   int selectors,
                                   @Name("factories")
                                   org.eclipse.jetty.server.ConnectionFactory... factories)

        Constructs a UnixSocketConnector with the given selectors and ConnectionFactories.

        Parameters:
        server - the Server this connector will accept connections for.
        selectors - the number of selectors, or <=0 for a default value.
        factories - zero or more ConnectionFactory instances used to create and configure connections.
      • UnixSocketConnector

        public UnixSocketConnector​(@Name("server")
                                   org.eclipse.jetty.server.Server server,
                                   @Name("sslContextFactory")
                                   org.eclipse.jetty.util.ssl.SslContextFactory sslContextFactory)

        Constructs a UnixSocketConnector with the given SslContextFactory.

        Parameters:
        server - the Server this connector will accept connections for.
        sslContextFactory - when non null a SslConnectionFactory prepended to the other ConnectionFactories
      • UnixSocketConnector

        public UnixSocketConnector​(@Name("server")
                                   org.eclipse.jetty.server.Server server,
                                   @Name("selectors")
                                   int selectors,
                                   @Name("sslContextFactory")
                                   org.eclipse.jetty.util.ssl.SslContextFactory sslContextFactory)

        Constructs a UnixSocketConnector with the given selectors and SslContextFactory.

        .
        Parameters:
        server - the Server this connector will accept connections for.
        sslContextFactory - when non null a SslConnectionFactory prepended to the other ConnectionFactories
        selectors - the number of selectors, or <=0 for a default value.
      • UnixSocketConnector

        public UnixSocketConnector​(@Name("server")
                                   org.eclipse.jetty.server.Server server,
                                   @Name("sslContextFactory")
                                   org.eclipse.jetty.util.ssl.SslContextFactory sslContextFactory,
                                   @Name("factories")
                                   org.eclipse.jetty.server.ConnectionFactory... factories)

        Constructs a UnixSocketConnector with the given SslContextFactory and ConnectionFactories.

        .
        Parameters:
        server - the Server this connector will accept connections for.
        sslContextFactory - when non null a SslConnectionFactory prepended to the other ConnectionFactories
        factories - zero or more ConnectionFactory instances used to create and configure connections.
      • UnixSocketConnector

        public UnixSocketConnector​(@Name("server")
                                   org.eclipse.jetty.server.Server server,
                                   @Name("executor")
                                   java.util.concurrent.Executor executor,
                                   @Name("scheduler")
                                   org.eclipse.jetty.util.thread.Scheduler scheduler,
                                   @Name("bufferPool")
                                   org.eclipse.jetty.io.ByteBufferPool bufferPool,
                                   @Name("selectors")
                                   int selectors,
                                   @Name("factories")
                                   org.eclipse.jetty.server.ConnectionFactory... factories)

        Constructs a UnixSocketConnector with the given parameters.

        .
        Parameters:
        server - the Server this connector will accept connections for.
        executor - the executor that runs tasks for handling requests, acceptors and selectors.
        scheduler - the scheduler used to schedule timed tasks.
        bufferPool - the ByteBufferPool used to allocate buffers.
        selectors - the number of selectors, or <=0 for a default value.
        factories - zero or more ConnectionFactory instances used to create and configure connections.
    • Method Detail

      • getUnixSocket

        @ManagedAttribute("The UNIX socket file name")
        public java.lang.String getUnixSocket()
      • setUnixSocket

        public void setUnixSocket​(java.lang.String filename)
      • newSelectorManager

        protected org.eclipse.jetty.io.SelectorManager newSelectorManager​(java.util.concurrent.Executor executor,
                                                                          org.eclipse.jetty.util.thread.Scheduler scheduler,
                                                                          int selectors)
      • doStart

        protected void doStart()
                        throws java.lang.Exception
        Overrides:
        doStart in class org.eclipse.jetty.server.AbstractConnector
        Throws:
        java.lang.Exception
      • doStop

        protected void doStop()
                       throws java.lang.Exception
        Overrides:
        doStop in class org.eclipse.jetty.server.AbstractConnector
        Throws:
        java.lang.Exception
      • isOpen

        public boolean isOpen()
      • open

        public void open()
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • close

        public void close()
      • accept

        public void accept​(int acceptorID)
                    throws java.io.IOException
        Specified by:
        accept in class org.eclipse.jetty.server.AbstractConnector
        Throws:
        java.io.IOException
      • accepted

        protected void accepted​(jnr.unixsocket.UnixSocketChannel channel)
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • getSelectorManager

        public org.eclipse.jetty.io.SelectorManager getSelectorManager()
      • getTransport

        public java.lang.Object getTransport()
      • newEndPoint

        protected UnixSocketEndPoint newEndPoint​(java.nio.channels.SelectableChannel channel,
                                                 org.eclipse.jetty.io.ManagedSelector selector,
                                                 java.nio.channels.SelectionKey key)
      • getAcceptQueueSize

        @ManagedAttribute("Accept Queue size")
        public int getAcceptQueueSize()
        Returns:
        the accept queue size
      • setAcceptQueueSize

        public void setAcceptQueueSize​(int acceptQueueSize)
        Parameters:
        acceptQueueSize - the accept queue size (also known as accept backlog)
      • getReuseAddress

        @ManagedAttribute("Whether the server socket reuses addresses")
        public boolean getReuseAddress()
        Returns:
        whether the server socket reuses addresses
        See Also:
        ServerSocket.getReuseAddress()
      • setReuseAddress

        public void setReuseAddress​(boolean reuseAddress)
        Parameters:
        reuseAddress - whether the server socket reuses addresses
        See Also:
        ServerSocket.setReuseAddress(boolean)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class org.eclipse.jetty.server.AbstractConnector