Derek Baum created FELIX-5319:
---------------------------------

             Summary: HttpServiceRuntime provides incorrect info for service 
that is both Servlet and Resource
                 Key: FELIX-5319
                 URL: https://issues.apache.org/jira/browse/FELIX-5319
             Project: Felix
          Issue Type: Bug
          Components: HTTP Service
    Affects Versions: http.jetty-3.2.2
            Reporter: Derek Baum
            Priority: Minor


I have a servlet defined as follows:
Note: it defines _both_ servlet and resource properties.

@Component(property = {
                HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_NAME + "=Hello 
World",
                HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_PATTERN + 
"=/hello/sayHello",
        HttpWhiteboardConstants.HTTP_WHITEBOARD_RESOURCE_PATTERN + 
"=/hello/static/*",
        HttpWhiteboardConstants.HTTP_WHITEBOARD_RESOURCE_PREFIX + "=/static"
        })
public class HelloWorldServlet extends HttpServlet implements Servlet {
}


I am using the HttpServiceRuntime to discover servlet info, but this servlet 
does not appear.

@Reference
HttpServiceRuntime httpRuntime;

RuntimeDTO runtimeDTO = httpRuntime.getRuntimeDTO();

for (ServletContextDTO servletContextDTO : runtimeDTO.servletContextDTOs) {
        ServletDTO[] servletDTOs = servletContextDTO.servletDTOs;
    // servletDTOs.length == 0
}

The equivalent code for ResourceDTO _does_ find a ResourceDTO for this servlet, 
but it contains servlet, rather than resource info:

resourceDTO.patterns = [/hello/sayHello]
resourceDTO.prefix = null


If I remove this resource property from the servlet, then the above code finds 
the servlet, as expected:
HttpWhiteboardConstants.HTTP_WHITEBOARD_RESOURCE_PATTERN + "=/hello/static/*"







--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to