The search for the Easter portlet – hiding portlets in ADF Faces Web Applications using WebCenter Framework

Yesterday I did a presentation on Oracle WebCenter and the concept of UI-SOA. Part of the talk were a great number of quite complex demonstrations, to illustrate the key concepts in WebCenter and especially the mechanism of embedding portlets in ordinary ADF Faces Web Applications. These portlets can be fully synchronized with the page they are embedded in, receiving input from the page, providing output to the page and participating in Partial Page Rendering (AJAX) cycles just like any other component in the page.

One of the demo applications I showed the audience contained the page shown below. It contains a portlet. But where is it?

Your Easter challenge: find the portlet in this page!

The search for the Easter portlet - hiding portlets in ADF Faces Web Applications using WebCenter Framework easterportlet

Well, it is not easy to see – and that’s exactly what makes it so interesting, this ability to merge portlets into ADF Faces Web Applications. When I add the header to the portlet, it all becomes clear:

The search for the Easter portlet - hiding portlets in ADF Faces Web Applications using WebCenter Framework easterportletwithheader

The CountrySelector Portlet is published to the WebCenter Portlet Container that makes it available through a WSRP Portlet Producer. Embedding it in the page is as easy and dragging and dropping it from the Portlet Component Palette and wiring its input parameters. Note: if we navigate to another customer living in another country, the CountrySelector Portlet is synchronized – based on the country code that is provided through one of the public parameters of the portlet. When the user selects a different country in the Country Selector, the country code is passed to a page element bound to an Attribute on the underlying ADF DataControl iterator.

The architecture for this application-with-portlet:

The search for the Easter portlet - hiding portlets in ADF Faces Web Applications using WebCenter Framework easterportletarch

When the Portlet is updated and a new version is deployed to the WebCenter instance, reloading the CustomerAdministration WebApplication will automatically include the revised Portlet, with possibly a richer look & feel:

The search for the Easter portlet - hiding portlets in ADF Faces Web Applications using WebCenter Framework easterportletadvanced