| ID | Chapter | Section | Description | Required | Dependency | Implementation Specific | Defined by | Status | Testable |
| PORTLET:SPEC:1 | 5 | 5.1 | For a portlet, not hosted in a distributed environment (the default), the portlet container
must instantiate and use only one portlet object per portlet definition. | true |
| true | technology | active | true |
| PORTLET:SPEC:2 | 5 | 5.1 | In the case where a portlet is deployed as part of a portlet application marked as
distributable, in the web.xml deployment descriptor, a portlet container may
instantiate only one portlet object per portlet definition - in the deployment
descriptor - per virtual machine (VM). | true |
| true | technology | active | true |
| PORTLET:SPEC:3 | 5 | 5.2.1 | The portlet container must load the portlet class using the same ClassLoader the servlet
container uses for the web application part of the portlet application. | true |
| true | technology | active | false |
| PORTLET:SPEC:4 | 5 | 5.2.2 | After the portlet object is instantiated, the portlet container must initialize the portlet
before invoking it to handle requests. | true |
| true | technology | active | true |
| PORTLET:SPEC:5 | 5 | 5.2.2.1 | During initialization, the portlet object may throw an UnavailableException
or a PortletException. In this case, the portlet container must not place the portlet
object into active service and it must release the portlet object. | true |
| true | technology | active | true |
| PORTLET:SPEC:6 | 5 | 5.2.2.1 | During initialization, the portlet may throw an UnavailableException or a PortletException. The destroy method must not be called because the initialization is
considered unsuccessful. | true |
| true | technology | active | true |
| PORTLET:SPEC:7 | 5 | 5.2.2.1 | The portlet container may attempt to instantiate and initialize the
portlets at any time after a failure. The exception to this rule is when an
UnavailableException indicates a minimum time of unavailability.
When this happens the portlet container must wait for the specified time
to pass before creating and initializing a new portlet object | true |
| true | technology | active | false |
| PORTLET:SPEC:8 | 5 | 5.2.2.1 | A RuntimeException thrown during initialization must be handled as a PortletException. | true |
| true | technology | active | true |
| PORTLET:SPEC:9 | 5 | 5.2.4 | If the client request is triggered by an action URL, the portal/portlet-container
must first trigger the action request by invoking the processAction method of the targeted
portlet. | true |
| true | technology | active | true |
| PORTLET:SPEC:10 | 5 | 5.2.4 | The portal/portlet-container must wait until the action request finishes.
Then, the portal/portlet-container must trigger the render request by invoking the
render method for all the portlets in the portal page with the possible exception of portlets for which their content is being cached. | true |
| true | technology | active | true |
| PORTLET:SPEC:11 | 5 | 5.2.4 | If the client request is triggered by a render URL, the portal/portlet-container
must invoke the render method for all the portlets in the portal page with the possible exception of portlets for which their content is being cached. | true |
| true | technology | active | true |
| PORTLET:SPEC:12 | 5 | 5.2.4.1 | If the portlet issues a redirection, when the processAction method concludes,
the portal/portlet-container must send the redirection back to the user agent and it must
finalize the processing of the client request. | true |
| true | technology | active | true |
| PORTLET:SPEC:13 | 5 | 5.2.4.2.1 | doView for handling VIEW requests | true |
| true | technology | active | true |
| PORTLET:SPEC:14 | 5 | 5.2.4.2.1 | doEdit for handling EDIT requests | true |
| true | technology | active | true |
| PORTLET:SPEC:15 | 5 | 5.2.4.2.1 | doHelp for handling HELP requests | true |
| true | technology | active | true |
| PORTLET:SPEC:16 | 5 | 5.2.4.2.1 | If the window state of the portlet (see PLT.9 Window States Chapter) is MINIMIZED,
the render method of the GenericPortlet does not invoke any of the portlet mode
rendering methods. | true |
| true | technology | active | false |
| PORTLET:SPEC:17 | 5 | 5.2.4.4 | If a portlet throws an exception in the processAction method, all operations on
the ActionResponse must be ignored and the render method must not be invoked within the current client request. | true |
| true | technology | active | true |
| PORTLET:SPEC:18 | 5 | 5.2.4.4 | If a permanent unavailability is indicated by the UnavailableException,
the portlet container must remove the portlet from service immediately, call the
portlet's destroy method, and release the portlet object. | true |
| true | technology | active | true |
| PORTLET:SPEC:19 | 5 | 5.2.4.4 | A RuntimeException thrown during the request handling must be handled as a PortletException. | true |
| true | technology | active | false |
| PORTLET:SPEC:20 | 5 | 5.2.5 | Once the destroy method is called on a portlet object, the portlet container
must not route any requests to that portlet object. | true |
| true | technology | active | false |
| PORTLET:SPEC:21 | 5 | 5.2.5 | If the portlet container needs to enable the portlet again, it must do so
with a new portlet object, which is a new instance of the portlet's class. | true |
| true | technology | active | false |
| PORTLET:SPEC:22 | 5 | 5.2.5 | If the portlet object throws a RuntimeException within the execution of
the destroy method the portlet container must consider the portlet object successfully
destroyed. | true |
| true | technology | active | false |
| PORTLET:SPEC:23 | 5 | 5.2.5 | After the destroy method completes, the portlet container must release the
portlet object so that it is eligible for garbage collection. | true |
| true | technology | active | false |
| PORTLET:SPEC:24 | 6 | 6.2 | If the portlet definition defines a resource bundle, the portlet-container must look up these values in the ResourceBundle. If the root resource bundle does not contain the resources for these values and the values are defined inline, the portlet container must add the inline values as resources of the root resource bundle | true |
| true | technology | active | true |
| PORTLET:SPEC:25 | 6 | 6.2 | If the portlet definition does not define a resource bundle and the information is defined inline in the deployment descriptor, the
portlet container must create a ResourceBundle and populate it, with the inline values,
using the keys defined in the PLT.21.10 Resource Bundles Section. | true |
| true | technology | active | true |
| PORTLET:SPEC:26 | 7 | 7.1 | A render URL is an optimization for a special type of action URLs. The portal/portlet-container must not invoke the processAction method of the targeted portlet. | true |
| true | technology | active | true |
| PORTLET:SPEC:27 | 7 | 7.1 | The portal/portlet-container must ensure that all the parameters set when constructing the render URL become parameters of the subsequent render requests for the portlet. | true |
| true | technology | active | true |
| PORTLET:SPEC:28 | 7 | 7.1 | A call to any of the setParameter methods must replace any parameter with the same name previously set. | true |
| true | technology | active | true |
| PORTLET:SPEC:29 | 7 | 7.1 | All the parameters a portlet adds to a PortletURL object must be made available to the portlet as request parameters. | true |
| true | technology | active | true |
| PORTLET:SPEC:30 | 7 | 7.1 | The portlet-container must "x-www-form-urlencoded" encode parameters names and values added to a PortletURL object. | true |
| true | technology | active | true |
| PORTLET:SPEC:31 | 7 | 7.1 | If a portal/portlet-container encodes additional information as parameters, it must encode them properly to avoid collisions with the parameters set and used by the portlet. | true |
| true | technology | active | false |
| PORTLET:SPEC:32 | 7 | 7.1.1 | A portlet cannot create a portlet URL using a portlet mode
that is not defined as supported by the portlet or that the user it is
not allowed to use. The setPortletMode methods must throw a PortletModeException
in that situation. | true |
| true | technology | active | true |
| PORTLET:SPEC:33 | 7 | 7.1.1 | The change of portlet mode must be effective for the request triggered by the portlet URL. | true |
| true | technology | active | true |
| PORTLET:SPEC:34 | 7 | 7.1.1 | A portlet cannot create a portlet URL using a window state that is not
supported by the portlet container. The setWindowState method must throw a WindowStateException
if that is the case. | true |
| true | technology | active | true |
| PORTLET:SPEC:35 | 7 | 7.1.2 | If the setSecure method is not used, the portlet URL must be of the same security level of the current request. | true |
| true | technology | active | false |
| PORTLET:SPEC:36 | 8 | 8.5 | The GenericPortlet class implementation of the render method dispatches requests to the
doView, doEdit or doHelp method depending on the portlet mode indicated in the request using the doDispatch method. | true |
| true | technology | active | true |
| PORTLET:SPEC:37 | 8 | 8.6 | Portlets must describe within their definition, in the deployment descriptor, the portlet
modes they can handle for each markup type they support. As all portlets must support the VIEW portlet
mode, VIEW does not have to be indicated. | true |
| true | technology | active | true |
| PORTLET:SPEC:38 | 8 | 8.6 | The portlet must not be invoked in a portlet mode that has not been declared as supported for a
given markup type. | true |
| true | technology | active | true |
| PORTLET:SPEC:39 | 8 | 8.6 | The portlet container must ignore all references to custom portlet modes that are not
supported by the portal implementation, or that have no mapping to portlet modes supported by the
portal. | true |
| true | technology | active | false |
| PORTLET:SPEC:40 | 9 | 9.4 | If a custom window state defined in the deployment descriptor is not mapped to a custom
window state provided by the portal, portlets must not be invoked in that window state. | true |
| true | technology | active | false |
| PORTLET:SPEC:41 | 10 | 10.1 | There is one instance of the PortletContext interface associated with each portlet
application deployed into a portlet container. | true |
| true | technology | active | false |
| PORTLET:SPEC:42 | 10 | 10.1 | In cases where the container is distributed over many virtual machines, a portlet
application will have an instance of the PortletContext interface for each VM. | true |
| true | technology | active | false |
| PORTLET:SPEC:43 | 10 | 10.3 | The initialization parameters accessible through the PortletContext must be the same that are accessible through the ServletContext of the portlet application. | true |
| true | technology | active | true |
| PORTLET:SPEC:44 | 10 | 10.3 | Context attributes set using the PortletContext must be stored in the ServletContext of the portlet application. A direct consequence of this is that data stored in the ServletContext by servlets or JSPs is accessible to portlets through the PortletContext and vice versa. | true |
| true | technology | active | true |
| PORTLET:SPEC:45 | 10 | 10.3 | The PortletContext must offer access to the same set of resources the ServletContext exposes. | true |
| true | technology | active | false |
| PORTLET:SPEC:46 | 10 | 10.3 | The PortletContext must handle the same temporary working directory the ServletContext handles. It must be accessible as a context attribute using the same constant defined in the Servlet Specification 2.3 SVR 3 Servlet Context Chapter, javax.servlet.context.tempdir. | true |
| true | technology | active | true |
| PORTLET:SPEC:47 | 10 | 10.3 | The portlet context must follow the same behavior and functionality that the servlet context has for virtual hosting and reloading considerations. (see Servlet Specification 2.3 SVR 3 Servlet Context Chapter)
| true |
| true | technology | active | false |
| PORTLET:SPEC:47.1 | SRV:3 | 3.6 | In the case where logical hosts (multiple logical hosts shareing one IP address), each logical host must have its own servlet context or set of servlet contexts. | true |
| false | technology | active | false |
| PORTLET:SPEC:48 | 11 | 11.1.1 | If a portlet receives a request from a client request targeted to the portlet itself, the parameters must be the string parameters encoded in the URL (added when creating the PortletURL) and the string parameters sent by the client to the portlet as part of the client request. | true |
| true | technology | active | true |
| PORTLET:SPEC:49 | 11 | 11.1.1 | The parameters the request object returns must be "x-www-form-urlencoded" decoded . | true |
| true | technology | active | true |
| PORTLET:SPEC:50 | 11 | 11.1.1 | The portlet-container must not propagate parameters received in an action request to subsequent render requests of the portlet. | true |
| true | technology | active | true |
| PORTLET:SPEC:51 | 11 | 11.1.1 | If a portlet receives a render request that is the result of a client request targeted to
another portlet in the portal page, the parameters must be the same parameters as of the previous render
request. | true |
| true | technology | active | true |
| PORTLET:SPEC:52 | 11 | 11.1.1 | If a portlet receives a render request following an action request as part of the same client request, the parameters received with by a render request must be the render parameters
set during the action request. | true |
| true | technology | active | true |
| PORTLET:SPEC:53 | 11 | 11.1.1 | Commonly, portals provide controls to change the portlet mode and the window state of portlets. The URLs these controls use are generated by the portal. Client requests triggered by those URLs must be treated as render URLs and the existing render parameters must be preserved. | true |
| true | technology | active | false |
| PORTLET:SPEC:54 | 11 | 11.1.1 | A portlet must not see any parameter targeted to other portlets. | true |
| true | technology | active | true |
| PORTLET:SPEC:55 | 11 | 11.1.1 | The value returned from the getParameter method must be the first value in the array of
String objects returned by getParameterValues. | true |
| true | technology | active | true |
| PORTLET:SPEC:56 | 11 | 11.1.1 | If there is a single parameter value associated with a parameter name the method returns
must return an array of size one containing the parameter value. | true |
| true | technology | active | true |
| PORTLET:SPEC:57 | 11 | 11.1.2 | Extra parameters used by the portal/portlet-container must be invisible to the portlets
receiving the request. | true |
| true | technology | active | false |
| PORTLET:SPEC:58 | 11 | 11.1.5 | The context path is the path prefix associated with the deployed portlet application. If the portlet application is rooted at the base of the web server URL namespace (also known as "default" context), this path must be an empty string. | true |
| true | technology | active | true |
| PORTLET:SPEC:59 | 11 | 11.1.5 | Otherwise, it must be the path the portlet application is rooted to, the path must start with a '/' and it must not end with a '/' character. | true |
| true | technology | active | true |
| PORTLET:SPEC:60 | 11 | 11.1.6 | If the user is not authenticated the getAuthType method must return null. | true |
| true | technology | active | true |
| PORTLET:SPEC:61 | 11 | 11.1.7 | The first element of the enumeration must be the same content type returned by the
getResponseContentType method. | true |
| true | technology | active | true |
| PORTLET:SPEC:62 | 11 | 11.1.7 | The getResponseContentTypes method must return only the content types supported by the current portlet mode of the portlet. | true |
| true | technology | active | true |
| PORTLET:SPEC:63 | 11 | 11.2.1 | Only one of the two methods, getPortletInputStream or getReader, can be used during an action request. If the input stream is obtained, a call to the getReader must throw an IllegalStateExcepion. Similarly, if the reader is obtained, a call to the getPortletInputStream must throw an IllegalStateException | true |
| true | technology | active | true |
| PORTLET:SPEC:64 | 11 | 11.2.1 | If the user request HTTP POST data is of type application/x-www-form-urlencoded, this data has been already processed by the portal/portlet-container and is available as request parameters. The getPortletInputStream and getReader methods must throw an IllegalStateException if called. | true |
| true | technology | active | true |
| PORTLET:SPEC:65 | 12 | 12.2.1 | The sendRedirect method instructs the portal/portlet-container to set the appropriate headers and content body to redirect the user to a different URL. A fully qualified URL or a full path URL must be specified. If a relative path URL is given, an IllegalArgumentException must be thrown. | true |
| true | technology | active | true |
| PORTLET:SPEC:66 | 12 | 12.2.1 | If the sendRedirect method is called after the setPortletMode, setWindowState, setRenderParameter or setRenderParameters methods of the ActionResponse interface, an IllegalStateException must be thrown and the redirection must not be executed. | true |
| true | technology | active | true |
| PORTLET:SPEC:67 | 12 | 12.2.2 | If a portlet attempts to set a portlet mode that is not allowed to switch to, a
PortletModeException must be thrown. | true |
| true | technology | active | true |
| PORTLET:SPEC:68 | 12 | 12.2.2 | If a portlet attempts to set a window state that is not allowed to switch to, a
WindowStateException must be thrown. | true |
| true | technology | active | true |
| PORTLET:SPEC:69 | 12 | 12.2.2 | If the setPortletMode or setWindowState methods are called after the sendRedirect method has been called an IllegalStateException must be thrown. | true |
| true | technology | active | true |
| PORTLET:SPEC:70 | 12 | 12.2.2 | If the exception is caught by the portlet, the redirection must be executed. | true |
| true | technology | active | true |
| PORTLET:SPEC:71 | 12 | 12.2.2 | If the exception is propagated back to the portlet-container, the redirection must not be executed. | true |
| true | technology | active | true |
| PORTLET:SPEC:72 | 12 | 12.2.3 | A call to any of the setRenderParameter methods must replace any parameter with the same name previously set.
| true |
| true | technology | active | true |
| PORTLET:SPEC:73 | 12 | 12.2.3 | If no render parameters are set during the processAction invocation, the render request
must not contain any request parameters. | true |
| true | technology | active | true |
| PORTLET:SPEC:74 | 12 | 12.2.3 | If the setRenderParameter or setRenderParameters methods are called after the sendRedirect method has been called an IllegalStateException must be thrown
. | true |
| true | technology | active | true |
| PORTLET:SPEC:75 | 12 | 12.2.3 | If the exception is caught by the portlet, the redirection must be executed. If the exception is propagated back to the portlet-container, the redirection must not be executed. | true |
| true | technology | active | true |
| PORTLET:SPEC:76 | 12 | 12.3.1 | The setContentType method must throw an IllegalArgumentException if the content type set
does not match (including wildcard matching) any of the content types returned by the getResponseContentType method of the PortleRequest object.
| true |
| true | technology | active | true |
| PORTLET:SPEC:77 | 12 | 12.3.1 | If the getWriter or getPortletOutputStream methods are called before the setContentType method, they must throw an IllegalStateException. | true |
| true | technology | active | true |
| PORTLET:SPEC:78 | 12 | 12.3.1 | If the portlet has set a content type, the getContentType method must return it.Otherwise, the getContentType method must return null. | true |
| true | technology | active | true |
| PORTLET:SPEC:79 | 12 | 12.3.2 | A portlet may generate its content by writing to the OutputStream or to the Writer of the RenderResponse object. A portlet must use only one of these objects. The portlet container must throw an IllegalStateException if a portlet attempts to use both.
| true |
| true | technology | active | true |
| PORTLET:SPEC:80 | 12 | 12.3.3 | The getBufferSize method returns the size of the underlying buffer being used. If no buffering is being used, this method must return the int value of 0 (zero).
| true |
| true | technology | active | true |
| PORTLET:SPEC:81 | 12 | 12.3.3 | The portlet can request a preferred buffer size by using the setBufferSize method. The buffer assigned is not required to be the size requested by the portlet, but must be at least as large as the size requested.
| true |
| true | technology | active | true |
| PORTLET:SPEC:82 | 12 | 12.3.3 | The reset method clears data in the buffer when the response is not committed. Properties set by the portlet prior to the reset call must be cleared as well.
| true |
| true | technology | active | false |
| PORTLET:SPEC:83 | 12 | 12.3.3 | If the response is committed and the reset or resetBuffer method is called, an IllegalStateException must be thrown.
| true |
| true | technology | active | true |
| PORTLET:SPEC:84 | 12 | 12.3.3 | If the response is committed and the reset or resetBuffer method is called, an IllegalStateException must be thrown. The response and its associated buffer must be unchanged.
| true |
| true | technology | active | true |
| PORTLET:SPEC:85 | 12 | 12.3.3 | When using a buffer, the container must immediately flush the contents of a filled buffer to the client. If this is the first data that is sent to the client, the response must be considered as committed.
| true |
| true | technology | active | false |
| PORTLET:SPEC:86 | 12 | 12.3.4 | The getNamespace method must provide the portlet with a mechanism that ensures the uniqueness of the returned string in the whole portal page. | true |
| true | technology | active | false |
| PORTLET:SPEC:87 | 12 | 12.3.4 | The getNamespace method must return the same value if invoked multiple times within a render request. | true |
| true | technology | active | true |
| PORTLET:SPEC:88 | 12 | 12.3.4 | The getNamespace method must return a valid identifier as defined in the 3.8 Identifier Section of the Java Language Specification Second Edition. | true |
| true | technology | active | true |
| PORTLET:SPEC:89 | 12 | 12.3.5 | The setTitle method must be called before the output of the portlet has been commited, if called after it should be ignored. | true |
| true | technology | active | false |
| PORTLET:SPEC:90 | 14 | 14.1 | Preferences attributes can be set to null. | true |
| true | technology | active | true |
| PORTLET:SPEC:91 | 14 | 14.1 | The getMap method returns an immutable Map of String keys and String[] values containing all current preference values. Preferences values must not be modified if the values in the Map are altered. | true |
| true | technology | active | true |
| PORTLET:SPEC:92 | 14 | 14.1 | The reset method must reset a preference attribute to its default value.If there is no default value, the preference attribute must be deleted. | true |
| true | technology | active | true |
| PORTLET:SPEC:93 | 14 | 14.1 | If a preference attribute is read only, the setValue, setValues and reset methods must throw a ReadOnlyException when the portlet is in any of the standard modes. | true |
| true | technology | active | true |
| PORTLET:SPEC:94 | 14 | 14.1 | The store method must persist all the changes made to the PortletPreferences object in
the persistent store. | true |
| true | technology | active | true |
| PORTLET:SPEC:95 | 14 | 14.1 | The store method must be conducted as an atomic transaction regardless of how many
preference attributes have been modified. | true |
| true | technology | active | false |
| PORTLET:SPEC:96 | 14 | 14.1 | All changes made to PortletPreferences object not followed by a call to the store method
must be discarded when the portlet finishes the processAction method. | true |
| true | technology | active | true |
| PORTLET:SPEC:97 | 14 | 14.1 | If the store method is invoked within the scope of a render method invocation, it must throw an IllegalStateException. | true |
| true | technology | active | true |
| PORTLET:SPEC:98 | 14 | 14.1 | The PortletPreferences object must reflect the current values of the persistent store
when the portlet container invokes the processAction and render methods of the portlet. | true |
| true | technology | active | true |
| PORTLET:SPEC:99 | 14 | 14.3 | If a preference attribute definition does not contain the read-only element set to true, the preference attribute is modifiable when the portlet is processing an action request in any of the standard portlet modes (VIEW, EDIT or HELP). | true |
| true | technology | active | true |
| PORTLET:SPEC:100 | 14 | 14.3 | Portlets are not restricted to use preference attributes defined in the deployment
descriptor. They can programmatically add preference attributes using names not defined in
the deployment descriptor. These preferences attributes must be treated as modifiable attributes. | true |
| true | technology | active | true |
| PORTLET:SPEC:101 | 14 | 14.4 | If a portlet definition includes a validator, the portlet container must create a single validator instance per portlet definition.
| true |
| true | technology | active | false |
| PORTLET:SPEC:102 | 14 | 14.4 | If the application is a distributed application, the portlet container must create an
instance per VM. | true |
| true | technology | active | false |
| PORTLET:SPEC:103 | 14 | 14.4 | When a validator is associated with the preferences of a portlet definition, the
store method of the PortletPreferences implementation must invoke the validate method of the validator
before writing the changes to the persistent store. | true |
| true | technology | active | true |
| PORTLET:SPEC:104 | 14 | 14.4 | If a ValidatorException is thrown, the portlet container must cancel the store operation
and it must propagate the exception to the portlet. | true |
| true | technology | active | true |
| PORTLET:SPEC:105 | 14 | 14.4 | If the validation is successful, the store operation must be completed. | true |
| true | technology | active | true |
| PORTLET:SPEC:106 | 15 | 15.1 | For portlets within the same portlet application, a portlet container must ensure that
every portlet request generated as result of a group of requests originated from the portal to
complete a single client request receive or acquire the same session. | true |
| true | technology | active | true |
| PORTLET:SPEC:107 | 15 | 15.1 | If within these portlet requests more than one portlet creates a session, the session
object must be the same for all the portlets in the same portlet application. | true |
| true | technology | active | true |
| PORTLET:SPEC:108 | 15 | 15.2 | PortletSession objects must be scoped at the portlet application context level.
| true |
| true | technology | active | true |
| PORTLET:SPEC:109 | 15 | 15.2 | The portlet container must not share the PortletSession object or the attributes stored
in it among different portlet applications or among different user sessions. | true |
| true | technology | active | true |
| PORTLET:SPEC:110 | 15 | 15.3 | Any object stored in the session using the APPLICATION_SCOPE is available to any other
portlet that belongs to the same portlet application and that handles a request identified as being a
part of the same session. | true |
| true | technology | active | true |
| PORTLET:SPEC:111 | 15 | 15.3 | Objects stored in the session using the PORTLET_SCOPE must be available to the portlet
during requests for the same portlet window that the objects where stored from. | true |
| true | technology | active | true |
| PORTLET:SPEC:112 | 15 | 15.3 | The object must be stored in the APPLICATION_SCOPE with the following fabricated attribute
name javax.portlet.ID?ATTRIBUTE_NAME. ID is a unique identification for the portlet
window (assigned by the portal/portlet-container) that must not contain a ? character. | true |
| true | technology | active | true |
| PORTLET:SPEC:113 | 15 | 15.4 | A direct consequence of this is that data stored in the HttpSession by servlets or JSPs
is accessible to portlets through the PortletSession in the portlet application scope. | true |
| true | technology | active | true |
| PORTLET:SPEC:114 | 15 | 15.4 | Data stored by portlets in the PortletSession in the portlet application scope is
accessible to servlets and JSPs through the HttpSession. | true |
| true | technology | active | true |
| PORTLET:SPEC:115 | 15 | 15.4 | If the HttpSession object is invalidated, the PortletSession object must also be
invalidated by the portlet container. | true |
| true | technology | active | true |
| PORTLET:SPEC:116 | 15 | 15.4 | If the PortletSession object is invalidated by a portlet, the portlet container must
invalidate the associated HttpSession object. | true |
| true | technology | active | true |
| PORTLET:SPEC:117 | 15 | 15.4.1 | The attribute names must be the same if APPLICATION_SCOPE scope is used. | true |
| true | technology | active | true |
| PORTLET:SPEC:118 | 15 | 15.4.1 | The attribute name has to conform with the specified prefixing if PORTLET_SCOPE is used.
| true |
| true | technology | active | true |
| PORTLET:SPEC:119 | 15 | 15.4.1 | The variant of these methods that does not receive a scope must be treated as
PORTLET_SCOPE. | true |
| true | technology | active | true |
| PORTLET:SPEC:120 | 15 | 15.8 | The portlet session follows the same semantic considerations as the servlet session as
defined in the Servlet Specification 2.3, SRV.7.7.3 Section. These considerations include Threading
Issues, Distributed Environments, and Client Semantics. | true |
| true | technology | active | false |
| PORTLET:SPEC:120.1 | SRV:7 | 7.7.2 | Within an application marked as distributable, all request that are part of a session must be handled by one vertual machine at a time. | true |
| false | technology | active | false |
| PORTLET:SPEC:120.2 | SRV:7 | 7.7.2 | The container must accept objects that implement the Serializable interface. | true |
| false | technology | active | true |
| PORTLET:SPEC:120.3 | SRV:7 | 7.7.2 | Distributed servlet containers of a J2EE implementation must support the mechanism necessary for migrating other J2EE objects. | true |
| false | platform | active | false |
| PORTLET:SPEC:120.4 | SRV:7 | 7.7.2 | Containers must notify any session attributes implementing the HttpSessionActivationListener during migration of a session. They must notify listeners of passivation prior to serialization of a session, and of activation after deserialization of a session | true |
| false | technology | active | false |
| PORTLET:SPEC:121 | 16 | 16.1 | The getRequestDispatcher method takes a String argument describing a path within the
scope of the PortletContext of a portlet application. This path must begin with a '/' and it is
relative to the PortletContext root. | true |
| true | technology | active | true |
| PORTLET:SPEC:122 | 16 | 16.1 | If no resource can be resolved based on the given path or name the methods must return
null. | true |
| true | technology | active | true |
| PORTLET:SPEC:123 | 16 | 16.1.1 | Parameters specified in the query string used to create the PortletRequestDispatcher must be aggregated with the portlet render parameters and take precedence over other portlet render parameters of the same name passed to the included servlet or JSP. The parameters associated with a PortletRequestDispatcher are scoped to apply only for the duration of the include call. | true |
| true | technology | active | true |
| PORTLET:SPEC:124 | 16 | 16.2 | To include a servlet or a JSP, a portlet calls the include method of the PortletRequestDispatcher
interface. The parameters to these methods must be the request and response arguments that were
passed in via the render method of the Portlet interface. | true |
| true | technology | active | false |
| PORTLET:SPEC:125 | 16 | 16.2 | The portlet container must ensure that the servlet or JSP called through a PortletRequestDispatcher is called in the same thread as the PortletRequestDispatcher include invocation. | true |
| true | technology | active | true |
| PORTLET:SPEC:126 | 16 | 16.2 | Servlets and JSPs included from portlets must be handled as HTTP GET requests. | true |
| true | technology | active | true |
| PORTLET:SPEC:127 | 16 | 16.3.1 | Except for servlets obtained by using the getNamedDispatcher method, a servlet or JSP
being used from within an include call has access to the path used to obtain the PortletRequestDispatcher.
The following request attributes must be set :javax.servlet.include.request_uri,javax.servlet.include.context_path,
javax.servlet.include.servlet_path, javax.servlet.include.path_info,
javax.servlet.include.query_string. | true |
| true | technology | active | true |
| PORTLET:SPEC:128 | 16 | 16.3.2 | In addition to the request attributes specified in Servlet Specification 2.3,
SRV.8.3.1 Section, the included servlet or JSP must have the following request attributes set:
javax.portlet.config javax.portlet.PortletConfig,
javax.portlet.request javax.portlet.RenderRequest,
javax.portlet.response javax.portlet.RenderResponse.
These attributes must be the same portlet API objects accessible to the portlet
doing the include call.
| true |
| true | technology | active | true |
| PORTLET:SPEC:128.1 | SRV:8 | 8.3.1 | Except for servlets obtained by using the getNamedDispatcher method,
a servlet being used from within an include has access to the path by which it was
invoked.The following request attributes are set:javax.servlet.include.request_uri
javax.servlet.include.context_path javax.servlet.include.servlet_path javax.servlet.include.path_info
javax.servlet.include.query_string | true |
| false | technology | active | true |
| PORTLET:SPEC:129 | 16 | 16.3.3 | The following methods of the HttpServletRequest must return null: getProtocol,
getRemoteAddr, getRemoteHost, getRealPath, and getRequestURL.
| true |
| true | technology | active | true |
| PORTLET:SPEC:130 | 16 | 16.3.3 | The following methods of the HttpServletRequest must return the path and query string
information used to obtain the PortletRequestDispatcher object: getPathInfo, getPathTranslated,
getQueryString, getRequestURI and getServletPath.
| true |
| true | technology | active | true |
| PORTLET:SPEC:131 | 16 | 16.3.3 | The following methods of the HttpServletRequest must be equivalent to the methods
of the PortletRequest of similar name: getScheme,getServerName,
getServerPort,getAttribute,getAttributeNames,setAttribute,
removeAttribute,getLocale,getLocales,isSecure,getAuthType,
getContextPath,getRemoteUser,getUserPrincipal,getRequestedSessionId,
isRequestedSessionIdValid. | true |
| true | technology | active | true |
| PORTLET:SPEC:132 | 16 | 16.3.3 | The following methods of the HttpServletRequest must be equivalent to the methods of the PortletRequest of similar name with the provision defined in PLT.16.1.1 Query Strings in Request Dispatcher Paths Section: getParameter, getParameterNames, getParameterValues and getParameterMap. | true |
| true | technology | active | true |
| PORTLET:SPEC:133 | 16 | 16.3.3 | The following methods of the HttpServletRequest must do no operations and return null: getCharacterEncoding, setCharacterEncoding, getContentType, getInputStream and getReader.
| true |
| true | technology | active | true |
| PORTLET:SPEC:134 | 16 | 16.3.3 | The getContentLength method of the HttpServletRequest must return 0. | true |
| true | technology | active | true |
| PORTLET:SPEC:135 | 16 | 16.3.3 | The following methods of the HttpServletRequest must be based on the properties
provided by the getProperties method of the PortletRequest
interface: getHeader,getHeaders,getHeaderNames,getCookies,
getDateHeader and getIntHeader. | true |
| true | technology | active | false |
| PORTLET:SPEC:136 | 16 | 16.3.3 | The following methods of the HttpServletRequest must provide the functionality defined by the Servlet
Specification 2.3: getRequestDispatcher, isUserInRole, getSession,
isRequestedSessionIdFromCookie, isRequestedSessionIdFromURL and isRequestedSessionIdFromUrl.
| true |
| true | technology | active | true |
| PORTLET:SPEC:137 | 16 | 16.3.3 | The getMethod method of the HttpServletRequest must always return 'GET'.
| true |
| true | technology | active | true |
| PORTLET:SPEC:138 | 16 | 16.3.3 | The following methods of the HttpServletResponse must return null: encodeRedirectURL and encodeRedirectUrl. | true |
| true | technology | active | true |
| PORTLET:SPEC:139 | 16 | 16.3.3 | The following methods of the HttpServletResponse must be equivalent to the methods of the
RenderResponse of similar name: getCharacterEncoding, setBufferSize, flushBuffer, resetBuffer, reset, getBufferSize, isCommitted, getOutputStream, getWriter, encodeURL and
encodeUrl. | true |
| true | technology | active | true |
| PORTLET:SPEC:140 | 16 | 16.3.3 | The following methods of the HttpServletResponse must perform no operations:
setContentType, setContentLength, setLocale, addCookie, sendError,
sendRedirect, setDateHeader, addDateHeader, setHeader, addHeader, setIntHeader, addIntHeader and
setStatus. | true |
| true | technology | active | false |
| PORTLET:SPEC:141 | 16 | 16.3.3 | The getLocale method of the HttpServletResponse must be based on the getLocale method of the RenderResponse. | true |
| true | technology | active | true |
| PORTLET:SPEC:142 | 16 | 16.3.4 | If the servlet or JSP that is the target of a request dispatcher throws a runtime
exception or a checked exception of type IOException, it must be propagated to the calling portlet.
| true |
| true | technology | active | true |
| PORTLET:SPEC:143 | 16 | 16.3.4 | All other exceptions, including a ServletException, must be wrapped with a PortletException.
The root cause of the exception must be set to the original exception before being propagated.
| true |
| true | technology | active | true |
| PORTLET:SPEC:144 | 17 | 17.1 | User attributes of the runtime environment not mapped as part of the deployment process
must not be exposed to portlets. | true |
| true | technology | active | false |
| PORTLET:SPEC:145 | 17 | 17.2 | If the request is done in the context of an un-authenticated user, calls to the
getAttribute method of the request using the USER_INFO constant must return null. If the user is authenticated and there are no user attributes available, the Map must be
an empty Map. | true |
| true | technology | active | false |
| PORTLET:SPEC:146 | 17 | 17.2 | The Map object should contain a String name value pair for each available user attribute.The Map object must only contain user attributes that have been mapped during deployment.
| true |
| true | technology | active | false |
| PORTLET:SPEC:147 | 19 | 19.2 | The portlet container must enforce a one to one correspondence between a portlet
application and a PortletContext. | true |
| true | technology | active | false |
| PORTLET:SPEC:148 | 19 | 19.2 | If the application is a distributed application, the portlet container must create an instance per VM. | true |
| true | technology | active | false |
| PORTLET:SPEC:149 | 19 | 19.5 | The portlet container must use the same classloader the servlet container uses for the web
application resources for loading the portlets and related resources within the portlet application.
| true |
| true | technology | active | false |
| PORTLET:SPEC:150 | 19 | 19.5 | The portlet container must ensure that requirements defined in the Servlet Specification
2.3 SRV.9.7.1 and SRV.9.7.2 Sections are fulfilled. | true |
| true | technology | active | false |
| PORTLET:SPEC:150.1 | SRV:9 | 9.7.2 | The classloader that a container uses to load a servlet in a WAR must allow the developer to load any resources contained in library JARs within the WAR following normal J2SE semantics using getResource. | true |
| false | technology | active | true |
| PORTLET:SPEC:150.2 | SRV:9 | 9.7.2 | The classloader must not allow the WAR to override J2SE or Java servlet API classes. | true |
| false | technology | active | false |
| PORTLET:SPEC:151 | 20 | 20.3 | The values that the portlet API getRemoteUser and getUserPrincipal methods return the
same values returned by the equivalent methods of the servlet response object. | false |
| true | technology | active | true |
| PORTLET:SPEC:152 | 20 | 20.3 | The container uses the mapping of security-role-ref to security-role when determining the
return value of the call. | false |
| true | technology | active | true |
| PORTLET:SPEC:153 | 20 | 20.3 | If the security-role-ref element does not define a role-link element, the container
must default to checking the role-name element argument against the list of security-role
elements defined in the web.xml deployment descriptor of the portlet
application. | false |
| true | technology | active | true |
| PORTLET:SPEC:154 | 20 | 20.5 | When it is specified, the container must propagate the security identity of the caller to the EJB layer in terms of the security role name defined in the run-as element. | false |
| true | platform | active | true |
| PORTLET:SPEC:155 | 20 | 20.5 | The security role name must be one of the security role names defined for the web.xml deployment descriptor. | false |
| true | platform | active | true |
| PORTLET:SPEC:156 | 22 | 22.1 | The portlet-container must provide an implementation of the portlet tag library. | true |
| true | platform | active | true |
| PORTLET:SPEC:157 | 22 | 22.1 | The defineObjects tag must define the following variables in the JSP page: RenderRequest renderRequest ,RenderResponse renderResponse, PortletConfig portletConfig | true |
| true | platform | active | true |
| PORTLET:SPEC:158 | 22 | 22.1 | The defineObjects tag must not define any attribute and it must not contain any body content. | true |
| true | platform | active | false |
| PORTLET:SPEC:159 | 22 | 22.2 | The portlet actionURL tag creates a URL that must point to the current portlet and must trigger an action request with the supplied parameters. | true |
| true | platform | active | true |
| PORTLET:SPEC:160 | 22 | 22.2 | windowState (Type: String, non-required) - indicates the window state that the portlet should have when this link is executed. The following window states are predefined: minimized, normal, and maximized. If the specified window state is illegal for the current request, a JspException must be thrown | true |
| true | platform | active | true |
| PORTLET:SPEC:161 | 22 | 22.2 | If a window state is not set for a URL, it should stay the same as the window state of the current request. | true |
| true | platform | active | false |
| PORTLET:SPEC:162 | 22 | 22.2 | portletMode (Type: String, non-required) - indicates the portlet mode that the portlet must have when this link is executed, if no error condition ocurred. | false |
| true | platform | active | true |
| PORTLET:SPEC:163 | 22 | 22.2 | If the specified portlet mode is illegal for the current request, a JspException must be thrown. | true |
| true | platform | active | true |
| PORTLET:SPEC:164 | 22 | 22.2 | If a portlet mode is not set for a URL, it must stay the same as the mode of the current request. | true |
| true | platform | active | true |
| PORTLET:SPEC:165 | 22 | 22.2 | var (Type: String, non-required) - name of the exported scoped variable for the action URL. The exported scoped variable must be a String. By default, the result of the URL processing is written to the current JspWriter. If the result is exported as a JSP scoped variable, defined via the var attributes, nothing is written to the current JspWriter. | true |
| true | platform | active | true |
| PORTLET:SPEC:166 | 22 | 22.2 | If the given variable name already exists in the scope of the page or it is used within an iteration loop, the new value overwrites the old one. | true |
| true | platform | active | true |
| PORTLET:SPEC:167 | 22 | 22.2 | If the specified security setting is not supported by the run-time environment, a JspException must be thrown. If the security is not set for a URL, it must stay the same as the security setting of the current request.
| false |
| true | platform | active | false |
| PORTLET:SPEC:168 | 22 | 22.3 | The portlet renderURL tag creates a URL that must point to the current portlet and must trigger a render request with the supplied parameters. | true |
| true | platform | active | true |
| PORTLET:SPEC:169 | 22 | 22.3 | windowState (Type: String, non-required) - indicates the window state that the portlet should have when this link is executed. The following window states are predefined: minimized, normal, and maximized. If the specified window state is illegal for the current request, a JspException must be thrown. | true |
| true | platform | active | true |
| PORTLET:SPEC:170 | 22 | 22.3 | If a window state is not set for a URL, it should stay the same as the window state of the current request. | true |
| true | platform | active | false |
| PORTLET:SPEC:171 | 22 | 22.3 | portletMode (Type: String, non-required) - indicates the portlet mode that the portlet must have when this link is executed, if no error condition ocurred. | false |
| true | platform | active | true |
| PORTLET:SPEC:172 | 22 | 22.3 | If the specified portlet mode is illegal for the current request, a JspException must be thrown. | true |
| true | platform | active | true |
| PORTLET:SPEC:173 | 22 | 22.3 | If a portlet mode is not set for a URL, it must stay the same as the mode of the current request. | true |
| true | platform | active | true |
| PORTLET:SPEC:174 | 22 | 22.3 | var (Type: String, non-required) - name of the exported scoped variable for the render URL. The exported scoped variable must be a String. By default, the result of the URL processing is written to the current JspWriter. If the result is exported as a JSP scoped variable, defined via the var attributes, nothing is written to the current JspWriter. | true |
| true | platform | active | true |
| PORTLET:SPEC:175 | 22 | 22.3 | If the given variable name already exists in the scope of the page or it is used within an iteration loop, the new value overwrites the old one. | true |
| true | platform | active | true |
| PORTLET:SPEC:176 | 22 | 22.3 | If the specified security setting is not supported by the run-time environment, a JspException must be thrown. If the security is not set for a URL, it must stay the same as the security setting of the current request.
| false |
| true | platform | active | false |
| PORTLET:SPEC:177 | 22 | 22.4 | encode tag produces a unique value for the current portlet. | false |
| true | platform | active | false |
| PORTLET:SPEC:178 | 22 | 22.5 | param tag defines a parameter that may be added to a actionURL or renderURL. | false |
| true | platform | active | true |
| PORTLET:SPEC:179 | 22 | 22.5 | The param tag must not contain any body content. | false |
| true | platform | active | false |