Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.fourthline.cling.transport.spi
Interface ServletContainerAdapter

All Known Implementing Classes:
  JettyServletContainer

    public interface ServletContainerAdapter

Implement this to provide your own servlet container (instance),

It's OK if you don't start or stop your container when this adapter is called. You can treat the `startIfNotRunning()` and `stopIfRunning()` methods as suggestions, they only indicate what the UPnP stack wants to do. If your servlet container handles other services, keep it running all the time.

An implementation must be thread-safe, all methods might be called concurrently by several threads.

Author:
  Christian Bauer

Method Summary
`int` | `addConnector(String host, int port)` Might be called several times to set up the connectors.
`void` | `registerServlet(String contextPath, javax.servlet.Servlet servlet)` Might be called several times register (the same) handler for UPnP requests, should only register it once.
`void` | `setExecutorService(ExecutorService executorService)` Might be called several times to integrate the servlet container with Cling's executor configuration.
`void` | `startIfNotRunning()` Start your servlet container if it isn't already running, might be called multiple times.
`void` | `stopIfRunning()` Stop your servlet container if it's still running, might be called multiple times.

Method Detail

### setExecutorService

    void setExecutorService(ExecutorService executorService)

  Might be called several times to integrate the servlet container with Cling's executor configuration. You can ignore this call if you want to configure the container's thread pooling independently from Cling. If you use the given Cling `ExecutorService`, make sure the Jetty container won't shut it down when `stopIfRunning()` is called!

  Parameters:
    `executorService` - The service to use when spawning new servlet execution threads.

### addConnector

    int addConnector(String host,
                     int port)
                     throws IOException

  Might be called several times to set up the connectors. This is the host/address and the port Cling expects to receive HTTP requests on. If you set up your HTTP server connectors elsewhere and ignore when Cling calls this method, make sure you configure Cling with the correct host/port of your servlet container.

  Parameters:
    `host` - The host address for the socket.
    `port` - The port, might be `-1` to bind to an ephemeral port.
  Returns:
    The actual registered local port.
  Throws:
    `IOException` - If the connector couldn't be opened to retrieve the registered local port.

### registerServlet

    void registerServlet(String contextPath,
                         javax.servlet.Servlet servlet)

  Might be called several times register (the same) handler for UPnP requests, should only register it once.

  Parameters:
    `contextPath` - The context path prefix for all UPnP requests.
    `servlet` - The servlet handling all UPnP requests.

### startIfNotRunning

    void startIfNotRunning()

  Start your servlet container if it isn't already running, might be called multiple times.

### stopIfRunning

    void stopIfRunning()

  Stop your servlet container if it's still running, might be called multiple times.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2013 4th Line GmbH, Switzerland. All Rights Reserved.