Wicket
  1. Wicket
  2. WICKET-647 New Wicket Portlet support
  3. WICKET-656

New Wicket Portlet support: adding portlet support with a new WicketPortlet and support classes

    Details

    • Type: Sub-task Sub-task
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.3.0-beta2, 1.3.0-beta3
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None

      Description

      The "real" thing: a new WicketPortlet, WicketPortletFilter and supporting classes to allow Wicket applications to run (unmodified) as portlets.
      This brings in two new dependencies: portlet-api-1.0.jar and Apache Portals Bridges portals-bridges-common-1.0.2-beta1.jar

      As the Portals Bridges common dependency isn't available from ibiblio but through the (default) bridges and Jetspeed-2 remote maven-1 and maven-2 repositories at www.bluesunrise.com, I also add that one as additional repository.

      The portals-bridges-common-1.0.2-beta1.jar is needed for the PortletResourceURLFactory interface which allows creating pre-Portlet API 2.0 Portlet ResourceURLs by portals which implement it.
      Jetspeed-2.1.1-beta1, which I "released" just a few days ago unofficially now provides an implementation of this interface, so that one can be used for testing the Wicket portlet-support.
      This 2.1-1-beta1 release of Jetspeed-2 can temporarily be downloaded from http://people.apache.org/~ate until the formal release Jetspeed-2.1.1 which we've planned within one or two weeks from now.

      Note also: this Wicket portlet support depends on request filtering during included requests, and hence will require a servlet API 2.4 supporting container!

        Activity

        Hide
        Ate Douma added a comment -

        The current implementation is capable of running all the Wicket Examples except for the frames and the prototype example.
        The frames example simple can never be run as a portlet and prototype ajax support isn't on my list (right now).
        Additionally, the WicketPortlet is now also complete enough to develop full blown Wicket based portlets, so for this initial step I consider it functional complete!

        Show
        Ate Douma added a comment - The current implementation is capable of running all the Wicket Examples except for the frames and the prototype example. The frames example simple can never be run as a portlet and prototype ajax support isn't on my list (right now). Additionally, the WicketPortlet is now also complete enough to develop full blown Wicket based portlets, so for this initial step I consider it functional complete!
        Hide
        Ate Douma added a comment -

        I've much expanded WicketPortlet beyond plain bridging to Wicket: it now has many more feature usable for full blown native portlet based Wicket applications.
        A lot of the changes are based on similar features I already provided in the past for the StrutsPortlet bridge:

        • support for portletModes and default pages/root paths for each
        • refactored most of the main request processing in small protected methods so they can easily be extended
        • wicket url portlet parameter name dynamically customizable (checkout the new WicketExamplesMenuApplication I'll commit shortly)
        Show
        Ate Douma added a comment - I've much expanded WicketPortlet beyond plain bridging to Wicket: it now has many more feature usable for full blown native portlet based Wicket applications. A lot of the changes are based on similar features I already provided in the past for the StrutsPortlet bridge: support for portletModes and default pages/root paths for each refactored most of the main request processing in small protected methods so they can easily be extended wicket url portlet parameter name dynamically customizable (checkout the new WicketExamplesMenuApplication I'll commit shortly)
        Hide
        Ate Douma added a comment -

        I've written a new WicketExamplesMenuApplication (not yet committed) which only can/may be access from within a Portlet context.
        To prevent access to such applications directly from a Servlet context (otherwise they will crash for sure), I'm going to add a new optional WicketFilter init parameter: portletOnlyFilter (true|false).
        When this parameter is set to true, WicketFilter will ignore the request and send it off to the next possible filter in the chain.

        Show
        Ate Douma added a comment - I've written a new WicketExamplesMenuApplication (not yet committed) which only can/may be access from within a Portlet context. To prevent access to such applications directly from a Servlet context (otherwise they will crash for sure), I'm going to add a new optional WicketFilter init parameter: portletOnlyFilter (true|false). When this parameter is set to true, WicketFilter will ignore the request and send it off to the next possible filter in the chain.
        Hide
        Ate Douma added a comment -

        I'm going to refactor instantiating Wicket portlet-support entry point classes a little to make the easier extendable (like for different portals).

        Also, WicketPortlet requires two portal specific factory class implementations for the Portals Bridges ServletContextProvider and ResourceURLFactory interfaces.
        You can specify the implementation class names as:

        • portlet init parameter
        • context init parameter
        • new: through a org.apache.wicket.protocol.http.portlet.WicketPortlet.properties file on the classpath (.e.g. in the WicketPortlet package)

        This last enhancement supporting WicketPortlet.properties (which for instance can be provided by the portal itself from its shared classpath) makes it possible to keep all portal specific configurations out of an wicket portlet based application (e.g. wicket-examples).

        Show
        Ate Douma added a comment - I'm going to refactor instantiating Wicket portlet-support entry point classes a little to make the easier extendable (like for different portals). Also, WicketPortlet requires two portal specific factory class implementations for the Portals Bridges ServletContextProvider and ResourceURLFactory interfaces. You can specify the implementation class names as: portlet init parameter context init parameter new: through a org.apache.wicket.protocol.http.portlet.WicketPortlet.properties file on the classpath (.e.g. in the WicketPortlet package) This last enhancement supporting WicketPortlet.properties (which for instance can be provided by the portal itself from its shared classpath) makes it possible to keep all portal specific configurations out of an wicket portlet based application (e.g. wicket-examples).
        Hide
        Ate Douma added a comment - - edited

        Switching to a new 1.3.0-beta3-portlet-support branch.
        As with WICKET-660, WicketPortletFilter already was merged back into WicketFilter and WicketPortletFilter was dropped again. I've adjusted this issue summary accordingly.

        Also, the Portals Bridges common dependency will be upgraded to release version 1.0.3 which now is available from ibiblio too and there is no need anymore to configure additional remote repositories like bluesunrise.

        Show
        Ate Douma added a comment - - edited Switching to a new 1.3.0-beta3-portlet-support branch. As with WICKET-660 , WicketPortletFilter already was merged back into WicketFilter and WicketPortletFilter was dropped again. I've adjusted this issue summary accordingly. Also, the Portals Bridges common dependency will be upgraded to release version 1.0.3 which now is available from ibiblio too and there is no need anymore to configure additional remote repositories like bluesunrise.
        Hide
        Ate Douma added a comment -

        Initial portlet support committed.
        As this most certainly will need further enhancements and refinements, I'm leaving this issue open for now

        Show
        Ate Douma added a comment - Initial portlet support committed. As this most certainly will need further enhancements and refinements, I'm leaving this issue open for now

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development