Search in sources :

Example 1 with FailedErrorPageDTO

use of org.osgi.service.http.runtime.dto.FailedErrorPageDTO in project felix by apache.

the class HttpServicePlugin method printConfiguration.

/**
 * @see org.apache.felix.webconsole.ConfigurationPrinter#printConfiguration(java.io.PrintWriter)
 */
public 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();
    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);
                final ServiceReference<?> ref = this.getServiceReference(servlet.serviceId);
                printServiceIdAndRanking(pw, ref, servlet.serviceId);
                pw.print("async : ");
                pw.println(String.valueOf(servlet.asyncSupported));
                if (ref != null) {
                    pw.print("Bundle : ");
                    pw.print(ref.getBundle().getSymbolicName());
                    pw.print(" <");
                    pw.print(String.valueOf(ref.getBundle().getBundleId()));
                    pw.println(">");
                }
                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);
                final ServiceReference<?> ref = this.getServiceReference(filter.serviceId);
                printServiceIdAndRanking(pw, ref, filter.serviceId);
                pw.print("async : ");
                pw.println(String.valueOf(filter.asyncSupported));
                pw.print("dispatcher : ");
                pw.println(getValueAsString(filter.dispatcher));
                if (ref != null) {
                    pw.print("Bundle : ");
                    pw.print(ref.getBundle().getSymbolicName());
                    pw.print(" <");
                    pw.print(String.valueOf(ref.getBundle().getBundleId()));
                    pw.println(">");
                }
                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);
                final ServiceReference<?> ref = this.getServiceReference(rsrc.serviceId);
                printServiceIdAndRanking(pw, ref, rsrc.serviceId);
                if (ref != null) {
                    pw.print("Bundle : ");
                    pw.print(ref.getBundle().getSymbolicName());
                    pw.print(" <");
                    pw.print(String.valueOf(ref.getBundle().getBundleId()));
                    pw.println(">");
                }
                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);
                final ServiceReference<?> ref = this.getServiceReference(ep.serviceId);
                printServiceIdAndRanking(pw, ref, ep.serviceId);
                pw.print("async : ");
                pw.println(String.valueOf(ep.asyncSupported));
                if (ref != null) {
                    pw.print("Bundle : ");
                    pw.print(ref.getBundle().getSymbolicName());
                    pw.print(" <");
                    pw.print(String.valueOf(ref.getBundle().getBundleId()));
                    pw.println(">");
                }
                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));
                final ServiceReference<?> ref = this.getServiceReference(ep.serviceId);
                printServiceIdAndRanking(pw, ref, ep.serviceId);
                if (ref != null) {
                    pw.print("Bundle : ");
                    pw.print(ref.getBundle().getSymbolicName());
                    pw.print(" <");
                    pw.print(String.valueOf(ref.getBundle().getBundleId()));
                    pw.println(">");
                }
                pw.println();
            }
            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);
            final ServiceReference<?> ref = this.getServiceReference(servlet.serviceId);
            printServiceIdAndRanking(pw, ref, servlet.serviceId);
            pw.print("async : ");
            pw.println(String.valueOf(servlet.asyncSupported));
            if (ref != null) {
                pw.print("Bundle : ");
                pw.print(ref.getBundle().getSymbolicName());
                pw.print(" <");
                pw.print(String.valueOf(ref.getBundle().getBundleId()));
                pw.println(">");
            }
            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);
            final ServiceReference<?> ref = this.getServiceReference(filter.serviceId);
            printServiceIdAndRanking(pw, ref, filter.serviceId);
            pw.print("async : ");
            pw.println(String.valueOf(filter.asyncSupported));
            pw.print("dispatcher : ");
            pw.println(getValueAsString(filter.dispatcher));
            if (ref != null) {
                pw.print("Bundle : ");
                pw.print(ref.getBundle().getSymbolicName());
                pw.print(" <");
                pw.print(String.valueOf(ref.getBundle().getBundleId()));
                pw.println(">");
            }
            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);
            final ServiceReference<?> ref = this.getServiceReference(rsrc.serviceId);
            printServiceIdAndRanking(pw, ref, rsrc.serviceId);
            if (ref != null) {
                pw.print("Bundle : ");
                pw.print(ref.getBundle().getSymbolicName());
                pw.print(" <");
                pw.print(String.valueOf(ref.getBundle().getBundleId()));
                pw.println(">");
            }
            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);
            final ServiceReference<?> ref = this.getServiceReference(ep.serviceId);
            printServiceIdAndRanking(pw, ref, ep.serviceId);
            pw.print("async : ");
            pw.println(String.valueOf(ep.asyncSupported));
            if (ref != null) {
                pw.print("Bundle : ");
                pw.print(ref.getBundle().getSymbolicName());
                pw.print(" <");
                pw.print(String.valueOf(ref.getBundle().getBundleId()));
                pw.println(">");
            }
            pw.println();
        }
        pw.println();
    }
    if (dto.failedListenerDTOs.length > 0) {
        pw.println("Listeners");
        for (final FailedListenerDTO ep : dto.failedListenerDTOs) {
            pw.print("Types : ");
            pw.println(getValueAsString(ep.types));
            pw.print("Reason : ");
            pw.println(getErrorText(ep.failureReason));
            final ServiceReference<?> ref = this.getServiceReference(ep.serviceId);
            printServiceIdAndRanking(pw, ref, ep.serviceId);
            if (ref != null) {
                pw.print("Bundle : ");
                pw.print(ref.getBundle().getSymbolicName());
                pw.print(" <");
                pw.print(String.valueOf(ref.getBundle().getBundleId()));
                pw.println(">");
            }
            pw.println();
        }
        pw.println();
    }
    pw.println();
}
Also used : FailedFilterDTO(org.osgi.service.http.runtime.dto.FailedFilterDTO) FailedServletDTO(org.osgi.service.http.runtime.dto.FailedServletDTO) FailedErrorPageDTO(org.osgi.service.http.runtime.dto.FailedErrorPageDTO) ServletContextDTO(org.osgi.service.http.runtime.dto.ServletContextDTO) FailedServletContextDTO(org.osgi.service.http.runtime.dto.FailedServletContextDTO) ArrayList(java.util.ArrayList) FailedResourceDTO(org.osgi.service.http.runtime.dto.FailedResourceDTO) FailedFilterDTO(org.osgi.service.http.runtime.dto.FailedFilterDTO) FilterDTO(org.osgi.service.http.runtime.dto.FilterDTO) ResourceDTO(org.osgi.service.http.runtime.dto.ResourceDTO) FailedResourceDTO(org.osgi.service.http.runtime.dto.FailedResourceDTO) FailedListenerDTO(org.osgi.service.http.runtime.dto.FailedListenerDTO) ListenerDTO(org.osgi.service.http.runtime.dto.ListenerDTO) FailedListenerDTO(org.osgi.service.http.runtime.dto.FailedListenerDTO) ErrorPageDTO(org.osgi.service.http.runtime.dto.ErrorPageDTO) FailedErrorPageDTO(org.osgi.service.http.runtime.dto.FailedErrorPageDTO) RuntimeDTO(org.osgi.service.http.runtime.dto.RuntimeDTO) FailedServletContextDTO(org.osgi.service.http.runtime.dto.FailedServletContextDTO) Map(java.util.Map) FailedServletDTO(org.osgi.service.http.runtime.dto.FailedServletDTO) ServletDTO(org.osgi.service.http.runtime.dto.ServletDTO)

