I added more dispatcher tests to the TCK. Most of them are implemented and execute successfully on Pluto. The ones that don't work are concentrated in two areas:
1) handling of query parameter strings specified when the request dispatcher is obtained. Example: PortletRequestDispatcher rd = getPortletContext ().getRequestDispatcher ("/WEB-INF/jsp/view.jsp?qparm1=Val1&qparm1=Val2&qparm2=Val3"); The JSR 286 spec states that the parameters from the query parameters string be integrated into the portlet render parameters visible within the servlet for the duration of the forward/include. This doesn't work on Pluto. The query parameters are available from the servlet request object, but not from the portlet request object. 2) The request attribute values are not being set properly. The spec states: ===== "The following request attributes must be set: javax.servlet.forward.request_uri javax.servlet.forward.context_path javax.servlet.forward.servlet_path javax.servlet.forward.path_info javax.servlet.forward.query_string The values of these attributes must be equal to the return values of the HttpServletRequest methods getRequestURI, getContextPath, getServletPath, getPathInfo, getQueryString respectively, invoked on the request object passed to the first servlet object in the forward call chain" ===== The spec also has a corresponding statement about the "javax.servlet.forward..." attributes. However, the spec doesn't really state which request the attributes are to be set on - the portlet request or the servlet request. My take is that the attributes need to be set on both of the request objects in order to maintain a correspondence between the portlet request and the servlet request. As it turns out, on Pluto, these attributes are only set on the servlet request. I think this is an error. ----- I am now nearly finished with the generated dispatcher tests. I just want to add a few more: * test if multiple includes works * Check how attributes / parameters are handled in the case of multi-level includes, in other words, when an included servlet includes/forwards to another servlet. Another point: After adding this batch of tests, I started noticing a little flakiness in the test driver. Sometimes the HtmlUnitDriver I am using seems to get into a state where it can't locate any elements on the web page anymore. When that occurs, there are lots of errors of the sort "... cannot find link ...". This can occur at the beginning, in the middle, or at the end of a run - I haven't yet noticed a pattern. If you immediately retry the exact same run, it usually works. On the chance that it may have to do with memory, I put a statement into the driver POM to increase the memory available to the tester. After doing so, I have yet to see the problem ... maybe it's fixed. We now have 3875 test cases, of which 2002 succeed. Mit freundlichen Grüßen, / Kind regards, Scott Nicklous WebSphere Portal Standardization Lead & Technology Consultant Specification Lead, JSR 362 Portlet Specification 3.0 IBM Software Group, Application Integration Middleware IBM Deutschland Research & Development GmbH / Vorsitzender des Aufsichtsrats: Martina Koederitz / Geschäftsführung: Dirk Wittkopp Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart, HRB 243294