Class NetServerHelper

  • Direct Known Subclasses:
    HttpServerHelper, HttpsServerHelper

    public abstract class NetServerHelper
    extends HttpServerHelper
    Abstract Internal web server connector based on com.sun.net.httpserver package. Here is the list of parameters that are supported. They should be set in the Server's context before it is started:
    Parameter name Value type Default value Description
    minThreads int 1 Minimum number of worker threads waiting to service calls, even if they are idle. Technically speaking, this is a core number of threads that are pre-started.
    maxThreads int 10 Maximum number of worker threads that can service calls. If this number is reached then additional calls are queued if the "maxQueued" value hasn't been reached.
    maxQueued int 0 Maximum number of calls that can be queued if there aren't any worker thread available to service them. If the value is '0', then no queue is used and calls are rejected if no worker thread is immediately available. If the value is '-1', then an unbounded queue is used and calls are never rejected.

    Note: make sure that this value is consistent with getMinThreads() and the behavior of the ThreadPoolExecutor configured internally.
    maxThreadIdleTimeMs int 300 000 Time for an idle thread to wait for an operation before being collected.
    • Field Detail

      • address

        private volatile java.net.InetSocketAddress address
        Socket this server is listening to.
      • confidential

        private volatile boolean confidential
        Indicates if this service is acting in HTTP or HTTPS mode.
    • Constructor Detail

      • NetServerHelper

        public NetServerHelper​(Server server)
        Constructor.
        Parameters:
        server - The server to help.
    • Method Detail

      • createThreadPool

        protected java.util.concurrent.ThreadPoolExecutor createThreadPool()
        Creates the handler service.
        Returns:
        The handler service.
      • getAddress

        protected java.net.InetSocketAddress getAddress()
        Returns the socket address this server is listening to.
        Returns:
        The socket address this server is listening to.
      • getMaxQueued

        public int getMaxQueued()
        Returns the maximum number of calls that can be queued if there aren't any worker thread available to service them. If the value is '0', then no queue is used and calls are rejected if no worker thread is immediately available. If the value is '-1', then an unbounded queue is used and calls are never rejected.

        Note: make sure that this value is consistent with getMinThreads() and the behavior of the ThreadPoolExecutor configured internally.
        Returns:
        The maximum number of calls that can be queued.
      • getMaxThreadIdleTimeMs

        public int getMaxThreadIdleTimeMs()
        Returns the time for an idle thread to wait for an operation before being collected.
        Returns:
        The time for an idle thread to wait for an operation before being collected.
      • getMaxThreads

        public int getMaxThreads()
        Returns the maximum threads that will service requests.
        Returns:
        The maximum threads that will service requests.
      • getMinThreads

        public int getMinThreads()
        Returns the minimum threads waiting to service requests. Technically speaking, this is a core number of threads that are pre-started.
        Returns:
        The minimum threads waiting to service requests.
      • isConfidential

        public boolean isConfidential()
        Indicates if this service is acting in HTTP or HTTPS mode.
        Returns:
        True if this service is acting in HTTP or HTTPS mode.
      • setAddress

        protected void setAddress​(java.net.InetSocketAddress address)
        Sets the socket address this server is listening to.
        Parameters:
        address - The socket address this server is listening to.
      • setConfidential

        protected void setConfidential​(boolean confidential)
        Indicates if this service is acting in HTTP or HTTPS mode.
        Parameters:
        confidential - True if this service is acting in HTTP or HTTPS mode.
      • start

        public void start()
                   throws java.lang.Exception
        Description copied from class: RestletHelper
        Start callback.
        Overrides:
        start in class ConnectorHelper<Server>
        Throws:
        java.lang.Exception
      • stop

        public void stop()
                  throws java.lang.Exception
        Description copied from class: RestletHelper
        Stop callback.
        Overrides:
        stop in class ServerHelper
        Throws:
        java.lang.Exception