in src/main/java/org/apache/sling/servlets/resolver/internal/resource/ServletResourceProviderFactory.java [127:162]
public ServletResourceProvider create(final ServiceReference<Servlet> ref, final Servlet servlet) {
final Set<String> pathSet = new HashSet<>();
// check whether explicit paths are set
addByPath(pathSet, ref);
// now, we handle resource types, extensions and methods
addByType(pathSet, ref);
if (pathSet.isEmpty()) {
if (log.isDebugEnabled()) {
log.debug(
"create({}): ServiceReference has no registration settings, ignoring",
getServiceReferenceInfo(ref));
}
return null;
}
if (log.isDebugEnabled()) {
log.debug("create({}): Registering servlet for paths {}",
getServiceReferenceInfo(ref), pathSet);
}
String resourceSuperType = PropertiesUtil.toString(ref.getProperty(SLING_SERVLET_RESOURCE_SUPER_TYPE), null);
Set<String> resourceSuperTypeMarkers = new HashSet<>();
if (StringUtils.isNotEmpty(resourceSuperType) && !ServletResource.DEFAULT_RESOURCE_SUPER_TYPE.equals(resourceSuperType)) {
for (String rt : PropertiesUtil.toStringArray(ref.getProperty(SLING_SERVLET_RESOURCE_TYPES))) {
if (!rt.startsWith("/")) {
rt = getPrefix(ref).concat(ResourceUtil.resourceTypeToPath(rt));
}
resourceSuperTypeMarkers.add(rt);
pathSet.add(rt);
}
}
return new ServletResourceProvider(servlet, pathSet, resourceSuperTypeMarkers, resourceSuperType);
}