# Package org.apache.catalina.ssi

This package contains code that is used by the SsiInvoker.

This class consists of `SsiMediator.java` which works as a mediator between the different SsiCommands. To add a command you have to implement the `SsiCommand` interface and extend the `SsiMediator`. Commands currently implemented are

- SsiConfig - Implementation of the NCSA command Config i.e. <!--#config errmsg="error?"-->
- SsiEcho - Implementation of the NCSA command Echo i.e. <!--#echo var="SERVER_NAME"-->
- SsiExec - Not implemented
- SsiFlastMod - Implementation of the NCSA command flastmod i.e. <!--#flastmod virtual="file"-->
- SsiFsize - Implementation of the NCSA command fsize i.e. <!--#fsize file="file"-->
- SsiInclude - Implementation of the NCSA command Include i.e. <!--#config virtual="includefile"-->

- Interface Summary
  Interface | Description
  --- | ---
  SSICommand | The interface that all SSI commands ( SSIEcho, SSIInclude, ...) must implement.
  SSIExternalResolver | Interface used by SSIMediator to talk to the 'outside world' ( usually a servlet )

- Class Summary
  Class | Description
  --- | ---
  ByteArrayServletOutputStream | Class that extends ServletOutputStream, used as a wrapper from within `SsiInclude`
  ExpressionParseTree | Represents a parsed expression.
  ExpressionTokenizer | Parses an expression string to return the individual tokens.
  ResponseIncludeWrapper | An HttpServletResponseWrapper, used from `SSIServletExternalResolver`
  SSIConditional | SSI command that handles all conditional directives.
  SSIConfig | Implements the Server-side #exec command
  SSIEcho | Return the result associated with the supplied Server Variable.
  SSIExec | Implements the Server-side #exec command
  SSIFilter | Filter to process SSI requests within a webpage.
  SSIFlastmod | Implements the Server-side #flastmod command
  SSIFsize | Implements the Server-side #fsize command
  SSIInclude | Implements the Server-side #include command
  SSIMediator | Allows the different SSICommand implementations to share data/talk to each other
  SSIPrintenv | Implements the Server-side #printenv command
  SSIProcessor | The entry point to SSI processing.
  SSIServlet | Servlet to process SSI requests within a webpage.
  SSIServletExternalResolver | An implementation of SSIExternalResolver that is used with servlets.
  SSIServletExternalResolver.ServletContextAndPath |
  SSIServletRequestUtil |
  SSISet | Implements the Server-side #set command

- Exception Summary
  Exception | Description
  --- | ---
  SSIStopProcessingException | Exception used to tell SSIProcessor that it should stop processing SSI commands.