Search in sources :

Example 1 with ProcessingContext

use of org.apache.sling.rewriter.ProcessingContext in project sling by apache.

the class RewriterResponse method getProcessor.

/**
     * Search the first matching processor
     */
private Processor getProcessor() {
    final ProcessingContext processorContext = new ServletProcessingContext(this.request, this, this.getSlingResponse(), this.contentType);
    Processor found = null;
    final List<ProcessorConfiguration> processorConfigs = this.processorManager.getProcessorConfigurations();
    final Iterator<ProcessorConfiguration> i = processorConfigs.iterator();
    while (found == null && i.hasNext()) {
        final ProcessorConfiguration config = i.next();
        if (config.match(processorContext)) {
            try {
                found = this.processorManager.getProcessor(config, processorContext);
                this.request.getRequestProgressTracker().log("Found processor for post processing {0}", config);
            } catch (final SlingException se) {
                // already processing an error, we ignore this!
                if (processorContext.getRequest().getAttribute("javax.servlet.error.status_code") != null) {
                    this.request.getRequestProgressTracker().log("Ignoring found processor for post processing {0}" + " as an error occured ({1}) during setup while processing another error.", config, se);
                } else {
                    throw se;
                }
            }
        }
    }
    return found;
}
Also used : ProcessorConfiguration(org.apache.sling.rewriter.ProcessorConfiguration) ProcessingContext(org.apache.sling.rewriter.ProcessingContext) Processor(org.apache.sling.rewriter.Processor) SlingException(org.apache.sling.api.SlingException)

Aggregations

SlingException (org.apache.sling.api.SlingException)1 ProcessingContext (org.apache.sling.rewriter.ProcessingContext)1 Processor (org.apache.sling.rewriter.Processor)1 ProcessorConfiguration (org.apache.sling.rewriter.ProcessorConfiguration)1