Package: org.gradle.api.plugins.jetty

## [Java] Class AbstractJettyRunTask

- org.gradle.api.plugins.jetty.AbstractJettyRunTask

- Base class for all tasks which deploy a web application to an embedded Jetty web container.

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static String` | `PORT_SYSPROPERTY` |
    `protected Thread` | `consoleScanner` | A scanner to check ENTER hits on the console.
    `protected String` | `reload` |
    `protected List<Scanner.Listener>` | `scannerListeners` | List of Listeners for the scanner.

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `void` | `applyJettyXml()`
    `void` | `configureScanner()`
    `void` | `configureWebApplication()` Subclasses should invoke this to setup basic info on the webapp.
    `JettyPluginServer` | `createServer()` create a proxy that wraps a particular jetty version Server object.
    `File` | `findJettyWebXmlFile(File webInfDir)` Try and find a jetty-web.xml file, using some historical naming conventions if necessary.
    `void` | `finishConfigurationBeforeStart()`
    `Iterable<File>` | `getAdditionalRuntimeJars()` Returns the classpath to make available to the web application.
    `Connector[]` | `getConnectors()`
    `String` | `getContextPath()` Returns the context path to use to deploy the web application.
    `Integer` | `getHttpPort()` Returns the TCP port for Jetty to listen on for incoming HTTP requests.
    `File` | `getJettyConfig()` Returns the jetty configuration file to use.
    `File` | `getOverrideWebXml()`
    `String` | `getReload()` Returns the reload mode, which is either `"automatic"` or `"manual"`.
    `RequestLog` | `getRequestLog()`
    `int` | `getScanIntervalSeconds()` Returns the interval in seconds between scanning the web app for file changes.
    `Scanner` | `getScanner()`
    `List<Scanner.Listener>` | `getScannerListeners()`
    `JettyPluginServer` | `getServer()`
    `String` | `getStopKey()` Returns the key to use to stop Jetty.
    `Integer` | `getStopPort()` Returns the TCP port for Jetty to listen on for stop requests.
    `UserRealm[]` | `getUserRealms()`
    `JettyPluginWebAppContext` | `getWebAppConfig()`
    `File` | `getWebDefaultXml()`
    `boolean` | `isDaemon()` Specifies whether the Jetty server should run in the background.
    `void` | `restartWebApp(boolean reconfigureScanner)`
    `void` | `setAdditionalRuntimeJars(Iterable<File> additionalRuntimeJars)`
    `void` | `setConnectors(Connector[] connectors)`
    `void` | `setContextPath(String contextPath)`
    `void` | `setDaemon(boolean daemon)`
    `void` | `setHttpPort(Integer httpPort)`
    `void` | `setJettyConfig(File jettyConfig)`
    `void` | `setOverrideWebXml(File overrideWebXml)`
    `void` | `setReload(String reload)` Sets the reload mode, which is either `"automatic"` or `"manual"`.
    `void` | `setRequestLog(RequestLog requestLog)`
    `void` | `setScanIntervalSeconds(int scanIntervalSeconds)` Sets the interval in seconds between scanning the web app for file changes.
    `void` | `setScannerListeners(List<Scanner.Listener> listeners)`
    `void` | `setServer(JettyPluginServer server)`
    `void` | `setStopKey(String stopKey)`
    `void` | `setStopPort(Integer stopPort)`
    `void` | `setUserRealms(UserRealm[] userRealms)`
    `void` | `setWebAppConfig(JettyPluginWebAppContext webAppConfig)`
    `void` | `setWebDefaultXml(File webDefaultXml)`
    `protected void` | `start()`
    `protected void` | `startConsoleScanner()` Run a thread that monitors the console input to detect ENTER hits.
    `void` | `startJetty()`
    `void` | `startJettyInternal()`
    `void` | `validateConfiguration()`

- - ### Field Detail

    - #### public static final String PORT_SYSPROPERTY

    - #### protected Thread consoleScanner

      A scanner to check ENTER hits on the console.

    - #### protected String reload

    - #### protected List<Scanner.Listener> scannerListeners

      List of Listeners for the scanner.

  - ### Method Detail

    - #### public void applyJettyXml()

    - #### public void configureScanner()

    - #### public void configureWebApplication()

      Subclasses should invoke this to setup basic info on the webapp.

    - #### public JettyPluginServer createServer()

      create a proxy that wraps a particular jetty version Server object.

      Returns:
        The Jetty Plugin Server

    - #### public File findJettyWebXmlFile(File webInfDir)

      Try and find a jetty-web.xml file, using some historical naming conventions if necessary.

      Returns:
        File object to the location of the jetty-web.xml

    - #### public void finishConfigurationBeforeStart()

    - #### @InputFiles public Iterable<File> getAdditionalRuntimeJars()

      Returns the classpath to make available to the web application.

    - #### public Connector[] getConnectors()

    - #### public String getContextPath()

      Returns the context path to use to deploy the web application.

    - #### public Integer getHttpPort()

      Returns the TCP port for Jetty to listen on for incoming HTTP requests.

    - #### @InputFile @Optional public File getJettyConfig()

      Returns the jetty configuration file to use. When `null`, no configuration file is used.

    - #### @InputFile @Optional public File getOverrideWebXml()

    - #### public String getReload()

      Returns the reload mode, which is either `"automatic"` or `"manual"`.

      In automatic mode, the web app is scanned for file changes every n seconds, where n is determined by the `scanIntervalSeconds` property. (Note that `scanIntervalSeconds` defaults to `0`, which disables automatic reloading.) If files changes are detected, the web app is reloaded.

      In manual mode, the web app is reloaded whenever the Enter key is pressed.

    - #### public RequestLog getRequestLog()

    - #### public int getScanIntervalSeconds()

      Returns the interval in seconds between scanning the web app for file changes. If file changes are detected, the web app is reloaded. Only relevant if `reload` is set to `"automatic"`. Defaults to `0`, which disables automatic reloading.

    - #### public Scanner getScanner()

    - #### public List<Scanner.Listener> getScannerListeners()

    - #### public JettyPluginServer getServer()

    - #### public String getStopKey()

      Returns the key to use to stop Jetty.

    - #### public Integer getStopPort()

      Returns the TCP port for Jetty to listen on for stop requests.

    - #### public UserRealm[] getUserRealms()

    - #### public JettyPluginWebAppContext getWebAppConfig()

    - #### @InputFile @Optional public File getWebDefaultXml()

    - #### public boolean isDaemon()

      Specifies whether the Jetty server should run in the background. When `true`, this task completes as soon as the server has started. When `false`, this task blocks until the Jetty server is stopped.

    - #### public void restartWebApp(boolean reconfigureScanner)

    - #### public void setAdditionalRuntimeJars(Iterable<File> additionalRuntimeJars)

    - #### public void setConnectors(Connector[] connectors)

    - #### public void setContextPath(String contextPath)

    - #### public void setDaemon(boolean daemon)

    - #### public void setHttpPort(Integer httpPort)

    - #### public void setJettyConfig(File jettyConfig)

    - #### public void setOverrideWebXml(File overrideWebXml)

    - #### public void setReload(String reload)

      Sets the reload mode, which is either `"automatic"` or `"manual"`.

      In automatic mode, the web app is scanned for file changes every n seconds, where n is determined by the `scanIntervalSeconds` property. (Note that `scanIntervalSeconds` defaults to `0`, which disables automatic reloading.) If files changes are detected, the web app is reloaded.

      In manual mode, the web app is reloaded whenever the Enter key is pressed.

    - #### public void setRequestLog(RequestLog requestLog)

    - #### public void setScanIntervalSeconds(int scanIntervalSeconds)

      Sets the interval in seconds between scanning the web app for file changes. If file changes are detected, the web app is reloaded. Only relevant if `reload` is set to `"automatic"`. Defaults to `0`, which disables automatic reloading.

    - #### public void setScannerListeners(List<Scanner.Listener> listeners)

    - #### public void setServer(JettyPluginServer server)

    - #### public void setStopKey(String stopKey)

    - #### public void setStopPort(Integer stopPort)

    - #### public void setUserRealms(UserRealm[] userRealms)

    - #### public void setWebAppConfig(JettyPluginWebAppContext webAppConfig)

    - #### public void setWebDefaultXml(File webDefaultXml)

    - #### @TaskAction protected void start()

    - #### protected void startConsoleScanner()

      Run a thread that monitors the console input to detect ENTER hits.

    - #### public void startJetty()

    - #### public void startJettyInternal()

    - #### public void validateConfiguration()