test_class.file: nano/src/test/java/cloud/piranha/nano/NanoPiranhaTest.java
test_class.identifier: NanoPiranhaTest
test_case.body: @Test
      void testService6() throws Exception {
          NanoPiranha piranha = new NanoPiranhaBuilder()
                  .directoryResource("src/test/wicket")
                  .filter("WicketFilter", new WicketFilter())
                  .filterInitParam("WicketFilter", "applicationClassName", "cloud.piranha.nano.WicketApplication")
                  .filterInitParam("WicketFilter", "filterMappingUrlPattern", "/*")
                  .filterInitParam("WicketFilter", "wicket.configuration", "deployment")
                  .build();
  
          NanoRequest request = new NanoRequestBuilder()
                  .servletPath("/")
                  .build();
  
          ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
          NanoResponse response = new NanoResponseBuilder()
                  .outputStream(outputStream)
                  .build();
  
          piranha.service(request, response);
          assertTrue(outputStream.toString().contains("Hello Wicket"));
      }
test_case.class_method_signature: NanoPiranhaTest.testService6()
test_case.full_signature: @Test void testService6()
test_case.identifier: testService6
test_case.invocations: build filterInitParam filterInitParam filterInitParam filter directoryResource build servletPath build outputStream service assertTrue contains toString
test_case.modifiers: @Test
test_case.parameters: ()
test_case.return: void
test_case.signature: void testService6()
focal_class.declarator: filters
focal_class.modifier: private final
focal_class.original_string: private final LinkedList<Filter> filters;
focal_class.type: LinkedList<Filter>
focal_class.var_name: filters
focal_class.declarator: servlet
focal_class.modifier: private
focal_class.original_string: private Servlet servlet;
focal_class.type: Servlet
focal_class.var_name: servlet
focal_class.declarator: webApplication
focal_class.modifier: private
focal_class.original_string: private WebApplication webApplication;
focal_class.type: WebApplication
focal_class.var_name: webApplication
focal_class.file: nano/src/main/java/cloud/piranha/nano/NanoPiranha.java
focal_class.identifier: NanoPiranha
focal_class.interfaces: implements Piranha
focal_class.class_method_signature: NanoPiranha.NanoPiranha()
focal_class.full_signature: public  NanoPiranha()
focal_class.identifier: NanoPiranha
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  NanoPiranha()
focal_class.class_method_signature: NanoPiranha.addFilter(Filter filter)
focal_class.full_signature: public void addFilter(Filter filter)
focal_class.identifier: addFilter
focal_class.modifiers: public
focal_class.parameters: (Filter filter)
focal_class.return: void
focal_class.signature: void addFilter(Filter filter)
focal_class.class_method_signature: NanoPiranha.getFilters()
focal_class.full_signature: public List<Filter> getFilters()
focal_class.identifier: getFilters
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<Filter>
focal_class.signature: List<Filter> getFilters()
focal_class.class_method_signature: NanoPiranha.getServlet()
focal_class.full_signature: public Servlet getServlet()
focal_class.identifier: getServlet
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Servlet
focal_class.signature: Servlet getServlet()
focal_class.class_method_signature: NanoPiranha.getVersion()
focal_class.full_signature: @Override public String getVersion()
focal_class.identifier: getVersion
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getVersion()
focal_class.class_method_signature: NanoPiranha.getWebApplication()
focal_class.full_signature: public WebApplication getWebApplication()
focal_class.identifier: getWebApplication
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: WebApplication
focal_class.signature: WebApplication getWebApplication()
focal_class.class_method_signature: NanoPiranha.service(ServletRequest servletRequest, ServletResponse servletResponse)
focal_class.full_signature: public void service(ServletRequest servletRequest, ServletResponse servletResponse)
focal_class.identifier: service
focal_class.modifiers: public
focal_class.parameters: (ServletRequest servletRequest, ServletResponse servletResponse)
focal_class.return: void
focal_class.signature: void service(ServletRequest servletRequest, ServletResponse servletResponse)
focal_class.class_method_signature: NanoPiranha.setServlet(Servlet servlet)
focal_class.full_signature: public void setServlet(Servlet servlet)
focal_class.identifier: setServlet
focal_class.modifiers: public
focal_class.parameters: (Servlet servlet)
focal_class.return: void
focal_class.signature: void setServlet(Servlet servlet)
focal_class.class_method_signature: NanoPiranha.setWebApplication(WebApplication webApplication)
focal_class.full_signature: public void setWebApplication(WebApplication webApplication)
focal_class.identifier: setWebApplication
focal_class.modifiers: public
focal_class.parameters: (WebApplication webApplication)
focal_class.return: void
focal_class.signature: void setWebApplication(WebApplication webApplication)
focal_method.body: public void service(ServletRequest servletRequest, ServletResponse servletResponse)
              throws IOException, ServletException {
          Iterator<Filter> iterator = filters.descendingIterator();
          NanoFilterChain chain = new NanoFilterChain(servlet);
          while (iterator.hasNext()) {
              Filter filter = iterator.next();
              NanoFilterChain previousChain = chain;
              chain = new NanoFilterChain(filter, previousChain);
          }
          if (servletRequest.getServletContext() == null
                  && servletRequest instanceof NanoRequest) {
              NanoRequest nanoRequest = (NanoRequest) servletRequest;
              nanoRequest.setWebApplication(webApplication);
          }
          if (servletResponse instanceof NanoResponse) {
              NanoResponse nanoResponse = (NanoResponse) servletResponse;
              nanoResponse.setWebApplication(webApplication);
          }
          chain.doFilter(servletRequest, servletResponse);
          servletResponse.flushBuffer();
      }
focal_method.class_method_signature: NanoPiranha.service(ServletRequest servletRequest, ServletResponse servletResponse)
focal_method.full_signature: public void service(ServletRequest servletRequest, ServletResponse servletResponse)
focal_method.identifier: service
focal_method.invocations: descendingIterator hasNext next getServletContext setWebApplication setWebApplication doFilter flushBuffer
focal_method.modifiers: public
focal_method.parameters: (ServletRequest servletRequest, ServletResponse servletResponse)
focal_method.return: void
focal_method.signature: void service(ServletRequest servletRequest, ServletResponse servletResponse)