public void printConfiguration()

in src/main/java/org/apache/sling/models/impl/ModelConfigurationPrinter.java [51:159]


    public void printConfiguration(PrintWriter printWriter) {
        
        // injectors
        printWriter.println("Sling Models Injectors:");
        Collection<Injector> injectors = modelAdapterFactory.getInjectors();
        if (injectors.isEmpty()) {
            printWriter.println("none");
        } else {
            for (Injector injector : injectors) {
                printWriter.printf("%s - %s", injector.getName(), injector.getClass().getName());
                printWriter.println();
            }
        }
        printWriter.println();
        
        // inject annotations processor factories
        printWriter.println("Sling Models Inject Annotation Processor Factories:");
        Collection<InjectAnnotationProcessorFactory> factories = modelAdapterFactory.getInjectAnnotationProcessorFactories();
        Collection<InjectAnnotationProcessorFactory2> factories2 = modelAdapterFactory.getInjectAnnotationProcessorFactories2();
        Collection<StaticInjectAnnotationProcessorFactory> staticFactories = modelAdapterFactory.getStaticInjectAnnotationProcessorFactories();
        if ((factories.isEmpty())
                && (factories2.isEmpty())
                && (staticFactories.isEmpty())) {
            printWriter.println("none");
        } else {
            for (StaticInjectAnnotationProcessorFactory factory : staticFactories) {
                printWriter.printf("%s", factory.getClass().getName());
                printWriter.println();
            }
            for (InjectAnnotationProcessorFactory2 factory : factories2) {
                printWriter.printf("%s", factory.getClass().getName());
                printWriter.println();
            }
            for (InjectAnnotationProcessorFactory factory : factories) {
                printWriter.printf("%s", factory.getClass().getName());
                printWriter.println();
            }
        }
        printWriter.println();
        
        // implementation pickers
        printWriter.println("Sling Models Implementation Pickers:");
        ImplementationPicker[] pickers = modelAdapterFactory.getImplementationPickers();
        if (pickers == null || pickers.length == 0) {
            printWriter.println("none");
        } else {
            for (ImplementationPicker picker : pickers) {
                printWriter.printf("%s", picker.getClass().getName());
                printWriter.println();
            }
        }

        printWriter.println();

        // implementation pickers
        printWriter.println("Sling Models Via Providers:");
        Map<Class<? extends ViaProviderType>, ViaProvider> viaProviders = modelAdapterFactory.getViaProviders();
        if (viaProviders == null || viaProviders.size() == 0) {
            printWriter.println("none");
        } else {
            for (Map.Entry<Class<? extends ViaProviderType>, ViaProvider> entry : viaProviders.entrySet()) {
                printWriter.printf("%s (Type: %s)", entry.getValue().getClass().getName(), entry.getKey().getName());
                printWriter.println();
            }
        }


        printWriter.println();

        // models bound to resource types
        printWriter.println("Sling Models Bound to Resource Types *For Resources*:");
        for (Map.Entry<String, Class<?>> entry : adapterImplementations.getResourceTypeMappingsForResources().entrySet()) {
            printWriter.print(entry.getValue().getName());
            printWriter.print(" - ");
            printWriter.println(entry.getKey());
        }
        printWriter.println();

        printWriter.println("Sling Models Bound to Resource Types *For Requests*:");
        for (Map.Entry<String, Class<?>> entry : adapterImplementations.getResourceTypeMappingsForRequests().entrySet()) {
            printWriter.print(entry.getValue().getName());
            printWriter.print(" - ");
            printWriter.println(entry.getKey());
        }

        printWriter.println();

        // registered exporter servlets
        printWriter.println("Sling Models Exporter Servlets:");
        try {
            ServiceReference[] servlets = bundleContext.getServiceReferences(Servlet.class.getName(), EXPORT_SERVLET_FILTER);
            if (servlets != null) {
                for (ServiceReference ref : servlets) {
                    printWriter.print(ref.getProperty(ModelPackageBundleListener.PROP_EXPORTER_SERVLET_CLASS));
                    printWriter.print(" exports '");
                    printWriter.print(ref.getProperty("sling.servlet.resourceTypes"));
                    printWriter.print("' with selector '");
                    printWriter.print(ref.getProperty("sling.servlet.selectors"));
                    printWriter.print("' and extension '");
                    printWriter.print(ref.getProperty("sling.servlet.extensions"));
                    printWriter.print("' with exporter '");
                    printWriter.print(ref.getProperty(ModelPackageBundleListener.PROP_EXPORTER_SERVLET_NAME));
                    printWriter.println("'");
                }
            }
        } catch (InvalidSyntaxException e) {
            // ignore
        }
    }