in core/src/main/java/org/apache/sling/testing/mock/sling/MockSling.java [105:124]
static ResourceResolverFactory buildFactoryFromRepository(
@NotNull NodeTypeMode mode, @NotNull BundleContext bundleContext, ResourceResolverTypeAdapter adapter) {
ResourceResolverFactory factory;
Object existingSnapshot = SNAPSHOTS.get(adapter.getClass());
SlingRepository repository;
if (existingSnapshot == null) {
repository = adapter.newSlingRepository();
} else {
repository = adapter.newSlingRepositoryFromSnapshot(existingSnapshot);
}
factory = ResourceResolverFactoryInitializer.setUp(
repository, bundleContext, existingSnapshot == null ? mode : NodeTypeMode.NOT_SUPPORTED);
if (existingSnapshot == null) {
Object newSnapshot = adapter.snapshot(repository);
if (newSnapshot != null) {
SNAPSHOTS.putIfAbsent(adapter.getClass(), newSnapshot);
}
}
return factory;
}