private static ResourceResolverTypeAdapter getResourceResolverTypeAdapter()

in core/src/main/java/org/apache/sling/testing/mock/sling/MockSling.java [127:152]


    private static ResourceResolverTypeAdapter getResourceResolverTypeAdapter(
            final ResourceResolverType type, @NotNull final BundleContext bundleContext) {
        try {
            Class clazz = Class.forName(type.getResourceResolverTypeAdapterClass());
            try {
                Constructor<ResourceResolverTypeAdapter> bundleContextConstructor =
                        clazz.getConstructor(BundleContext.class);
                // use constructor with bundle context
                return bundleContextConstructor.newInstance(bundleContext);
            } catch (NoSuchMethodException ex) {
                // fallback to default constructor
                return (ResourceResolverTypeAdapter) clazz.newInstance();
            }
        } catch (ClassNotFoundException
                | InstantiationException
                | IllegalAccessException
                | InvocationTargetException ex) {
            throw new RuntimeException(
                    "Unable to instantiate resourcer resolver: "
                            + type.getResourceResolverTypeAdapterClass()
                            + (type.getArtifactCoordinates() != null
                                    ? ". Make sure this maven dependency is included: " + type.getArtifactCoordinates()
                                    : ""),
                    ex);
        }
    }