001: /******************************************************************************
002: * JBoss, a division of Red Hat *
003: * Copyright 2006, Red Hat Middleware, LLC, and individual *
004: * contributors as indicated by the @authors tag. See the *
005: * copyright.txt in the distribution for a full listing of *
006: * individual contributors. *
007: * *
008: * This is free software; you can redistribute it and/or modify it *
009: * under the terms of the GNU Lesser General Public License as *
010: * published by the Free Software Foundation; either version 2.1 of *
011: * the License, or (at your option) any later version. *
012: * *
013: * This software is distributed in the hope that it will be useful, *
014: * but WITHOUT ANY WARRANTY; without even the implied warranty of *
015: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
016: * Lesser General Public License for more details. *
017: * *
018: * You should have received a copy of the GNU Lesser General Public *
019: * License along with this software; if not, write to the Free *
020: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
021: * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
022: ******************************************************************************/package org.jboss.portal.wsrp;
023:
024: import org.jboss.portal.registration.RegistrationManager;
025: import org.jboss.portal.wsrp.core.CookieProtocol;
026: import org.jboss.portal.wsrp.core.WSRP_v1_Markup_PortType;
027: import org.jboss.portal.wsrp.core.WSRP_v1_PortletManagement_PortType;
028: import org.jboss.portal.wsrp.core.WSRP_v1_Registration_PortType;
029: import org.jboss.portal.wsrp.core.WSRP_v1_ServiceDescription_PortType;
030: import org.jboss.portal.wsrp.producer.config.ProducerConfiguration;
031: import org.jboss.portal.wsrp.producer.config.ProducerRegistrationRequirements;
032:
033: /**
034: * @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
035: * @version $Revision: 8784 $
036: * @since 2.4
037: */
038: public interface WSRPProducer extends
039: WSRP_v1_ServiceDescription_PortType, WSRP_v1_Markup_PortType,
040: WSRP_v1_Registration_PortType,
041: WSRP_v1_PortletManagement_PortType {
042: /** The default session expiration time in mili seconds. */
043: int DEFAULT_SESSION_EXPIRATION_TIME = 300000;
044:
045: /** The value used to specify that a session will never expire. */
046: int INFINITE_SESSION_EXPIRATION_TIME = -1;
047:
048: /**
049: * Indicates whether or not the Producer requires the Consumer to assist with cookie support of the HTTP protocol.
050: * Supported values and semantics: <ul> <li>{@link org.jboss.portal.wsrp.core.CookieProtocol#none}: The Producer does
051: * not need the Consumer to ever invoke {@link org.jboss.portal.wsrp.core.WSRP_v1_Markup_PortType#initCookie(org.jboss.portal.wsrp.core.InitCookie)}.</li>
052: * <li>{@link org.jboss.portal.wsrp.core.CookieProtocol#perUser}: The Consumer MUST invoke {@link
053: * org.jboss.portal.wsrp.core.WSRP_v1_Markup_PortType#initCookie(org.jboss.portal.wsrp.core.InitCookie)} once per
054: * user of the Consumer, and associate any returned cookies with subsequent invocations on behalf of that user.</li>
055: * <li>{@link org.jboss.portal.wsrp.core.CookieProtocol#perGroup}: The Consumer MUST invoke {@link
056: * org.jboss.portal.wsrp.core.WSRP_v1_Markup_PortType#initCookie(org.jboss.portal.wsrp.core.InitCookie)} once per
057: * unique groupID from the PortletDescriptions for the Portlets it is aggregating on a page for each user of the
058: * Consumer, and associate any returned cookies with subsequent invocations on behalf of that user targeting Portlets
059: * with identical groupIDs.</li> </ul>
060: *
061: * @return the level of cookie support required from the Consumer
062: */
063: CookieProtocol getRequiresInitCookie();
064:
065: /**
066: * Sets the level of cookie support required by the Consumer.
067: *
068: * @param requiresInitCookie either {@link org.jboss.portal.wsrp.core.CookieProtocol#none}, {@link
069: * org.jboss.portal.wsrp.core.CookieProtocol#perUser} or {@link
070: * org.jboss.portal.wsrp.core.CookieProtocol#perGroup}
071: */
072: void setRequiresInitCookie(CookieProtocol requiresInitCookie);
073:
074: /**
075: * Maximum number of seconds between invocations referencing a session ID before this Producer will schedule
076: * releasing the related resources. {@link #INFINITE_SESSION_EXPIRATION_TIME} indicates that the sessionID will never
077: * expire.
078: *
079: * @return the expiration time (in seconds) of session associated resources
080: */
081: int getSessionExpirationTime();
082:
083: /**
084: * Sets the expiration time (in seconds) of session associated resources.
085: *
086: * @param sessionExpirationTime the maximum number of seconds between invocations referencing a session ID before
087: * this Producer will schedule releasing the related resources. If {@link
088: * #INFINITE_SESSION_EXPIRATION_TIME} is passed, then the session will never expire.
089: */
090: void setSessionExpirationTime(int sessionExpirationTime);
091:
092: /**
093: * @return
094: * @since 2.6
095: */
096: ProducerRegistrationRequirements getProducerRegistrationRequirements();
097:
098: /**
099: * @return
100: * @since 2.6
101: */
102: RegistrationManager getRegistrationManager();
103:
104: /**
105: * @return
106: * @since 2.6
107: */
108: ProducerConfiguration getProducerConfiguration();
109:
110: /**
111: * @param producerConfiguration
112: * @since 2.6
113: */
114: void setProducerConfiguration(
115: ProducerConfiguration producerConfiguration);
116: }
|