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 at...@apache.org on 2009/03/11 14:17:11 UTC

svn commit: r752438 - in /portals/pluto/trunk: ./ pluto-container-api/src/main/java/org/apache/pluto/container/ pluto-container-api/src/main/java/org/apache/pluto/container/driver/ pluto-container/src/main/java/org/apache/pluto/container/driver/impl/ p...

Author: ate
Date: Wed Mar 11 13:17:10 2009
New Revision: 752438

URL: http://svn.apache.org/viewvc?rev=752438&view=rev
Log:
PLUTO-537: Cleaning up Pluto packages
See: https://issues.apache.org/jira/browse/PLUTO-537
- renaming PortalDriverServices to PortalDriverContainerServices
- adding new PortalDriverServices interface combining ContainerServices and PortalDriverContainerServices
- adapt PlutoServices to take PortalDriverServices for initialization
- replacing o.a.p.container.driver.impl.PlutoContainerServices by new PortalDriverServicesImpl implementing PortalDriverServices
- renaming PortletURLListener to PortletURLListenerService and have it return a list of PortletURLGenerationListener instances for a specific Portlet app
- adding new RequiredContainerServices implementations (still only skeletons) for portal-driver-impl
- cleaning up and reconfiguring pluto-portal-driver-services-config.xml
- adding myself as Pluto developer in pom.xml :)

Added:
    portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/PortletURLListenerService.java   (contents, props changed)
      - copied, changed from r752344, portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/PortletURLListener.java
    portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PortalDriverContainerServices.java   (with props)
    portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/driver/impl/PortalDriverServicesImpl.java   (contents, props changed)
      - copied, changed from r752344, portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/driver/impl/PlutoContainerServices.java
    portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventCoordinationServiceImpl.java   (with props)
    portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/FilterManagerServiceImpl.java   (with props)
    portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletURLListenerServiceImpl.java   (with props)
Removed:
    portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/PortletURLListener.java
    portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/driver/impl/PlutoContainerServices.java
    portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/ContainerServicesImpl.java
Modified:
    portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/RequiredContainerServices.java
    portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PlutoServices.java
    portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PortalDriverServices.java
    portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/driver/impl/DefaultOptionalContainerServices.java
    portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletURLImpl.java
    portals/pluto/trunk/pluto-container/src/test/java/org/apache/pluto/container/util/PlutoTestCase.java
    portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/config/impl/DriverConfigurationImpl.java
    portals/pluto/trunk/pluto-portal/src/main/webapp/WEB-INF/pluto-portal-driver-services-config.xml
    portals/pluto/trunk/pom.xml

Copied: portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/PortletURLListenerService.java (from r752344, portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/PortletURLListener.java)
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/PortletURLListenerService.java?p2=portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/PortletURLListenerService.java&p1=portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/PortletURLListener.java&r1=752344&r2=752438&rev=752438&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/PortletURLListener.java (original)
+++ portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/PortletURLListenerService.java Wed Mar 11 13:17:10 2009
@@ -16,10 +16,13 @@
  */
 package org.apache.pluto.container;
 
-import javax.portlet.BaseURL;
+import java.util.List;
+
+import javax.portlet.PortletURLGenerationListener;
 
 import org.apache.pluto.container.om.portlet.PortletApplicationDefinition;
 
-public interface PortletURLListener {
-	public void callListener(PortletApplicationDefinition portletAppDD, BaseURL baseURL, boolean isAction, boolean isResource);
+public interface PortletURLListenerService
+{
+    List<PortletURLGenerationListener> getPortletURLGenerationListeners(PortletApplicationDefinition app);
 }

Propchange: portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/PortletURLListenerService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/RequiredContainerServices.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/RequiredContainerServices.java?rev=752438&r1=752437&r2=752438&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/RequiredContainerServices.java (original)
+++ portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/RequiredContainerServices.java Wed Mar 11 13:17:10 2009
@@ -38,7 +38,6 @@
     /**
      * Returns the portlet request context service implementation
      * used by the container
-     * @return
      */
     PortletRequestContextService getPortletRequestContextService();
 
@@ -48,8 +47,7 @@
     public FilterManagerService getFilterManagerService(); 
     
     /**
-     * Returns the PortletURLListener which calls the Filter for the URL.
-     * @return
+     * Returns the PortletURLListenerService
      */
-    public PortletURLListener getPortletURLListener();
+    public PortletURLListenerService getPortletURLListenerService();
 }

