# Interface Engine

All Superinterfaces:
  `Container, Lifecycle`

All Known Implementing Classes:
  `StandardEngine`

public interface Engine extends Container
An Engine is a Container that represents the entire Catalina servlet engine. It is useful in the following types of scenarios:

- You wish to use Interceptors that see every single request processed by the entire engine.
- You wish to run Catalina in with a standalone HTTP connector, but still want support for multiple virtual hosts.

In general, you would not use an Engine when deploying Catalina connected to a web server (such as Apache), because the Connector will have utilized the web server's facilities to determine which Context (or perhaps even which Wrapper) should be utilized to process this request.

The child containers attached to an Engine are generally implementations of Host (representing a virtual host) or Context (representing individual an individual servlet context), depending upon the Engine implementation.

If used, an Engine is always the top level Container in a Catalina hierarchy. Therefore, the implementation's `setParent()` method should throw `IllegalArgumentException`.

## Nested Class Summary

### Nested classes/interfaces inherited from interface Lifecycle

`Lifecycle.SingleUse`

## Field Summary

### Fields inherited from interface Container

`ADD_CHILD_EVENT, ADD_VALVE_EVENT, REMOVE_CHILD_EVENT, REMOVE_VALVE_EVENT`

### Fields inherited from interface Lifecycle

`AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT`

## Method Summary

Modifier and Type
Method
Description
`String`
`getDefaultHost()`
Returns the default host name for this Engine.
`String`
`getJvmRoute()`
Returns the JvmRouteId for this engine.
`Service`
`getService()`
Returns the `Service` with which we are associated (if any).
`void`
`setDefaultHost(String defaultHost)`
Set the default hostname for this Engine.
`void`
`setJvmRoute(String jvmRouteId)`
Set the JvmRouteId for this engine.
`void`
`setService(Service service)`
Set the `Service` with which we are associated (if any).

### Methods inherited from interface Container

`addChild, addContainerListener, addPropertyChangeListener, backgroundProcess, findChild, findChildren, findContainerListeners, fireContainerEvent, getAccessLog, getBackgroundProcessorDelay, getCatalinaBase, getCatalinaHome, getCluster, getDomain, getLogger, getLogName, getMBeanKeyProperties, getName, getObjectName, getParent, getParentClassLoader, getPipeline, getRealm, getStartStopThreads, logAccess, removeChild, removeContainerListener, removePropertyChangeListener, setBackgroundProcessorDelay, setCluster, setName, setParent, setParentClassLoader, setRealm, setStartStopThreads`

### Methods inherited from interface Lifecycle

`addLifecycleListener, destroy, findLifecycleListeners, getState, getStateName, init, removeLifecycleListener, start, stop`

## Method Details

### getDefaultHost

String getDefaultHost()
Returns the default host name for this Engine.

Returns:
  the default host name

### setDefaultHost

void setDefaultHost(String defaultHost)
Set the default hostname for this Engine.

Parameters:
  `defaultHost` - The new default host

### getJvmRoute

String getJvmRoute()
Returns the JvmRouteId for this engine.

Returns:
  the JVM Route ID

### setJvmRoute

void setJvmRoute(String jvmRouteId)
Set the JvmRouteId for this engine.

Parameters:
  `jvmRouteId` - the (new) JVM Route ID. Each Engine within a cluster must have a unique JVM Route ID.

### getService

Service getService()
Returns the `Service` with which we are associated (if any).

Returns:
  the associated Service, or `null` if none

### setService

void setService(Service service)
Set the `Service` with which we are associated (if any).

Parameters:
  `service` - The service that owns this Engine