Example 2 with FailedErrorPageDTO

use of org.osgi.service.http.runtime.dto.FailedErrorPageDTO in project felix by apache.

the class FailedDTOHolder method add.

public void add(final AbstractInfo<?> info, final long contextId, final int failureCode) {
    if (info instanceof ServletContextHelperInfo) {
        final FailedServletContextDTO dto = (FailedServletContextDTO) ServletContextDTOBuilder.build((ServletContextHelperInfo) info, null, failureCode);
        this.failedServletContextDTOs.add(dto);
    } else if (info instanceof ServletInfo) {
        boolean isError = false;
        if (((ServletInfo) info).getErrorPage() != null) {
            isError = true;
            final FailedErrorPageDTO dto = (FailedErrorPageDTO) ErrorPageDTOBuilder.build((ServletInfo) info, true);
            dto.failureReason = failureCode;
            final ErrorPageRegistry.ErrorRegistration reg = ErrorPageRegistry.getErrorRegistration((ServletInfo) info);
            dto.errorCodes = reg.errorCodes;
            dto.exceptions = reg.exceptions;
            dto.servletContextId = contextId;
            this.failedErrorPageDTOs.add(dto);
        }
        if (((ServletInfo) info).getPatterns() != null || ((ServletInfo) info).getName() != null || !isError) {
            final FailedServletDTO dto = (FailedServletDTO) ServletDTOBuilder.build((ServletInfo) info, failureCode);
            if (((ServletInfo) info).getPatterns() != null) {
                dto.patterns = ((ServletInfo) info).getPatterns();
            } else {
                dto.patterns = BuilderConstants.EMPTY_STRING_ARRAY;
            }
            dto.name = ((ServletInfo) info).getName();
            dto.servletContextId = contextId;
            this.failedServletDTOs.add(dto);
        }
    } else if (info instanceof FilterInfo) {
        final FailedFilterDTO dto = (FailedFilterDTO) FilterDTOBuilder.build((FilterInfo) info, failureCode);
        dto.failureReason = failureCode;
        dto.servletContextId = contextId;
        this.failedFilterDTOs.add(dto);
    } else if (info instanceof ResourceInfo) {
        final FailedResourceDTO dto = (FailedResourceDTO) ResourceDTOBuilder.build((ResourceInfo) info, true);
        dto.failureReason = failureCode;
        dto.servletContextId = contextId;
        this.failedResourceDTOs.add(dto);
    } else if (info instanceof ListenerInfo) {
        final FailedListenerDTO dto = (FailedListenerDTO) ListenerDTOBuilder.build((ListenerInfo) info, failureCode);
        dto.servletContextId = contextId;
        this.failedListenerDTOs.add(dto);
    } else if (info instanceof PreprocessorInfo) {
        final FailedPreprocessorDTO dto = (FailedPreprocessorDTO) PreprocessorDTOBuilder.build((PreprocessorInfo) info, failureCode);
        this.failedPreprocessorDTOs.add(dto);
    } else {
        SystemLogger.error("Unsupported info type: " + info.getClass(), null);
    }
}
Also used : FailedFilterDTO(org.osgi.service.http.runtime.dto.FailedFilterDTO) ResourceInfo(org.apache.felix.http.base.internal.runtime.ResourceInfo) FailedErrorPageDTO(org.osgi.service.http.runtime.dto.FailedErrorPageDTO) FailedServletDTO(org.osgi.service.http.runtime.dto.FailedServletDTO) FailedResourceDTO(org.osgi.service.http.runtime.dto.FailedResourceDTO) PreprocessorInfo(org.apache.felix.http.base.internal.runtime.PreprocessorInfo) ServletInfo(org.apache.felix.http.base.internal.runtime.ServletInfo) ListenerInfo(org.apache.felix.http.base.internal.runtime.ListenerInfo) ServletContextHelperInfo(org.apache.felix.http.base.internal.runtime.ServletContextHelperInfo) FailedListenerDTO(org.osgi.service.http.runtime.dto.FailedListenerDTO) FailedPreprocessorDTO(org.osgi.service.http.runtime.dto.FailedPreprocessorDTO) FailedServletContextDTO(org.osgi.service.http.runtime.dto.FailedServletContextDTO) FilterInfo(org.apache.felix.http.base.internal.runtime.FilterInfo)

