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.