GridSphere Portlet Container API

The GridSphere portlet container is responsible for the dynamic management of {@link org.gridlab.gridsphere.portletcontainer.PortletWebApplication}s. A portlet web application is a collection of portlets packaged as a WAR file. Portlets are defined by a portlet descriptor file, `web.xml` located in the WEB-INF directory of the portlet web application. The porlet descriptor file defines one or more application portlets defined in {@link org.gridlab.gridsphere.portletcontainer.ApplicationPortlet} each of which may have one or more concrete portlet definitions as defined in {@link org.gridlab.gridsphere.portletcontainer.ConcretePortlet}. Both the application portlet and concrete portlet have configuration settings that are defined in the {@link org.gridlab.gridsphere.portletcontainer.ApplicationPortletConfig} and the {@link org.gridlab.gridsphere.portletcontainer.ConcretePortletConfig} respectively.

All portlets including the portlet web applications are registered with the {@link org.gridlab.gridsphere.portletcontainer.PortletRegistry}, a singleton used by other components to request information about portlets and obtain a {@link org.gridlab.gridsphere.portletcontainer.impl.SportletDispatcher}, which is used to invoke a lifecyle method on a chosen portlet. To make portlet invocation easy, the {@link org.gridlab.gridsphere.portletcontainer.PortletInvoker} offers static methods that are essentially wrappers around the `PortletDispatcher`.

The GridSphere portlet container is implemented as the master {@link org.gridlab.gridsphere.servlets.GridSphereServlet} servlet which receives all requests to the portal and is responsible for generating a {@link org.gridlab.gridsphere.portletcontainer.GridSphereEvent} which is passed to the layout components for rendering the portal presentation.

The {@link org.gridlab.gridsphere.portletcontainer.PortletDataManager} and {@link org.gridlab.gridsphere.portletcontainer.PortletMessageManager} are singletons used to manage persistent {@link org.gridlab.gridsphere.portlet.PortletData} and {@link org.gridlab.gridsphere.portlet.PortletMessage} information respectively.