001: /*
002: * Copyright 2002 Sun Microsystems, Inc. All
003: * rights reserved. Use of this product is subject
004: * to license terms. Federal Acquisitions:
005: * Commercial Software -- Government Users
006: * Subject to Standard License Terms and
007: * Conditions.
008: *
009: * Sun, Sun Microsystems, the Sun logo, and Sun ONE
010: * are trademarks or registered trademarks of Sun Microsystems,
011: * Inc. in the United States and other countries.
012: */
013: package com.sun.portal.portletappengine;
014:
015: import javax.portlet.Portlet;
016: import javax.portlet.PortletException;
017: import javax.portlet.PortletContext;
018: import javax.portlet.PortalContext;
019: import javax.portlet.PortletConfig;
020: import javax.portlet.PreferencesValidator;
021:
022: import java.util.logging.Logger;
023:
024: import com.sun.portal.portletcontainercommon.descriptor.PortletAppDescriptor;
025:
026: /**
027: * The lifecycle manager maintains the life cycle of portlets and
028: * other portlet container objects running inside the portlet application
029: * engine. <code>LifecycleManager</code> is a interface that is used by the
030: * <code>PortletAppEngineServlet</code>.
031: **/
032: public interface LifecycleManager {
033:
034: //Prefixes for the name using in the servlet context listeners
035: public static final String LIFECYCLE_MANAGER_PREFIX = "lifecycle_manager";
036:
037: /**
038: * Gets the Portlet App Descriptor object.
039: * <P>
040: * The <code>PortletAppDescriptor</code> contains the Portlet configuration
041: * information defined in the portlet desployment descriptor,that is,
042: * the portlet.xml file.
043: * <P>
044: * The <code>PortletAppDescriptor</code> stores all the descriptors associated
045: * with Portlet Applications. The descriptors include:
046: * <P>
047: * <UL>
048: * <LI>PortletsDescriptor</LI>
049: * <LI>PortletPreferencesDescriptor</LI>
050: * <LI>SecurityRolesDescriptor</LI>
051: * <LI>SecurityConstraintsDescriptor</LI>
052: * </UL>
053: *
054: * @return the PortletAppDescriptor object
055: **/
056: public PortletAppDescriptor getDeploymentDescriptor();
057:
058: /**
059: * Returns the portlet of the specified portletName.
060: * <P>
061: * @param portletName The portlet name
062: * @return javax.portlet.Portlet a portlet object.
063: * @exception javax.portlet.ProletException if an error occurs in
064: * getting the portlet object, or when instantiating the portlet
065: * object.
066: **/
067: public Portlet getPortlet(String portletName)
068: throws PortletException;
069:
070: /**
071: * Removes the portlet of the specified portletName from the
072: * lifecycle manager.
073: *
074: * <P>
075: * @param portletName The portlet name
076: **/
077: public void removePortlet(String portletName);
078:
079: /**
080: * Returns the portlet config of the specified portletName.
081: * <P>
082: * @param portletName The portlet name
083: * @return javax.portlet.PortletConfig a portlet config
084: * object. Returns null if not found.
085: **/
086: public PortletConfig getPortletConfig(String portletName);
087:
088: /**
089: * Returns the preferences validator if it is defined in the
090: * descriptor.
091: * <P>
092: * @param portletName The portlet name
093: * @return javax.portlet.PreferencesValidator portlet validator
094: * object. Returns null if not found.
095: **/
096: public PreferencesValidator getPreferencesValidator(
097: String portletName);
098:
099: /**
100: * Removes the portlet config of the specified portletName from the
101: * lifecycle manager.
102: *
103: * <P>
104: * @param portletName The portlet name
105: **/
106: public void removePortletConfig(String portletName);
107:
108: /**
109: * Returns the PortletContext object.
110: * <P>
111: * @return A javax.portlet.PortletContext object, used by the caller
112: * to interact with its portlet application.
113: **/
114: public PortletContext getPortletContext();
115:
116: /**
117: * Returns the PortalContext object.
118: * <P>
119: * @return A javax.portlet.PortalContext object, used by the caller
120: * to query for portal information.
121: **/
122: public PortalContext getPortalContext();
123:
124: /**
125: * Returns the Logger to log messages.
126: * <P>
127: * @return A Logger object
128: * @see com.sun.portal.common.logging.Logger
129: **/
130: public Logger getLogger();
131:
132: }
|