Modified: portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PlutoServices.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PlutoServices.java?rev=752438&r1=752437&r2=752438&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PlutoServices.java (original)
+++ portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PlutoServices.java Wed Mar 11 13:17:10 2009
@@ -19,7 +19,6 @@
 import javax.portlet.PortalContext;
 
 import org.apache.pluto.container.CCPPProfileService;
-import org.apache.pluto.container.ContainerServices;
 import org.apache.pluto.container.EventCoordinationService;
 import org.apache.pluto.container.FilterManagerService;
 import org.apache.pluto.container.NamespaceMapper;
@@ -27,13 +26,12 @@
 import org.apache.pluto.container.PortletInvokerService;
 import org.apache.pluto.container.PortletPreferencesService;
 import org.apache.pluto.container.PortletRequestContextService;
-import org.apache.pluto.container.PortletURLListener;
+import org.apache.pluto.container.PortletURLListenerService;
 import org.apache.pluto.container.UserInfoService;
 
 
-public class PlutoServices implements ContainerServices, PortalDriverServices
+public class PlutoServices implements PortalDriverServices
 {
-    private ContainerServices containerServices;
     private PortalDriverServices driverServices;
     
     private static PlutoServices singleton;
@@ -43,26 +41,25 @@
         return singleton;
     }
     
-    public PlutoServices(ContainerServices containerServices, PortalDriverServices driverServices)
+    public PlutoServices(PortalDriverServices driverServices)
     {
         singleton = this;
-        this.containerServices = containerServices;
         this.driverServices = driverServices;
     }
     
     public CCPPProfileService getCCPPProfileService()
     {
-        return containerServices.getCCPPProfileService();
+        return driverServices.getCCPPProfileService();
     }
 
     public PortalContext getPortalContext()
     {
-        return containerServices.getPortalContext();
+        return driverServices.getPortalContext();
     }
 
     public NamespaceMapper getNamespaceMapper()
     {
-        return containerServices.getNamespaceMapper();
+        return driverServices.getNamespaceMapper();
     }
 
     public PortalAdministrationService getPortalAdministrationService()
@@ -72,17 +69,17 @@
 
     public PortletEnvironmentService getPortletEnvironmentService()
     {
-        return containerServices.getPortletEnvironmentService();
+        return driverServices.getPortletEnvironmentService();
     }
 
     public PortletInvokerService getPortletInvokerService()
     {
-        return containerServices.getPortletInvokerService();
+        return driverServices.getPortletInvokerService();
     }
 
     public PortletPreferencesService getPortletPreferencesService()
     {
-        return containerServices.getPortletPreferencesService();
+        return driverServices.getPortletPreferencesService();
     }
 
     public PortletRegistryService getPortletRegistryService()
@@ -92,7 +89,7 @@
 
     public UserInfoService getUserInfoService()
     {
-        return containerServices.getUserInfoService();
+        return driverServices.getUserInfoService();
     }
     
     public PortletContextService getPortletContextService()
@@ -102,21 +99,21 @@
 
     public PortletRequestContextService getPortletRequestContextService()
     {
-        return containerServices.getPortletRequestContextService();
+        return driverServices.getPortletRequestContextService();
     }
 
     public EventCoordinationService getEventCoordinationService()
     {
-        return containerServices.getEventCoordinationService();
+        return driverServices.getEventCoordinationService();
     }
 
     public FilterManagerService getFilterManagerService()
     {
-        return containerServices.getFilterManagerService();
+        return driverServices.getFilterManagerService();
     }
 
-    public PortletURLListener getPortletURLListener()
+    public PortletURLListenerService getPortletURLListenerService()
     {
-        return containerServices.getPortletURLListener();
+        return driverServices.getPortletURLListenerService();
     }
 }

Added: portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PortalDriverContainerServices.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PortalDriverContainerServices.java?rev=752438&view=auto
==============================================================================
--- portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PortalDriverContainerServices.java (added)
+++ portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PortalDriverContainerServices.java Wed Mar 11 13:17:10 2009
@@ -0,0 +1,54 @@
+/*
+ * 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.
+ */
+
+package org.apache.pluto.container.driver;
+
+/**
+ * Defines the additional services needed for the Pluto Portal Driver to integrate with the Pluto Container
+ * and accessed from the <code>org.apache.pluto.container.driver.PortletServlet</code>
+ * and the <code>org.apache.pluto.container.driver.impl.DefaultPortletInvokerService</code>.
+ * These extra services are not required nor used by the container itself directly.
+ *
+ * @since 2.0
+ * @version $Id$
+ */
+public interface PortalDriverContainerServices
+{
+    /**
+     * Returns the portlet context services implementation
+     * used by the container.
+     *
+     * @return registry service implementation
+     */
+    PortletContextService getPortletContextService();
+
+    /**
+     * Returns the portlet registry services implementation
+     * used by the container.
+     *
+     * @return registry service implementation
+     */
+    PortletRegistryService getPortletRegistryService();
+
+    /**
+     * Returns the admin service implementation used by
+     * the container.
+     *
+     * @return portal admin service
+     */
+    PortalAdministrationService getPortalAdministrationService();
+}

