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 dd...@apache.org on 2005/10/27 16:57:52 UTC

svn commit: r328887 - in /portals/pluto/branches/pluto-1.1: pluto-container/src/main/java/org/apache/pluto/ pluto-container/src/main/java/org/apache/pluto/core/ pluto-container/src/main/java/org/apache/pluto/core/impl/ pluto-container/src/main/java/org...

Author: ddewolf
Date: Thu Oct 27 07:57:39 2005
New Revision: 328887

URL: http://svn.apache.org/viewcvs?rev=328887&view=rev
Log:
Refactoring container services to simplify and standardize the way services are handled.  Introducing optional services.

Removed:
    portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/services/DynamicInformationProvider.java
    portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/services/PropertyManagerService.java
    portals/pluto/branches/pluto-1.1/pluto-portal-driver/src/main/java/org/apache/pluto/driver/services/container/DynamicInformationProviderImpl.java
    portals/pluto/branches/pluto-1.1/pluto-portal-driver/src/main/java/org/apache/pluto/driver/services/container/PropertyManagerProviderImpl.java
Modified:
    portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/PortletContainer.java
    portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/PortletContainerFactory.java
    portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/PortletContainerImpl.java
    portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/PortletInvoker.java
    portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/ActionResponseImpl.java
    portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletPreferencesImpl.java
    portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletRequestImpl.java
    portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletResponseImpl.java
    portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletURLImpl.java
    portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/RenderResponseImpl.java
    portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/services/PortletContainerServices.java
    portals/pluto/branches/pluto-1.1/pluto-portal-driver/src/main/java/org/apache/pluto/driver/services/container/ContainerServicesImpl.java
    portals/pluto/branches/pluto-1.1/pluto-portal-driver/src/main/java/org/apache/pluto/driver/services/container/PortalCallbackProviderImpl.java
    portals/pluto/branches/pluto-1.1/pluto-portal-driver/src/main/java/org/apache/pluto/driver/services/container/PortletPreferencesProviderImpl.java
    portals/pluto/branches/pluto-1.1/pluto-site/src/site/apt/app-servers.apt

Modified: portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/PortletContainer.java
URL: http://svn.apache.org/viewcvs/portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/PortletContainer.java?rev=328887&r1=328886&r2=328887&view=diff
==============================================================================
--- portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/PortletContainer.java (original)
+++ portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/PortletContainer.java Thu Oct 27 07:57:39 2005
@@ -16,6 +16,7 @@
 package org.apache.pluto;
 
 import org.apache.pluto.services.PortletContainerServices;
+import org.apache.pluto.services.OptionalPortletContainerServices;
 
 import javax.portlet.PortletException;
 import javax.servlet.ServletContext;
@@ -130,4 +131,10 @@
      * @return the container services associated with this container.
      */
     public PortletContainerServices getContainerServices();
+
+    /**
+     * Retrieve the optional container services associated with this contianer.
+     * @return the container services provided by either the portal or the defaults.
+     */
+    public OptionalPortletContainerServices getOptionalContainerServices();
 }

Modified: portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/PortletContainerFactory.java
URL: http://svn.apache.org/viewcvs/portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/PortletContainerFactory.java?rev=328887&r1=328886&r2=328887&view=diff
==============================================================================
--- portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/PortletContainerFactory.java (original)
+++ portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/PortletContainerFactory.java Thu Oct 27 07:57:39 2005
@@ -18,7 +18,9 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.pluto.core.PortletContainerImpl;
+import org.apache.pluto.core.DefaultOptionalServices;
 import org.apache.pluto.services.PortletContainerServices;
+import org.apache.pluto.services.OptionalPortletContainerServices;
 import org.apache.pluto.util.ArgumentUtility;
 
 /**
@@ -65,23 +67,30 @@
      * Create a container with the given containerName, initialized from the given
      * servlet config, and using the given container services.
      * @param containerName
-     * @param env
+     * @param services
      * @return newly created PortletContainer
      * @throws PortletContainerException
      */
     public PortletContainer createContainer(String containerName,
-                                            PortletContainerServices env)
+                                            PortletContainerServices services)
         throws PortletContainerException {
+        return createContainer(containerName, services, new DefaultOptionalServices());
+   }
 
-        ArgumentUtility.validateNotNull("environment", env);
+    public PortletContainer createContainer(String containerName,
+                                            PortletContainerServices services,
+                                            OptionalPortletContainerServices optionalServices) {
+
+        ArgumentUtility.validateNotNull("containerServices", services);
         ArgumentUtility.validateNotEmpty("containerName", containerName);
 
         PortletContainer container =
-            new PortletContainerImpl(containerName, env);
+                new PortletContainerImpl(containerName, services, optionalServices);
 
         if (LOG.isInfoEnabled()) {
             LOG.info("Portlet Container [" + containerName + "] created.");
         }
+
         return container;
     }
 }

Modified: portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/PortletContainerImpl.java
URL: http://svn.apache.org/viewcvs/portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/PortletContainerImpl.java?rev=328887&r1=328886&r2=328887&view=diff
==============================================================================
--- portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/PortletContainerImpl.java (original)
+++ portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/PortletContainerImpl.java Thu Oct 27 07:57:39 2005
@@ -34,6 +34,7 @@
 import org.apache.pluto.core.impl.RenderResponseImpl;
 import org.apache.pluto.services.PortletContainerServices;
 import org.apache.pluto.services.PortletURLProvider;
