Jetspeed currently provides query string parameters to all portlets on the page requested.
When a portlet already has a request parameter with the same name, the values are provided as an array where the query string parameters take precedence.
Example: with a query string parameter color=red and portlet parameter color=blue, the portlet will receive color=[red,blue].
Although the JSR 168 specs (PLT.11) doesn't make it very explicit this shouldn't be allowed (and the TCK definitely doesn't validate it),
the portlet 1.0 API javadoc for PortletRequest.getParameter(String) is explicit on this: "Only parameters targeted to the current portlet are accessible."
But, existing installations of Jetspeed-2 might already depend on this "feature".
I won't simply "fix" this by making Jetspeed-2 strict to the specs, but instead make this feature optional/configurable although by default it should be specs compliant.
The solution will allow for three possible usages:
a) strict - no query string parameters will be visible to portlets (default)
b) portlet scoped parameters take precedence (like color=[blue,red] from the example above)
c) query string parameters take precedence (like color=[red,blue] from the example above which is the current implementation)