Example 3 with FailedErrorPageDTO

use of org.osgi.service.http.runtime.dto.FailedErrorPageDTO in project felix by apache.

the class RuntimeDTOBuilder method build.

public RuntimeDTO build() {
    final RuntimeDTO runtimeDTO = new RuntimeDTO();
    runtimeDTO.serviceDTO = createServiceDTO();
    runtimeDTO.servletContextDTOs = createContextDTOs();
    runtimeDTO.preprocessorDTOs = createPreprocessorDTOs();
    runtimeDTO.failedErrorPageDTOs = registry.getFailedDTOHolder().failedErrorPageDTOs.toArray(new FailedErrorPageDTO[registry.getFailedDTOHolder().failedErrorPageDTOs.size()]);
    runtimeDTO.failedFilterDTOs = registry.getFailedDTOHolder().failedFilterDTOs.toArray(new FailedFilterDTO[registry.getFailedDTOHolder().failedFilterDTOs.size()]);
    runtimeDTO.failedListenerDTOs = registry.getFailedDTOHolder().failedListenerDTOs.toArray(new FailedListenerDTO[registry.getFailedDTOHolder().failedListenerDTOs.size()]);
    runtimeDTO.failedResourceDTOs = registry.getFailedDTOHolder().failedResourceDTOs.toArray(new FailedResourceDTO[registry.getFailedDTOHolder().failedResourceDTOs.size()]);
    runtimeDTO.failedServletContextDTOs = registry.getFailedDTOHolder().failedServletContextDTOs.toArray(new FailedServletContextDTO[registry.getFailedDTOHolder().failedServletContextDTOs.size()]);
    runtimeDTO.failedServletDTOs = registry.getFailedDTOHolder().failedServletDTOs.toArray(new FailedServletDTO[registry.getFailedDTOHolder().failedServletDTOs.size()]);
    runtimeDTO.failedPreprocessorDTOs = registry.getFailedDTOHolder().failedPreprocessorDTOs.toArray(new FailedPreprocessorDTO[registry.getFailedDTOHolder().failedPreprocessorDTOs.size()]);
    return runtimeDTO;
}
Also used : FailedFilterDTO(org.osgi.service.http.runtime.dto.FailedFilterDTO) FailedErrorPageDTO(org.osgi.service.http.runtime.dto.FailedErrorPageDTO) FailedServletDTO(org.osgi.service.http.runtime.dto.FailedServletDTO) FailedListenerDTO(org.osgi.service.http.runtime.dto.FailedListenerDTO) FailedResourceDTO(org.osgi.service.http.runtime.dto.FailedResourceDTO) FailedPreprocessorDTO(org.osgi.service.http.runtime.dto.FailedPreprocessorDTO) RuntimeDTO(org.osgi.service.http.runtime.dto.RuntimeDTO) FailedServletContextDTO(org.osgi.service.http.runtime.dto.FailedServletContextDTO)

