## org.apache.catalina
Interface Wrapper

All Superinterfaces:
  Container

All Known Implementing Classes:
  StandardWrapper

public interface Wrapper
extends Container

A Wrapper is a Container that represents an individual servlet definition from the deployment descriptor of the web application. It provides a convenient mechanism to use Interceptors that see every single request to the servlet represented by this definition.

Implementations of Wrapper are responsible for managing the servlet life cycle for their underlying servlet class, including calling init() and destroy() at appropriate times, as well as respecting the existence of the SingleThreadModel declaration on the servlet class itself.

The parent Container attached to a Wrapper will generally be an implementation of Context, representing the servlet context (and therefore the web application) within which this servlet executes.

Child Containers are not allowed on Wrapper implementations, so the `addChild()` method should throw an `IllegalArgumentException`.

Version:
  $Revision: 1.5 $ $Date: 2001/07/22 20:13:30 $
Author:
  Craig R. McClanahan

Field Summary

Fields inherited from interface org.apache.catalina.Container
`ADD_CHILD_EVENT, ADD_MAPPER_EVENT, ADD_VALVE_EVENT, REMOVE_CHILD_EVENT, REMOVE_MAPPER_EVENT, REMOVE_VALVE_EVENT`

Method Summary
`void` `addInitParameter(java.lang.String name, java.lang.String value)` Add a new servlet initialization parameter for this servlet.
`void` `addInstanceListener(InstanceListener listener)` Add a new listener interested in InstanceEvents.
`void` `addSecurityReference(java.lang.String name, java.lang.String link)` Add a new security role reference record to the set of records for this servlet.
`javax.servlet.Servlet` `allocate()` Allocate an initialized instance of this Servlet that is ready to have its `service()` method called.
`void` `deallocate(javax.servlet.Servlet servlet)` Return this previously allocated servlet to the pool of available instances.
`java.lang.String` `findInitParameter(java.lang.String name)` Return the value for the specified initialization parameter name, if any; otherwise return `null`.
`java.lang.String[]` `findInitParameters()` Return the names of all defined initialization parameters for this servlet.
`java.lang.String` `findSecurityReference(java.lang.String name)` Return the security role link for the specified security role reference name, if any; otherwise return `null`.
`java.lang.String[]` `findSecurityReferences()` Return the set of security role reference names associated with this servlet, if any; otherwise return a zero-length array.
`long` `getAvailable()` Return the available date/time for this servlet, in milliseconds since the epoch.
`java.lang.String` `getJspFile()` Return the context-relative URI of the JSP file for this servlet.
`int` `getLoadOnStartup()` Return the load-on-startup order value (negative value means load on first call).
`java.lang.String` `getRunAs()` Return the run-as identity for this servlet.
`java.lang.String` `getServletClass()` Return the fully qualified servlet class name for this servlet.
`boolean` `isUnavailable()` Is this servlet currently unavailable?
`void` `load()` Load and initialize an instance of this servlet, if there is not already at least one initialized instance.
`void` `removeInitParameter(java.lang.String name)` Remove the specified initialization parameter from this servlet.
`void` `removeInstanceListener(InstanceListener listener)` Remove a listener no longer interested in InstanceEvents.
`void` `removeSecurityReference(java.lang.String name)` Remove any security role reference for the specified role name.
`void` `setAvailable(long available)` Set the available date/time for this servlet, in milliseconds since the epoch.
`void` `setJspFile(java.lang.String jspFile)` Set the context-relative URI of the JSP file for this servlet.
`void` `setLoadOnStartup(int value)` Set the load-on-startup order value (negative value means load on first call).
`void` `setRunAs(java.lang.String runAs)` Set the run-as identity for this servlet.
`void` `setServletClass(java.lang.String servletClass)` Set the fully qualified servlet class name for this servlet.
`void` `unavailable(javax.servlet.UnavailableException unavailable)` Process an UnavailableException, marking this servlet as unavailable for the specified amount of time.
`void` `unload()` Unload all initialized instances of this servlet, after calling the `destroy()` method for each instance.

Methods inherited from interface org.apache.catalina.Container

`addChild, addContainerListener, addMapper, addPropertyChangeListener, findChild, findChildren, findMapper, findMappers, getCluster, getInfo, getLoader, getLogger, getManager, getName, getParent, getParentClassLoader, getRealm, getResources, invoke, map, removeChild, removeContainerListener, removeMapper, removePropertyChangeListener, setCluster, setLoader, setLogger, setManager, setName, setParent, setParentClassLoader, setRealm, setResources`

Method Detail

### getAvailable

    public long getAvailable()

  Return the available date/time for this servlet, in milliseconds since the epoch. If this date/time is in the future, any request for this servlet will return an SC_SERVICE_UNAVAILABLE error. If it is zero, the servlet is currently available. A value equal to Long.MAX_VALUE is considered to mean that unavailability is permanent.

### setAvailable

    public void setAvailable(long available)

  Set the available date/time for this servlet, in milliseconds since the epoch. If this date/time is in the future, any request for this servlet will return an SC_SERVICE_UNAVAILABLE error. A value equal to Long.MAX_VALUE is considered to mean that unavailability is permanent.

  Parameters:
    `available` - The new available date/time

