You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@portals.apache.org by dj...@apache.org on 2009/05/08 00:48:05 UTC
svn commit: r772799 [4/6] - in /portals/portlet-spec/portlet-api-1.0: ./
src/main/java/javax/portlet/
Modified: portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletResponse.java
URL: http://svn.apache.org/viewvc/portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletResponse.java?rev=772799&r1=772798&r2=772799&view=diff
==============================================================================
--- portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletResponse.java (original)
+++ portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletResponse.java Thu May 7 22:48:03 2009
@@ -1,150 +1,113 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2003 The Apache Software Foundation. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowlegement may appear in the software itself,
- * if and wherever such third-party acknowlegements normally appear.
- *
- * 4. The names "The Jakarta Project", "Pluto", and "Apache Software
- * Foundation" must not be used to endorse or promote products derived
- * from this software without prior written permission. For written
- * permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache"
- * nor may "Apache" appear in their names without prior written
- * permission of the Apache Group.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * ====================================================================
- *
- * This source code implements specifications defined by the Java
- * Community Process. In order to remain compliant with the specification
- * DO NOT add / change / or delete method signatures!
- */
-
-package javax.portlet;
-
-
-/**
- * The <CODE>PortletResponse</CODE> defines the base interface to assist a
- * portlet in creating and sending a response to the client.
- * The portlet container uses two specialized versions of this interface
- * when invoking a portlet, <CODE>ActionResponse</CODE> and
- * <CODE>RenderResponse</CODE>. The portlet container creates these
- * objects and passes them as arguments to the portlet's <CODE>processAction</CODE>
- * and <CODE>render</CODE> methods.
- *
- * @see ActionResponse
- * @see RenderResponse
- */
-public interface PortletResponse
-{
-
-
-
- /**
- * Adds a String property to an existing key to be returned to the portal.
- * <p>
- * This method allows response properties to have multiple values.
- * <p>
- * Properties can be used by portlets to provide vendor specific
- * information to the portal.
- *
- * @param key the key of the property to be returned to the portal
- * @param value the value of the property to be returned to the portal
- *
- * @exception java.lang.IllegalArgumentException
- * if key is <code>null</code>.
- */
-
- public void addProperty(String key, String value);
-
-
- /**
- * Sets a String property to be returned to the portal.
- * <p>
- * Properties can be used by portlets to provide vendor specific
- * information to the portal.
- * <p>
- * This method resets all properties previously added with the same key.
- *
- * @param key the key of the property to be returned to the portal
- * @param value the value of the property to be returned to the portal
- *
- * @exception java.lang.IllegalArgumentException
- * if key is <code>null</code>.
- */
-
- public void setProperty(String key, String value);
-
-
- /**
- * Returns the encoded URL of the resource, like servlets,
- * JSPs, images and other static files, at the given path.
- * <p>
- * Some portal/portlet-container implementation may require
- * those URLs to contain implementation specific data encoded
- * in it. Because of that, portlets should use this method to
- * create such URLs.
- * <p>
- * The <code>encodeURL</code> method may include the session ID
- * and other portal/portlet-container specific information into the URL.
- * If encoding is not needed, it returns the URL unchanged.
- *
- * @param path
- * the URI path to the resource. This must be either
- * an absolute URL (e.g.
- * <code>http://my.co/myportal/mywebap/myfolder/myresource.gif</code>)
- * or a full path URI (e.g. <code>/myportal/mywebap/myfolder/myresource.gif</code>).
- *
- * @exception java.lang.IllegalArgumentException
- * if path doesn't have a leading slash or is not an absolute URL
- *
- * @return the encoded resource URL as string
- */
-
- public String encodeURL (String path);
-
-
-
-
-
-}
-
-
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * This source code implements specifications defined by the Java
+ * Community Process. In order to remain compliant with the specification
+ * DO NOT add / change / or delete method signatures!
+ */
+
+package javax.portlet;
+
+
+/**
+ * The <CODE>PortletResponse</CODE> defines the base interface to assist a
+ * portlet in creating and sending a response to the client.
+ * The portlet container uses two specialized versions of this interface
+ * when invoking a portlet, <CODE>ActionResponse</CODE> and
+ * <CODE>RenderResponse</CODE>. The portlet container creates these
+ * objects and passes them as arguments to the portlet's <CODE>processAction</CODE>
+ * and <CODE>render</CODE> methods.
+ *
+ * @see ActionResponse
+ * @see RenderResponse
+ */
+public interface PortletResponse
+{
+
+
+
+ /**
+ * Adds a String property to an existing key to be returned to the portal.
+ * <p>
+ * This method allows response properties to have multiple values.
+ * <p>
+ * Properties can be used by portlets to provide vendor specific
+ * information to the portal.
+ *
+ * @param key the key of the property to be returned to the portal
+ * @param value the value of the property to be returned to the portal
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if key is <code>null</code>.
+ */
+
+ public void addProperty(String key, String value);
+
+
+ /**
+ * Sets a String property to be returned to the portal.
+ * <p>
+ * Properties can be used by portlets to provide vendor specific
+ * information to the portal.
+ * <p>
+ * This method resets all properties previously added with the same key.
+ *
+ * @param key the key of the property to be returned to the portal
+ * @param value the value of the property to be returned to the portal
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if key is <code>null</code>.
+ */
+
+ public void setProperty(String key, String value);
+
+
+ /**
+ * Returns the encoded URL of the resource, like servlets,
+ * JSPs, images and other static files, at the given path.
+ * <p>
+ * Some portal/portlet-container implementation may require
+ * those URLs to contain implementation specific data encoded
+ * in it. Because of that, portlets should use this method to
+ * create such URLs.
+ * <p>
+ * The <code>encodeURL</code> method may include the session ID
+ * and other portal/portlet-container specific information into the URL.
+ * If encoding is not needed, it returns the URL unchanged.
+ *
+ * @param path
+ * the URI path to the resource. This must be either
+ * an absolute URL (e.g.
+ * <code>http://my.co/myportal/mywebap/myfolder/myresource.gif</code>)
+ * or a full path URI (e.g. <code>/myportal/mywebap/myfolder/myresource.gif</code>).
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if path doesn't have a leading slash or is not an absolute URL
+ *
+ * @return the encoded resource URL as string
+ */
+
+ public String encodeURL (String path);
+
+
+
+
+
+}
+
+
Modified: portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletSecurityException.java
URL: http://svn.apache.org/viewvc/portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletSecurityException.java?rev=772799&r1=772798&r2=772799&view=diff
==============================================================================
--- portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletSecurityException.java (original)
+++ portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletSecurityException.java Thu May 7 22:48:03 2009
@@ -1,126 +1,89 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2003 The Apache Software Foundation. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowlegement may appear in the software itself,
- * if and wherever such third-party acknowlegements normally appear.
- *
- * 4. The names "The Jakarta Project", "Pluto", and "Apache Software
- * Foundation" must not be used to endorse or promote products derived
- * from this software without prior written permission. For written
- * permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache"
- * nor may "Apache" appear in their names without prior written
- * permission of the Apache Group.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * ====================================================================
- *
- * This source code implements specifications defined by the Java
- * Community Process. In order to remain compliant with the specification
- * DO NOT add / change / or delete method signatures!
- */
-
-package javax.portlet;
-
-/**
- * A portlet should throw a <CODE>PortletSecurityException</CODE>
- * when a call fails because of security reasons.<br>
- * Additionally it can be thrown by the portal/portlet-container.
- */
-
-public class PortletSecurityException extends PortletException
-{
-
-
- private PortletSecurityException ()
- {
- }
-
- /**
- * Constructs a new security exception with the given text. The
- * portlet container may use the text write it to a log.
- *
- * @param text
- * the exception text
- */
-
- public PortletSecurityException (String text)
- {
- super (text);
- }
-
- /**
- * Constructs a new portlet security exception when the portlet needs to do
- * the following:
- * <ul>
- * <il>throw an exception
- * <li>include a message about the "root cause" that interfered
- * with its normal operation
- * <li>include a description message
- * </ul>
- *
- * @param text
- * the exception text
- * @param cause
- * the root cause
- */
-
- public PortletSecurityException (String text, Throwable cause)
- {
- super(text, cause);
- }
-
- /**
- * Constructs a new portlet security exception when the portlet needs to throw an
- * exception. The exception message is based on the localized message
- * of the underlying exception.
- *
- * @param cause
- * the root cause
- */
-
- public PortletSecurityException (Throwable cause)
- {
- super(cause);
- }
-
-
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * This source code implements specifications defined by the Java
+ * Community Process. In order to remain compliant with the specification
+ * DO NOT add / change / or delete method signatures!
+ */
+
+package javax.portlet;
+
+/**
+ * A portlet should throw a <CODE>PortletSecurityException</CODE>
+ * when a call fails because of security reasons.<br>
+ * Additionally it can be thrown by the portal/portlet-container.
+ */
+
+public class PortletSecurityException extends PortletException
+{
+
+
+ private PortletSecurityException ()
+ {
+ }
+
+ /**
+ * Constructs a new security exception with the given text. The
+ * portlet container may use the text write it to a log.
+ *
+ * @param text
+ * the exception text
+ */
+
+ public PortletSecurityException (String text)
+ {
+ super (text);
+ }
+
+ /**
+ * Constructs a new portlet security exception when the portlet needs to do
+ * the following:
+ * <ul>
+ * <il>throw an exception
+ * <li>include a message about the "root cause" that interfered
+ * with its normal operation
+ * <li>include a description message
+ * </ul>
+ *
+ * @param text
+ * the exception text
+ * @param cause
+ * the root cause
+ */
+
+ public PortletSecurityException (String text, Throwable cause)
+ {
+ super(text, cause);
+ }
+
+ /**
+ * Constructs a new portlet security exception when the portlet needs to throw an
+ * exception. The exception message is based on the localized message
+ * of the underlying exception.
+ *
+ * @param cause
+ * the root cause
+ */
+
+ public PortletSecurityException (Throwable cause)
+ {
+ super(cause);
+ }
+
+
+}
Modified: portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletSession.java
URL: http://svn.apache.org/viewvc/portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletSession.java?rev=772799&r1=772798&r2=772799&view=diff
==============================================================================
--- portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletSession.java (original)
+++ portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletSession.java Thu May 7 22:48:03 2009
@@ -1,414 +1,377 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2003 The Apache Software Foundation. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowlegement may appear in the software itself,
- * if and wherever such third-party acknowlegements normally appear.
- *
- * 4. The names "The Jakarta Project", "Pluto", and "Apache Software
- * Foundation" must not be used to endorse or promote products derived
- * from this software without prior written permission. For written
- * permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache"
- * nor may "Apache" appear in their names without prior written
- * permission of the Apache Group.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * ====================================================================
- *
- * This source code implements specifications defined by the Java
- * Community Process. In order to remain compliant with the specification
- * DO NOT add / change / or delete method signatures!
- */
-
-package javax.portlet;
-
-
-
-/**
- * The <CODE>PortletSession</CODE> interface provides a way to identify a user
- * across more than one request and to store transient information about that user.
- * <p>
- * A <code>PortletSession</code> is created per user client per portlet application.
- * <p>
- * A portlet can bind an object attribute into a <code>PortletSession</code> by name.
- * The <code>PortletSession</code> interface defines two scopes for storing objects:
- * <ul>
- * <li><code>APPLICATION_SCOPE</code>
- * <li><code>PORTLET_SCOPE</code>
- * </ul>
- * All objects stored in the session using the <code>APPLICATION_SCOPE</code>
- * must be available to all the portlets, servlets and
- * JSPs that belongs to the same portlet application and that handles a
- * request identified as being a part of the same session.
- * Objects stored in the session using the <code>PORTLET_SCOPE</code> must be
- * available to the portlet during requests for the same portlet window
- * that the objects where stored from. Attributes stored in the
- * <code>PORTLET_SCOPE</code> are not protected from other web components
- * of the portlet application. They are just conveniently namespaced.
- * <P>
- * The portlet session is based on the <code>HttpSession</code>. Therefore all
- * <code>HttpSession</code> listeners do apply to the portlet session and
- * attributes set in the portlet session are visible in the <code>HttpSession</code>
- * and vice versa.
- */
-public interface PortletSession
-{
-
-
- /**
- * This constant defines an application wide scope for the session attribute.
- * <code>APPLICATION_SCOPE</code> session attributes enable Portlets
- * within one portlet application to share data.
- * <p>
- * Portlets may need to prefix attributes set in this scope with some
- * ID, to avoid overwriting each other's attributes in the
- * case where two portlets of the same portlet definition
- * are created.
- * <p>
- * Value: <code>0x01</code>
- */
- public static final int APPLICATION_SCOPE = 0x01;
-
- /**
- * This constant defines the scope of the session attribute to be
- * private to the portlet and its included resources.
- * <p>
- * Value: <code>0x02</code>
- */
- public static final int PORTLET_SCOPE = 0x02;
-
-
-
- /**
- * Returns the object bound with the specified name in this session
- * under the <code>PORTLET_SCOPE</code>, or <code>null</code> if no
- * object is bound under the name in that scope.
- *
- * @param name a string specifying the name of the object
- *
- * @return the object with the specified name for
- * the <code>PORTLET_SCOPE</code>.
- *
- * @exception java.lang.IllegalStateException if this method is called on an
- * invalidated session.
- * @exception java.lang.IllegalArgumentException
- * if name is <code>null</code>.
- */
-
- public java.lang.Object getAttribute(java.lang.String name);
-
-
- /**
- * Returns the object bound with the specified name in this session,
- * or <code>null</code> if no object is bound under the name in the given scope.
- *
- * @param name a string specifying the name of the object
- * @param scope session scope of this attribute
- *
- * @return the object with the specified name
- *
- * @exception java.lang.IllegalStateException if this method is called on an
- * invalidated session
- * @exception java.lang.IllegalArgumentException
- * if name is <code>null</code>.
- */
-
- public java.lang.Object getAttribute(java.lang.String name,int scope);
-
-
- /**
- * Returns an <code>Enumeration</code> of String objects containing the names of
- * all the objects bound to this session under the <code>PORTLET_SCOPE</code>, or an
- * empty <code>Enumeration</code> if no attributes are available.
- *
- * @return an <code>Enumeration</code> of
- * <code>String</code> objects specifying the
- * names of all the objects bound to
- * this session, or an empty <code>Enumeration</code>
- * if no attributes are available.
- *
- * @exception java.lang.IllegalStateException if this method is called on an
- * invalidated session
- */
-
- public java.util.Enumeration getAttributeNames();
-
-
- /**
- * Returns an <code>Enumeration</code> of String objects containing the names of
- * all the objects bound to this session in the given scope, or an
- * empty <code>Enumeration</code> if no attributes are available in the
- * given scope.
- *
- * @param scope session scope of the attribute names
- *
- * @return an <code>Enumeration</code> of
- * <code>String</code> objects specifying the
- * names of all the objects bound to
- * this session, or an empty <code>Enumeration</code>
- * if no attributes are available in the given scope.
- *
- * @exception java.lang.IllegalStateException if this method is called on an
- * invalidated session
- */
-
- public java.util.Enumeration getAttributeNames(int scope);
-
- /**
- * Returns the time when this session was created, measured in
- * milliseconds since midnight January 1, 1970 GMT.
- *
- * @return a <code>long</code> specifying
- * when this session was created,
- * expressed in
- * milliseconds since 1/1/1970 GMT
- *
- * @exception java.lang.IllegalStateException if this method is called on an
- * invalidated session
- */
-
- public long getCreationTime();
-
-
- /**
- * Returns a string containing the unique identifier assigned to this session.
- *
- * @return a string specifying the identifier
- * assigned to this session
- */
-
- public java.lang.String getId();
-
-
- /**
- * Returns the last time the client sent a request associated with this session,
- * as the number of milliseconds since midnight January 1, 1970 GMT.
- *
- * <p>Actions that your portlet takes, such as getting or setting
- * a value associated with the session, do not affect the access
- * time.
- *
- * @return a <code>long</code>
- * representing the last time
- * the client sent a request associated
- * with this session, expressed in
- * milliseconds since 1/1/1970 GMT
- */
-
- public long getLastAccessedTime();
-
-
- /**
- * Returns the maximum time interval, in seconds, for which the portlet container
- * keeps this session open between client accesses. After this interval,
- * the portlet container invalidates the session. The maximum time
- * interval can be set
- * with the <code>setMaxInactiveInterval</code> method.
- * A negative time indicates the session should never timeout.
- *
- * @return an integer specifying the number of
- * seconds this session remains open
- * between client requests
- *
- * @see #setMaxInactiveInterval
- */
-
- public int getMaxInactiveInterval();
-
-
- /**
- * Invalidates this session (all scopes) and unbinds any objects bound to it.
- * <p>
- * Invalidating the portlet session will result in invalidating the underlying
- * <code>HttpSession</code>
- *
- * @exception java.lang.IllegalStateException if this method is called on a
- * session which has already been invalidated
- */
-
- public void invalidate();
-
-
-
- /**
- * Returns true if the client does not yet know about the session or
- * if the client chooses not to join the session.
- *
- * @return <code>true</code> if the
- * server has created a session,
- * but the client has not joined yet.
- *
- * @exception java.lang.IllegalStateException if this method is called on a
- * session which has already been invalidated
- *
- */
-
- public boolean isNew();
-
-
- /**
- * Removes the object bound with the specified name under
- * the <code>PORTLET_SCOPE</code> from
- * this session. If the session does not have an object
- * bound with the specified name, this method does nothing.
- *
- * @param name the name of the object to be
- * removed from this session in the
- * <code> PORTLET_SCOPE</code>.
- *
- * @exception java.lang.IllegalStateException
- * if this method is called on a
- * session which has been invalidated
- * @exception java.lang.IllegalArgumentException
- * if name is <code>null</code>.
- */
-
- public void removeAttribute(String name) ;
-
-
- /**
- * Removes the object bound with the specified name and the given scope from
- * this session. If the session does not have an object
- * bound with the specified name, this method does nothing.
- *
- * @param name the name of the object to be
- * removed from this session
- * @param scope session scope of this attribute
- *
- * @exception java.lang.IllegalStateException
- * if this method is called on a
- * session which has been invalidated
- * @exception java.lang.IllegalArgumentException
- * if name is <code>null</code>.
- */
-
- public void removeAttribute(String name, int scope) ;
-
-
- /**
- * Binds an object to this session under the <code>PORTLET_SCOPE</code>, using the name specified.
- * If an object of the same name in this scope is already bound to the session,
- * that object is replaced.
- *
- * <p>After this method has been executed, and if the new object
- * implements <code>HttpSessionBindingListener</code>,
- * the container calls
- * <code>HttpSessionBindingListener.valueBound</code>. The container then
- * notifies any <code>HttpSessionAttributeListeners</code> in the web
- * application.
- * <p>If an object was already bound to this session
- * that implements <code>HttpSessionBindingListener</code>, its
- * <code>HttpSessionBindingListener.valueUnbound</code> method is called.
- *
- * <p>If the value is <code>null</code>, this has the same effect as calling
- * <code>removeAttribute()</code>.
- *
- *
- * @param name the name to which the object is bound under
- * the <code>PORTLET_SCOPE</code>;
- * this cannot be <code>null</code>.
- * @param value the object to be bound
- *
- * @exception java.lang.IllegalStateException if this method is called on a
- * session which has been invalidated
- * @exception java.lang.IllegalArgumentException
- * if name is <code>null</code>.
- */
-
- public void setAttribute(java.lang.String name, java.lang.Object value);
-
-
- /**
- * Binds an object to this session in the given scope, using the name specified.
- * If an object of the same name in this scope is already bound to the session,
- * that object is replaced.
- *
- * <p>After this method has been executed, and if the new object
- * implements <code>HttpSessionBindingListener</code>,
- * the container calls
- * <code>HttpSessionBindingListener.valueBound</code>. The container then
- * notifies any <code>HttpSessionAttributeListeners</code> in the web
- * application.
- * <p>If an object was already bound to this session
- * that implements <code>HttpSessionBindingListener</code>, its
- * <code>HttpSessionBindingListener.valueUnbound</code> method is called.
- *
- * <p>If the value is <code>null</code>, this has the same effect as calling
- * <code>removeAttribute()</code>.
- *
- *
- * @param name the name to which the object is bound;
- * this cannot be <code>null</code>.
- * @param value the object to be bound
- * @param scope session scope of this attribute
- *
- * @exception java.lang.IllegalStateException if this method is called on a
- * session which has been invalidated
- * @exception java.lang.IllegalArgumentException
- * if name is <code>null</code>.
- */
-
- public void setAttribute(java.lang.String name, java.lang.Object value, int scope);
-
-
- /**
- * Specifies the time, in seconds, between client requests, before the
- * portlet container invalidates this session. A negative time
- * indicates the session should never timeout.
- *
- * @param interval An integer specifying the number
- * of seconds
- */
-
- public void setMaxInactiveInterval(int interval);
-
-
- /**
- * Returns the portlet application context associated with this session.
- *
- * @return the portlet application context
- */
-
- public PortletContext getPortletContext ();
-
-}
-
-
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * This source code implements specifications defined by the Java
+ * Community Process. In order to remain compliant with the specification
+ * DO NOT add / change / or delete method signatures!
+ */
+
+package javax.portlet;
+
+
+
+/**
+ * The <CODE>PortletSession</CODE> interface provides a way to identify a user
+ * across more than one request and to store transient information about that user.
+ * <p>
+ * A <code>PortletSession</code> is created per user client per portlet application.
+ * <p>
+ * A portlet can bind an object attribute into a <code>PortletSession</code> by name.
+ * The <code>PortletSession</code> interface defines two scopes for storing objects:
+ * <ul>
+ * <li><code>APPLICATION_SCOPE</code>
+ * <li><code>PORTLET_SCOPE</code>
+ * </ul>
+ * All objects stored in the session using the <code>APPLICATION_SCOPE</code>
+ * must be available to all the portlets, servlets and
+ * JSPs that belongs to the same portlet application and that handles a
+ * request identified as being a part of the same session.
+ * Objects stored in the session using the <code>PORTLET_SCOPE</code> must be
+ * available to the portlet during requests for the same portlet window
+ * that the objects where stored from. Attributes stored in the
+ * <code>PORTLET_SCOPE</code> are not protected from other web components
+ * of the portlet application. They are just conveniently namespaced.
+ * <P>
+ * The portlet session is based on the <code>HttpSession</code>. Therefore all
+ * <code>HttpSession</code> listeners do apply to the portlet session and
+ * attributes set in the portlet session are visible in the <code>HttpSession</code>
+ * and vice versa.
+ */
+public interface PortletSession
+{
+
+
+ /**
+ * This constant defines an application wide scope for the session attribute.
+ * <code>APPLICATION_SCOPE</code> session attributes enable Portlets
+ * within one portlet application to share data.
+ * <p>
+ * Portlets may need to prefix attributes set in this scope with some
+ * ID, to avoid overwriting each other's attributes in the
+ * case where two portlets of the same portlet definition
+ * are created.
+ * <p>
+ * Value: <code>0x01</code>
+ */
+ public static final int APPLICATION_SCOPE = 0x01;
+
+ /**
+ * This constant defines the scope of the session attribute to be
+ * private to the portlet and its included resources.
+ * <p>
+ * Value: <code>0x02</code>
+ */
+ public static final int PORTLET_SCOPE = 0x02;
+
+
+
+ /**
+ * Returns the object bound with the specified name in this session
+ * under the <code>PORTLET_SCOPE</code>, or <code>null</code> if no
+ * object is bound under the name in that scope.
+ *
+ * @param name a string specifying the name of the object
+ *
+ * @return the object with the specified name for
+ * the <code>PORTLET_SCOPE</code>.
+ *
+ * @exception java.lang.IllegalStateException if this method is called on an
+ * invalidated session.
+ * @exception java.lang.IllegalArgumentException
+ * if name is <code>null</code>.
+ */
+
+ public java.lang.Object getAttribute(java.lang.String name);
+
+
+ /**
+ * Returns the object bound with the specified name in this session,
+ * or <code>null</code> if no object is bound under the name in the given scope.
+ *
+ * @param name a string specifying the name of the object
+ * @param scope session scope of this attribute
+ *
+ * @return the object with the specified name
+ *
+ * @exception java.lang.IllegalStateException if this method is called on an
+ * invalidated session
+ * @exception java.lang.IllegalArgumentException
+ * if name is <code>null</code>.
+ */
+
+ public java.lang.Object getAttribute(java.lang.String name,int scope);
+
+
+ /**
+ * Returns an <code>Enumeration</code> of String objects containing the names of
+ * all the objects bound to this session under the <code>PORTLET_SCOPE</code>, or an
+ * empty <code>Enumeration</code> if no attributes are available.
+ *
+ * @return an <code>Enumeration</code> of
+ * <code>String</code> objects specifying the
+ * names of all the objects bound to
+ * this session, or an empty <code>Enumeration</code>
+ * if no attributes are available.
+ *
+ * @exception java.lang.IllegalStateException if this method is called on an
+ * invalidated session
+ */
+
+ public java.util.Enumeration getAttributeNames();
+
+
+ /**
+ * Returns an <code>Enumeration</code> of String objects containing the names of
+ * all the objects bound to this session in the given scope, or an
+ * empty <code>Enumeration</code> if no attributes are available in the
+ * given scope.
+ *
+ * @param scope session scope of the attribute names
+ *
+ * @return an <code>Enumeration</code> of
+ * <code>String</code> objects specifying the
+ * names of all the objects bound to
+ * this session, or an empty <code>Enumeration</code>
+ * if no attributes are available in the given scope.
+ *
+ * @exception java.lang.IllegalStateException if this method is called on an
+ * invalidated session
+ */
+
+ public java.util.Enumeration getAttributeNames(int scope);
+
+ /**
+ * Returns the time when this session was created, measured in
+ * milliseconds since midnight January 1, 1970 GMT.
+ *
+ * @return a <code>long</code> specifying
+ * when this session was created,
+ * expressed in
+ * milliseconds since 1/1/1970 GMT
+ *
+ * @exception java.lang.IllegalStateException if this method is called on an
+ * invalidated session
+ */
+
+ public long getCreationTime();
+
+
+ /**
+ * Returns a string containing the unique identifier assigned to this session.
+ *
+ * @return a string specifying the identifier
+ * assigned to this session
+ */
+
+ public java.lang.String getId();
+
+
+ /**
+ * Returns the last time the client sent a request associated with this session,
+ * as the number of milliseconds since midnight January 1, 1970 GMT.
+ *
+ * <p>Actions that your portlet takes, such as getting or setting
+ * a value associated with the session, do not affect the access
+ * time.
+ *
+ * @return a <code>long</code>
+ * representing the last time
+ * the client sent a request associated
+ * with this session, expressed in
+ * milliseconds since 1/1/1970 GMT
+ */
+
+ public long getLastAccessedTime();
+
+
+ /**
+ * Returns the maximum time interval, in seconds, for which the portlet container
+ * keeps this session open between client accesses. After this interval,
+ * the portlet container invalidates the session. The maximum time
+ * interval can be set
+ * with the <code>setMaxInactiveInterval</code> method.
+ * A negative time indicates the session should never timeout.
+ *
+ * @return an integer specifying the number of
+ * seconds this session remains open
+ * between client requests
+ *
+ * @see #setMaxInactiveInterval
+ */
+
+ public int getMaxInactiveInterval();
+
+
+ /**
+ * Invalidates this session (all scopes) and unbinds any objects bound to it.
+ * <p>
+ * Invalidating the portlet session will result in invalidating the underlying
+ * <code>HttpSession</code>
+ *
+ * @exception java.lang.IllegalStateException if this method is called on a
+ * session which has already been invalidated
+ */
+
+ public void invalidate();
+
+
+
+ /**
+ * Returns true if the client does not yet know about the session or
+ * if the client chooses not to join the session.
+ *
+ * @return <code>true</code> if the
+ * server has created a session,
+ * but the client has not joined yet.
+ *
+ * @exception java.lang.IllegalStateException if this method is called on a
+ * session which has already been invalidated
+ *
+ */
+
+ public boolean isNew();
+
+
+ /**
+ * Removes the object bound with the specified name under
+ * the <code>PORTLET_SCOPE</code> from
+ * this session. If the session does not have an object
+ * bound with the specified name, this method does nothing.
+ *
+ * @param name the name of the object to be
+ * removed from this session in the
+ * <code> PORTLET_SCOPE</code>.
+ *
+ * @exception java.lang.IllegalStateException
+ * if this method is called on a
+ * session which has been invalidated
+ * @exception java.lang.IllegalArgumentException
+ * if name is <code>null</code>.
+ */
+
+ public void removeAttribute(String name) ;
+
+
+ /**
+ * Removes the object bound with the specified name and the given scope from
+ * this session. If the session does not have an object
+ * bound with the specified name, this method does nothing.
+ *
+ * @param name the name of the object to be
+ * removed from this session
+ * @param scope session scope of this attribute
+ *
+ * @exception java.lang.IllegalStateException
+ * if this method is called on a
+ * session which has been invalidated
+ * @exception java.lang.IllegalArgumentException
+ * if name is <code>null</code>.
+ */
+
+ public void removeAttribute(String name, int scope) ;
+
+
+ /**
+ * Binds an object to this session under the <code>PORTLET_SCOPE</code>, using the name specified.
+ * If an object of the same name in this scope is already bound to the session,
+ * that object is replaced.
+ *
+ * <p>After this method has been executed, and if the new object
+ * implements <code>HttpSessionBindingListener</code>,
+ * the container calls
+ * <code>HttpSessionBindingListener.valueBound</code>. The container then
+ * notifies any <code>HttpSessionAttributeListeners</code> in the web
+ * application.
+ * <p>If an object was already bound to this session
+ * that implements <code>HttpSessionBindingListener</code>, its
+ * <code>HttpSessionBindingListener.valueUnbound</code> method is called.
+ *
+ * <p>If the value is <code>null</code>, this has the same effect as calling
+ * <code>removeAttribute()</code>.
+ *
+ *
+ * @param name the name to which the object is bound under
+ * the <code>PORTLET_SCOPE</code>;
+ * this cannot be <code>null</code>.
+ * @param value the object to be bound
+ *
+ * @exception java.lang.IllegalStateException if this method is called on a
+ * session which has been invalidated
+ * @exception java.lang.IllegalArgumentException
+ * if name is <code>null</code>.
+ */
+
+ public void setAttribute(java.lang.String name, java.lang.Object value);
+
+
+ /**
+ * Binds an object to this session in the given scope, using the name specified.
+ * If an object of the same name in this scope is already bound to the session,
+ * that object is replaced.
+ *
+ * <p>After this method has been executed, and if the new object
+ * implements <code>HttpSessionBindingListener</code>,
+ * the container calls
+ * <code>HttpSessionBindingListener.valueBound</code>. The container then
+ * notifies any <code>HttpSessionAttributeListeners</code> in the web
+ * application.
+ * <p>If an object was already bound to this session
+ * that implements <code>HttpSessionBindingListener</code>, its
+ * <code>HttpSessionBindingListener.valueUnbound</code> method is called.
+ *
+ * <p>If the value is <code>null</code>, this has the same effect as calling
+ * <code>removeAttribute()</code>.
+ *
+ *
+ * @param name the name to which the object is bound;
+ * this cannot be <code>null</code>.
+ * @param value the object to be bound
+ * @param scope session scope of this attribute
+ *
+ * @exception java.lang.IllegalStateException if this method is called on a
+ * session which has been invalidated
+ * @exception java.lang.IllegalArgumentException
+ * if name is <code>null</code>.
+ */
+
+ public void setAttribute(java.lang.String name, java.lang.Object value, int scope);
+
+
+ /**
+ * Specifies the time, in seconds, between client requests, before the
+ * portlet container invalidates this session. A negative time
+ * indicates the session should never timeout.
+ *
+ * @param interval An integer specifying the number
+ * of seconds
+ */
+
+ public void setMaxInactiveInterval(int interval);
+
+
+ /**
+ * Returns the portlet application context associated with this session.
+ *
+ * @return the portlet application context
+ */
+
+ public PortletContext getPortletContext ();
+
+}
+
+
Modified: portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletSessionUtil.java
URL: http://svn.apache.org/viewvc/portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletSessionUtil.java?rev=772799&r1=772798&r2=772799&view=diff
==============================================================================
--- portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletSessionUtil.java (original)
+++ portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletSessionUtil.java Thu May 7 22:48:03 2009
@@ -1,127 +1,90 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2003 The Apache Software Foundation. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowlegement may appear in the software itself,
- * if and wherever such third-party acknowlegements normally appear.
- *
- * 4. The names "The Jakarta Project", "Pluto", and "Apache Software
- * Foundation" must not be used to endorse or promote products derived
- * from this software without prior written permission. For written
- * permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache"
- * nor may "Apache" appear in their names without prior written
- * permission of the Apache Group.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * ====================================================================
- *
- * This source code implements specifications defined by the Java
- * Community Process. In order to remain compliant with the specification
- * DO NOT add / change / or delete method signatures!
- */
-
-package javax.portlet;
-
-/**
- * The <CODE>PortletSessionUtil</CODE> class helps identify and decode
- * attributes in the <CODE>PORTLET_SCOPE</CODE> scope of the PortletSession
- * when accessed through the HttpSession an from within calls to methods
- * of the HttpSessionBindingListener interface.
- */
-public class PortletSessionUtil
-{
-
-
- private static final String PORTLET_SCOPE_NAMESPACE = "javax.portlet.p.";
-
- /**
- * Returns the attribute name of an attribute in the
- * <code>PORTLET_SCOPE</code>. If the attribute is in the
- * <code>APPLICATION_SCOPE</code> it returns the attribute name unchanged.
- *
- * @param name a string specifying the name of the
- * encoded portlet attribute
- *
- * @return the decoded attribute name
- */
-
- public static java.lang.String decodeAttributeName(java.lang.String name)
- {
- if (name.startsWith(PORTLET_SCOPE_NAMESPACE)) {
- int index = name.indexOf('?');
- if (index>-1) {
- name = name.substring(index+1);
- }
- }
- return name;
- }
-
-
- /**
- * Returns the portlet attribute scope from an encoded portlet
- * attribute.
- * <br>Possible return values are:
- * <ul>
- * <li><code>PortletSession.APPLICATION_SCOPE</code></li>
- * <li><code>PortletSession.PORTLET_SCOPE</code></li>
- * </ul>
- *
- * @param name a string specifying the name of the
- * encoded portlet attribute
- *
- * @return the decoded attribute scope
- * @see PortletSession
- */
-
- public static int decodeScope(java.lang.String name)
- {
- int scope = PortletSession.APPLICATION_SCOPE; // APP
- if (name.startsWith(PORTLET_SCOPE_NAMESPACE)) {
- int index = name.indexOf('?');
- if (index>-1) {
- scope = PortletSession.PORTLET_SCOPE; // PORTLET
- }
- }
- return scope;
- }
-}
-
-
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * This source code implements specifications defined by the Java
+ * Community Process. In order to remain compliant with the specification
+ * DO NOT add / change / or delete method signatures!
+ */
+
+package javax.portlet;
+
+/**
+ * The <CODE>PortletSessionUtil</CODE> class helps identify and decode
+ * attributes in the <CODE>PORTLET_SCOPE</CODE> scope of the PortletSession
+ * when accessed through the HttpSession an from within calls to methods
+ * of the HttpSessionBindingListener interface.
+ */
+public class PortletSessionUtil
+{
+
+
+ private static final String PORTLET_SCOPE_NAMESPACE = "javax.portlet.p.";
+
+ /**
+ * Returns the attribute name of an attribute in the
+ * <code>PORTLET_SCOPE</code>. If the attribute is in the
+ * <code>APPLICATION_SCOPE</code> it returns the attribute name unchanged.
+ *
+ * @param name a string specifying the name of the
+ * encoded portlet attribute
+ *
+ * @return the decoded attribute name
+ */
+
+ public static java.lang.String decodeAttributeName(java.lang.String name)
+ {
+ if (name.startsWith(PORTLET_SCOPE_NAMESPACE)) {
+ int index = name.indexOf('?');
+ if (index>-1) {
+ name = name.substring(index+1);
+ }
+ }
+ return name;
+ }
+
+
+ /**
+ * Returns the portlet attribute scope from an encoded portlet
+ * attribute.
+ * <br>Possible return values are:
+ * <ul>
+ * <li><code>PortletSession.APPLICATION_SCOPE</code></li>
+ * <li><code>PortletSession.PORTLET_SCOPE</code></li>
+ * </ul>
+ *
+ * @param name a string specifying the name of the
+ * encoded portlet attribute
+ *
+ * @return the decoded attribute scope
+ * @see PortletSession
+ */
+
+ public static int decodeScope(java.lang.String name)
+ {
+ int scope = PortletSession.APPLICATION_SCOPE; // APP
+ if (name.startsWith(PORTLET_SCOPE_NAMESPACE)) {
+ int index = name.indexOf('?');
+ if (index>-1) {
+ scope = PortletSession.PORTLET_SCOPE; // PORTLET
+ }
+ }
+ return scope;
+ }
+}
+
+
Modified: portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletURL.java
URL: http://svn.apache.org/viewvc/portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletURL.java?rev=772799&r1=772798&r2=772799&view=diff
==============================================================================
--- portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletURL.java (original)
+++ portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PortletURL.java Thu May 7 22:48:03 2009
@@ -1,248 +1,211 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2003 The Apache Software Foundation. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowlegement may appear in the software itself,
- * if and wherever such third-party acknowlegements normally appear.
- *
- * 4. The names "The Jakarta Project", "Pluto", and "Apache Software
- * Foundation" must not be used to endorse or promote products derived
- * from this software without prior written permission. For written
- * permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache"
- * nor may "Apache" appear in their names without prior written
- * permission of the Apache Group.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * ====================================================================
- *
- * This source code implements specifications defined by the Java
- * Community Process. In order to remain compliant with the specification
- * DO NOT add / change / or delete method signatures!
- */
-
-package javax.portlet;
-
-
-
-/**
- * The <CODE>PortletURL</CODE> interface represents a URL
- * that reference the portlet itself.
- * <p>
- * A PortletURL is created through the <CODE>RenderResponse</CODE>.
- * Parameters, a portlet mode, a window state and a security level
- * can be added to <CODE>PortletURL</CODE> objects. The PortletURL
- * must be converted to a String in order to embed it into
- * the markup generated by the portlet.
- * <P>
- * There are two types of PortletURLs:
- * <ul>
- * <li>Action URLs, they are created with <CODE>RenderResponse.createActionURL</CODE>, and
- * trigger an action request followed by a render request.
- * <li>Render URLs, they are created with <CODE>RenderResponse.createRenderURL</CODE>, and
- * trigger a render request.
- * </ul>
- * <p>
- * The string reprensentation of a PortletURL does not need to be a valid
- * URL at the time the portlet is generating its content. It may contain
- * special tokens that will be converted to a valid URL, by the portal,
- * before the content is returned to the client.
- */
-public interface PortletURL
-{
-
-
-
-
- /**
- * Indicates the window state the portlet should be in, if this
- * portlet URL triggers a request.
- * <p>
- * A URL can not have more than one window state attached to it.
- * If more than one window state is set only the last one set
- * is attached to the URL.
- *
- * @param windowState
- * the portlet window state
- *
- * @exception WindowStateException
- * if the portlet cannot switch to this state,
- * because the portal does not support this state, the portlet has not
- * declared in its deployment descriptor that it supports this state, or the current
- * user is not allowed to switch to this state.
- * The <code>PortletRequest.isWindowStateAllowed()</code> method can be used
- * to check if the portlet can set a given window state.
- * @see PortletRequest#isWindowStateAllowed
- */
- public void setWindowState (WindowState windowState)
- throws WindowStateException;
-
-
- /**
- * Indicates the portlet mode the portlet must be in, if this
- * portlet URL triggers a request.
- * <p>
- * A URL can not have more than one portlet mode attached to it.
- * If more than one portlet mode is set only the last one set
- * is attached to the URL.
- *
- * @param portletMode
- * the portlet mode
- *
- * @exception PortletModeException
- * if the portlet cannot switch to this mode,
- * because the portal does not support this mode, the portlet has not
- * declared in its deployment descriptor that it supports this mode for the current markup,
- * or the current user is not allowed to switch to this mode.
- * The <code>PortletRequest.isPortletModeAllowed()</code> method can be used
- * to check if the portlet can set a given portlet mode.
- * @see PortletRequest#isPortletModeAllowed
- */
- public void setPortletMode (PortletMode portletMode)
- throws PortletModeException;
-
-
- /**
- * Sets the given String parameter to this URL.
- * <p>
- * This method replaces all parameters with the given key.
- * <p>
- * The <code>PortletURL</code> implementation 'x-www-form-urlencoded' encodes
- * all parameter names and values. Developers should not encode them.
- * <p>
- * A portlet container may prefix the attribute names internally
- * in order to preserve a unique namespace for the portlet.
- *
- * @param name
- * the parameter name
- * @param value
- * the parameter value
- *
- * @exception java.lang.IllegalArgumentException
- * if name or value are <code>null</code>.
- */
-
- public void setParameter (String name, String value);
-
-
- /**
- * Sets the given String array parameter to this URL.
- * <p>
- * This method replaces all parameters with the given key.
- * <p>
- * The <code>PortletURL</code> implementation 'x-www-form-urlencoded' encodes
- * all parameter names and values. Developers should not encode them.
- * <p>
- * A portlet container may prefix the attribute names internally
- * in order to preserve a unique namespace for the portlet.
- *
- * @param name
- * the parameter name
- * @param values
- * the parameter values
- *
- * @exception java.lang.IllegalArgumentException
- * if name or values are <code>null</code>.
- */
-
- public void setParameter (String name, String[] values);
-
-
- /**
- * Sets a parameter map for this URL.
- * <p>
- * All previously set parameters are cleared.
- * <p>
- * The <code>PortletURL</code> implementation 'x-www-form-urlencoded' encodes
- * all parameter names and values. Developers should not encode them.
- * <p>
- * A portlet container may prefix the attribute names internally,
- * in order to preserve a unique namespace for the portlet.
- *
- * @param parameters Map containing parameter names for
- * the render phase as
- * keys and parameter values as map
- * values. The keys in the parameter
- * map must be of type String. The values
- * in the parameter map must be of type
- * String array (<code>String[]</code>).
- *
- * @exception java.lang.IllegalArgumentException
- * if parameters is <code>null</code>, if
- * any of the key/values in the Map are <code>null</code>,
- * if any of the keys is not a String, or if any of
- * the values is not a String array.
- */
-
- public void setParameters(java.util.Map parameters);
-
-
- /**
- * Indicated the security setting for this URL.
- * <p>
- * Secure set to <code>true</code> indicates that the portlet requests
- * a secure connection between the client and the portlet window for
- * this URL. Secure set to <code>false</code> indicates that the portlet
- * does not need a secure connection for this URL. If the security is not
- * set for a URL, it will stay the same as the current request.
- *
- * @param secure true, if portlet requests to have a secure connection
- * between its portlet window and the client; false, if
- * the portlet does not require a secure connection.
- *
- * @throws PortletSecurityException if the run-time environment does
- * not support the indicated setting
- */
-
- public void setSecure (boolean secure) throws PortletSecurityException;
-
-
- /**
- * Returns the portlet URL string representation to be embedded in the
- * markup.<br>
- * Note that the returned String may not be a valid URL, as it may
- * be rewritten by the portal/portlet-container before returning the
- * markup to the client.
- *
- * @return the encoded URL as a string
- */
-
- public String toString ();
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * This source code implements specifications defined by the Java
+ * Community Process. In order to remain compliant with the specification
+ * DO NOT add / change / or delete method signatures!
+ */
+
+package javax.portlet;
+
+
+
+/**
+ * The <CODE>PortletURL</CODE> interface represents a URL
+ * that reference the portlet itself.
+ * <p>
+ * A PortletURL is created through the <CODE>RenderResponse</CODE>.
+ * Parameters, a portlet mode, a window state and a security level
+ * can be added to <CODE>PortletURL</CODE> objects. The PortletURL
+ * must be converted to a String in order to embed it into
+ * the markup generated by the portlet.
+ * <P>
+ * There are two types of PortletURLs:
+ * <ul>
+ * <li>Action URLs, they are created with <CODE>RenderResponse.createActionURL</CODE>, and
+ * trigger an action request followed by a render request.
+ * <li>Render URLs, they are created with <CODE>RenderResponse.createRenderURL</CODE>, and
+ * trigger a render request.
+ * </ul>
+ * <p>
+ * The string reprensentation of a PortletURL does not need to be a valid
+ * URL at the time the portlet is generating its content. It may contain
+ * special tokens that will be converted to a valid URL, by the portal,
+ * before the content is returned to the client.
+ */
+public interface PortletURL
+{
+
+
+
+
+ /**
+ * Indicates the window state the portlet should be in, if this
+ * portlet URL triggers a request.
+ * <p>
+ * A URL can not have more than one window state attached to it.
+ * If more than one window state is set only the last one set
+ * is attached to the URL.
+ *
+ * @param windowState
+ * the portlet window state
+ *
+ * @exception WindowStateException
+ * if the portlet cannot switch to this state,
+ * because the portal does not support this state, the portlet has not
+ * declared in its deployment descriptor that it supports this state, or the current
+ * user is not allowed to switch to this state.
+ * The <code>PortletRequest.isWindowStateAllowed()</code> method can be used
+ * to check if the portlet can set a given window state.
+ * @see PortletRequest#isWindowStateAllowed
+ */
+ public void setWindowState (WindowState windowState)
+ throws WindowStateException;
+
+
+ /**
+ * Indicates the portlet mode the portlet must be in, if this
+ * portlet URL triggers a request.
+ * <p>
+ * A URL can not have more than one portlet mode attached to it.
+ * If more than one portlet mode is set only the last one set
+ * is attached to the URL.
+ *
+ * @param portletMode
+ * the portlet mode
+ *
+ * @exception PortletModeException
+ * if the portlet cannot switch to this mode,
+ * because the portal does not support this mode, the portlet has not
+ * declared in its deployment descriptor that it supports this mode for the current markup,
+ * or the current user is not allowed to switch to this mode.
+ * The <code>PortletRequest.isPortletModeAllowed()</code> method can be used
+ * to check if the portlet can set a given portlet mode.
+ * @see PortletRequest#isPortletModeAllowed
+ */
+ public void setPortletMode (PortletMode portletMode)
+ throws PortletModeException;
+
+
+ /**
+ * Sets the given String parameter to this URL.
+ * <p>
+ * This method replaces all parameters with the given key.
+ * <p>
+ * The <code>PortletURL</code> implementation 'x-www-form-urlencoded' encodes
+ * all parameter names and values. Developers should not encode them.
+ * <p>
+ * A portlet container may prefix the attribute names internally
+ * in order to preserve a unique namespace for the portlet.
+ *
+ * @param name
+ * the parameter name
+ * @param value
+ * the parameter value
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if name or value are <code>null</code>.
+ */
+
+ public void setParameter (String name, String value);
+
+
+ /**
+ * Sets the given String array parameter to this URL.
+ * <p>
+ * This method replaces all parameters with the given key.
+ * <p>
+ * The <code>PortletURL</code> implementation 'x-www-form-urlencoded' encodes
+ * all parameter names and values. Developers should not encode them.
+ * <p>
+ * A portlet container may prefix the attribute names internally
+ * in order to preserve a unique namespace for the portlet.
+ *
+ * @param name
+ * the parameter name
+ * @param values
+ * the parameter values
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if name or values are <code>null</code>.
+ */
+
+ public void setParameter (String name, String[] values);
+
+
+ /**
+ * Sets a parameter map for this URL.
+ * <p>
+ * All previously set parameters are cleared.
+ * <p>
+ * The <code>PortletURL</code> implementation 'x-www-form-urlencoded' encodes
+ * all parameter names and values. Developers should not encode them.
+ * <p>
+ * A portlet container may prefix the attribute names internally,
+ * in order to preserve a unique namespace for the portlet.
+ *
+ * @param parameters Map containing parameter names for
+ * the render phase as
+ * keys and parameter values as map
+ * values. The keys in the parameter
+ * map must be of type String. The values
+ * in the parameter map must be of type
+ * String array (<code>String[]</code>).
+ *
+ * @exception java.lang.IllegalArgumentException
+ * if parameters is <code>null</code>, if
+ * any of the key/values in the Map are <code>null</code>,
+ * if any of the keys is not a String, or if any of
+ * the values is not a String array.
+ */
+
+ public void setParameters(java.util.Map parameters);
+
+
+ /**
+ * Indicated the security setting for this URL.
+ * <p>
+ * Secure set to <code>true</code> indicates that the portlet requests
+ * a secure connection between the client and the portlet window for
+ * this URL. Secure set to <code>false</code> indicates that the portlet
+ * does not need a secure connection for this URL. If the security is not
+ * set for a URL, it will stay the same as the current request.
+ *
+ * @param secure true, if portlet requests to have a secure connection
+ * between its portlet window and the client; false, if
+ * the portlet does not require a secure connection.
+ *
+ * @throws PortletSecurityException if the run-time environment does
+ * not support the indicated setting
+ */
+
+ public void setSecure (boolean secure) throws PortletSecurityException;
+
+
+ /**
+ * Returns the portlet URL string representation to be embedded in the
+ * markup.<br>
+ * Note that the returned String may not be a valid URL, as it may
+ * be rewritten by the portal/portlet-container before returning the
+ * markup to the client.
+ *
+ * @return the encoded URL as a string
+ */
+
+ public String toString ();
+}
Modified: portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PreferencesValidator.java
URL: http://svn.apache.org/viewvc/portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PreferencesValidator.java?rev=772799&r1=772798&r2=772799&view=diff
==============================================================================
--- portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PreferencesValidator.java (original)
+++ portals/portlet-spec/portlet-api-1.0/src/main/java/javax/portlet/PreferencesValidator.java Thu May 7 22:48:03 2009
@@ -1,90 +1,53 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2003 The Apache Software Foundation. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowlegement may appear in the software itself,
- * if and wherever such third-party acknowlegements normally appear.
- *
- * 4. The names "The Jakarta Project", "Pluto", and "Apache Software
- * Foundation" must not be used to endorse or promote products derived
- * from this software without prior written permission. For written
- * permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache"
- * nor may "Apache" appear in their names without prior written
- * permission of the Apache Group.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * ====================================================================
- *
- * This source code implements specifications defined by the Java
- * Community Process. In order to remain compliant with the specification
- * DO NOT add / change / or delete method signatures!
- */
-
-package javax.portlet;
-
-
-/**
- * The <CODE>PreferencesValidator</CODE> allows to validate the set of
- * preferences of the associated portlet just before they are
- * stored in the persistent store.
- * <p>
- * The portlet container invokes the <code>validate</code> method as
- * part of the invocation of the <code>store</code> method of the
- * <code>PortletPreferences</code>.
- */
-public interface PreferencesValidator
-{
-
-
- /**
- * If the preferences values are successfully validated the call to this method
- * must finish gracefully. Otherwise it must throw a <code>ValidatorException</code>.
- *
- * @param preferences preferences to validate
- *
- * @throws ValidatorException if the given preferences contains invalid
- * settings
- *
- */
-
- public void validate(PortletPreferences preferences)
- throws ValidatorException;
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * This source code implements specifications defined by the Java
+ * Community Process. In order to remain compliant with the specification
+ * DO NOT add / change / or delete method signatures!
+ */
+
+package javax.portlet;
+
+
+/**
+ * The <CODE>PreferencesValidator</CODE> allows to validate the set of
+ * preferences of the associated portlet just before they are
+ * stored in the persistent store.
+ * <p>
+ * The portlet container invokes the <code>validate</code> method as
+ * part of the invocation of the <code>store</code> method of the
+ * <code>PortletPreferences</code>.
+ */
+public interface PreferencesValidator
+{
+
+
+ /**
+ * If the preferences values are successfully validated the call to this method
+ * must finish gracefully. Otherwise it must throw a <code>ValidatorException</code>.
+ *
+ * @param preferences preferences to validate
+ *
+ * @throws ValidatorException if the given preferences contains invalid
+ * settings
+ *
+ */
+
+ public void validate(PortletPreferences preferences)
+ throws ValidatorException;
+}