+import org.apache.pluto.services.OptionalPortletContainerServices;
 
 /**
  * Default Pluto Container implementation.
@@ -53,6 +54,7 @@
 
     /** The PortletContainerServices associated with this container. */
     private PortletContainerServices containerServices;
+    private OptionalPortletContainerServices optionalContainerServices;
 
     /** The ServletContext associated with this container. */
     private ServletContext context;
@@ -67,9 +69,11 @@
      * @param services the container services implementation.
      */
     public PortletContainerImpl(String name,
-                                PortletContainerServices services) {
+                                PortletContainerServices services,
+                                OptionalPortletContainerServices optionalServices) {
         this.name = name;
         this.containerServices = services;
+        this.optionalContainerServices = optionalServices;
     }
 
     /**
@@ -192,8 +196,8 @@
             }
 
             PortletURLProvider redirectURL =
-                containerServices.getDynamicInformationProvider(request)
-                .getPortletURLProvider(window);
+                containerServices.getPortalCallbackService()
+                .getPortletURLProvider(request, window);
 
             if (res.getChangedPortletMode() != null) {
                 redirectURL.setPortletMode(res.getChangedPortletMode());
@@ -268,6 +272,10 @@
 
     public PortletContainerServices getContainerServices() {
         return containerServices;
+    }
+
+    public OptionalPortletContainerServices getOptionalContainerServices() {
+        return optionalContainerServices;
     }
 }
 

Modified: portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/PortletInvoker.java
URL: http://svn.apache.org/viewcvs/portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/PortletInvoker.java?rev=328887&r1=328886&r2=328887&view=diff
==============================================================================
--- portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/PortletInvoker.java (original)
+++ portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/PortletInvoker.java Thu Oct 27 07:57:39 2005
@@ -20,6 +20,10 @@
 import javax.portlet.PortletException;
 import javax.servlet.RequestDispatcher;
 import javax.servlet.ServletContext;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -142,9 +146,19 @@
                                      methodID);
                 request.setAttribute(
                     org.apache.pluto.Constants.PORTLET_REQUEST, request);
+
                 request.setAttribute(
                     org.apache.pluto.Constants.PORTLET_RESPONSE, response);
+
+                // TODO
+                // Tomcat does not like to properly include wrapped requests
+                // and responses. Thus we "unwrap" and then include.
+
+                //HttpServletRequest req = request.getHttpServletRequest();
+                //HttpServletResponse res = response.getHttpServletResponse();
+
                 dispatcher.include(request, response);
+
             } catch (javax.servlet.UnavailableException e) {
                 int seconds = e.isPermanent()?-1:e.getUnavailableSeconds();
                 String message =  EXCEPTIONS.getString(

Modified: portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/ActionResponseImpl.java
URL: http://svn.apache.org/viewcvs/portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/ActionResponseImpl.java?rev=328887&r1=328886&r2=328887&view=diff
==============================================================================
--- portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/ActionResponseImpl.java (original)
+++ portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/ActionResponseImpl.java Thu Oct 27 07:57:39 2005
@@ -30,14 +30,16 @@
 import javax.portlet.PortletModeException;
 import javax.portlet.WindowState;
 import javax.portlet.WindowStateException;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpServletResponseWrapper;
 
 import org.apache.pluto.PortletContainer;
 import org.apache.pluto.descriptors.portlet.PortletDD;
 import org.apache.pluto.descriptors.portlet.SupportsDD;
 import org.apache.pluto.core.InternalActionResponse;
 import org.apache.pluto.core.InternalPortletWindow;
-import org.apache.pluto.services.DynamicInformationProvider;
 import org.apache.pluto.services.ResourceURLProvider;
+import org.apache.pluto.services.PortalCallbackService;
 import org.apache.pluto.util.StringUtils;
 
 public class ActionResponseImpl extends PortletResponseImpl
@@ -55,7 +57,7 @@
     private WindowState windowState = null;
     private PortletMode portletMode = null;
 
-    private DynamicInformationProvider provider;
+    private PortalCallbackService callback;
     private PortalContext context;
 
 
@@ -66,12 +68,12 @@
         super(container, internalPortletWindow, servletRequest,
               servletResponse);
         context = container.getContainerServices().getPortalContext();
-        provider =
-        container.getContainerServices().getDynamicInformationProvider(
-            servletRequest);
+        callback = container.getContainerServices().getPortalCallbackService();
     }
 
-    // javax.portlet.ActionResponse ---------------------------------------------------------------
+//
+// javax.portlet.ActionResponse
+//
     public void setWindowState(WindowState windowState)
         throws WindowStateException {
         if (redirected) {
@@ -114,14 +116,17 @@
     public void sendRedirect(String location) throws java.io.IOException {
         if (redirectAllowed) {
             if (location != null) {
-                javax.servlet.http.HttpServletResponse redirectResponse = _getHttpServletResponse();
-                while (redirectResponse instanceof javax.servlet.http.HttpServletResponseWrapper) {
-                    redirectResponse =
-                    (javax.servlet.http.HttpServletResponse)
-                        ((javax.servlet.http.HttpServletResponseWrapper) redirectResponse).getResponse();
+                HttpServletResponse redirectResponse = getHttpServletResponse();
+                while (redirectResponse instanceof HttpServletResponseWrapper) {
+                    redirectResponse = (HttpServletResponse)
+                        ((HttpServletResponseWrapper)redirectResponse).getResponse();
                 }
-                ResourceURLProvider provider = this.provider.getResourceURLProvider(
-                    getInternalPortletWindow());
+
+                ResourceURLProvider provider = callback.getResourceURLProvider(
+                                getHttpServletRequest(),
+                                getInternalPortletWindow()
+                );
+
                 if (location.indexOf("://") != -1) {
                     provider.setAbsoluteURL(location);
                 } else {

Modified: portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletPreferencesImpl.java
URL: http://svn.apache.org/viewcvs/portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletPreferencesImpl.java?rev=328887&r1=328886&r2=328887&view=diff
==============================================================================
--- portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletPreferencesImpl.java (original)
+++ portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletPreferencesImpl.java Thu Oct 27 07:57:39 2005
@@ -37,7 +37,7 @@
 import org.apache.pluto.core.InternalPortletWindow;
 import org.apache.pluto.core.PortletPreference;
 import org.apache.pluto.core.PortletEntity;
-import org.apache.pluto.services.PortletPreferencesFactory;
+import org.apache.pluto.services.PortletPreferencesService;
 import org.apache.commons.logging.LogFactory;
 import org.apache.commons.logging.Log;
 
@@ -45,7 +45,7 @@
 public class PortletPreferencesImpl implements PortletPreferences {
     private static final Log LOG = LogFactory.getLog(PortletPreferencesImpl.class);
 
-    private PortletPreferencesFactory factory;
+    private PortletPreferencesService factory;
 
     private InternalPortletWindow window;
 
@@ -63,7 +63,7 @@
                                   InternalPortletRequest request,
                                   Integer methodId) {
         this.factory =
-        container.getContainerServices().getPortletPreferencesFactory();
+        container.getOptionalContainerServices().getPortletPreferencesService();
         this.window = window;
         this.request = request;
         this.methodId = methodId;
@@ -77,8 +77,9 @@
             preferences.put(prefs[i].getName(), prefs[i]);
         }
 
-        PortletPreferencesFactory factory
-            = container.getContainerServices().getPortletPreferencesFactory();
+        PortletPreferencesService factory = container
+                .getOptionalContainerServices()
+                .getPortletPreferencesService();
 
         try {
             prefs = factory.getStoredPreferences(window, request);
@@ -99,7 +100,7 @@
         }
 
         PortletPreference pref = (PortletPreference) preferences.get(key);
-        return pref == null ? true : pref.isReadOnly();
+        return pref == null || pref.isReadOnly();
     }
 
     public String getValue(String key, String def) {
@@ -107,7 +108,7 @@
             throw new IllegalArgumentException("key == null");
         }
 
-        String[] value = null;
+        String[] value;
 
         PortletPreference pref = (PortletPreference) preferences.get(key);
         if (pref != null) {
@@ -123,7 +124,7 @@
             throw new IllegalArgumentException("key == null");
         }
 
-        String[] values = null;
+        String[] values;
         PortletPreference pref = (PortletPreference) preferences.get(key);
 
         if (pref != null) {

Modified: portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletRequestImpl.java
URL: http://svn.apache.org/viewcvs/portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletRequestImpl.java?rev=328887&r1=328886&r2=328887&view=diff
==============================================================================
--- portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletRequestImpl.java (original)
+++ portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletRequestImpl.java Thu Oct 27 07:57:39 2005
@@ -22,7 +22,6 @@
 import org.apache.pluto.descriptors.common.SecurityRoleRefDD;
 import org.apache.pluto.descriptors.portlet.PortletDD;
 import org.apache.pluto.descriptors.portlet.SupportsDD;
-import org.apache.pluto.services.PropertyManagerService;
 import org.apache.pluto.util.Enumerator;
 import org.apache.pluto.util.NamespaceMapper;
 import org.apache.pluto.util.StringUtils;
@@ -169,10 +168,9 @@
         String prop = this.getHttpServletRequest().getHeader(name);
         if (prop == null) {
             // get properties from PropertyManager
-            PropertyManagerService mgr = container.getContainerServices()
-                .getPropertyManagerService();
-            Map map = mgr.getRequestProperties(internalPortletWindow,
-                                               this.getHttpServletRequest());
+            Map map = container.getContainerServices()
+                .getPortalCallbackService()
+                .getRequestProperties(getHttpServletRequest(), internalPortletWindow);
             if (map != null) {
                 String[] properties = (String[]) map.get(name);
                 if ((properties != null) && (properties.length > 0)) {
@@ -191,7 +189,6 @@
 
         Set v = new HashSet();
 
-        // get properties from request header
         Enumeration props = this.getHttpServletRequest().getHeaders(name);
         if (props != null) {
             while (props.hasMoreElements()) {
@@ -200,10 +197,10 @@
         }
 
         // get properties from PropertyManager
-        PropertyManagerService mgr = container.getContainerServices()
-            .getPropertyManagerService();
-        Map map = mgr.getRequestProperties(internalPortletWindow,
-                                           this.getHttpServletRequest());
+        Map map = container.getContainerServices()
+            .getPortalCallbackService()
+            .getRequestProperties(getHttpServletRequest(), internalPortletWindow);
+
         if (map != null) {
             String[] properties = (String[]) map.get(name);
 
@@ -222,10 +219,10 @@
         Set v = new HashSet();           
 
         // get properties from PropertyManager
-        PropertyManagerService mgr = container.getContainerServices()
-            .getPropertyManagerService();
-        Map map = mgr.getRequestProperties(internalPortletWindow,
-                                           this.getHttpServletRequest());
+        Map map = container.getContainerServices()
+                .getPortalCallbackService()
+                .getRequestProperties(getHttpServletRequest(), internalPortletWindow);
+        
         if (map != null) {
             v.addAll(map.keySet());
         }
@@ -285,7 +282,7 @@
             }
         }
 
-        String link = null;
+        String link;
         if (ref != null && ref.getRoleLink() != null) {
             link = ref.getRoleLink();
         } else {
@@ -594,8 +591,7 @@
                 "This method must not be called after the HTTP-Body was accessed !");
         }
 
-        this.getHttpServletRequest().setCharacterEncoding(env);
-        return;
+        getHttpServletRequest().setCharacterEncoding(env);
     }
 
     public javax.servlet.ServletInputStream getInputStream()

Modified: portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletResponseImpl.java
URL: http://svn.apache.org/viewcvs/portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletResponseImpl.java?rev=328887&r1=328886&r2=328887&view=diff
==============================================================================
--- portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletResponseImpl.java (original)
+++ portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletResponseImpl.java Thu Oct 27 07:57:39 2005
@@ -22,18 +22,16 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.UnsupportedEncodingException;
-import java.util.HashMap;
-import java.util.Map;
 
 import javax.portlet.PortletResponse;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
 import org.apache.pluto.PortletContainer;
 import org.apache.pluto.core.InternalPortletResponse;
 import org.apache.pluto.core.InternalPortletWindow;
 import org.apache.pluto.services.PortletContainerServices;
-import org.apache.pluto.services.PropertyManagerService;
 import org.apache.pluto.services.ResourceURLProvider;
 import org.apache.pluto.util.PrintWriterServletOutputStream;
 
@@ -49,13 +47,13 @@
      * this variable holds the servlet request of the target/portlet's web
      * module
      */
