Wicket
  1. Wicket
  2. WICKET-983

Merge the portlet support branch into the trunk

    Details

    • Type: New Feature New Feature
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 1.3.0-beta4
    • Fix Version/s: 1.3.0-beta4
    • Component/s: wicket
    • Labels:
      None

      Description

      I will provide easy to review patches for all the core wicket changes required for merging the wicket-1.3.0-beta3-portlet-support branch back into trunk.

      Note: for efficiency reasons, I'll provide patches against the -beta3 release for now. When the merge plan is accepted I'll have to synchronize again with the latest trunk changes since the -beta3 release of course,
      but doing so already for just the review patches is going to delay more than I think is needed right now.

      As also indicated by Martijn Dashorst, the target for the merge is before the -beta4 cutoff as we hope to go to RC mode after that.

        Activity

        Ate Douma created issue -
        Hide
        Ate Douma added a comment -

        After creating a single complete patch file for all the changes I made to the wicket-1.3.0-beta3-portlet-support branch, I started out trying to split off small patches for easy review of the important changes to the wicket core.
        But I found out this is almost impossible to do as several different type of changes affect the same files/classes and breaking up my changes would take me again at least several days.

        As I've already described all the changes I made (and why) in separate subtasks of the main WICKET-647 issue, I think a more realistic solution is that I try to shortly summarize those changes and provide links to the related subtasks for both further explanation as well as the commit history of the changes.

        I think the only way to properly review all the changes, it is best to apply them to a wicket-1.3.0-beta3 release (head) checkout.
        For that purpose, I'm attaching a single full patch file.
        After applying this in Eclipse, the changes can be easily be reviewed from the Team Synchronizing perspective.

        Show
        Ate Douma added a comment - After creating a single complete patch file for all the changes I made to the wicket-1.3.0-beta3-portlet-support branch, I started out trying to split off small patches for easy review of the important changes to the wicket core. But I found out this is almost impossible to do as several different type of changes affect the same files/classes and breaking up my changes would take me again at least several days. As I've already described all the changes I made (and why) in separate subtasks of the main WICKET-647 issue, I think a more realistic solution is that I try to shortly summarize those changes and provide links to the related subtasks for both further explanation as well as the commit history of the changes. I think the only way to properly review all the changes, it is best to apply them to a wicket-1.3.0-beta3 release (head) checkout. For that purpose, I'm attaching a single full patch file. After applying this in Eclipse, the changes can be easily be reviewed from the Team Synchronizing perspective.
        Ate Douma made changes -
        Field Original Value New Value
        Attachment wicket-1.3.0-beta3-portlet-support.patch [ 12366048 ]
        Hide
        Ate Douma added a comment -

        Fixes needed for Wicket code and/or behavior which is invalid or misbehaving in a portlet environment:

        WICKET-649: fix appending query parameters

        a) Using "&" (or "&" for adding a new parameter without checking if there is no query string yet: in that case the new parameter needs to be added using "?"
        See: https://issues.apache.org/jira/browse/WICKET-649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
        and: https://issues.apache.org/jira/browse/WICKET-649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#action_12526944

        b) AbstractAjaxBehavior.getCallbackUrl(boolean onlyTargetActivePage) appends "wicket:ignoreIfNotActive=true" to an already generated portlet url.
        See: https://issues.apache.org/jira/browse/WICKET-649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#action_12526813

        c) wicket-ajax.js Wicket.Ajax.Request.get(path) calls which have query parameters appended to the path
        See: https://issues.apache.org/jira/browse/WICKET-649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#action_12526925
        Note: this fix should be reviewed properly. I don't think there are any side-effects, but changing a GET to a POST behind the scenes is kinda major.

        d) IOnChangeListener components with wantOnSelectionChangedNotifications()==true
        See: https://issues.apache.org/jira/browse/WICKET-649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#action_12526935
        Note: outstanding unresolved issue: how to handle this for components not part of a form (currently changing window.location.href)

        WICKET-650: properly namespacing component markupId
        with multiple portlets on one html page, component markup Id needs to be portlet namespaced
        See: https://issues.apache.org/jira/browse/WICKET-650?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#action_12504782 (from initial branch, same for the latest though)

        WICKET-651: handling HeaderResponse in a portlet environment by extending IHeaderResponse
        See: https://issues.apache.org/jira/browse/WICKET-651?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

        WICKET-657: upgrading wicket-examples to require servlet api 2.4
        See: https://issues.apache.org/jira/browse/WICKET-657?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#action_12527681
        Portlet requests are dispatched to the underlying web application so to have WicketFilter "see" these dispatcher include calls
        it needs the servlet api 2.4+ filter-mapping/dispatcher configuration feature.

        WICKET-924: non-relative urls in Ajax.Request redirect callback handling
        See: https://issues.apache.org/jira/browse/WICKET-924?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
        and: http://svn.apache.org/viewvc?view=rev&revision=574940 (a bugfix for the above initial solution which I didn't properly tag in the commit message)

        WICKET-926: recognizing popup/detached pages urlFor calls
        See: https://issues.apache.org/jira/browse/WICKET-926?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
        Note: this one I consider myself somehat of a hack, so I'm all ears to hear a better, cleaner solution!

        That is about it.
        Of course there are more changes, but those are related to handle the differences between the servlet and portlet environments.
        I've isolated these functional changes from the servlet environment through the new class RequestContext.isPortletRequest().
        If false, the original servlet specific code is processed, otherwise (possibly) the portlet specific code.

        Show
        Ate Douma added a comment - Fixes needed for Wicket code and/or behavior which is invalid or misbehaving in a portlet environment: WICKET-649 : fix appending query parameters a) Using "&" (or "&" for adding a new parameter without checking if there is no query string yet: in that case the new parameter needs to be added using "?" See: https://issues.apache.org/jira/browse/WICKET-649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel and: https://issues.apache.org/jira/browse/WICKET-649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#action_12526944 b) AbstractAjaxBehavior.getCallbackUrl(boolean onlyTargetActivePage) appends "wicket:ignoreIfNotActive=true" to an already generated portlet url. See: https://issues.apache.org/jira/browse/WICKET-649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#action_12526813 c) wicket-ajax.js Wicket.Ajax.Request.get(path) calls which have query parameters appended to the path See: https://issues.apache.org/jira/browse/WICKET-649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#action_12526925 Note: this fix should be reviewed properly. I don't think there are any side-effects, but changing a GET to a POST behind the scenes is kinda major. d) IOnChangeListener components with wantOnSelectionChangedNotifications()==true See: https://issues.apache.org/jira/browse/WICKET-649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#action_12526935 Note: outstanding unresolved issue: how to handle this for components not part of a form (currently changing window.location.href) WICKET-650 : properly namespacing component markupId with multiple portlets on one html page, component markup Id needs to be portlet namespaced See: https://issues.apache.org/jira/browse/WICKET-650?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#action_12504782 (from initial branch, same for the latest though) WICKET-651 : handling HeaderResponse in a portlet environment by extending IHeaderResponse See: https://issues.apache.org/jira/browse/WICKET-651?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel WICKET-657 : upgrading wicket-examples to require servlet api 2.4 See: https://issues.apache.org/jira/browse/WICKET-657?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#action_12527681 Portlet requests are dispatched to the underlying web application so to have WicketFilter "see" these dispatcher include calls it needs the servlet api 2.4+ filter-mapping/dispatcher configuration feature. WICKET-924 : non-relative urls in Ajax.Request redirect callback handling See: https://issues.apache.org/jira/browse/WICKET-924?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel and: http://svn.apache.org/viewvc?view=rev&revision=574940 (a bugfix for the above initial solution which I didn't properly tag in the commit message) WICKET-926 : recognizing popup/detached pages urlFor calls See: https://issues.apache.org/jira/browse/WICKET-926?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel Note: this one I consider myself somehat of a hack, so I'm all ears to hear a better, cleaner solution! That is about it. Of course there are more changes, but those are related to handle the differences between the servlet and portlet environments. I've isolated these functional changes from the servlet environment through the new class RequestContext.isPortletRequest(). If false, the original servlet specific code is processed, otherwise (possibly) the portlet specific code.
        Hide
        Ate Douma added a comment -

        Attaching wicket-1.3.0-beta3-portlet-support.patch2 which contains all the latest changes and fixes for the 1.3.0-beta3-portlet-support branch

        Show
        Ate Douma added a comment - Attaching wicket-1.3.0-beta3-portlet-support.patch2 which contains all the latest changes and fixes for the 1.3.0-beta3-portlet-support branch
        Ate Douma made changes -
        Hide
        Ate Douma added a comment -

        Attaching portlet-support patch for trunk r577912

        Show
        Ate Douma added a comment - Attaching portlet-support patch for trunk r577912
        Ate Douma made changes -
        Attachment trunk-r577912-portlet-support.patch [ 12366369 ]
        Hide
        Ate Douma added a comment -

        Portlet support merged to trunk as voted upon and accepted on the dev list.
        See: http://www.nabble.com/-RESULTS---VOTE--WICKET-983%3A-Merging-portlet-support-tf4513712.html

        Show
        Ate Douma added a comment - Portlet support merged to trunk as voted upon and accepted on the dev list. See: http://www.nabble.com/-RESULTS---VOTE--WICKET-983%3A-Merging-portlet-support-tf4513712.html
        Ate Douma made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Martin Grigorov made changes -
        Component/s wicket-portlet [ 12311803 ]

          People

          • Assignee:
            Ate Douma
            Reporter:
            Ate Douma
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development