Example 4 with FailedErrorPageDTO

use of org.osgi.service.http.runtime.dto.FailedErrorPageDTO in project felix by apache.

the class HttpServiceRuntimeTest method multipleErrorPagesForSameErrorCodeChoosenByServiceRankingRules.

// As specified in OSGi Compendium Release 6, Chapter 140.4.1
@Test
public void multipleErrorPagesForSameErrorCodeChoosenByServiceRankingRules() throws InterruptedException {
    registerErrorPage("error page 1", asList(NullPointerException.class.getName(), "500"));
    HttpServiceRuntime serviceRuntime = (HttpServiceRuntime) getService(HttpServiceRuntime.class.getName());
    assertNotNull("HttpServiceRuntime unavailable", serviceRuntime);
    RuntimeDTO runtimeDTO = serviceRuntime.getRuntimeDTO();
    ServletContextDTO defaultContext = assertDefaultContext(runtimeDTO);
    assertEquals(0, runtimeDTO.failedErrorPageDTOs.length);
    assertEquals(1, defaultContext.errorPageDTOs.length);
    Dictionary<String, ?> properties = createDictionary(HTTP_WHITEBOARD_SERVLET_ERROR_PAGE, asList("500", IllegalArgumentException.class.getName()), HTTP_WHITEBOARD_SERVLET_NAME, "error page 2", SERVICE_RANKING, Integer.MAX_VALUE);
    CountDownLatch initLatch = new CountDownLatch(1);
    CountDownLatch destroyLatch = new CountDownLatch(1);
    TestServlet testServlet = new TestServlet(initLatch, destroyLatch);
    ServiceRegistration<?> higherRankingServlet = m_context.registerService(Servlet.class.getName(), testServlet, properties);
    registrations.add(higherRankingServlet);
    awaitServiceRegistration(initLatch);
    RuntimeDTO runtimeWithShadowedErrorPage = serviceRuntime.getRuntimeDTO();
    defaultContext = assertDefaultContext(runtimeWithShadowedErrorPage);
    assertEquals(2, defaultContext.errorPageDTOs.length);
    assertEquals("error page 2", defaultContext.errorPageDTOs[0].name);
    assertArrayEquals(new long[] { 500 }, defaultContext.errorPageDTOs[0].errorCodes);
    assertArrayEquals(new String[] { IllegalArgumentException.class.getName() }, defaultContext.errorPageDTOs[0].exceptions);
    assertEquals("error page 1", defaultContext.errorPageDTOs[1].name);
    assertEquals(0, defaultContext.errorPageDTOs[1].errorCodes.length);
    assertArrayEquals(new String[] { NullPointerException.class.getName() }, defaultContext.errorPageDTOs[1].exceptions);
    assertEquals(1, runtimeWithShadowedErrorPage.failedErrorPageDTOs.length);
    FailedErrorPageDTO failedErrorPageDTO = runtimeWithShadowedErrorPage.failedErrorPageDTOs[0];
    assertEquals("error page 1", failedErrorPageDTO.name);
    assertArrayEquals(new long[] { 500 }, failedErrorPageDTO.errorCodes);
    assertEquals(0, failedErrorPageDTO.exceptions.length);
    assertEquals(FAILURE_REASON_SHADOWED_BY_OTHER_SERVICE, failedErrorPageDTO.failureReason);
    higherRankingServlet.unregister();
    awaitServiceRegistration(destroyLatch);
    runtimeDTO = serviceRuntime.getRuntimeDTO();
    defaultContext = assertDefaultContext(runtimeDTO);
    assertEquals(0, runtimeDTO.failedErrorPageDTOs.length);
    assertEquals(1, defaultContext.errorPageDTOs.length);
    assertEquals("error page 1", defaultContext.errorPageDTOs[0].name);
}
Also used : FailedErrorPageDTO(org.osgi.service.http.runtime.dto.FailedErrorPageDTO) HttpServiceRuntime(org.osgi.service.http.runtime.HttpServiceRuntime) ServletContextDTO(org.osgi.service.http.runtime.dto.ServletContextDTO) Servlet(javax.servlet.Servlet) RuntimeDTO(org.osgi.service.http.runtime.dto.RuntimeDTO) CountDownLatch(java.util.concurrent.CountDownLatch) Test(org.junit.Test)

