You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Scott O'Bryan (JIRA)" <de...@myfaces.apache.org> on 2007/09/28 22:14:50 UTC

[jira] Created: (JSR301-5) Removal or Refactoring of HttpUtils and QueryString

Removal or Refactoring of HttpUtils and QueryString
---------------------------------------------------

                 Key: JSR301-5
                 URL: https://issues.apache.org/jira/browse/JSR301-5
             Project: MyFaces Portlet Bridge
          Issue Type: Improvement
            Reporter: Scott O'Bryan
            Priority: Minor


The Portlet Bridge has two utilitiy classes in the Impl.  These are HTTPUtils (which is used only by QueryString) and QueryString (which is used only by the PortletExternalContextImpl.  These classes have many utility methods which are currently unused and the current structure of QueryString has some performance impact on PortletExternalContextImpl.  Furthermore, QueryString and PortletExternalContextImpl's usage of it is not compatible with multiple parameters in places.

I propose turning QueryString into a Map<String, String[]> implementation (with some utility methods) whose toString() function returns the current queryString.  This would add a lot of efficiency (or at least correctness) to the PortletExternalContextImpl for several reasons:

* Areas where the PortletExternalContextImpl iterates though the parameters and appends them one at a time using PortletURL.setParameter(value), this could be changed to not use an iterator and simply PortletURL.setParameters(map);

* Areas where the PortletExternalContextImpl iterates though the parameters and appends  them one at a time to the ActionResponse.setRenderParameter(value), instead we could do use the ActionResponse.setRenderParameters(map) method.

* Areas where we get an Enumeration of keys and then execute mutliple get's for the parameter values, we can instead use the entrySet and the iteration notation in the for loop.

* Streamlines dead-code which is not currently used and should not be in the R.I. when it is released.

Furthermore, this map should be located as a package private class in the same package as the PortletExternalContextImpl in order to limit  it's visibility.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.