private void printConfiguration()

in http/inventoryprinter/src/main/java/org/apache/felix/http/inventoryprinter/impl/HttpInventoryPrinter.java [158:399]


    private void printConfiguration(final PrintWriter pw) {
        final RuntimeDTO dto = this.runtime.getRuntimeDTO();

        pw.println("HTTP Service Details");
        pw.println("====================");
        pw.println();
        pw.println("Runtime Properties");
        pw.println("------------------");

        for(final Map.Entry<String, Object> prop : dto.serviceDTO.properties.entrySet()) {
            pw.print(prop.getKey());
            pw.print(" : ");
            pw.println(getValueAsString(prop.getValue()));
        }
        pw.println();
        if (dto.preprocessorDTOs.length > 0) {
            pw.println("Preprocessors");
            pw.println("-------------");
            for(final PreprocessorDTO pp : dto.preprocessorDTOs) {
                printServiceIdAndRanking(pw, this.getServiceReference(pp.serviceId), pp.serviceId);
                pw.println();
            }
            pw.println();
        }
        for(final ServletContextDTO ctxDto : dto.servletContextDTOs ) {
            pw.print("Servlet Context ");
            pw.println(ctxDto.name);
            pw.println("-----------------------------------------------");

            pw.print("Path : ");
            pw.println(getContextPath(ctxDto.contextPath));
            printServiceIdAndRanking(pw, this.getServiceReference(ctxDto.serviceId), ctxDto.serviceId);
            pw.println();
            if ( ctxDto.servletDTOs.length > 0 ) {
                pw.println("Servlets");
                for (final ServletDTO servlet : ctxDto.servletDTOs) {
                    pw.print("Patterns : ");
                    pw.println(getValueAsString(servlet.patterns));
                    pw.print("Name : ");
                    pw.println(servlet.name);
                    pw.print("async : ");
                    pw.println(String.valueOf(servlet.asyncSupported));
                    printServiceIdAndRanking(pw, this.getServiceReference(servlet.serviceId), servlet.serviceId);
                    pw.println();
                }
                pw.println();
            }

            if ( ctxDto.filterDTOs.length > 0 ) {
                pw.println("Filters");
                for (final FilterDTO filter : ctxDto.filterDTOs) {
                    final List<String> patterns = new ArrayList<>();
                    patterns.addAll(Arrays.asList(filter.patterns));
                    patterns.addAll(Arrays.asList(filter.regexs));
                    for(final String name : filter.servletNames) {
                        patterns.add("Servlet : " + name);
                    }
                    Collections.sort(patterns);

                    pw.print("Patterns : ");
                    pw.println(patterns);
                    pw.print("Name : ");
                    pw.println(filter.name);
                    pw.print("async : ");
                    pw.println(String.valueOf(filter.asyncSupported));
                    pw.print("dispatcher : ");
                    pw.println(getValueAsString(filter.dispatcher));
                    printServiceIdAndRanking(pw, this.getServiceReference(filter.serviceId), filter.serviceId);
                    pw.println();
                }
                pw.println();
            }
            if ( ctxDto.resourceDTOs.length > 0 ) {
                pw.println("Resources");
                for (final ResourceDTO rsrc : ctxDto.resourceDTOs) {
                    pw.print("Patterns : ");
                    pw.println(getValueAsString(rsrc.patterns));
                    pw.print("Prefix : ");
                    pw.println(rsrc.prefix);
                    printServiceIdAndRanking(pw, this.getServiceReference(rsrc.serviceId), rsrc.serviceId);
                    pw.println();
                }
                pw.println();

            }
            if ( ctxDto.errorPageDTOs.length > 0 ) {
                pw.println("Error Pages");
                for (final ErrorPageDTO ep : ctxDto.errorPageDTOs) {
                    final List<String> patterns = new ArrayList<>();
                    for(final long p : ep.errorCodes) {
                        patterns.add(String.valueOf(p));
                    }
                    for(final String p : ep.exceptions) {
                        patterns.add(p);
                    }
                    pw.print("Patterns : ");
                    pw.println(patterns);
                    pw.print("Name : ");
                    pw.println(ep.name);
                    pw.print("async : ");
                    pw.println(String.valueOf(ep.asyncSupported));
                    printServiceIdAndRanking(pw, this.getServiceReference(ep.serviceId), ep.serviceId);
                    pw.println();
                }
                pw.println();
            }

            if ( ctxDto.listenerDTOs.length > 0 ) {
                pw.println("Listeners");
                for (final ListenerDTO ep : ctxDto.listenerDTOs) {
                    pw.print("Types : ");
                    pw.println(getValueAsString(ep.types));
                    printServiceIdAndRanking(pw, this.getServiceReference(ep.serviceId), ep.serviceId);
                    pw.println();
                }
                pw.println();
            }
            pw.println();
        }

        if (dto.failedPreprocessorDTOs.length > 0) {
            pw.println("Failed Preprocessors");
            pw.println("--------------------");
            for(final FailedPreprocessorDTO pp : dto.failedPreprocessorDTOs) {
                printServiceIdAndRanking(pw, this.getServiceReference(pp.serviceId), pp.serviceId);
                pw.print("Reason : ");
                pw.println(getErrorText(pp.failureReason));
                pw.println();
            }
            pw.println();
        }

        if ( dto.failedServletContextDTOs.length > 0 ) {
            for(final FailedServletContextDTO ctxDto : dto.failedServletContextDTOs ) {
                pw.print("Failed Servlet Context ");
                pw.println(ctxDto.name);
                pw.println("-----------------------------------------------");

                pw.print("Reason : ");
                pw.println(getErrorText(ctxDto.failureReason));
                pw.print("Path : ");
                pw.println(getContextPath(ctxDto.contextPath));
                printServiceIdAndRanking(pw, this.getServiceReference(ctxDto.serviceId), ctxDto.serviceId);
                pw.println();
            }
        }
        if ( dto.failedServletDTOs.length > 0 ) {
            pw.println("Failed Servlets");
            for (final FailedServletDTO servlet : dto.failedServletDTOs) {
                pw.print("Patterns : ");
                pw.println(getValueAsString(servlet.patterns));
                pw.print("Reason : ");
                pw.println(getErrorText(servlet.failureReason));
                pw.print("Name : ");
                pw.println(servlet.name);
                pw.print("async : ");
                pw.println(String.valueOf(servlet.asyncSupported));
                printServiceIdAndRanking(pw, this.getServiceReference(servlet.serviceId), servlet.serviceId);
                pw.println();
            }
            pw.println();
        }

        if ( dto.failedFilterDTOs.length > 0 ) {
            pw.println("Failed Filters");
            for (final FailedFilterDTO filter : dto.failedFilterDTOs) {
                final List<String> patterns = new ArrayList<>();
                patterns.addAll(Arrays.asList(filter.patterns));
                patterns.addAll(Arrays.asList(filter.regexs));
                for(final String name : filter.servletNames) {
                    patterns.add("Servlet : " + name);
                }
                Collections.sort(patterns);

                pw.print("Patterns : ");
                pw.println(patterns);
                pw.print("Reason : ");
                pw.println(getErrorText(filter.failureReason));
                pw.print("Name : ");
                pw.println(filter.name);
                pw.print("async : ");
                pw.println(String.valueOf(filter.asyncSupported));
                pw.print("dispatcher : ");
                pw.println(getValueAsString(filter.dispatcher));
                printServiceIdAndRanking(pw, this.getServiceReference(filter.serviceId), filter.serviceId);
                pw.println();
            }
            pw.println();
        }
        if ( dto.failedResourceDTOs.length > 0 ) {
            pw.println("Failed Resources");
            for (final FailedResourceDTO rsrc : dto.failedResourceDTOs) {
                pw.print("Patterns : ");
                pw.println(getValueAsString(rsrc.patterns));
                pw.print("Reason : ");
                pw.println(getErrorText(rsrc.failureReason));
                pw.print("Prefix : ");
                pw.println(rsrc.prefix);
                printServiceIdAndRanking(pw, this.getServiceReference(rsrc.serviceId), rsrc.serviceId);
                pw.println();
            }
            pw.println();

        }
        if ( dto.failedErrorPageDTOs.length > 0 ) {
            pw.println("Failed Error Pages");
            for (final FailedErrorPageDTO ep : dto.failedErrorPageDTOs) {
                final List<String> patterns = new ArrayList<>();
                for(final long p : ep.errorCodes) {
                    patterns.add(String.valueOf(p));
                }
                for(final String p : ep.exceptions) {
                    patterns.add(p);
                }
                pw.print("Patterns : ");
                pw.println(patterns);
                pw.print("Reason : ");
                pw.println(getErrorText(ep.failureReason));
                pw.print("Name : ");
                pw.println(ep.name);
                pw.print("async : ");
                pw.println(String.valueOf(ep.asyncSupported));
                printServiceIdAndRanking(pw, this.getServiceReference(ep.serviceId), ep.serviceId);
                pw.println();
            }
            pw.println();
        }

        if ( dto.failedListenerDTOs.length > 0 ) {
            pw.println("Failed Listeners");
            for (final FailedListenerDTO ep : dto.failedListenerDTOs) {
                pw.print("Types : ");
                pw.println(getValueAsString(ep.types));
                pw.print("Reason : ");
                pw.println(getErrorText(ep.failureReason));
                printServiceIdAndRanking(pw, this.getServiceReference(ep.serviceId), ep.serviceId);
                pw.println();
            }
            pw.println();
        }
        pw.println();
    }