# Cocoon 3 Samples and Integration Tests: Overview

## map:read

- Javascript Resource: Test explicit setting of mime-type.
- Javascript Resource: Test automatic setting of mime-type.

## SAX Pipelines

- SAX Pipeline: Simplest possible pipeline that has a generator, transformer and serializer.
- SAX Pipeline: Same as before but creates XHTML as output format.
- SAX Pipeline: Same as before but creates XML as output format.
- SAX Pipeline: Same as before but creates XML as output format after validating the input.
- Status code: Set status code '401' at pipeline.

## Caching

- Non-Caching pipeline: The pipeline doesn't cache (although it's components support it)
- Caching pipeline: The result of the pipeline is cached for 1.5 seconds. The next request that occurs after the cached response has expires, triggers a reexecution of the pipeline in the same thread.
- Async-Caching pipeline: The result of the pipeline is cached for 1.5 seconds. The next request that occurs after the cached response has expires, triggers a reexecution of the pipeline in a separate thread.
- Expires-Caching pipeline: The pipeline returns a cached result for defined period, independently from whether components used in the pipeline support caching or not. The pipeline result is cached for 2 seconds. The recreation of the pipeline result is done in the same thread as the servlet request.
- Expires-Async-Caching pipeline: The pipeline returns a cached result for defined period, independently from whether components used in the pipeline support caching or not. The pipeline result is cached for 2 seconds. The recreation of the pipeline result is done in a separate thread than the servlet request.

## Error handling

- ResourceNotFound: The error handler catches all exceptions, in this case no matcher matches.
- Custom error - Sitemap: Catch a custom error in the sitemap.
- Custom error - Pipeline: Catch a custom error using a per-pipeline error handler.

## Servlet-Service-Components and servlet: protocol

- servlet:/: Using a local servlet service.
- Servlet service transformer: Call another pipeline that performs a transformation.
- Servlet service serializer: Call another pipeline that performs the serialization step.

## Expression language

- request attribute (jexl): Accessing a request attribute using Jexl.
- sitemap parameter: Accessing a sitemap parameter.
- sitemap parameter: Accessing a sitemap parameter using named parameters in the pattern.
- nested matchers: Accessing a parameter from one level above.

## Redirects

- Temporary (302): Temporary redirect to orf.at.
- servlet: Redirect to a servlet: URL.

## Object Model

- All request parameters: Print all request parameters.

## Advanced Matching

(using a JEXL expression to set a test value)

- Equals matcher (using an JEXL expression to set a test value)
- Regular expression matcher (using an JEXL expression to set a test value)
- Ends-with matcher (using an JEXL expression to set a test value)
- Otherwise Reach the otherwise section
- Uncomplete pipeline: when Adding a transformer
- Uncomplete pipeline: otherwise Adding a transformer
- Two matchers: Two matchers that add components to a pipeline.

## Aggregation

- Include-Transformer: Aggregate XML using the IncludeTransformer.
- XInclude-Transformer: Aggregate XML using the XIncludeTransformer, working according to the XInclude specification.

## Link rewriting

- RegexpLinkRewriter-Transformer: Aggregate XML using the IncludeTransformer.

## XSLT

- XSLT Transformation: An XSLT transformation that includes stylesheets via file and servlet protocol.

## Sitemap REST Controller

- GET request: Invoke a controller and pass two parameters
- Conditional GET request : A controller that implements the o.a.c.rest.controller.method.ConditionalGet interface and provides a cache key.

## JAX-RS REST Controller

- JAX-RS REST endpoint: A JAX-RS resources as a controller that returns a Cocoon resources.

## FOP

- PDF: Create a PDF document by using Apache FOP.

## Encoding Serializers

- eXML: A XML serializer not relying on the JAXP API.
- eXHTML: A pedantinc XHTML serializer encoding all recognized entities with their proper HTML names.
- eHTML: A serializer converting XHTML into plain old HTML.

## Cocoon-Wicket integration

- Wicket Reader: A reader defers redirects a request to a Wicket application.