in src/main/java/org/apache/sling/resourceresolver/impl/FactoryPreconditions.java [67:139]
private List<RequiredProvider> initRequiredProviders(
Set<String> requiredResourceProviderNames, Set<String> requiredResourceProvidersLegacy) {
boolean hasLegacyRequiredProvider = false;
if (requiredResourceProvidersLegacy != null) {
hasLegacyRequiredProvider =
requiredResourceProvidersLegacy.remove(ResourceResolverFactoryConfig.LEGACY_REQUIRED_PROVIDER_PID);
if (!requiredResourceProvidersLegacy.isEmpty()) {
LOG.error(
"ResourceResolverFactory is using deprecated required providers configuration "
+ "(resource.resolver.required.providers). Please change to use the property "
+ "resource.resolver.required.providernames for values: {}",
requiredResourceProvidersLegacy);
} else {
requiredResourceProvidersLegacy = null;
}
}
if (hasLegacyRequiredProvider) {
if (requiredResourceProviderNames == null) {
requiredResourceProviderNames = new HashSet<>();
}
// add default if not already present
final boolean hasRequiredProvider =
!requiredResourceProviderNames.add(ResourceResolverFactoryConfig.REQUIRED_PROVIDER_NAME);
if (hasRequiredProvider) {
LOG.warn(
"ResourceResolverFactory is using deprecated required providers configuration "
+ "(resource.resolver.required.providers) with value '{}'. Please remove this configuration "
+ "property. '{}' is already contained in the property resource.resolver.required.providernames.",
ResourceResolverFactoryConfig.LEGACY_REQUIRED_PROVIDER_PID,
ResourceResolverFactoryConfig.REQUIRED_PROVIDER_NAME);
} else {
LOG.warn(
"ResourceResolverFactory is using deprecated required providers configuration "
+ "(resource.resolver.required.providers) with value '{}'. Please remove this configuration "
+ "property and add '{}' to the property resource.resolver.required.providernames.",
ResourceResolverFactoryConfig.LEGACY_REQUIRED_PROVIDER_PID,
ResourceResolverFactoryConfig.REQUIRED_PROVIDER_NAME);
}
}
final List<RequiredProvider> rps = new ArrayList<>();
if (requiredResourceProvidersLegacy != null) {
final Logger logger = LoggerFactory.getLogger(getClass());
for (final String value : requiredResourceProvidersLegacy) {
RequiredProvider rp = new RequiredProvider();
if (value.startsWith("(")) {
try {
rp.filter = FrameworkUtil.createFilter(value);
} catch (final InvalidSyntaxException e) {
logger.warn("Ignoring invalid filter syntax for required provider: " + value, e);
rp = null;
}
} else {
rp.pid = value;
}
if (rp != null) {
rps.add(rp);
}
}
}
if (requiredResourceProviderNames != null) {
for (final String value : requiredResourceProviderNames) {
final RequiredProvider rp = new RequiredProvider();
rp.name = value;
rps.add(rp);
}
}
return rps;
}