Pipeline<SAXPipelineComponent> pipeline = new CachingPipeline<SAXPipelineComponent>();
final String wadlURL = request.getRequestURL().
substring(0, request.getRequestURL().indexOf("/doc")) + "/?_wadl";
pipeline.addComponent(new XMLGenerator(new URL(wadlURL)));
if ("/".equals(requestURI)) {
XSLTTransformer xslt = new XSLTTransformer(getClass().getResource("/wadl2html/index.xsl"));
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("contextPath", request.getContextPath());
xslt.setParameters(parameters);
pipeline.addComponent(xslt);
} else if (schemaMatcher.matches()) {
XSLTTransformer xslt = new XSLTTransformer(getClass().getResource("/wadl2html/schema.xsl"));
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("contextPath", request.getContextPath());
parameters.put("schema-position", schemaMatcher.group(1));
parameters.put("schema-prefix", schemaMatcher.group(2));
xslt.setParameters(parameters);
pipeline.addComponent(xslt);
} else {
throw new ServerException("URL not supported: " + request.getRequestURI());
}