-    private javax.servlet.http.HttpServletRequest webModuleServletRequest;
+    private HttpServletRequest httpServletRequest;
+    private HttpServletResponse httpServletResponse;
 
     private boolean usingWriter;
     private boolean usingStream;
 
     private ServletOutputStream wrappedWriter;
-    private Map properties;
 
     /**
      * true if we are in an include call
@@ -64,11 +62,12 @@
 
     public PortletResponseImpl(PortletContainer container,
                                InternalPortletWindow internalPortletWindow,
-                               javax.servlet.http.HttpServletRequest servletRequest,
-                               javax.servlet.http.HttpServletResponse servletResponse) {
+                               HttpServletRequest servletRequest,
+                               HttpServletResponse servletResponse) {
         super(servletResponse);
         this.container = container;
-        this.webModuleServletRequest = servletRequest;
+        this.httpServletRequest = servletRequest;
+        this.httpServletResponse = servletResponse;
         this.internalPortletWindow = internalPortletWindow;
     }
 
@@ -78,26 +77,11 @@
             throw new IllegalArgumentException("Property key == null");
         }
 
-        Map props = getProperties();
-
-        String[] oldValues = (String[]) props.get(key);
-        String[] newValues = null;
-        if (oldValues == null) {
-            newValues = new String[]{value};
-        } else {
-            int len = oldValues.length;
-            newValues = new String[len + 1];
-            System.arraycopy(oldValues, 0, newValues, 0, len);
-            newValues[len] = value;
-        }
-        props.put(key, newValues);
-
-        PropertyManagerService service = container.getContainerServices()
-            .getPropertyManagerService();
-        service.setResponseProperties(internalPortletWindow,
-                                      this.getHttpServletRequest(),
-                                      _getHttpServletResponse(), props);
-
+        container.getContainerServices()
+           .getPortalCallbackService()
+           .addResponseProperty(
+               getHttpServletRequest(), internalPortletWindow, key, value
+        );
     }
 
     public void setProperty(String key, String value) {
@@ -105,16 +89,11 @@
             throw new IllegalArgumentException("Property key == null");
         }
 
-        Map props = getProperties();
-
-        String[] newValues = new String[]{value};
-        props.put(key, newValues);
-
-        PropertyManagerService service = container.getContainerServices()
-            .getPropertyManagerService();
-        service.setResponseProperties(internalPortletWindow,
-                                      this.getHttpServletRequest(),
-                                      _getHttpServletResponse(), props);
+        container.getContainerServices()
+                .getPortalCallbackService()
+                .setResponseProperty(
+                        getHttpServletRequest(), internalPortletWindow, key, value
+                );
     }
 
     public String encodeURL(String path) {
@@ -126,14 +105,14 @@
         PortletContainerServices services = getContainer()
             .getContainerServices();
         ResourceURLProvider provider =
-            services.getDynamicInformationProvider(webModuleServletRequest)
-            .getResourceURLProvider(internalPortletWindow);
+            services.getPortalCallbackService()
+        .getResourceURLProvider(httpServletRequest,internalPortletWindow);
         if (path.indexOf("://") != -1) {
             provider.setAbsoluteURL(path);
         } else {
             provider.setFullPath(path);
         }
-        return this._getHttpServletResponse().encodeURL(provider.toString());
+        return getHttpServletResponse().encodeURL(provider.toString());
     }
     // --------------------------------------------------------------------------------------------
 
@@ -141,95 +120,87 @@
     public void lateInit(
         javax.servlet.http.HttpServletRequest webModuleServletRequest,
         javax.servlet.http.HttpServletResponse webModuleServletResponse) {
-        this.webModuleServletRequest = webModuleServletRequest;
+        this.httpServletRequest = webModuleServletRequest;
         this.setResponse(webModuleServletResponse);
     }
     // --------------------------------------------------------------------------------------------
 
     // internal methods ---------------------------------------------------------------------------
-    protected javax.servlet.http.HttpServletResponse _getHttpServletResponse() {
-        return (javax.servlet.http.HttpServletResponse) super.getResponse();
-    }
-
-    protected javax.servlet.http.HttpServletRequest getHttpServletRequest() {
-        return webModuleServletRequest;
+    public HttpServletResponse getHttpServletResponse() {
+        return httpServletResponse;
     }
 
-    private Map getProperties() {
-        if (properties == null) {
-            properties = new HashMap();
-        }
-        return properties;
+    protected HttpServletRequest getHttpServletRequest() {
+        return httpServletRequest;
     }
-    // --------------------------------------------------------------------------------------------
 
     // additional methods -------------------------------------------------------------------------
     // servlet-only implementation 
     // (inherited from HttpServletResponseWrapper)
     public void addCookie(javax.servlet.http.Cookie cookie) {
-        this._getHttpServletResponse().addCookie(cookie);
+        getHttpServletResponse().addCookie(cookie);
     }
 
     public boolean containsHeader(String name) {
-        return this._getHttpServletResponse().containsHeader(name);
+        return getHttpServletResponse().containsHeader(name);
     }
 
     public String encodeRedirectUrl(String url) {
         return included
-               ? null : this._getHttpServletResponse().encodeRedirectURL(url);
+               ? null : getHttpServletResponse().encodeRedirectURL(url);
     }
 
     public String encodeRedirectURL(String url) {
         return included
-               ? null : this._getHttpServletResponse().encodeRedirectURL(url);
+               ? null : getHttpServletResponse().encodeRedirectURL(url);
     }
 
     public void sendRedirect(String location) throws java.io.IOException {
-        this._getHttpServletResponse().sendRedirect(location);
+        getHttpServletResponse().sendRedirect(location);
     }
 
     public void setDateHeader(String name, long date) {
-        this._getHttpServletResponse().setDateHeader(name, date);
+        getHttpServletResponse().setDateHeader(name, date);
     }
 
     public void sendError(int sc, String msg) throws java.io.IOException {
-        this._getHttpServletResponse().sendError(sc, msg);
+        getHttpServletResponse().sendError(sc, msg);
     }
 
     public void sendError(int sc) throws java.io.IOException {
-        this._getHttpServletResponse().sendError(sc);
+        getHttpServletResponse().sendError(sc);
     }
 
     public void addHeader(String name, String value) {
-        this._getHttpServletResponse().addHeader(name, value);
+        getHttpServletResponse().addHeader(name, value);
     }
 
     public void setIntHeader(String name, int value) {
-        this._getHttpServletResponse().setIntHeader(name, value);
+        getHttpServletResponse().setIntHeader(name, value);
     }
 
     public void addDateHeader(String name, long date) {
-        this._getHttpServletResponse().addDateHeader(name, date);
+        getHttpServletResponse().addDateHeader(name, date);
     }
 
     public void setHeader(String name, String value) {
-        this._getHttpServletResponse().setHeader(name, value);
+        getHttpServletResponse().setHeader(name, value);
     }
 
     public void setStatus(int sc) {
-        this._getHttpServletResponse().setStatus(sc);
+        getHttpServletResponse().setStatus(sc);
     }
 
     public void setStatus(int sc, String sm) {
-        this._getHttpServletResponse().setStatus(sc, sm);
+        getHttpServletResponse().setStatus(sc, sm);
     }
 
     public void addIntHeader(String name, int value) {
-        this._getHttpServletResponse().addIntHeader(name, value);
+        getHttpServletResponse().addIntHeader(name, value);
     }
 
     public void setContentLength(int len) {
-        this._getHttpServletResponse().setContentLength(len);
+        getHttpServletResponse().setContentLength(len);
     }
 
     public String encodeUrl(String url) {
@@ -237,7 +208,7 @@
     }
 
     public void setLocale(java.util.Locale loc) {
-        this._getHttpServletResponse().setLocale(loc);
+        getHttpServletResponse().setLocale(loc);
     }
 
     public ServletOutputStream getOutputStream() throws IllegalStateException,
@@ -250,7 +221,7 @@
         if (wrappedWriter == null) {
             wrappedWriter =
             new PrintWriterServletOutputStream(
-                _getHttpServletResponse().getWriter());
+                getHttpServletResponse().getWriter());
         }
 
         usingStream = true;
@@ -267,7 +238,7 @@
 
         usingWriter = true;
 
-        return _getHttpServletResponse().getWriter();
+        return getHttpServletResponse().getWriter();
     }
 
     // other
@@ -278,7 +249,7 @@
     // internal
     
     HttpServletRequest getHttpDServletRequest() {
-        return webModuleServletRequest;
+        return httpServletRequest;
     }
 
     public void setIncluded(boolean included) {
@@ -292,4 +263,5 @@
     public PortletContainer getContainer() {
         return container;
     }
+
 }

Modified: portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletURLImpl.java
URL: http://svn.apache.org/viewcvs/portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletURLImpl.java?rev=328887&r1=328886&r2=328887&view=diff
==============================================================================
--- portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletURLImpl.java (original)
+++ portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/PortletURLImpl.java Thu Oct 27 07:57:39 2005
@@ -139,8 +139,8 @@
         StringBuffer url = new StringBuffer(200);
 
         PortletURLProvider urlProvider = container.getContainerServices()
-            .getDynamicInformationProvider(servletRequest)
-            .getPortletURLProvider(internalPortletWindow);
+            .getPortalCallbackService()
+            .getPortletURLProvider(servletRequest, internalPortletWindow);
 
         if (mode != null) {
             urlProvider.setPortletMode(mode);

Modified: portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/RenderResponseImpl.java
URL: http://svn.apache.org/viewcvs/portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/RenderResponseImpl.java?rev=328887&r1=328886&r2=328887&view=diff
==============================================================================
--- portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/RenderResponseImpl.java (original)
+++ portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/core/impl/RenderResponseImpl.java Thu Oct 27 07:57:39 2005
@@ -24,7 +24,7 @@
 import org.apache.pluto.core.PortletEntity;
 import org.apache.pluto.descriptors.portlet.PortletDD;
 import org.apache.pluto.descriptors.portlet.SupportsDD;
-import org.apache.pluto.services.PortalCallbackProvider;
+import org.apache.pluto.services.PortalCallbackService;
 import org.apache.pluto.util.NamespaceMapper;
 import org.apache.pluto.util.StringManager;
 import org.apache.pluto.util.StringUtils;
@@ -62,7 +62,7 @@
 
     public String getContentType() {
         // in servlet 2.4 we could simply use this:
-        // return this._getHttpServletResponse().getContentType();
+        // return this.getHttpServletResponse().getContentType();
         return currentContentType;
     }
 
@@ -92,8 +92,8 @@
     }
 
     public void setTitle(String title) {
-        PortalCallbackProvider callback =
-            container.getContainerServices().getPortalCallbackProvider();
+        PortalCallbackService callback =
+            container.getContainerServices().getPortalCallbackService();
 
         callback.setTitle(this.getHttpServletRequest(),
                           getInternalPortletWindow(),
@@ -105,12 +105,12 @@
         if (!isValidContentType(mimeType)) {
             throw new IllegalArgumentException(mimeType);
         }
-        this._getHttpServletResponse().setContentType(mimeType);
+        this.getHttpServletResponse().setContentType(mimeType);
         currentContentType = mimeType;
     }
 
     public String getCharacterEncoding() {
-        return this._getHttpServletResponse().getCharacterEncoding();
+        return this.getHttpServletResponse().getCharacterEncoding();
     }
 
     /**
@@ -136,24 +136,24 @@
     }
 
     public int getBufferSize() {
-        //return this._getHttpServletResponse().getBufferSize();
+        //return this.getHttpServletResponse().getBufferSize();
         return 0;
     }
 
     public void flushBuffer() throws java.io.IOException {
-        this._getHttpServletResponse().flushBuffer();
+        this.getHttpServletResponse().flushBuffer();
     }
 
     public void resetBuffer() {
-        this._getHttpServletResponse().resetBuffer();
+        this.getHttpServletResponse().resetBuffer();
     }
 
     public boolean isCommitted() {
-        return this._getHttpServletResponse().isCommitted();
+        return this.getHttpServletResponse().isCommitted();
     }
 
     public void reset() {
-        this._getHttpServletResponse().reset();
+        this.getHttpServletResponse().reset();
     }
 
     /**
@@ -182,7 +182,7 @@
         return new PortletURLImpl(container,
                                   getInternalPortletWindow(),
                                   getHttpServletRequest(),
-                                  _getHttpServletResponse(),
+                                  getHttpServletResponse(),
                                   isAction);
 
     }

Modified: portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/services/PortletContainerServices.java
URL: http://svn.apache.org/viewcvs/portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/services/PortletContainerServices.java?rev=328887&r1=328886&r2=328887&view=diff
==============================================================================
--- portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/services/PortletContainerServices.java (original)
+++ portals/pluto/branches/pluto-1.1/pluto-container/src/main/java/org/apache/pluto/services/PortletContainerServices.java Thu Oct 27 07:57:39 2005
@@ -11,20 +11,6 @@
 public interface PortletContainerServices {
 
     /**
-     * Provider used to retrieve request-time services.
-     * @param req
-     * @return a DynamicInformationProvider implementation.
-     */
-    DynamicInformationProvider getDynamicInformationProvider(
-        HttpServletRequest req);
-
-    /**
-     * Return the PortletPreferencesFactory implementation.
-     * @return a PortletPreferencesFactory implementation.
-     */
-    PortletPreferencesFactory getPortletPreferencesFactory();
-
-    /**
      * Retrieve the PortalContext associated with this group of container
      * services.
      * @return a PortalContext implementation.
@@ -32,12 +18,8 @@
     PortalContext getPortalContext();
 
     /**
-     * @return a PortalCallbackProvider implementation.
+     * @return a PortalCallbackService implementation.
      */
