You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by ms...@apache.org on 2015/01/27 17:26:43 UTC
[05/12] portals-pluto git commit: Modified name of portlet API module
& moved artifact version to 3.0-snapshot in preparation for further
prototyping
http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/4fc38552/portlet-api_2.0_spec/src/main/java/javax/portlet/EventResponse.java
----------------------------------------------------------------------
diff --git a/portlet-api_2.0_spec/src/main/java/javax/portlet/EventResponse.java b/portlet-api_2.0_spec/src/main/java/javax/portlet/EventResponse.java
deleted file mode 100644
index e4bd253..0000000
--- a/portlet-api_2.0_spec/src/main/java/javax/portlet/EventResponse.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/* 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>EventResponse</CODE> interface represents the portlet
- * response to an event request.
- * It extends the <CODE>StateAwareResponse</CODE> interface.<br>
- * The portlet container creates an <CODE>EventResponse</CODE> object and
- * passes it as argument to the portlet's <CODE>processEvent</CODE> method.
- *
- * @see StateAwareResponse
- * @see PortletResponse
- * @since 2.0
- */
-public interface EventResponse extends StateAwareResponse {
-
- /**
- * Maintain the current render parameters of the request for
- * the response.
- * <p>
- * All previously set render parameters are cleared.
- * <p>
- * These parameters will be accessible in all
- * subsequent render calls via the
- * <code>PortletRequest.getParameter</code> call until
- * a new request is targeted to the portlet.
- * <p>
- * The given parameters do not need to be encoded
- * prior to calling this method.
- *
- * @param request The request the portlet has been provided
- * with by the portlet container for the current
- * <code>processEvent</code> call, must not be
- * <code>null</code>.
- */
- public void setRenderParameters(EventRequest request);
-
-}
http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/4fc38552/portlet-api_2.0_spec/src/main/java/javax/portlet/GenericPortlet.java
----------------------------------------------------------------------
diff --git a/portlet-api_2.0_spec/src/main/java/javax/portlet/GenericPortlet.java b/portlet-api_2.0_spec/src/main/java/javax/portlet/GenericPortlet.java
deleted file mode 100644
index e1ff6de..0000000
--- a/portlet-api_2.0_spec/src/main/java/javax/portlet/GenericPortlet.java
+++ /dev/null
@@ -1,771 +0,0 @@
-/* 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;
-
-import java.io.IOException;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.xml.namespace.QName;
-
-/**
- * The <CODE>GenericPortlet</CODE> class provides a default implementation for
- * the <CODE>Portlet</CODE> interface.
- * <p>
- * It provides an abstract class to be subclassed to create portlets. A subclass
- * of <CODE>GenericPortlet</CODE> should either use one of the following annotations:
- * <ul>
- * <li><code>@ProcessAction</code></li>
- * <li><code>@ProcessEvent</code></li>
- * <li><code>@RenderMode</code></li>
- * </ul>
- * or override at least one method, usually
- * one of the following:
- * <ul>
- * <li>processAction, to handle action requests</li>
- * <li>doView, to handle render requests when in VIEW mode</li>
- * <li>doEdit, to handle render requests when in EDIT mode</li>
- * <li>doHelp, to handle render request when in HELP mode</li>
- * <li>init and destroy, to manage resources that are held for the life of the
- * servlet</li>
- * </ul>
- * <p>
- * Normally there is no need to override the render or the doDispatch methods.
- * Render handles render requests setting the title of the portlet in the
- * response and invoking doDispatch. doDispatch dispatches the request to one of
- * the doView, doEdit or doHelp method depending on the portlet mode indicated
- * in the request.
- * <p>
- * Portlets typically run on multithreaded servers, so please note that a
- * portlet must handle concurrent requests and be careful to synchronize access
- * to shared resources. Shared resources include in-memory data such as instance
- * or class variables and external objects such as files, database connections,
- * and network connections.
- */
-public abstract class GenericPortlet implements Portlet, PortletConfig, EventPortlet, ResourceServingPortlet {
-
- private transient PortletConfig config;
-
- private transient Map<String, Method> processActionHandlingMethodsMap = new HashMap<String, Method>();
- private transient Map<String, Method> processEventHandlingMethodsMap = new HashMap<String, Method>();
- private transient Map<String, Method> renderModeHandlingMethodsMap = new HashMap<String, Method>();
-
- /**
- * Does nothing.
- */
-
- public GenericPortlet() {
- }
-
- /**
- * Called by the portlet container to indicate to a portlet that the portlet
- * is being placed into service.
- * <p>
- * The default implementation stores the <code>PortletConfig</code> object
- * and checks for annotated methods with the annotations
- * <ul>
- * <li>@ProcessAction</li>
- * <li>@ProcessEvent</li>
- * <li>@RenderMode</li>
- * </ul>
- * and stores these in a hashmap for later dispatching.
- * <p>
- * The portlet container calls the <code>init</code> method exactly once
- * after instantiating the portlet. The <code>init</code> method must
- * complete successfully before the portlet can receive any requests.
- *
- * <p>
- * The portlet container cannot place the portlet into service if the
- * <code>init</code> method does one of the following:
- * <ol>
- * <li>it throws a <code>PortletException</code>
- * <li>it does not return within a time period defined by the Web server
- * </ol>
- *
- *
- * @param config
- * a <code>PortletConfig</code> object containing the portlet
- * configuration and initialization parameters
- *
- * @exception PortletException
- * if an exception has occurred that interferes with the
- * portlet normal operation.
- * @exception UnavailableException
- * if the portlet cannot perform the initialization at this
- * time.
- */
- public void init(PortletConfig config) throws PortletException {
- this.config = config;
- cacheAnnotatedMethods();
- this.init();
- }
-
-
- /**
- *
- * A convenience method which can be overridden so that there's no need to
- * call <code>super.init(config)</code>.
- *
- * <p>
- * Instead of overriding {@link #init(PortletConfig)}, simply override this
- * method and it will be called by
- * <code>GenericPortlet.init(PortletConfig config)</code>. The
- * <code>PortletConfig</code> object can still be retrieved via {@link
- * #getPortletConfig}.
- *
- * @exception PortletException
- * if an exception has occurred that interferes with the
- * portlet normal operation.
- * @exception UnavailableException
- * if the portlet is unavailable to perform init
- */
- public void init() throws PortletException {
- }
-
- /**
- * Called by the portlet container to allow the portlet to process an action
- * request. This method is called if the client request was originated by a
- * URL created (by the portlet) with the
- * <code>RenderResponse.createActionURL()</code> method.
- * <p>
- * The default implementation tries to dispatch to a method
- * annotated with <code>@ProcessAction</name> that matches the action parameter
- * value <code>ActionRequest.ACTION_NAME</code> or, if no
- * such method is found throws a <code>PortletException</code>.<br>
- * Note that the annotated methods needs to be public in order
- * to be allowed to be called by <code>GenericPortlet</code>.
-
- *
- * @param request
- * the action request
- * @param response
- * the action response
- * @exception PortletException
- * if the portlet cannot fulfilling the request
- * @exception UnavailableException
- * if the portlet is unavailable to process the action at
- * this time
- * @exception PortletSecurityException
- * if the portlet cannot fullfill this request because of
- * security reasons
- * @exception java.io.IOException
- * if the streaming causes an I/O problem
- */
- public void processAction(ActionRequest request, ActionResponse response) throws PortletException,
- java.io.IOException {
- String action = request.getParameter(ActionRequest.ACTION_NAME);
-
- try {
- // check if action is cached
- Method actionMethod = processActionHandlingMethodsMap.get(action);
- if (actionMethod != null) {
- actionMethod.invoke(this, request, response);
- return;
- }
- } catch (Exception e) {
- throw new PortletException(e);
- }
-
- // if no action processing method was found throw exc
- throw new PortletException("processAction method not implemented");
- }
-
- /**
- * The default implementation of this method sets the headers using the
- * <code>doHeaders</code> method, sets the title using the
- * <code>getTitle</code> method and invokes the <code>doDispatch</code>
- * method.
- * <p>
- * It also evaluates the <code>RENDER_PART</code> request attribute and if
- * set calls the <code>doHeaders, getNextPossiblePortletModes</code> and
- * <code>getTitle</code> methods for the <code>RENDER_HEADERS</code>
- * part and the <code>doDispatch</code> method for the
- * <code>RENDER_MARKUP</code> part.<br>
- * If the <code>RENDER_PART</code> request attribute is not set all of the
- * above methods will be called.
- *
- * @param request
- * the render request
- * @param response
- * the render response
- *
- * @exception PortletException
- * if the portlet cannot fulfilling the request
- * @exception UnavailableException
- * if the portlet is unavailable to perform render at this
- * time
- * @exception PortletSecurityException
- * if the portlet cannot fullfill this request because of
- * security reasons
- * @exception java.io.IOException
- * if the streaming causes an I/O problem
- *
- */
- public void render(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException {
- Object renderPartAttrValue = request.getAttribute(RenderRequest.RENDER_PART);
- if (renderPartAttrValue != null) {
- // streaming portal calling
- if (renderPartAttrValue.equals(RenderRequest.RENDER_HEADERS)) {
- doHeaders(request, response);
- Collection<PortletMode> nextModes = getNextPossiblePortletModes(request);
- if (nextModes != null)
- response.setNextPossiblePortletModes(nextModes);
- response.setTitle(getTitle(request));
- } else if (renderPartAttrValue.equals(RenderRequest.RENDER_MARKUP)) {
- doDispatch(request, response);
- } else {
- throw new PortletException("Unknown value of the 'javax.portlet.render_part' request attribute");
- }
- } else {
- // buffered portal calling
- doHeaders(request, response);
- Collection<PortletMode> nextModes = getNextPossiblePortletModes(request);
- if (nextModes != null)
- response.setNextPossiblePortletModes(nextModes);
- response.setTitle(getTitle(request));
- doDispatch(request, response);
- }
- }
-
- /**
- * Used by the render method to get the title.
- * <p>
- * The default implementation gets the title from the ResourceBundle of the
- * PortletConfig of the portlet. The title is retrieved using the
- * 'javax.portlet.title' resource name.
- * <p>
- * Portlets can overwrite this method to provide dynamic titles (e.g. based
- * on locale, client, and session information). Examples are:
- * <UL>
- * <LI>language-dependent titles for multi-lingual portals</li>
- * <LI>shorter titles for WAP phones</li>
- * <LI>the number of messages in a mailbox portlet</li>
- * </UL>
- *
- * @return the portlet title for this window
- * @throws java.lang.IllegalStateException
- * if no portlet config object is available
- */
- protected java.lang.String getTitle(RenderRequest request) {
- if (config == null)
- throw new java.lang.IllegalStateException(
- "Config is null, please ensure that your init(config) method calls super.init(config)");
-
- return config.getResourceBundle(request.getLocale()).getString("javax.portlet.title");
- }
-
- /**
- * The default implementation of this method routes the render request to:
- * <ol>
- * <li>method annotated with <code>@RenderMode</name> and the name of the
- * portlet mode</li>
- * <li>a set of helper methods depending on the current portlet mode the portlet
- * is currently in. These methods are:
- * <ul>
- * <li><code>doView</code> for handling <code>view</code> requests</li>
- * <li><code>doEdit</code> for handling <code>edit</code> requests</li>
- * <li><code>doHelp</code> for handling <code>help</code> requests</li>
- * </ul>
- * </li>
- * </ul>
- * <P>
- * If the window state of this portlet is <code>minimized</code>, this
- * method does not invoke any of the portlet mode rendering methods.
- * <p>
- * For handling custom portlet modes the portlet should either use the
- * <code>@RenderMode</code> annotation or override this
- * method. Note that the annotated methods needs to be public in order
- * to be allowed to be called by <code>GenericPortlet</code>.
- *
- * @param request
- * the render request
- * @param response
- * the render response
- *
- * @exception PortletException
- * if the portlet cannot fulfilling the request
- * @exception UnavailableException
- * if the portlet is unavailable to perform render at this
- * time
- * @exception PortletSecurityException
- * if the portlet cannot fullfill this request because of
- * security reasons
- * @exception java.io.IOException
- * if the streaming causes an I/O problem
- *
- * @see #doView(RenderRequest, RenderResponse)
- * @see #doEdit(RenderRequest, RenderResponse)
- * @see #doHelp(RenderRequest, RenderResponse)
- */
- protected void doDispatch(RenderRequest request, RenderResponse response) throws PortletException,
- java.io.IOException {
- WindowState state = request.getWindowState();
-
- if (!state.equals(WindowState.MINIMIZED)) {
- PortletMode mode = request.getPortletMode();
- // first look if there are methods annotated for
- // handling the rendering of this mode
- try {
- // check if mode is cached
- Method renderMethod = renderModeHandlingMethodsMap.get(mode.toString());
- if (renderMethod != null) {
- renderMethod.invoke(this, request, response);
- return;
- }
- } catch (Exception e) {
- throw new PortletException(e);
- }
-
- // if not, try the default doXYZ methods
- if (mode.equals(PortletMode.VIEW)) {
- doView(request, response);
- } else if (mode.equals(PortletMode.EDIT)) {
- doEdit(request, response);
- } else if (mode.equals(PortletMode.HELP)) {
- doHelp(request, response);
- } else {
- throw new PortletException("unknown portlet mode: " + mode);
- }
- }
- }
-
- /**
- * Helper method to serve up the mandatory <code>view</code> mode.
- * <p>
- * The default implementation throws an exception.
- *
- * @param request
- * the portlet request
- * @param response
- * the render response
- *
- * @exception PortletException
- * if the portlet cannot fulfilling the request
- * @exception UnavailableException
- * if the portlet is unavailable to perform render at this
- * time
- * @exception PortletSecurityException
- * if the portlet cannot fullfill this request because of
- * security reasons
- * @exception java.io.IOException
- * if the streaming causes an I/O problem
- *
- */
- protected void doView(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException {
- throw new PortletException("doView method not implemented");
- }
-
- /**
- * Helper method to serve up the <code>edit</code> mode.
- * <p>
- * The default implementation throws an exception.
- *
- * @param request
- * the portlet request
- * @param response
- * the render response
- *
- * @exception PortletException
- * if the portlet cannot fulfilling the request
- * @exception UnavailableException
- * if the portlet is unavailable to perform render at this
- * time
- * @exception PortletSecurityException
- * if the portlet cannot fullfill this request because of
- * security reasons
- * @exception java.io.IOException
- * if the streaming causes an I/O problem
- *
- */
- protected void doEdit(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException {
- throw new PortletException("doEdit method not implemented");
- }
-
- /**
- * Helper method to serve up the <code>help</code> mode.
- * <p>
- * The default implementation throws an exception.
- *
- * @param request
- * the portlet request
- * @param response
- * the render response
- *
- * @exception PortletException
- * if the portlet cannot fulfilling the request
- * @exception UnavailableException
- * if the portlet is unavailable to perform render at this
- * time
- * @exception PortletSecurityException
- * if the portlet cannot fullfill this request because of
- * security reasons
- * @exception java.io.IOException
- * if the streaming causes an I/O problem
- */
- protected void doHelp(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException {
- throw new PortletException("doHelp method not implemented");
- }
-
- /**
- * Returns the PortletConfig object of this portlet.
- *
- * @return the PortletConfig object of this portlet
- */
- public PortletConfig getPortletConfig() {
- return config;
- }
-
- /**
- * Called by the portlet container to indicate to a portlet that the portlet
- * is being taken out of service.
- * <p>
- * The default implementation does nothing.
- *
- */
- public void destroy() {
- // do nothing
- }
-
- // -------------------------------------------------------------------------
- // implement PortletConfig
- // -------------------------------------------------------------------------
-
- /**
- * Returns the name of this portlet.
- *
- * @return the portlet name
- *
- * @see PortletConfig#getPortletName()
- */
- public String getPortletName() {
- if (config == null)
- throw new java.lang.IllegalStateException(
- "Config is null, please ensure that your init(config) method calls super.init(config)");
-
- return config.getPortletName();
- }
-
- /**
- * Returns the <code>PortletContext</code> of the portlet application the
- * portlet is in.
- *
- * @return the portlet application context
- */
- public PortletContext getPortletContext() {
- if (config == null)
- throw new java.lang.IllegalStateException(
- "Config is null, please ensure that your init(config) method calls super.init(config)");
-
- return config.getPortletContext();
- }
-
- /**
- * Gets the resource bundle for the given locale based on the resource
- * bundle defined in the deployment descriptor with
- * <code>resource-bundle</code> tag or the inlined resources defined in
- * the deployment descriptor.
- *
- * @return the resource bundle for the given locale
- */
- public java.util.ResourceBundle getResourceBundle(java.util.Locale locale) {
- if (config == null)
- throw new java.lang.IllegalStateException(
- "Config is null, please ensure that your init(config) method calls super.init(config)");
-
- return config.getResourceBundle(locale);
- }
-
- /**
- * Returns a String containing the value of the named initialization * parameter, or null if the parameter does not exist.
- *
- * @param name
- * a <code>String</code> specifying the name of the
- * initialization parameter
- *
- * @return a <code>String</code> containing the value of the
- * initialization parameter
- *
- * @exception java.lang.IllegalArgumentException
- * if name is <code>null</code>.
- */
- public String getInitParameter(java.lang.String name) {
- if (config == null)
- throw new java.lang.IllegalStateException(
- "Config is null, please ensure that your init(config) method calls super.init(config)");
-
- return config.getInitParameter(name);
- }
-
- /**
- * Returns the names of the portlet initialization parameters as an
- * Enumeration of String objects, or an empty Enumeration if the portlet has
- * no initialization parameters.
- *
- * @return an <code>Enumeration</code> of <code>String</code> objects
- * containing the names of the portlet initialization parameters, or
- * an empty Enumeration if the portlet has no initialization
- * parameters.
- */
- public java.util.Enumeration<String> getInitParameterNames() {
- if (config == null)
- throw new java.lang.IllegalStateException(
- "Config is null, please ensure that your init(config) method calls super.init(config)");
-
- return config.getInitParameterNames();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.portlet.PortletConfig#getProcessingEventQNames()
- */
- public Enumeration<QName> getProcessingEventQNames() {
- if (config == null)
- throw new java.lang.IllegalStateException(
- "Config is null, please ensure that your init(config) method calls super.init(config)");
-
- return config.getProcessingEventQNames();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.portlet.PortletConfig#getPublishingEventQNames()
- */
- public Enumeration<QName> getPublishingEventQNames() {
- if (config == null)
- throw new java.lang.IllegalStateException(
- "Config is null, please ensure that your init(config) method calls super.init(config)");
-
- return config.getPublishingEventQNames();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see javax.portlet.PortletConfig#getSupportedLocales()
- */
- public Enumeration<Locale> getSupportedLocales() {
- if (config == null)
- throw new java.lang.IllegalStateException(
- "Config is null, please ensure that your init(config) method calls super.init(config)");
-
- return config.getSupportedLocales();
- }
-
- /* (non-Javadoc)
- * @see javax.portlet.PortletConfig#getContainerRuntimeOptions()
- */
- public Map<String, String[]> getContainerRuntimeOptions() {
- return config.getContainerRuntimeOptions();
- }
-
- // -------------------------------------------------------------------------
- // V 2.0 additions
- // -------------------------------------------------------------------------
-
- /**
- * Default resource serving.
- * <p>
- * The default implemention of this method is to call a
- * RequestDispatcher.foward with the ResourceID of the ResourceRequest.
- * <p>
- * If no ResourceID is set on the resource URL the default implementation
- * does nothing.
- *
- * @since 2.0
- */
- public void serveResource(ResourceRequest request, ResourceResponse response) throws PortletException, IOException {
- if (request.getResourceID() != null) {
- PortletRequestDispatcher rd = getPortletConfig().getPortletContext().getRequestDispatcher(
- request.getResourceID());
- if (rd != null)
- rd.forward(request, response);
- }
- }
-
- /**
- * The default implementation tries to dispatch to a method
- * annotated with <code>@ProcessEvent</name> that matches the
- * event name or, if no
- * such method is found just sets the current render parameters on
- * the response.<br>
- * Note that the annotated methods needs to be public in order
- * to be allowed to be called by <code>GenericPortlet</code>.
- *
- * @see javax.portlet.EventPortlet#processEvent(javax.portlet.EventRequest,
- * javax.portlet.EventResponse)
- * @since 2.0
- */
- public void processEvent(EventRequest request, EventResponse response) throws PortletException, IOException {
- String eventName = request.getEvent().getQName().toString();
-
- try {
- // check for exact match
- Method eventMethod = processEventHandlingMethodsMap.get(eventName);
- if (eventMethod != null) {
- eventMethod.invoke(this, request, response);
- return;
- } else {
- // Search for the longest possible matching wildcard annotation
- int endPos = eventName.indexOf('}');
- int dotPos = eventName.lastIndexOf('.');
- while (dotPos > endPos) {
- String wildcardLookup = eventName.substring(0, dotPos + 1);
- eventMethod = processEventHandlingMethodsMap.get(wildcardLookup);
- if (eventMethod != null) {
- eventMethod.invoke(this, request, response);
- return;
- }
- if (dotPos == 0) {
- break;
- }
- dotPos = eventName.lastIndexOf('.', dotPos - 1);
- }
- }
- } catch (Exception e) {
- throw new PortletException(e);
- }
-
- // if no event processing method was found just keep render params
- response.setRenderParameters(request);
- }
-
- /**
- * Used by the render method to set the response properties and headers.
- * <p>
- * The portlet should override this method and set its response header using
- * this method in order to ensure that they are set before anything is
- * written to the output stream.
- * <p>
- * The default implemention of this method is emtpy.
- *
- * @param request the render request
- * @param response the render response
- * @since 2.0
- */
- protected void doHeaders(RenderRequest request, RenderResponse response) {
- return;
- }
-
- /**
- * Used by the render method to set the next possible portlet modes.
- * <p>
- * The portlet should override this method and set the next possible portlet
- * modes using this method in order to ensure that they are set before
- * anything is written to the output stream.
- * <p>
- * The default implemention of this method returns <code>null</code>.
- *
- * @since 2.0
- */
- protected java.util.Collection<PortletMode> getNextPossiblePortletModes(RenderRequest request) {
- return null;
- }
-
- /**
- * Returns the names of the public render parameters supported by the
- * portlet as an <code>Enumeration</code> of String objects, or an empty
- * <code>Enumeration</code> if the portlet has no public render
- * parameters.
- *
- * @return an <code>Enumeration</code> of <code>String</code> objects
- * containing the names of the public render parameters, or an empty
- * <code>Enumeration</code> if the portlet does not define any
- * public render parameters.
- *
- * @see javax.portlet.PortletConfig#getPublicRenderParameterNames()
- */
- public Enumeration<String> getPublicRenderParameterNames() {
- if (config == null)
- throw new java.lang.IllegalStateException(
- "Config is null, please ensure that your init(config) method calls super.init(config)");
-
- return config.getPublicRenderParameterNames();
- }
-
- /**
- * Returns the default namespace for events and public parameters. This
- * namespace is defined in the portlet deployment descriptor with the
- * <code>default-namespace</code> element.
- * <p>
- * If no default namespace is defined in the portlet deployment descriptor
- * this methods returns the XML default namespace
- * <code>XMLConstants.NULL_NS_URI</code>.
- *
- * @return the default namespace defined in the portlet deployment
- * descriptor, or <code>XMLConstants.NULL_NS_URI</code> is non is
- * defined.
- *
- * @see javax.portlet.PortletConfig#getDefaultNamespace()
- */
- public String getDefaultNamespace() {
- if (config == null)
- throw new java.lang.IllegalStateException(
- "Config is null, please ensure that your init(config) method calls super.init(config)");
-
- return config.getDefaultNamespace();
- }
-
- private void cacheAnnotatedMethods() {
- // cache all annotated and visible public methods
- for (Method method : this.getClass().getMethods()) {
- Annotation[] annotations = method.getAnnotations();
- if (annotations != null) {
- for (Annotation annotation : annotations) {
- Class<? extends Annotation> annotationType = annotation.annotationType();
- if (ProcessAction.class.equals(annotationType)) {
- String name = ((ProcessAction) annotation).name();
- if (name != null && name.length() > 0)
- processActionHandlingMethodsMap.put(name, method);
- } else if (ProcessEvent.class.equals(annotationType)) {
- String qname = ((ProcessEvent) annotation).qname();
- if (qname == null || qname.length() <= 0) {
- if (config == null)
- throw new java.lang.IllegalStateException(
- "Config is null, please ensure that your init(config) method calls super.init(config)");
-
- String name = ((ProcessEvent) annotation).name();
- if (name != null && name.length() > 0) {
- qname = new QName(config.getDefaultNamespace(), name).toString();
- processEventHandlingMethodsMap.put(qname, method);
- }
- } else
- processEventHandlingMethodsMap.put(qname, method);
- } else if (RenderMode.class.equals(annotationType)) {
- String name = ((RenderMode) annotation).name();
- if (name != null && name.length() > 0)
- renderModeHandlingMethodsMap.put(name.toLowerCase(), method);
- }
- }
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/4fc38552/portlet-api_2.0_spec/src/main/java/javax/portlet/MimeResponse.java
----------------------------------------------------------------------
diff --git a/portlet-api_2.0_spec/src/main/java/javax/portlet/MimeResponse.java b/portlet-api_2.0_spec/src/main/java/javax/portlet/MimeResponse.java
deleted file mode 100644
index ee16254..0000000
--- a/portlet-api_2.0_spec/src/main/java/javax/portlet/MimeResponse.java
+++ /dev/null
@@ -1,423 +0,0 @@
-/* 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>MimeResponse</CODE> defines the base interface to assist a
- * portlet in returning MIME content.
- *
- * @since 2.0
- */
-public interface MimeResponse extends PortletResponse {
-
- /**
- * Property to set the expiration time in seconds for this response using
- * the <code>setProperty</code> method intended to be used in
- * forwarded or included servlets/JSPs.
- * <P>
- * If the expiration value is set to <code>0</code>, caching is disabled for this
- * portlet; if the value is set to <code>-1</code>, the cache does not expire.
- * <p>
- * A default can be defined in the portlet deployment descriptor
- * with the <code>expiration-cache<code> tag, otherwise it is <code>0</code>.
- * <p>
- * Non-integer values are treated as <code>0</code>.
- * <p>
- * The value is <code>"portlet.expiration-cache"</code>.
- *
- * @see CacheControl
- */
- public static final String EXPIRATION_CACHE = "portlet.expiration-cache";
-
- /**
- * Property to set the cache scope for this response using the
- * <code>setProperty</code> method intended to be used in
- * forwarded or included servlets/JSPs.
- * <P>
- * Predefined cache scopes are: <code>PUBLIC_SCOPE</code> and <code>PRIVATE_SCOPE</code>.
- * <p>
- * A default can be defined in the portlet deployment descriptor
- * with the <code>cache-scope<code> tag, otherwise it is <code>PRIVATE_SCOPE</code>.
- * <p>
- * Values that are not either <code>PUBLIC_SCOPE</code> or <code>PRIVATE_SCOPE</code>
- * are treated as <code>PRIVATE_SCOPE</code>.
- * <p>
- * The value is <code>"portlet.cache-scope"</code>.
- *
- * @see CacheControl
- * @since 2.0
- */
- public static final String CACHE_SCOPE = "portlet.cache-scope";
-
- /**
- * Public cache scope, indicating that the cache entry can be shared across
- * users. The value is <code>"portlet.public-scope"</code>.
- *
- * @since 2.0
- */
- public static final String PUBLIC_SCOPE = "portlet.public-scope";
-
- /**
- * Private cache scope, indicating that the cache entry must not be shared
- * across users. The value is <code>"portlet.private-scope"</code>.
- *
- * @since 2.0
- */
- public static final String PRIVATE_SCOPE = "portlet.private-scope";
-
- /**
- * Property to tell the portlet container the new ETag for this response
- * intended to be used in forwarded or included servlets/JSPs.
- * <p>
- * This property needs to be set using the <code>setProperty</code> method.
- * <P>
- * The value is <code>"portlet.ETag "</code>.
- *
- * @see CacheControl
- * @since 2.0
- */
- public static final String ETAG = "portlet.ETag";
-
- /**
- * Property to tell the portlet container to use the cached markup
- * for the validation token provided in the request. This property
- * needs to be set using the <code>setProperty</code> method with a non-null
- * value and is intended to be used in forwarded or included servlets/JSPs.
- * The value itself is not evaluated.
- * <P>
- * The value is <code>"portlet.use-cached-content "</code>.
- *
- * @see CacheControl
- * @since 2.0
- */
- public static final String USE_CACHED_CONTENT = "portlet.use-cached-content";
-
-
- /**
- * Property intended to be a hint to the portal application that the returned
- * content is completely namespaced.
- * This includes all markup id elements, form fields, etc.
- * One example where this is might be used is for portal applications that
- * are form-based and thus need to re-write any forms included in the portlet
- * markup.
- * <p>
- * This property needs to be set using the <code>setProperty</code> method with a non-null
- * value. The value itself is not evaluated.
- * <p>
- * The value is <code>"X-JAVAX-PORTLET-NAMESPACED-RESPONSE"</code>.
- *
- * @since 2.0
- */
- public static final String NAMESPACED_RESPONSE = "X-JAVAX-PORTLET-NAMESPACED-RESPONSE";
-
- /**
- * Property intended to be a hint to the portal application that the provided
- * DOM element should be added to the markup head section of the response to the
- * client.
- * <p>
- * Support for this property is optional and the portlet can verify if the
- * calling portal supports this property via the <code>MARKUP_HEAD_ELEMENT_SUPPORT</code>
- * property on the <code>PortalContext</code>.
- * <p>
- * Even if the calling portal support this property delivery of the DOM
- * element to the client cannot be guaranteed, e.g. due to possible security
- * rules of the portal application or elements that conflict with the
- * response of other portlets.
- * <p>
- * This property needs to be set using the
- * <code>setProperty(String key,org.w3c.dom.Element element)</code>
- * method.
- * <p>
- * The value is <code>"javax.portlet.markup.head.element"</code>.
- *
- * @since 2.0
- */
- public static final String MARKUP_HEAD_ELEMENT = "javax.portlet.markup.head.element";
-
-
- /**
- * Returns the MIME type that can be used to contribute markup to the render
- * response.
- * <p>
- * If no content type was set previously using the {@link #setContentType}
- * method this method returns <code>null</code>.
- *
- * @see #setContentType
- *
- * @return the MIME type of the response, or <code>null</code> if no
- * content type is set
- */
- public String getContentType();
-
- /**
- * Sets the MIME type for the response. The portlet should set the
- * content type before calling {@link #getWriter} or
- * {@link #getPortletOutputStream}. If the content type is not
- * the {@link PortletRequest#getResponseContentType} value is
- * set as response content type by the portlet container.
- * <p>
- * Calling <code>setContentType</code> after <code>getWriter</code> or
- * <code>getOutputStream</code> does not change the content type.
- * <p>
- *
- * @param type
- * the content MIME type
- *
- * @see PortletRequest#getResponseContentTypes
- * @see #getContentType
- */
- public void setContentType(String type);
-
- /**
- * Returns the name of the charset used for the MIME body sent in this
- * response.
- *
- * <p>
- * See <a href="http://ds.internic.net/rfc/rfc2045.txt">RFC 2047</a> for
- * more information about character encoding and MIME.
- *
- * @return a <code>String</code> specifying the name of the charset, for
- * example, <code>ISO-8859-1</code>
- *
- */
- public String getCharacterEncoding();
-
- /**
- * Returns a PrintWriter object that can send character text to the portal.
- * <p>
- * Before calling this method the content type of the render response should
- * be set using the {@link #setContentType} method.
- * <p>
- * Either this method or {@link #getPortletOutputStream} may be called to
- * write the body, not both.
- *
- * @return a <code>PrintWriter</code> object that can return character
- * data to the portal
- *
- * @exception java.io.IOException
- * if an input or output exception occurred
- * @exception java.lang.IllegalStateException
- * if the <code>getPortletOutputStream</code> method has
- * been called on this response.
- *
- * @see #setContentType
- * @see #getPortletOutputStream
- */
- public java.io.PrintWriter getWriter() throws java.io.IOException;
-
- /**
- * Returns the locale assigned to the response.
- *
- * @return Locale of this response
- */
- public java.util.Locale getLocale();
-
- /**
- * Sets the preferred buffer size for the body of the response. The portlet
- * container will use a buffer at least as large as the size requested.
- * <p>
- * This method must be called before any response body content is written;
- * if content has been written, or the portlet container does not support
- * buffering, this method may throw an <code>IllegalStateException</code>.
- *
- * @param size
- * the preferred buffer size
- *
- * @exception java.lang.IllegalStateException
- * if this method is called after content has been written,
- * or the portlet container does not support buffering
- *
- * @see #getBufferSize
- * @see #flushBuffer
- * @see #isCommitted
- * @see #reset
- */
- public void setBufferSize(int size);
-
- /**
- * Returns the actual buffer size used for the response. If no buffering is
- * used, this method returns 0.
- *
- * @return the actual buffer size used
- *
- * @see #setBufferSize
- * @see #flushBuffer
- * @see #isCommitted
- * @see #reset
- */
- public int getBufferSize();
-
- /**
- * Forces any content in the buffer to be written to the underlying output stream. A call to
- * this method automatically commits the response.
- *
- * @exception java.io.IOException
- * if an error occurred when writing the output
- *
- * @see #setBufferSize
- * @see #getBufferSize
- * @see #isCommitted
- * @see #reset
- */
- public void flushBuffer() throws java.io.IOException;
-
- /**
- * Clears the content of the underlying buffer in the response without
- * clearing properties set. If the response has been committed, this method
- * throws an <code>IllegalStateException</code>.
- *
- * @exception IllegalStateException
- * if this method is called after response is committed
- *
- * @see #setBufferSize
- * @see #getBufferSize
- * @see #isCommitted
- * @see #reset
- */
- public void resetBuffer();
-
- /**
- * Returns a boolean indicating if the response has been committed.
- *
- * @return a boolean indicating if the response has been committed
- *
- * @see #setBufferSize
- * @see #getBufferSize
- * @see #flushBuffer
- * @see #reset
- */
- public boolean isCommitted();
-
- /**
- * Clears any data that exists in the buffer as well as the properties set.
- * If the response has been committed, this method throws an
- * <code>IllegalStateException</code>.
- *
- * @exception java.lang.IllegalStateException
- * if the response has already been committed
- *
- * @see #setBufferSize
- * @see #getBufferSize
- * @see #flushBuffer
- * @see #isCommitted
- */
- public void reset();
-
- /**
- * Returns a <code>OutputStream</code> suitable for writing binary data in
- * the response. The portlet container does not encode the binary data.
- * <p>
- * Before calling this method the content type of the render response must
- * be set using the {@link #setContentType} method.
- * <p>
- * Calling <code>flush()</code> on the OutputStream commits the response.
- * <p>
- * Either this method or {@link #getWriter} may be called to write the body,
- * not both.
- *
- * @return a <code>OutputStream</code> for writing binary data
- *
- * @exception java.lang.IllegalStateException
- * if the <code>getWriter</code> method has been called on
- * this response.
- *
- * @exception java.io.IOException
- * if an input or output exception occurred
- *
- * @see #setContentType
- * @see #getWriter
- */
- public java.io.OutputStream getPortletOutputStream()
- throws java.io.IOException;
-
- /**
- * Creates a portlet URL targeting the portlet. If no portlet mode, window
- * state or security modifier is set in the PortletURL the current values
- * are preserved. If a request is triggered by the PortletURL, it results in
- * a render request.
- * <p>
- * The returned URL can be further extended by adding portlet-specific
- * parameters and portlet modes and window states.
- * <p>
- * The created URL will per default not contain any parameters of the
- * current render request.
- *
- * @return a portlet render URL
- */
- public PortletURL createRenderURL();
-
- /**
- * Creates a portlet URL targeting the portlet. If no portlet mode, window
- * state or security modifier is set in the PortletURL the current values
- * are preserved. If a request is triggered by the PortletURL, it results in
- * an action request.
- * <p>
- * The returned URL can be further extended by adding portlet-specific
- * parameters and portlet modes and window states.
- * <p>
- * The created URL will per default not contain any parameters of the
- * current render request.
- *
- * @return a portlet action URL
- */
- public PortletURL createActionURL();
-
- /**
- * Creates a portlet URL targeting the portlet. If no security modifier is
- * set in the PortletURL the current values are preserved. The current
- * render parameters, portlet mode and window state are preserved.
- * <p>
- * If a request is triggered by the PortletURL, it results in a serve
- * resource request of the <code>ResourceServingPortlet</code> interface.
- * <p>
- * The returned URL can be further extended by adding portlet-specific
- * parameters .
- * <p>
- * The created URL will per default contain the current
- * cacheability setting of the parent resource.
- * If no parent resource is available, <code>PAGE</code> is the default.
- *
- * @since 2.0
- * @return a portlet resource URL
- */
- public ResourceURL createResourceURL();
-
-
-
- /**
- * Returns the cache control object allowing to set
- * specific cache settings valid for the markup
- * returned in this response.
- *
- * @return Cache control for the current response.
- *
- * @since 2.0
- */
- public CacheControl getCacheControl();
-
-
-
-
-}
http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/4fc38552/portlet-api_2.0_spec/src/main/java/javax/portlet/PortalContext.java
----------------------------------------------------------------------
diff --git a/portlet-api_2.0_spec/src/main/java/javax/portlet/PortalContext.java b/portlet-api_2.0_spec/src/main/java/javax/portlet/PortalContext.java
deleted file mode 100644
index 9fa9e98..0000000
--- a/portlet-api_2.0_spec/src/main/java/javax/portlet/PortalContext.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/* 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>PortalContext</CODE> interface gives the portlet
- * the ability to retrieve information about the portal calling this portlet.
- * <p>
- * The portlet can only read the <CODE>PortalContext</CODE> data.
- */
-public interface PortalContext
-{
- /**
- * Property indicating if the portal application supports the
- * <code>MimeResponse</code> property <code>MARKUP_HEAD_ELEMENT</code>.
- * <p>
- * A non-null value indicates that the portal application supports
- * the <code>MARKUP_HEAD_ELEMENT</code> property.
- * <p>
- * The value is <code>"javax.portlet.markup.head.element.support"</code>.
- *
- * @since 2.0
- */
- public static final String MARKUP_HEAD_ELEMENT_SUPPORT = "javax.portlet.markup.head.element.support";
-
-
- /**
- * Returns the portal property with the given name,
- * or a <code>null</code> if there is
- * no property by that name.
- *
- * @param name property name
- *
- * @return portal property with key <code>name</code>
- *
- * @exception java.lang.IllegalArgumentException
- * if name is <code>null</code>.
- */
-
- public java.lang.String getProperty(java.lang.String name);
-
-
- /**
- * Returns all portal property names, or an empty
- * <code>Enumeration</code> if there are no property names.
- *
- * @return All portal property names as an
- * <code>Enumeration</code> of <code>String</code> objects
- */
- public java.util.Enumeration<String> getPropertyNames();
-
-
- /**
- * Returns all supported portlet modes by the portal
- * as an enumeration of <code>PortletMode</code> objects.
- * <p>
- * The portlet modes must at least include the
- * standard portlet modes <code>EDIT, HELP, VIEW</code>.
- *
- * @return All supported portal modes by the portal
- * as an enumeration of <code>PortletMode</code> objects.
- */
-
- public java.util.Enumeration<PortletMode> getSupportedPortletModes();
-
-
- /**
- * Returns all supported window states by the portal
- * as an enumeration of <code>WindowState</code> objects.
- * <p>
- * The window states must at least include the
- * standard window states <code> MINIMIZED, NORMAL, MAXIMIZED</code>.
- *
- * @return All supported window states by the portal
- * as an enumeration of <code>WindowState</code> objects.
- */
-
- public java.util.Enumeration<WindowState> getSupportedWindowStates();
-
-
- /**
- * Returns information about the portal like vendor, version, etc.
- * <p>
- * The form of the returned string is <I>servername/versionnumber</I>. For
- * example, the reference implementation Pluto may return the string
- * <CODE>Pluto/1.0</CODE>.
- * <p>
- * The portlet container may return other optional information after the
- * primary string in parentheses, for example, <CODE>Pluto/1.0
- * (JDK 1.3.1; Windows NT 4.0 x86)</CODE>.
- *
- * @return a <CODE>String</CODE> containing at least the portal name and version number
- */
-
- public java.lang.String getPortalInfo();
-}
http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/4fc38552/portlet-api_2.0_spec/src/main/java/javax/portlet/Portlet.java
----------------------------------------------------------------------
diff --git a/portlet-api_2.0_spec/src/main/java/javax/portlet/Portlet.java b/portlet-api_2.0_spec/src/main/java/javax/portlet/Portlet.java
deleted file mode 100644
index 9842ecf..0000000
--- a/portlet-api_2.0_spec/src/main/java/javax/portlet/Portlet.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/* 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;
-
-import java.io.IOException;
-
-
-/**
- * The <CODE>Portlet</CODE> interface is used by the portlet container to
- * invoke the portlets. Every portlet has to implement this interface,
- * either by directly implementing it, or by using an existing class
- * implementing the Portlet interface.
- * <P>
- * A portlet is a Java technology-based web component. It is managed by the portlet container and
- * processes requests and generates dynamic content as response. Portlets are used by portals as
- * pluggable user interface components.
- * <p>
- * The content generated by a portlet is called a fragment. A fragment is a piece of
- * markup (e.g. HTML, XHTML, WML) adhering to certain rules and can be aggregated
- * with other fragments into a complete document. The content of a portlet is normally
- * aggregated with the content of other portlets into the portal page.
- * <P>
- * The portlet container instantiates portlets, manages their lifecycle
- * and invoking them to process requests. The lifecycle consists of:
- * <ul>
- * <li>initializing the portlet using using the <code>init</code> method
- * <li>request processsing
- * <li>taking the portlet out of service using the <code>destroy</code> method
- * </ul>
- * <p>
- * Request processing is divided into two types:
- * <ul>
- * <li>action requests handled through the <code>processAction</code> method,
- * to perform actions targeted to the portlet
- * <li>render requests handled through the <code>render</code> method,
- * to perform the render operation
- * </ul>
- */
-public interface Portlet
-{
-
-
- /**
- * Called by the portlet container to indicate to a portlet that the
- * portlet is being placed into service.
- *
- * <p>The portlet container calls the <code>init</code>
- * method exactly once after instantiating the portlet.
- * The <code>init</code> method must complete successfully
- * before the portlet can receive any requests.
- *
- * <p>The portlet container cannot place the portlet into service
- * if the <code>init</code> method
- * <ol>
- * <li>Throws a <code>PortletException</code>
- * <li>Does not return within a time period defined by the portlet container.
- * </ol>
- *
- *
- * @param config a <code>PortletConfig</code> object
- * containing the portlet's
- * configuration and initialization parameters
- *
- * @exception PortletException if an exception has occurred that
- * interferes with the portlet's normal
- * operation.
- * @exception UnavailableException if the portlet cannot perform the initialization at this time.
- *
- *
- */
-
- public void init(PortletConfig config) throws PortletException;
-
-
-
-
- /**
- * Called by the portlet container to allow the portlet to process
- * an action request. This method is called if the client request was
- * originated by a URL created (by the portlet) with the
- * <code>RenderResponse.createActionURL()</code> method.
- * <p>
- * Typically, in response to an action request, a portlet updates state
- * based on the information sent in the action request parameters.
- * In an action the portlet may:
- * <ul>
- * <li>issue a redirect
- * <li>change its window state
- * <li>change its portlet mode
- * <li>modify its persistent state
- * <li>set render parameters
- * </ul>
- * <p>
- * A client request triggered by an action URL translates into one
- * action request and many render requests, one per portlet in the portal page.
- * The action processing must be finished before the render requests
- * can be issued.
- *
- * @param request
- * the action request
- * @param response
- * the action response
- * @exception PortletException
- * if the portlet has problems fulfilling the
- * request
- * @exception UnavailableException
- * if the portlet is unavailable to process the action at this time
- * @exception PortletSecurityException
- * if the portlet cannot fullfill this request because of security reasons
- * @exception IOException
- * if the streaming causes an I/O problem
- */
- public void processAction (ActionRequest request, ActionResponse response)
- throws PortletException, java.io.IOException;
-
-
-
- /**
- * Called by the portlet container to allow the portlet to generate
- * the content of the response based on its current state.
- *
- * @param request
- * the render request
- * @param response
- * the render response
- *
- * @exception PortletException
- * if the portlet has problems fulfilling the
- * rendering request
- * @exception UnavailableException
- * if the portlet is unavailable to perform render at this time
- * @exception PortletSecurityException
- * if the portlet cannot fullfill this request because of security reasons
- * @exception java.io.IOException
- * if the streaming causes an I/O problem
- */
-
- public void render (RenderRequest request, RenderResponse response)
- throws PortletException, java.io.IOException;
-
-
- /**
- *
- * Called by the portlet container to indicate to a portlet that the
- * portlet is being taken out of service.
- * <p>
- * Before the portlet container calls the destroy method, it should
- * allow any threads that are currently processing requests within
- * the portlet object to complete execution. To avoid
- * waiting forever, the portlet container can optionally wait for
- * a predefined time before destroying the portlet object.
- *
- * <p>This method enables the portlet to do the following:
- * <ul>
- * <li>clean up any resources that it holds (for example, memory,
- * file handles, threads)
- * <li>make sure that any persistent state is
- * synchronized with the portlet current state in memory.
- * </ul>
- */
-
- public void destroy();
-}
-
http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/4fc38552/portlet-api_2.0_spec/src/main/java/javax/portlet/PortletConfig.java
----------------------------------------------------------------------
diff --git a/portlet-api_2.0_spec/src/main/java/javax/portlet/PortletConfig.java b/portlet-api_2.0_spec/src/main/java/javax/portlet/PortletConfig.java
deleted file mode 100644
index 67874c1..0000000
--- a/portlet-api_2.0_spec/src/main/java/javax/portlet/PortletConfig.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/* 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>PortletConfig</CODE> interface provides the portlet with
- * its configuration. The configuration holds information about the
- * portlet that is valid for all users. The configuration is retrieved
- * from the portlet definition in the deployment descriptor.
- * The portlet can only read the configuration data.
- * <p>
- * The configuration information contains the portlet name, the portlet
- * initialization parameters, the portlet resource bundle and the portlet
- * application context.
- *
- * @see Portlet
- */
-public interface PortletConfig
-{
-
-
- /**
- * Returns the name of the portlet.
- * <P>
- * The name may be provided via server administration, assigned in the
- * portlet application deployment descriptor with the <code>portlet-name</code>
- * tag.
- *
- * @return the portlet name
- */
-
- public String getPortletName ();
-
-
- /**
- * Returns the <code>PortletContext</code> of the portlet application
- * the portlet is in.
- *
- * @return a <code>PortletContext</code> object, used by the
- * caller to interact with its portlet container
- *
- * @see PortletContext
- */
-
- public PortletContext getPortletContext ();
-
-
- /**
- * Gets the resource bundle for the given locale based on the
- * resource bundle defined in the deployment descriptor
- * with <code>resource-bundle</code> tag or the inlined resources
- * defined in the deployment descriptor.
- *
- * @param locale the locale for which to retrieve the resource bundle
- *
- * @return the resource bundle for the given locale
- *
- */
-
- public java.util.ResourceBundle getResourceBundle(java.util.Locale locale);
-
-
- /**
- * Returns a String containing the value of the named initialization parameter,
- * or null if the parameter does not exist.
- *
- * @param name a <code>String</code> specifying the name
- * of the initialization parameter
- *
- * @return a <code>String</code> containing the value
- * of the initialization parameter
- *
- * @exception java.lang.IllegalArgumentException
- * if name is <code>null</code>.
- */
-
- public String getInitParameter(java.lang.String name);
-
-
- /**
- * Returns the names of the portlet initialization parameters as an
- * <code>Enumeration</code> of String objects, or an empty <code>Enumeration</code> if the
- * portlet has no initialization parameters.
- *
- * @return an <code>Enumeration</code> of <code>String</code>
- * objects containing the names of the portlet
- * initialization parameters, or an empty <code>Enumeration</code> if the
- * portlet has no initialization parameters.
- */
-
- public java.util.Enumeration<String> getInitParameterNames();
-
-
- /**
- * Returns the names of the public render parameters supported by the portlet
- * as an <code>Enumeration</code> of <code>String</code> objects,
- * or an empty <code>Enumeration</code> if the
- * portlet has not defined public render parameters.
- * <p>
- * Public render parameters are defined in the portlet deployment descriptor
- * with the <code>supported-public-render-parameter</code> element.
- *
- * @return an <code>Enumeration</code> of <code>String</code>
- * objects containing the names of the public
- * render parameters, or an empty <code>Enumeration</code> if the
- * portlet has not defined support for any public render parameters
- * in the portlet deployment descriptor.
- * @since 2.0
- */
-
- public java.util.Enumeration<String> getPublicRenderParameterNames();
-
-
- /**
- * Returns the default namespace for events and public render parameters.
- * This namespace is defined in the portlet deployment descriptor
- * with the <code>default-namespace</code> element.
- * <p>
- * If no default namespace is defined in the portlet deployment
- * descriptor this methods returns the XML default namespace
- * <code>XMLConstants.NULL_NS_URI</code>.
- *
- * @return the default namespace defined in the portlet deployment
- * descriptor, or <code>XMLConstants.NULL_NS_URI</code> is non is
- * defined.
- * @since 2.0
- */
- public java.lang.String getDefaultNamespace();
-
-
- /**
- * Returns the QNames of the publishing events supported by the portlet
- * as an <code>Enumeration</code> of <code>QName</code> objects,
- * or an empty <code>Enumeration</code> if the
- * portlet has not defined any publishing events.
- * <p>
- * Publishing events are defined in the portlet deployment descriptor
- * with the <code>supported-publishing-event</code> element.
- * <p>
- * Note that this call does not return any events published that have not been
- * declared in the deployment descriptor as supported.
- * <p>
- * If the event was defined using the <code>name</code> element instead of
- * the <code>qname</code> element the defined default namespace
- * is added as namespace for the returned QName.
- *
- * @return an <code>Enumeration</code> of <code>QName</code>
- * objects containing the names of the publishing events,
- * or an empty <code>Enumeration</code> if the
- * portlet has not defined any support for publishing events in
- * the deployment descriptor.
- * @since 2.0
- */
- public java.util.Enumeration<javax.xml.namespace.QName> getPublishingEventQNames();
-
-
- /**
- * Returns the QNames of the processing events supported by the portlet
- * as an <code>Enumeration</code> of <code>QName</code> objects,
- * or an empty <code>Enumeration</code> if the
- * portlet has not defined any processing events.
- * <p>
- * Processing events are defined in the portlet deployment descriptor
- * with the <code>supported-processing-event</code> element.
- * <p>
- * If the event was defined using the <code>name</code> element instead of
- * the <code>qname</code> element the defined default namespace
- * is added as namespace for the returned QName.
- *
- * @return an <code>Enumeration</code> of <code>QName</code>
- * objects containing the names of the processing events,
- * or an empty <code>Enumeration</code> if the
- * portlet has not defined any support for processing events in
- * the deployment descriptor.
- * @since 2.0
- */
- public java.util.Enumeration<javax.xml.namespace.QName> getProcessingEventQNames();
-
- /**
- * Returns the locales supported by the portlet
- * as an <code>Enumeration</code> of <code>Locale</code> objects,
- * or an empty <code>Enumeration</code> if the
- * portlet has not defined any supported locales.
- * <p>
- * Supported locales are defined in the portlet deployment descriptor
- * with the <code>supported-locale</code> element.
- *
- * @return an <code>Enumeration</code> of <code>Locale</code>
- * objects containing the supported locales,
- * or an empty <code>Enumeration</code> if the
- * portlet has not defined any supported locales in
- * the deployment descriptor.
- * @since 2.0
- */
- public java.util.Enumeration<java.util.Locale> getSupportedLocales();
-
- /**
- * Returns the container runtime options
- * and values for this portlet.
- * <p>
- * The portlet can set container runtime
- * options in the <code>portlet.xml</code> via the
- * <code>container-runtime-option</code> element with a name and a
- * value on the application and portlet level.<br>
- * If a container runtime option is set on the portlet application
- * level and on the portlet level with the same name the setting
- * on the portlet level takes precedence and overwrites the one
- * set on the portal application level.
- * <p>
- * The map returned from this method will provide the subset the
- * portlet container supports of the options the portlet has specified
- * in the <code>portlet.xml</code>. Options that the portlet container
- * does not support will not be returned in this map.
- * <p>
- * The map will contain name of the runtime option as key of type String
- * and the runtime options as values of type String array (<code>String[]</code>)
- * with the values specified in the <code>portlet.xml</code> deployment descriptor.
- *
- * @since 2.0
- *
- * @return an immutable <code>Map</code> containing portlet
- * container runtime options names as keys and the
- * container runtime values as map values, or an empty <code>Map</code>
- * if no portlet container runtime options are set
- * in the <code>portlet.xml</code> or supported by this portlet container.
- * The keys in the map are of type String. The values in the map are of type
- * String array (<code>String[]</code>).
- */
- public java.util.Map<String, String[]> getContainerRuntimeOptions();
-}
-
http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/4fc38552/portlet-api_2.0_spec/src/main/java/javax/portlet/PortletContext.java
----------------------------------------------------------------------
diff --git a/portlet-api_2.0_spec/src/main/java/javax/portlet/PortletContext.java b/portlet-api_2.0_spec/src/main/java/javax/portlet/PortletContext.java
deleted file mode 100644
index 8190c4a..0000000
--- a/portlet-api_2.0_spec/src/main/java/javax/portlet/PortletContext.java
+++ /dev/null
@@ -1,469 +0,0 @@
-/* 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;
-
-import java.net.MalformedURLException;
-
-
-
-
-/**
- * The <CODE>PortletContext</CODE> interface defines a portlet view
- * of the portlet container.
- * The <CODE>PortletContext</CODE> also makes resources available
- * to the portlet. Using the context, a portlet can access
- * the portlet log, and obtain URL references to resources.
- *
- * <p>There is one context per "portlet application" per Java Virtual Machine. (A
- * "portlet application" is a collection of portlets, servlets, and content installed
- * under a specific subset of the server URL namespace, such as <code>/catalog</code>.
- * They are possibly installed via a <code>.war</code> file.)
- * As a web application, a portlet application also has a servlet context.
- * The portlet context leverages most of its functionality from the
- * servlet context of the portlet application.
- * <p>
- * Attributes stored in the context are global for <I>all</I> users and <I>all</I>
- * components in the portlet application.
- * <p>
- * In the case of a web
- * application marked "distributed" in its deployment descriptor, there will
- * be one context instance for each virtual machine. In this situation, the
- * context cannot be used as a location to share global information (because
- * the information is not truly global). Use an external resource, such as
- * a database to achieve sharing on a global scope.
- */
-public interface PortletContext
-{
-
- /**
- * Returns the name and version of the portlet container in which the
- * portlet is running.
- *
- * <P>
- * The form of the returned string is <code>containername/versionnumber</code>.
- *
- *
- * @return the string containing at least name and version number
- */
-
- public String getServerInfo ();
-
- /**
- * Returns a {@link PortletRequestDispatcher} object that acts
- * as a wrapper for the resource located at the given path.
- * A <code>PortletRequestDispatcher</code> object can be used include the
- * resource in a response. The resource can be dynamic or static.
- *
- * <p>The pathname must begin with a slash (<code> / </code>) and is interpreted as relative
- * to the current context root.
- *
- * <p>This method returns <code>null</code> if the <code>PortletContext</code>
- * cannot return a <code>PortletRequestDispatcher</code>
- * for any reason.
- *
- *
- * @param path a <code>String</code> specifying the pathname
- * to the resource
- * @return a <code>PortletRequestDispatcher</code> object
- * that acts as a wrapper for the resource
- * at the specified path.
- * @see PortletRequestDispatcher
- */
-
- public PortletRequestDispatcher getRequestDispatcher(String path);
-
-
-
- /**
- * Returns a {@link PortletRequestDispatcher} object that acts
- * as a wrapper for the named servlet.
- *
- * <p>Servlets (and also JSP pages) may be given names via server
- * administration or via a web application deployment descriptor.
- *
- * <p>This method returns <code>null</code> if the
- * <code>PortletContext</code> cannot return a
- * <code>PortletRequestDispatcher</code> for any reason.
- *
- *
- * @param name a <code>String</code> specifying the name
- * of a servlet to be wrapped
- *
- * @return a <code>PortletRequestDispatcher</code> object
- * that acts as a wrapper for the named servlet
- *
- * @see PortletRequestDispatcher
- *
- */
-
- public PortletRequestDispatcher getNamedDispatcher(String name);
-
-
- /**
- * Returns the resource located at the given path as an InputStream object.
- * The data in the InputStream can be of any type or length. The method returns
- * null if no resource exists at the given path.
- * <p>
- * In order to access protected resources the path has to be prefixed with
- * <code>/WEB-INF/</code> (for example <code>/WEB-INF/myportlet/myportlet.jsp</code>).
- * Otherwise, the direct path is used
- * (for example <code>/myportlet/myportlet.jsp</code>).
- *
- * @param path the path to the resource
- *
- * @return the input stream
- */
- public java.io.InputStream getResourceAsStream (String path);
-
-
-
- /**
- * Returns the major version of the Portlet API that this portlet
- * container supports.
- *
- * @return the major version
- *
- * @see #getMinorVersion()
- */
-
- public int getMajorVersion ();
-
-
- /**
- * Returns the minor version of the Portlet API that this portlet
- * container supports.
- *
- * @return the minor version
- *
- * @see #getMajorVersion()
- */
-
- public int getMinorVersion ();
-
-
- /**
- * Returns the MIME type of the specified file, or <code>null</code> if
- * the MIME type is not known. The MIME type is determined
- * by the configuration of the portlet container and may be specified
- * in a web application deployment descriptor. Common MIME
- * types are <code>text/html</code> and <code>image/gif</code>.
- *
- *
- * @param file a <code>String</code> specifying the name
- * of a file
- *
- * @return a <code>String</code> specifying the MIME type of the file
- *
- */
-
- public String getMimeType(String file);
-
-
- /**
- * Returns a <code>String</code> containing the real path
- * for a given virtual path. For example, the path <code>/index.html</code>
- * returns the absolute file path of the portlet container file system.
- *
- * <p>The real path returned will be in a form
- * appropriate to the computer and operating system on
- * which the portlet container is running, including the
- * proper path separators. This method returns <code>null</code>
- * if the portlet container cannot translate the virtual path
- * to a real path for any reason (such as when the content is
- * being made available from a <code>.war</code> archive).
- *
- * @param path a <code>String</code> specifying a virtual path
- *
- * @return a <code>String</code> specifying the real path,
- * or null if the transformation cannot be performed.
- */
-
- public String getRealPath(String path);
-
-
- /**
- * Returns a directory-like listing of all the paths to resources within
- * the web application longest sub-path of which
- * matches the supplied path argument. Paths indicating subdirectory paths
- * end with a slash (<code>/</code>). The returned paths are all
- * relative to the root of the web application and have a leading slash.
- * For example, for a web application
- * containing<br><br>
- * <code>
- * /welcome.html<br>
- * /catalog/index.html<br>
- * /catalog/products.html<br>
- * /catalog/offers/books.html<br>
- * /catalog/offers/music.html<br>
- * /customer/login.jsp<br>
- * /WEB-INF/web.xml<br>
- * /WEB-INF/classes/com.acme.OrderPortlet.class,<br><br>
- * </code>
- *
- * <code>getResourcePaths("/")</code> returns
- * <code>{"/welcome.html", "/catalog/", "/customer/", "/WEB-INF/"}</code><br>
- * <code>getResourcePaths("/catalog/")</code> returns
- * <code>{"/catalog/index.html", "/catalog/products.html", "/catalog/offers/"}</code>.<br>
- *
- * @param path
- * the partial path used to match the resources, which must start with a slash
- * @return a Set containing the directory listing, or <code>null</code> if there
- * are no resources in the web application of which the path
- * begins with the supplied path.
- */
-
- public java.util.Set<String> getResourcePaths(String path);
-
-
-
- /**
- * Returns a URL to the resource that is mapped to a specified
- * path. The path must begin with a slash (<code>/</code>) and is interpreted
- * as relative to the current context root.
- *
- * <p>This method allows the portlet container to make a resource
- * available to portlets from any source. Resources
- * can be located on a local or remote
- * file system, in a database, or in a <code>.war</code> file.
- *
- * <p>The portlet container must implement the URL handlers
- * and <code>URLConnection</code> objects that are necessary
- * to access the resource.
- *
- * <p>This method returns <code>null</code>
- * if no resource is mapped to the pathname.
- *
- * <p>Some containers may allow writing to the URL returned by
- * this method using the methods of the URL class.
- *
- * <p>The resource content is returned directly, so be aware that
- * requesting a <code>.jsp</code> page returns the JSP source code.
- * Use a <code>RequestDispatcher</code> instead to include results of
- * an execution.
- *
- * <p>This method has a different purpose than
- * <code>java.lang.Class.getResource</code>,
- * which looks up resources based on a class loader. This
- * method does not use class loaders.
- *
- * @param path a <code>String</code> specifying
- * the path to the resource
- *
- * @return the resource located at the named path,
- * or <code>null</code> if there is no resource
- * at that path
- *
- * @exception MalformedURLException if the pathname is not given in
- * the correct form
- *
- */
-
- public java.net.URL getResource(String path) throws java.net.MalformedURLException;
-
-
- /**
- * Returns the portlet container attribute with the given name,
- * or null if there is no attribute by that name.
- * An attribute allows a portlet container to give the
- * portlet additional information not
- * already provided by this interface.
- * A list of supported attributes can be retrieved using
- * <code>getAttributeNames</code>.
- *
- * <p>The attribute is returned as a <code>java.lang.Object</code>
- * or some subclass.
- * Attribute names should follow the same convention as package
- * names. The Java Portlet API specification reserves names
- * matching <code>java.*</code>, <code>javax.*</code>,
- * and <code>sun.*</code>.
- *
- *
- * @param name a <code>String</code> specifying the name
- * of the attribute
- *
- * @return an <code>Object</code> containing the value
- * of the attribute, or <code>null</code>
- * if no attribute exists matching the given
- * name
- *
- * @see #getAttributeNames
- *
- * @exception java.lang.IllegalArgumentException
- * if name is <code>null</code>.
- */
-
- public java.lang.Object getAttribute(java.lang.String name);
-
-
- /**
- * Returns an <code>Enumeration</code> containing the attribute names
- * available within this portlet context, or an empty
- * <code>Enumeration</code> if no attributes are available. Use the
- * {@link #getAttribute} method with an attribute name
- * to get the value of an attribute.
- *
- * @return an <code>Enumeration</code> of attribute names
- *
- * @see #getAttribute
- */
-
- public java.util.Enumeration<String> getAttributeNames();
-
-
- /**
- * Returns a String containing the value of the named context-wide
- * initialization parameter, or <code>null</code> if the parameter does not exist.
- * This method provides configuration information which may be useful for
- * an entire "portlet application".
- *
- * @param name a <code>String</code> containing the name of the
- * requested parameter
- *
- * @return a <code>String</code> containing the value
- * of the initialization parameter, or
- * <code>null</code> if the parameter does not exist.
- *
- * @see #getInitParameterNames
- *
- * @exception java.lang.IllegalArgumentException
- * if name is <code>null</code>.
- */
-
- public java.lang.String getInitParameter(java.lang.String name);
-
-
- /**
- * Returns the names of the context initialization parameters as an
- * <code>Enumeration</code> of String objects, or an empty Enumeration if the context
- * has no initialization parameters.
- *
- * @return an <code>Enumeration</code> of <code>String</code>
- * objects containing the names of the context
- * initialization parameters
- *
- * @see #getInitParameter
- */
-
- public java.util.Enumeration<String> getInitParameterNames();
-
-
- /**
- * Writes the specified message to a portlet log file, usually an event log.
- * The name and type of the portlet log file is specific to the portlet container.
- * <p>
- * This method mapps to the <code>ServletContext.log</code> method.
- * The portlet container may in addition log this message in a
- * portlet container specific log file.
- *
- * @param msg a <code>String</code> specifying the
- * message to be written to the log file
- */
-
- public void log(java.lang.String msg);
-
-
- /**
- * Writes an explanatory message and a stack trace for a given
- * Throwable exception to the portlet log file.
- * The name and type of the portlet log file is specific to the
- * portlet container, usually an event log.
- * <p>
- * This method is mapped to the <code>ServletContext.log</code> method.
- * The portlet container may in addition log this message in a
- * portlet container specific log file.
- *
- * @param message a <code>String</code> that
- * describes the error or exception
- * @param throwable the <code>Throwable</code> error
- * or exception
- */
-
- public void log(java.lang.String message, java.lang.Throwable throwable);
-
-
- /**
- * Removes the attribute with the given name from the portlet context.
- * After removal, subsequent calls to
- * {@link #getAttribute} to retrieve the attribute's value
- * will return <code>null</code>.
- *
- * @param name a <code>String</code> specifying the name
- * of the attribute to be removed
- *
- * @exception java.lang.IllegalArgumentException
- * if name is <code>null</code>.
- */
-
- public void removeAttribute(java.lang.String name);
-
-
- /**
- * Binds an object to a given attribute name in this portlet context.
- * If the name specified is already used for an attribute, this method
- * removes the old attribute and binds the name to the new attribute.
- * <p>
- * If a null value is passed, the effect is the same as calling
- * <code>removeAttribute()</code>.
- *
- * <p>Attribute names should follow the same convention as package
- * names. The Java Portlet API specification reserves names
- * matching <code>java.*</code>, <code>javax.*</code>, and
- * <code>sun.*</code>.
- *
- * @param name a <code>String</code> specifying the name
- * of the attribute
- * @param object an <code>Object</code> representing the
- * attribute to be bound
- *
- * @exception java.lang.IllegalArgumentException
- * if name is <code>null</code>.
- */
-
- public void setAttribute(java.lang.String name, java.lang.Object object);
-
-
- /**
- * Returns the name of this portlet application correponding to this PortletContext as specified
- * in the <code>web.xml</code> deployment descriptor for this web application by the
- * <code>display-name</code> element.
- *
- *
- * @return The name of the web application or null if no name has been declared in the deployment descriptor.
- */
-
- public String getPortletContextName();
-
-
- /**
- * Returns the container container runtime options
- * keys supported by this portlet container.
- *
- * @since 2.0
- *
- * @return container runtime options keys supported by this
- * container as String values.
- */
- public java.util.Enumeration<String> getContainerRuntimeOptions();
-}