Propchange: portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PortalDriverContainerServices.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PortalDriverContainerServices.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PortalDriverContainerServices.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PortalDriverServices.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PortalDriverServices.java?rev=752438&r1=752437&r2=752438&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PortalDriverServices.java (original)
+++ portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/driver/PortalDriverServices.java Wed Mar 11 13:17:10 2009
@@ -17,38 +17,14 @@
 
 package org.apache.pluto.container.driver;
 
+import org.apache.pluto.container.ContainerServices;
+
 /**
- * Defines the optional services for the Pluto Portal Driver to integrate with the Pluto Container
- * and accessed from the <code>org.apache.pluto.container.driver.PortletServlet</code>
- * and the <code>org.apache.pluto.container.driver.impl.DefaultPortletInvokerService</code>.
- * These services are not required nor used by the container itself directly.
+ * Combines the ContainerServices and the additional services needed for the Pluto Portal Driver to integrate with the Pluto Container
  *
  * @since 2.0
  * @version $Id$
  */
-public interface PortalDriverServices
+public interface PortalDriverServices extends ContainerServices, PortalDriverContainerServices
 {
-    /**
-     * Returns the portlet context services implementation
-     * used by the container.
-     *
-     * @return registry service implementation
-     */
-    PortletContextService getPortletContextService();
-
-    /**
-     * Returns the portlet registry services implementation
-     * used by the container.
-     *
-     * @return registry service implementation
-     */
-    PortletRegistryService getPortletRegistryService();
-
-    /**
-     * Returns the admin service implementation used by
-     * the container.
-     *
-     * @return portal admin service
-     */
-    PortalAdministrationService getPortalAdministrationService();
 }

Modified: portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/driver/impl/DefaultOptionalContainerServices.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/driver/impl/DefaultOptionalContainerServices.java?rev=752438&r1=752437&r2=752438&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/driver/impl/DefaultOptionalContainerServices.java (original)
+++ portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/driver/impl/DefaultOptionalContainerServices.java Wed Mar 11 13:17:10 2009
@@ -25,7 +25,7 @@
 import org.apache.pluto.container.PortletPreferencesService;
 import org.apache.pluto.container.UserInfoService;
 import org.apache.pluto.container.driver.PortalAdministrationService;
-import org.apache.pluto.container.driver.PortalDriverServices;
+import org.apache.pluto.container.driver.PortalDriverContainerServices;
 import org.apache.pluto.container.driver.PortletContextService;
 import org.apache.pluto.container.driver.PortletRegistryService;
 import org.apache.pluto.container.impl.PortletEnvironmentServiceImpl;
@@ -37,7 +37,7 @@
  * @version 1.0
  * @since Sep 18, 2004
  */