-    PortalCallbackProvider getPortalCallbackProvider();
+    PortalCallbackService getPortalCallbackService();
 
-    /**
-     * @return a PropertyManagerService implementation.
-     */
-    PropertyManagerService getPropertyManagerService();
 }

Modified: portals/pluto/branches/pluto-1.1/pluto-portal-driver/src/main/java/org/apache/pluto/driver/services/container/ContainerServicesImpl.java
URL: http://svn.apache.org/viewcvs/portals/pluto/branches/pluto-1.1/pluto-portal-driver/src/main/java/org/apache/pluto/driver/services/container/ContainerServicesImpl.java?rev=328887&r1=328886&r2=328887&view=diff
==============================================================================
--- portals/pluto/branches/pluto-1.1/pluto-portal-driver/src/main/java/org/apache/pluto/driver/services/container/ContainerServicesImpl.java (original)
+++ portals/pluto/branches/pluto-1.1/pluto-portal-driver/src/main/java/org/apache/pluto/driver/services/container/ContainerServicesImpl.java Thu Oct 27 07:57:39 2005
@@ -18,7 +18,6 @@
 import org.apache.pluto.services.*;
 
 import javax.portlet.PortalContext;
-import javax.servlet.http.HttpServletRequest;
 
 /**
  * The Portal Driver's <code>PortletContainerServices</code> implementation. The
@@ -28,14 +27,14 @@
  * @version 1.0
  * @since Sep 21, 2004
  */