### getJspFile

    public java.lang.String getJspFile()

  Return the context-relative URI of the JSP file for this servlet.

### setJspFile

    public void setJspFile(java.lang.String jspFile)

  Set the context-relative URI of the JSP file for this servlet.

  Parameters:
    `jspFile` - JSP file URI

### getLoadOnStartup

    public int getLoadOnStartup()

  Return the load-on-startup order value (negative value means load on first call).

### setLoadOnStartup

    public void setLoadOnStartup(int value)

  Set the load-on-startup order value (negative value means load on first call).

  Parameters:
    `value` - New load-on-startup value

### getRunAs

    public java.lang.String getRunAs()

  Return the run-as identity for this servlet.

### setRunAs

    public void setRunAs(java.lang.String runAs)

  Set the run-as identity for this servlet.

### getServletClass

    public java.lang.String getServletClass()

  Return the fully qualified servlet class name for this servlet.

### setServletClass

    public void setServletClass(java.lang.String servletClass)

  Set the fully qualified servlet class name for this servlet.

  Parameters:
    `servletClass` - Servlet class name

### isUnavailable

    public boolean isUnavailable()

  Is this servlet currently unavailable?

### addInitParameter

    public void addInitParameter(java.lang.String name,
                                 java.lang.String value)

  Add a new servlet initialization parameter for this servlet.

  Parameters:
    `name` - Name of this initialization parameter to add
    `value` - Value of this initialization parameter to add

### addInstanceListener

    public void addInstanceListener(InstanceListener listener)

  Add a new listener interested in InstanceEvents.

  Parameters:
    `listener` - The new listener

### addSecurityReference

    public void addSecurityReference(java.lang.String name,
                                     java.lang.String link)

  Add a new security role reference record to the set of records for this servlet.

  Parameters:
    `name` - Role name used within this servlet
    `link` - Role name used within the web application

### allocate

    public javax.servlet.Servlet allocate()
                                   throws javax.servlet.ServletException

  Allocate an initialized instance of this Servlet that is ready to have its `service()` method called. If the servlet class does not implement `SingleThreadModel`, the (only) initialized instance may be returned immediately. If the servlet class implements `SingleThreadModel`, the Wrapper implementation must ensure that this instance is not allocated again until it is deallocated by a call to `deallocate()`.

  Throws:
    `javax.servlet.ServletException` - if the servlet init() method threw an exception
    `javax.servlet.ServletException` - if a loading error occurs

### deallocate

    public void deallocate(javax.servlet.Servlet servlet)
                    throws javax.servlet.ServletException

  Return this previously allocated servlet to the pool of available instances. If this servlet class does not implement SingleThreadModel, no action is actually required.

  Parameters:
    `servlet` - The servlet to be returned
  Throws:
    `javax.servlet.ServletException` - if a deallocation error occurs

### findInitParameter

    public java.lang.String findInitParameter(java.lang.String name)

  Return the value for the specified initialization parameter name, if any; otherwise return `null`.

  Parameters:
    `name` - Name of the requested initialization parameter

### findInitParameters

    public java.lang.String[] findInitParameters()

  Return the names of all defined initialization parameters for this servlet.

### findSecurityReference

    public java.lang.String findSecurityReference(java.lang.String name)

  Return the security role link for the specified security role reference name, if any; otherwise return `null`.

  Parameters:
    `name` - Security role reference used within this servlet

### findSecurityReferences

    public java.lang.String[] findSecurityReferences()

  Return the set of security role reference names associated with this servlet, if any; otherwise return a zero-length array.

### load

    public void load()
              throws javax.servlet.ServletException

  Load and initialize an instance of this servlet, if there is not already at least one initialized instance. This can be used, for example, to load servlets that are marked in the deployment descriptor to be loaded at server startup time.

  Throws:
    `javax.servlet.ServletException` - if the servlet init() method threw an exception
    `javax.servlet.ServletException` - if some other loading problem occurs

### removeInitParameter

    public void removeInitParameter(java.lang.String name)

  Remove the specified initialization parameter from this servlet.

  Parameters:
    `name` - Name of the initialization parameter to remove

### removeInstanceListener

    public void removeInstanceListener(InstanceListener listener)

  Remove a listener no longer interested in InstanceEvents.

  Parameters:
    `listener` - The listener to remove

### removeSecurityReference

    public void removeSecurityReference(java.lang.String name)

  Remove any security role reference for the specified role name.

  Parameters:
    `name` - Security role used within this servlet to be removed

### unavailable

    public void unavailable(javax.servlet.UnavailableException unavailable)

  Process an UnavailableException, marking this servlet as unavailable for the specified amount of time.

  Parameters:
    `unavailable` - The exception that occurred, or `null` to mark this servlet as permanently unavailable

### unload

    public void unload()
                throws javax.servlet.ServletException

  Unload all initialized instances of this servlet, after calling the `destroy()` method for each instance. This can be used, for example, prior to shutting down the entire servlet engine, or prior to reloading all of the classes from the Loader associated with our Loader's repository.

  Throws:
    `javax.servlet.ServletException` - if an unload error occurs

Copyright © 2000-2001 Apache Software Foundation. All Rights Reserved.