-public class DefaultOptionalContainerServices implements OptionalContainerServices, PortalDriverServices {
+public class DefaultOptionalContainerServices implements OptionalContainerServices, PortalDriverContainerServices {
 
     private PortletPreferencesService portletPreferencesService;
     private PortletRegistryService portletRegistryService;
@@ -73,7 +73,7 @@
      * be used. Otherwise, the default portlet preferences service will be used.
      * @param root  the root optional container services implementation.
      */
-    public DefaultOptionalContainerServices(OptionalContainerServices root, PortalDriverServices driverServices) {
+    public DefaultOptionalContainerServices(OptionalContainerServices root, PortalDriverContainerServices driverServices) {
         this();
         if (root.getPortletPreferencesService() != null) {
             portletPreferencesService = root.getPortletPreferencesService();

Copied: portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/driver/impl/PortalDriverServicesImpl.java (from r752344, portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/driver/impl/PlutoContainerServices.java)
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/driver/impl/PortalDriverServicesImpl.java?p2=portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/driver/impl/PortalDriverServicesImpl.java&p1=portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/driver/impl/PlutoContainerServices.java&r1=752344&r2=752438&rev=752438&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/driver/impl/PlutoContainerServices.java (original)
+++ portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/driver/impl/PortalDriverServicesImpl.java Wed Mar 11 13:17:10 2009
@@ -19,7 +19,6 @@
 import javax.portlet.PortalContext;
 
 import org.apache.pluto.container.CCPPProfileService;
-import org.apache.pluto.container.ContainerServices;
 import org.apache.pluto.container.EventCoordinationService;
 import org.apache.pluto.container.FilterManagerService;
 import org.apache.pluto.container.NamespaceMapper;
@@ -28,137 +27,117 @@
 import org.apache.pluto.container.PortletInvokerService;
 import org.apache.pluto.container.PortletPreferencesService;
 import org.apache.pluto.container.PortletRequestContextService;
-import org.apache.pluto.container.PortletURLListener;
+import org.apache.pluto.container.PortletURLListenerService;
 import org.apache.pluto.container.RequiredContainerServices;
 import org.apache.pluto.container.UserInfoService;
 import org.apache.pluto.container.driver.PortalAdministrationService;
+import org.apache.pluto.container.driver.PortalDriverContainerServices;
 import org.apache.pluto.container.driver.PortalDriverServices;
 import org.apache.pluto.container.driver.PortletContextService;
 import org.apache.pluto.container.driver.PortletRegistryService;
 import org.apache.pluto.container.impl.PortletEnvironmentServiceImpl;
 
 
-public class PlutoContainerServices implements ContainerServices, PortalDriverServices
+public class PortalDriverServicesImpl implements PortalDriverServices
 {
     /*
      * required services
      */
     private PortalContext context;
+    private EventCoordinationService eventCoordinationService;
+    private PortletRequestContextService portletRequestContextService;
     private CCPPProfileService ccppProfileService;
+    private FilterManagerService filterManagerService;
+    private PortletURLListenerService portletURLListenerService;
     
     /*
      * optional services
      */
     private PortletPreferencesService portletPreferencesService;
-    private PortletRegistryService portletRegistryService;
-    private PortletContextService portletContextService;
     private PortletInvokerService portletInvokerService;
-    private PortletRequestContextService portletRequestContextService;
     private PortletEnvironmentService portletEnvironmentService;
-    private PortalAdministrationService portalAdministrationService;
     private UserInfoService userInfoService;
     private NamespaceMapper namespaceMapper;
-    private EventCoordinationService eventCoordinationService;
-    private FilterManagerService filterManagerService;
-    private PortletURLListener portletURLListener;
 
+    /*
+     * portal driver services
+     */
+    private PortletContextService portletContextService;
+    private PortletRegistryService portletRegistryService;
+    private PortalAdministrationService portalAdministrationService;
         
-    public PlutoContainerServices()
-    {
-        createDefaultPortalDriverServices();
-        createDefaultRequiredServices();
-        createDefaultOptionalServices();
-    }
-    
-    public PlutoContainerServices(RequiredContainerServices required, OptionalContainerServices optional)
-    {
-        this(required.getPortalContext(), required.getPortletRequestContextService(),
-             required.getEventCoordinationService(), required.getFilterManagerService(), 
-             required.getPortletURLListener(), optional,
-             optional instanceof PortalDriverServices ? (PortalDriverServices) optional : null);
-    }
-
-    public PlutoContainerServices(PortalContext context,
-            PortletRequestContextService portletRequestContextService,
-            FilterManagerService filterManagerService,
-            PortletURLListener portletURLListener,
-            EventCoordinationService eventCoordinationService)
+    public PortalDriverServicesImpl(PortalContext context,
+                                  PortletRequestContextService portletRequestContextService,
+                                  EventCoordinationService eventCoordinationService,
+                                  FilterManagerService filterManagerService,
+                                  PortletURLListenerService portletURLListenerService)
     {
         this.context = context;
         this.eventCoordinationService = eventCoordinationService;
-        this.createDefaultPortalDriverServices();
-        this.createDefaultOptionalServices();
+        this.portletRequestContextService = portletRequestContextService;
+        this.filterManagerService = filterManagerService;
+        this.portletURLListenerService = portletURLListenerService;
+
+        createDefaultServicesIfNeeded();
     }            
-            
-    public PlutoContainerServices(PortalContext context,
+                                  
+    public PortalDriverServicesImpl(PortalContext context,
             PortletRequestContextService portletRequestContextService,
             EventCoordinationService eventCoordinationService,
             FilterManagerService filterManagerService,
-            PortletURLListener portletURLListener,
+            PortletURLListenerService portletURLListenerService,
             OptionalContainerServices optionalServices,
-            PortalDriverServices portalDriverServices)  
+            PortletContextService portletContextService,
+            PortletRegistryService portletRegistryService,
+            PortalAdministrationService portalAdministrationService)  
     {
         this.context = context;
+        this.eventCoordinationService = eventCoordinationService;
         this.portletRequestContextService = portletRequestContextService;
         this.filterManagerService = filterManagerService;
-        this.portletURLListener = portletURLListener;
+        this.portletURLListenerService = portletURLListenerService;
+
+        portletEnvironmentService = optionalServices.getPortletEnvironmentService();
         ccppProfileService = optionalServices.getCCPPProfileService();
-        if (ccppProfileService == null)
-            ccppProfileService = new DummyCCPPProfileServiceImpl();
-        this.eventCoordinationService = eventCoordinationService;
-        
         portletPreferencesService = optionalServices.getPortletPreferencesService();
-        if (portletPreferencesService == null)
-            portletPreferencesService =  new DefaultPortletPreferencesService();
-        portletRegistryService = portalDriverServices != null ? portalDriverServices.getPortletRegistryService() : null;
-        if (portletRegistryService == null)
-            portletRegistryService = new PortletContextManager();
-        portletContextService = portalDriverServices != null ? portalDriverServices.getPortletContextService() : null;
-        if (portletContextService == null && portletRegistryService instanceof PortletContextService)
-        {
-            portletContextService = (PortletContextService)portletRegistryService;
-        }
         portletInvokerService = optionalServices.getPortletInvokerService();
-        if (portletInvokerService == null)
-            portletInvokerService = new DefaultPortletInvokerService(portletContextService);
-        portletEnvironmentService = optionalServices.getPortletEnvironmentService();
-        if (portletEnvironmentService == null)
-            portletEnvironmentService = new PortletEnvironmentServiceImpl();
-        portalAdministrationService = portalDriverServices != null ? portalDriverServices.getPortalAdministrationService() : null;
-        if (portalAdministrationService == null)
-            portalAdministrationService = new DefaultPortalAdministrationService();
         userInfoService = optionalServices.getUserInfoService();
-        if (userInfoService == null)
-            userInfoService = new DefaultUserInfoService();
         namespaceMapper = optionalServices.getNamespaceMapper();
-        if (namespaceMapper == null)
-            namespaceMapper = new DefaultNamespaceMapper();
+        
+        this.portletContextService = portletContextService;
+        this.portletRegistryService = portletRegistryService;        
+        this.portalAdministrationService = portalAdministrationService;
+
+        createDefaultServicesIfNeeded();
     }
     
-    protected void createDefaultPortalDriverServices()
+    public PortalDriverServicesImpl(RequiredContainerServices required, OptionalContainerServices optional)
     {
-        portletRegistryService = new PortletContextManager();
-        portletContextService = (PortletContextManager)portletRegistryService;
-        portalAdministrationService = new DefaultPortalAdministrationService();
+        this(required.getPortalContext(), required.getPortletRequestContextService(),
+             required.getEventCoordinationService(), required.getFilterManagerService(), 
+             required.getPortletURLListenerService(), optional, null, null, null);
     }
-    
-    protected void createDefaultOptionalServices() 
+
+    public PortalDriverServicesImpl(RequiredContainerServices required, OptionalContainerServices optional, PortalDriverContainerServices driver)
     {
-        ccppProfileService = new DummyCCPPProfileServiceImpl();
-        portletPreferencesService = new DefaultPortletPreferencesService();
-        portletInvokerService = new DefaultPortletInvokerService(portletContextService);
-        portletEnvironmentService = new PortletEnvironmentServiceImpl();
-        userInfoService = new DefaultUserInfoService();
-        namespaceMapper = new DefaultNamespaceMapper();
-    }
-
-    protected void createDefaultRequiredServices() 
-    {
-        this.context = null; // TODO
-        this.portletRequestContextService = null; // TODO
-        this.eventCoordinationService = null; // TODO
-        this.filterManagerService = null; // TODO
-        this.portletURLListener = null; // TODO
+        this(required.getPortalContext(), required.getPortletRequestContextService(),
+             required.getEventCoordinationService(), required.getFilterManagerService(), 
+             required.getPortletURLListenerService(), optional, 
+             driver.getPortletContextService(), driver.getPortletRegistryService(), 
+             driver.getPortalAdministrationService());
+    }
+
+    protected void createDefaultServicesIfNeeded()
+    {
+        portletRegistryService = portletRegistryService == null ? new PortletContextManager() : portletRegistryService;
+        portletContextService = portletContextService == null ? (PortletContextManager)portletRegistryService : portletContextService;
+        portalAdministrationService = portalAdministrationService == null ? new DefaultPortalAdministrationService() : portalAdministrationService;
+        ccppProfileService = ccppProfileService == null ? new DummyCCPPProfileServiceImpl() : ccppProfileService;
+        portletPreferencesService = portletPreferencesService == null ? new DefaultPortletPreferencesService() : portletPreferencesService;
+        portletInvokerService = portletInvokerService == null ? new DefaultPortletInvokerService(portletContextService) : portletInvokerService;
+        portletEnvironmentService = portletEnvironmentService == null ? new PortletEnvironmentServiceImpl() : portletEnvironmentService;
+        userInfoService = userInfoService == null ? new DefaultUserInfoService() : userInfoService;
+        namespaceMapper = namespaceMapper == null ? new DefaultNamespaceMapper() : namespaceMapper;
     }
     
     public PortalContext getPortalContext() 
@@ -240,8 +219,8 @@
         return filterManagerService;
     }
 
-    public PortletURLListener getPortletURLListener()
+    public PortletURLListenerService getPortletURLListenerService()
     {
-        return portletURLListener;
+        return portletURLListenerService;
     }    
 }

Propchange: portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/driver/impl/PortalDriverServicesImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletURLImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletURLImpl.java?rev=752438&r1=752437&r2=752438&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletURLImpl.java (original)
+++ portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletURLImpl.java Wed Mar 11 13:17:10 2009
@@ -30,12 +30,13 @@
 import javax.portlet.PortletModeException;
 import javax.portlet.PortletSecurityException;
 import javax.portlet.PortletURL;
+import javax.portlet.PortletURLGenerationListener;
 import javax.portlet.ResourceURL;
 import javax.portlet.WindowState;
 import javax.portlet.WindowStateException;
 
 import org.apache.pluto.container.PortletMimeResponseContext;
-import org.apache.pluto.container.PortletURLListener;
+import org.apache.pluto.container.PortletURLListenerService;
 import org.apache.pluto.container.PortletURLProvider;
 import org.apache.pluto.container.om.portlet.PortletApplicationDefinition;
 import org.apache.pluto.container.om.portlet.PortletDefinition;
@@ -164,10 +165,23 @@
         filtering = true;
         try
         {
-            PortletURLListener portletURLFilterListener = responseContext.getContainer().getRequiredContainerServices().getPortletURLListener();
+            PortletURLListenerService service = responseContext.getContainer().getRequiredContainerServices().getPortletURLListenerService();
             PortletApplicationDefinition portletApp = responseContext.getPortletWindow().getPortletEntity().getPortletDefinition().getApplication();
-            portletURLFilterListener.callListener(portletApp, this, urlProvider.isActionURL(), urlProvider.isResourceURL());
-
+            for (PortletURLGenerationListener listener : service.getPortletURLGenerationListeners(portletApp))
+            {
+                if (urlProvider.isActionURL())
+                {
+                    listener.filterActionURL(this);
+                }
+                else if (urlProvider.isResourceURL())
+                {
+                    listener.filterResourceURL(this);
+                }
+                else
+                {
+                    listener.filterRenderURL(this);
+                }
+            }
         }
         finally
         {

Modified: portals/pluto/trunk/pluto-container/src/test/java/org/apache/pluto/container/util/PlutoTestCase.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-container/src/test/java/org/apache/pluto/container/util/PlutoTestCase.java?rev=752438&r1=752437&r2=752438&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-container/src/test/java/org/apache/pluto/container/util/PlutoTestCase.java (original)
+++ portals/pluto/trunk/pluto-container/src/test/java/org/apache/pluto/container/util/PlutoTestCase.java Wed Mar 11 13:17:10 2009
@@ -19,8 +19,6 @@
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
-import org.apache.pluto.container.driver.PlutoServices;
-import org.apache.pluto.container.driver.impl.PlutoContainerServices;
 import org.jmock.MockObjectTestCase;
 
 /**
@@ -34,8 +32,6 @@
     public void setUp() throws Exception {
         System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog");
         System.setProperty("org.apache.commons.logging.simplelog.defaultlog", "ERROR");
-        PlutoContainerServices containerServices = new PlutoContainerServices();
-        new PlutoServices(containerServices, containerServices);
     }
 
     protected void assertException(Object target, String methodName,

Modified: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/config/impl/DriverConfigurationImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/config/impl/DriverConfigurationImpl.java?rev=752438&r1=752437&r2=752438&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/config/impl/DriverConfigurationImpl.java (original)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/config/impl/DriverConfigurationImpl.java Wed Mar 11 13:17:10 2009
@@ -25,7 +25,6 @@
 
 import org.apache.pluto.container.PortletContainerException;
 import org.apache.pluto.container.PortletPreferencesService;
-import org.apache.pluto.container.driver.PortletRegistryService;
 import org.apache.pluto.driver.config.DriverConfiguration;
 import org.apache.pluto.driver.services.portal.PageConfig;
 import org.apache.pluto.driver.services.portal.PropertyConfigService;
@@ -51,7 +50,6 @@
 
     // Container Services
     private PortletPreferencesService portletPreferencesService;
-    private PortletRegistryService registryService;
     
     public DriverConfigurationImpl(PortalURLParser portalUrlParser,
                                    PropertyConfigService propertyService,
@@ -193,24 +191,6 @@
     	return renderService;
     }
 
-    public PortletRegistryService getPortletRegistryService()
-    {
-        return registryService;
-    }
-    
-    public void setPortletRegistryService(PortletRegistryService registryService)
-    {
-        this.registryService = registryService;
-    }
-    
-    /**
-     * Standard Getter.
-     * @return the configuration data of all configured portlet applications.
-     */
-//    public Collection getPortletApplications() {
-//        return registryService.getPortletApplications();
-//    }
-
     public Set<PortletMode> getSupportedPortletModes(String portletId) throws PortletContainerException {
     	return supportedModesService.getSupportedPortletModes(portletId);
     }

Added: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventCoordinationServiceImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventCoordinationServiceImpl.java?rev=752438&view=auto
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventCoordinationServiceImpl.java (added)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventCoordinationServiceImpl.java Wed Mar 11 13:17:10 2009
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ */
+
+package org.apache.pluto.driver.services.container;
+
+import java.util.List;
+
+import javax.portlet.Event;
+
+import org.apache.pluto.container.EventCoordinationService;
+import org.apache.pluto.container.PortletWindow;
+
+/**
+ * @version $Id$
+ *
+ */
+public class EventCoordinationServiceImpl implements EventCoordinationService
+{
+    /* (non-Javadoc)
+     * @see org.apache.pluto.container.EventCoordinationService#processEvents(org.apache.pluto.container.PortletWindow, java.util.List)
+     */
+    public void processEvents(PortletWindow portletWindow, List<Event> events)
+    {
+        // TODO Auto-generated method stub
+    }
+}

Propchange: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventCoordinationServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventCoordinationServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventCoordinationServiceImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/FilterManagerServiceImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/FilterManagerServiceImpl.java?rev=752438&view=auto
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/FilterManagerServiceImpl.java (added)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/FilterManagerServiceImpl.java Wed Mar 11 13:17:10 2009
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+
+package org.apache.pluto.driver.services.container;
+
+import org.apache.pluto.container.FilterManager;
+import org.apache.pluto.container.FilterManagerService;
+import org.apache.pluto.container.om.portlet.PortletApplicationDefinition;
+
+/**
+ * @version $Id$
+ *
+ */
+public class FilterManagerServiceImpl implements FilterManagerService
+{
+    /* (non-Javadoc)
+     * @see org.apache.pluto.container.FilterManagerService#getFilterManager(org.apache.pluto.container.om.portlet.PortletApplicationDefinition, java.lang.String, java.lang.String)
+     */
+    public FilterManager getFilterManager(PortletApplicationDefinition portletAppDD, String portletName,
+                                          String lifeCycle)
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+}

Propchange: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/FilterManagerServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/FilterManagerServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/FilterManagerServiceImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletURLListenerServiceImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletURLListenerServiceImpl.java?rev=752438&view=auto
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletURLListenerServiceImpl.java (added)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletURLListenerServiceImpl.java Wed Mar 11 13:17:10 2009
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+
+package org.apache.pluto.driver.services.container;
+
+import java.util.List;
+
+import javax.portlet.PortletURLGenerationListener;
+
+import org.apache.pluto.container.PortletURLListenerService;
+import org.apache.pluto.container.om.portlet.PortletApplicationDefinition;
+
+/**
+ * @version $Id$
+ *
+ */
+public class PortletURLListenerServiceImpl implements PortletURLListenerService
+{
+    /* (non-Javadoc)
+     * @see org.apache.pluto.container.PortletURLListenerService#getPortletURLGenerationListeners(org.apache.pluto.container.om.portlet.PortletApplicationDefinition)
+     */
+    public List<PortletURLGenerationListener> getPortletURLGenerationListeners(PortletApplicationDefinition app)
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+}

Propchange: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletURLListenerServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletURLListenerServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletURLListenerServiceImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: portals/pluto/trunk/pluto-portal/src/main/webapp/WEB-INF/pluto-portal-driver-services-config.xml
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal/src/main/webapp/WEB-INF/pluto-portal-driver-services-config.xml?rev=752438&r1=752437&r2=752438&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal/src/main/webapp/WEB-INF/pluto-portal-driver-services-config.xml (original)
+++ portals/pluto/trunk/pluto-portal/src/main/webapp/WEB-INF/pluto-portal-driver-services-config.xml Wed Mar 11 13:17:10 2009
@@ -52,12 +52,13 @@
 	
     <bean id="RequiredContainerServices"
           name="OptionalContainerServices"
-          class="org.apache.pluto.driver.services.container.ContainerServicesImpl"
+          class="org.apache.pluto.container.driver.impl.PlutoDriverServicesImpl"
           singleton="true">
       <constructor-arg><ref bean="PortalContext"/></constructor-arg>
-      <constructor-arg><ref bean="DriverConfiguration"/></constructor-arg>
-      <constructor-arg><ref bean="CCPPProfileService"/></constructor-arg>
-      <constructor-arg><ref bean="ContainerInvocationService"/></constructor-arg>
+      <constructor-arg><ref bean="PortletRequestContextService"/></constructor-arg>
+      <constructor-arg><ref bean="EventCoordinationService"/></constructor-arg>
+      <constructor-arg><ref bean="FilterManagerService"/></constructor-arg>
+      <constructor-arg><ref bean="PortletURLListenerService"/></constructor-arg>
     </bean>
 
     <bean id="PortalContext"
@@ -80,15 +81,8 @@
       <constructor-arg><ref bean="SupportedModesService"/></constructor-arg>
       <constructor-arg><ref bean="SupportedWindowStatesService"/></constructor-arg>
 
-      <!-- === Container Services === -->
-      <constructor-arg><ref bean="PortalCallbackService"/></constructor-arg>
-
-      <!--  Optional Container Services -->
-      <property name="portletRegistryService"><ref bean="PortletRegistryService"/></property>
-      
       <!--
       <property name="portletPreferencesService"><ref bean="PortletPreferencesService"/></property>
-      <property name="userAttributeService"><ref bean="UserAttributeService"/></property>
       -->
     </bean>
 
@@ -134,30 +128,21 @@
     <!-- ================================================ -->
     <!-- Container Services injected into  Configuration  -->
     <!-- ================================================ -->
-    <bean id="PortalCallbackService"
-          class="org.apache.pluto.driver.services.container.PortalCallbackServiceImpl"
+    <bean id="PortletRequestContextService"
+          class="org.apache.pluto.driver.services.container.PortletRequestContextServiceImpl"
           singleton="true">
-          <constructor-arg><ref bean="PropertyManager"/></constructor-arg>          
     </bean>
-
-    <bean id="PropertyManager"
-          class="org.apache.pluto.core.DefaultPropertyManager"
+    <bean id="EventCoordinationService"
+          class="org.apache.pluto.driver.services.container.EventCoordinationServiceImpl"
           singleton="true">
     </bean>
-    
-    <bean id="CCPPProfileService"
-    	  class="org.apache.pluto.core.DummyCCPPProfileServiceImpl"
-    	  singleton="true">
+    <bean id="FilterManagerService"
+          class="org.apache.pluto.driver.services.container.FilterManagerServiceImpl"
+          singleton="true">
     </bean>
-
-	<bean id='ContainerInvocationService'
-	      class='org.apache.pluto.core.ContainerInvocationServiceImpl'
-	      singleton='true'>
-	</bean>
-	
-	<bean id="PortletRegistryService"
-		  class="org.apache.pluto.core.PortletContextManager"
-		  singleton="true">
+    <bean id="PortletURLListenerService"
+          class="org.apache.pluto.driver.services.container.PortletURLListenerServiceImpl"
+          singleton="true">
     </bean>
-    
+
 </beans>
\ No newline at end of file

Modified: portals/pluto/trunk/pom.xml
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pom.xml?rev=752438&r1=752437&r2=752438&view=diff
==============================================================================
--- portals/pluto/trunk/pom.xml (original)
+++ portals/pluto/trunk/pom.xml Wed Mar 11 13:17:10 2009
@@ -161,6 +161,18 @@
             <organizationUrl>http://www.library.jhu.edu</organizationUrl>
         </developer>
 
+        <developer>
+            <name>Ate Douma</name>
+            <id>ate</id>
+            <email>ate#aT#apache.d0t.org</email>
+            <timezone>+2</timezone>
+            <organization>Hippo</organization>
+            <organizationUrl>http://www.onehippo.com</organizationUrl>
+            <roles>
+                <role>Java Developer</role>
+            </roles>
+    </developer>
+
     </developers>