Example 5 with FailedErrorPageDTO

use of org.osgi.service.http.runtime.dto.FailedErrorPageDTO in project felix by apache.

the class HttpServicePlugin method printFailedErrorPageDetails.

private void printFailedErrorPageDetails(final PrintWriter pw, final RuntimeDTO dto) {
    if (dto.failedErrorPageDTOs.length == 0) {
        return;
    }
    pw.print("<p class=\"statline ui-state-highlight\">${Registered Error Pages}</p>");
    pw.println("<table class=\"nicetable\">");
    pw.println("<thead><tr>");
    pw.println("<th class=\"header\">${Path}</th>");
    pw.println("<th class=\"header\">${Name}</th>");
    pw.println("<th class=\"header\">${Info}</th>");
    pw.println("</tr></thead>");
    boolean odd = true;
    for (final FailedErrorPageDTO ep : dto.failedErrorPageDTOs) {
        final StringBuilder sb = new StringBuilder();
        sb.append("${reason} : ").append(getErrorText(ep.failureReason)).append("\n");
        final ServiceReference<?> ref = this.getServiceReference(ep.serviceId);
        sb.append("${service.id} : ").append(String.valueOf(ep.serviceId)).append("\n");
        appendServiceRanking(sb, ref);
        sb.append("${async} : ").append(String.valueOf(ep.asyncSupported)).append("\n");
        if (ref != null) {
            sb.append("${bundle} : ");
            sb.append("${#link:");
            sb.append(ref.getBundle().getBundleId());
            sb.append("}");
            sb.append(ref.getBundle().getSymbolicName());
            sb.append("${link#}\n");
        }
        final StringBuilder psb = new StringBuilder();
        for (final long p : ep.errorCodes) {
            psb.append(p).append('\n');
        }
        for (final String p : ep.exceptions) {
            psb.append(p).append('\n');
        }
        odd = printRow(pw, odd, psb.toString(), ep.name, sb.toString());
    }
    pw.println("</table>");
}
Also used : FailedErrorPageDTO(org.osgi.service.http.runtime.dto.FailedErrorPageDTO)

Aggregations

FailedErrorPageDTO (org.osgi.service.http.runtime.dto.FailedErrorPageDTO)8 ErrorPageDTO (org.osgi.service.http.runtime.dto.ErrorPageDTO)4 FailedFilterDTO (org.osgi.service.http.runtime.dto.FailedFilterDTO)3 FailedListenerDTO (org.osgi.service.http.runtime.dto.FailedListenerDTO)3 FailedResourceDTO (org.osgi.service.http.runtime.dto.FailedResourceDTO)3 FailedServletContextDTO (org.osgi.service.http.runtime.dto.FailedServletContextDTO)3 FailedServletDTO (org.osgi.service.http.runtime.dto.FailedServletDTO)3 RuntimeDTO (org.osgi.service.http.runtime.dto.RuntimeDTO)3 ArrayList (java.util.ArrayList)2 Map (java.util.Map)2 FailedPreprocessorDTO (org.osgi.service.http.runtime.dto.FailedPreprocessorDTO)2 ServletContextDTO (org.osgi.service.http.runtime.dto.ServletContextDTO)2 HashMap (java.util.HashMap)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1 CountDownLatch (java.util.concurrent.CountDownLatch)1 Servlet (javax.servlet.Servlet)1 FilterInfo (org.apache.felix.http.base.internal.runtime.FilterInfo)1 ListenerInfo (org.apache.felix.http.base.internal.runtime.ListenerInfo)1 PreprocessorInfo (org.apache.felix.http.base.internal.runtime.PreprocessorInfo)1 ResourceInfo (org.apache.felix.http.base.internal.runtime.ResourceInfo)1