-public class ContainerServicesImpl implements PortletContainerServices {
+public class ContainerServicesImpl
+    implements PortletContainerServices, OptionalPortletContainerServices {
 
 
     private PortalContextImpl context;
 
-    private PortletPreferencesFactory preferencesFactory;
-    private PortalCallbackProvider callback;
-    private PropertyManagerService propertyService;
+    private PortletPreferencesService preferencesFactory;
+    private PortalCallbackService callback;
 
     /**
      * Default Constructor.
@@ -44,7 +43,6 @@
         this.context = context;
         preferencesFactory = new PortletPreferencesProviderImpl();
         callback = new PortalCallbackProviderImpl();
-        propertyService = new PropertyManagerProviderImpl();
     }
 
     /**
@@ -56,43 +54,22 @@
     }
 
     /**
-     * The PortletPreferencesFactory provides access to the portal's
+     * The PortletPreferencesService provides access to the portal's
      * PortletPreference persistence mechanism.
-     * @return a PortletPreferencesFactory instance.
+     * @return a PortletPreferencesService instance.
      */
-    public PortletPreferencesFactory getPortletPreferencesFactory() {
+    public PortletPreferencesService getPortletPreferencesService() {
         return preferencesFactory;
     }
 
     /**
-     * The DynamicInformationProvider provides dynamic, runtime evaluated,
-     * information.
-     * @param req the HttpServletRequest identifying the request
-     * @return a DynamicInformationProvider implementation.
-     */
-    public DynamicInformationProvider getDynamicInformationProvider(
-        HttpServletRequest req) {
-        return new DynamicInformationProviderImpl(req);
-    }
-
-
-    /**
-     * The PortalCallbackProvider allows the container to communicate
+     * The PortalCallbackService allows the container to communicate
      * actions back to the portal.
-     * @return a PortalCallbackProvider implementation.
+     * @return a PortalCallbackService implementation.
      */
-    public PortalCallbackProvider getPortalCallbackProvider() {
+    public PortalCallbackService getPortalCallbackService() {
         return callback;
     }
-
-    /**
-     * The PropertyManagerService manages portal properties.
-     * @return a PropertyManagerService implemenatation.
-     */
-    public PropertyManagerService getPropertyManagerService() {
-        return this.propertyService;
-    }
-
 
 }
 

Modified: portals/pluto/branches/pluto-1.1/pluto-portal-driver/src/main/java/org/apache/pluto/driver/services/container/PortalCallbackProviderImpl.java
URL: http://svn.apache.org/viewcvs/portals/pluto/branches/pluto-1.1/pluto-portal-driver/src/main/java/org/apache/pluto/driver/services/container/PortalCallbackProviderImpl.java?rev=328887&r1=328886&r2=328887&view=diff
==============================================================================
--- portals/pluto/branches/pluto-1.1/pluto-portal-driver/src/main/java/org/apache/pluto/driver/services/container/PortalCallbackProviderImpl.java (original)
+++ portals/pluto/branches/pluto-1.1/pluto-portal-driver/src/main/java/org/apache/pluto/driver/services/container/PortalCallbackProviderImpl.java Thu Oct 27 07:57:39 2005
@@ -18,14 +18,22 @@
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.pluto.PortletWindow;
-import org.apache.pluto.services.PortalCallbackProvider;
+import org.apache.pluto.driver.core.PortalEnvironment;
+import org.apache.pluto.driver.core.ResourceURLProviderImpl;
+import org.apache.pluto.services.PortalCallbackService;
+import org.apache.pluto.services.PortletURLProvider;
+import org.apache.pluto.services.ResourceURLProvider;
+
+import java.util.Map;
+import java.util.Collections;
 
 /**
  * @author <a href="ddewolf@apache.org">David H. DeWolf</a>
  * @version 1.0
  * @since Sep 22, 2004
  */
-public class PortalCallbackProviderImpl implements PortalCallbackProvider {
+public class PortalCallbackProviderImpl implements PortalCallbackService {
+
 
     public PortalCallbackProviderImpl() {
 
@@ -37,6 +45,26 @@
         request.setAttribute("org.apache.pluto.dynamic_title", title);
     }
 
+    public PortletURLProvider getPortletURLProvider(
+        HttpServletRequest req, PortletWindow internalPortletWindow) {
+        return new PortletURLProviderImpl(req, internalPortletWindow);
+    }
+
+    public ResourceURLProvider getResourceURLProvider(
+        HttpServletRequest req, PortletWindow internalPortletWindow) {
+        return new ResourceURLProviderImpl(req, internalPortletWindow);
+    }
+
+    public Map getRequestProperties(HttpServletRequest req, PortletWindow portletWindow) {
+        return Collections.EMPTY_MAP;
+    }
+
+    public void setResponseProperty(HttpServletRequest req, PortletWindow window, String property, String value) {
+
+    }
+
+    public void addResponseProperty(HttpServletRequest req, PortletWindow window, String property, String value) {
 
+    }
 }
 

Modified: portals/pluto/branches/pluto-1.1/pluto-portal-driver/src/main/java/org/apache/pluto/driver/services/container/PortletPreferencesProviderImpl.java
URL: http://svn.apache.org/viewcvs/portals/pluto/branches/pluto-1.1/pluto-portal-driver/src/main/java/org/apache/pluto/driver/services/container/PortletPreferencesProviderImpl.java?rev=328887&r1=328886&r2=328887&view=diff
==============================================================================
--- portals/pluto/branches/pluto-1.1/pluto-portal-driver/src/main/java/org/apache/pluto/driver/services/container/PortletPreferencesProviderImpl.java (original)
+++ portals/pluto/branches/pluto-1.1/pluto-portal-driver/src/main/java/org/apache/pluto/driver/services/container/PortletPreferencesProviderImpl.java Thu Oct 27 07:57:39 2005
@@ -28,21 +28,21 @@
 import org.apache.pluto.PortletContainerException;
 import org.apache.pluto.driver.services.container.PortletPreferenceImpl;
 import org.apache.pluto.core.PortletPreference;
-import org.apache.pluto.services.PortletPreferencesFactory;
+import org.apache.pluto.services.PortletPreferencesService;
 import org.apache.commons.digester.Digester;
 import org.apache.commons.logging.LogFactory;
 import org.apache.commons.logging.Log;
 import org.xml.sax.SAXException;
 
 /**
- * The Portal Driver's PortletPreferencesFactory implementation. This
+ * The Portal Driver's PortletPreferencesService implementation. This
  * implementation makes use of the filesystem for writing portlet preferences.
  * @author <a href="ddewolf@apache.org">David H. DeWolf</a>
  * @version 1.0
  * @since Sep 22, 2004
  */
 public class PortletPreferencesProviderImpl
-    implements PortletPreferencesFactory {
+    implements PortletPreferencesService {
     private static final Log LOG =
         LogFactory.getLog(PortletPreferencesProviderImpl.class);
 

Modified: portals/pluto/branches/pluto-1.1/pluto-site/src/site/apt/app-servers.apt
URL: http://svn.apache.org/viewcvs/portals/pluto/branches/pluto-1.1/pluto-site/src/site/apt/app-servers.apt?rev=328887&r1=328886&r2=328887&view=diff
==============================================================================
--- portals/pluto/branches/pluto-1.1/pluto-site/src/site/apt/app-servers.apt (original)
+++ portals/pluto/branches/pluto-1.1/pluto-site/src/site/apt/app-servers.apt Thu Oct 27 07:57:39 2005
@@ -14,6 +14,7 @@
 |    App Server   |  Version   |   Status   | Notes             |
 *--           --+--        --*--        --*--                 --*
 |    Tomcat       |   5.5.9    |   WORKING  |Use pluto-util module to install the the container and portal into tomcat.   |
+|    Tomcat       |   5.5.12    |  MANUAL   |Tomcat contains a bug and does not recognize the context configuration.  Manual Installation and renaming will work.   |
 *--           --+--        --*--        --*--                 --*
 |    Jetty        |            |  UNTESTED  |                   |
 *--           --+--        --*--        --*--                 --*