in core/src/main/java/org/apache/sling/testing/mock/sling/ResourceResolverFactoryInitializer.java [95:118]
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
}
}