in src/main/java/org/apache/sling/junit/impl/RendererSelectorImpl.java [51:77]
public Renderer getRenderer(TestSelector selector) {
if(renderersTracker.getTrackingCount() != renderersTrackerTrackingCount) {
log.debug("Rebuilding list of {}", Renderer.class.getSimpleName());
renderersTrackerTrackingCount = renderersTracker.getTrackingCount();
final ServiceReference [] refs = renderersTracker.getServiceReferences();
renderers.clear();
if(refs != null) {
for(ServiceReference ref : refs) {
renderers.add( (Renderer)bundleContext.getService(ref) );
}
}
log.info("List of {} rebuilt: {}",
Renderer.class.getSimpleName(),
renderers);
}
for(Renderer r : renderers) {
if(r.appliesTo(selector)) {
if(r instanceof RendererFactory) {
return ((RendererFactory)r).createRenderer();
}
throw new UnsupportedOperationException("Renderers must implement RendererFactory, this one does not:" + r);
}
}
return null;
}