in core/src/main/java/org/apache/sling/testing/mock/sling/ResourceResolverFactoryInitializer.java [108:135]
private static void ensureJcrResourceProviderDependencies(@NotNull BundleContext bundleContext) {
if (bundleContext.getServiceReference(DynamicClassLoaderManager.class) == null) {
bundleContext.registerService(DynamicClassLoaderManager.class, new MockDynamicClassLoaderManager(), null);
}
try {
Class pathMapperClass = Class.forName("org.apache.sling.jcr.resource.internal.helper.jcr.PathMapper");
Object pathMapper = pathMapperClass.newInstance();
// eliminate logger in class to suppress deprecation warnings
try {
Field pathMapperLoggerField = pathMapperClass.getDeclaredField("log");
pathMapperLoggerField.setAccessible(true);
pathMapperLoggerField.set(
pathMapper,
Proxy.newProxyInstance(
Logger.class.getClassLoader(),
new Class[] {Logger.class},
(proxy, method, methodArgs) -> {
return null;
}));
} catch (Exception ex) {
// ignore
}
registerServiceIfNotPresent(bundleContext, pathMapperClass, pathMapper);
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException ex) {
// ignore - service was removed in org.apache.sling.jcr.resource 3.0.0
}
}