Hi Pablo,

The current container still does have a default "configuration" for lightweight 
or standalone usage like from the Pluto Portal Driver.
The original and as such still available solution for that is you don't need to configure or change anything to get that "default" behavior out-of-the-box.
Part of that "default" configuration is using the PortletContextManager -> 
PortletDescriptorRegistry -> PortletAppDescriptorService.
With the property file you can override/change at least the last link if you 
want to.
Looking a bit in the Configuration class which loads the property file and its usage (only remaining references is the PortletDescriptorRegistry) I can see we could even "clean up" that a bit more now. For other usages though (like from within Jetspeed or other portals) its not really in the way anymore as you are not required to use the PortletContextManager -> PortletDescriptorRegistery etc. anymore as you can plugin your own implementations of the PortletRegistryService and PortletContextService.

If you have some ideas how this can or should be further abstracted, we're 
interested to hear of course.

Regards,

Ate

pablo wrote:
Hi there,

I was very happy to see that the commit 709176 <http://svn.apache.org/viewvc?view=rev&revision=709176> decoupled the descriptor service from the container, mainly by removing the hard-coded link to the implementation of PortletAppDescriptorService in the file pluto-configuration.properties <http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-container/src/main/resources/org/apache/pluto/core/pluto-configuration.properties?r1=645936&r2=709176&diff_format=h> .

However, after the revision 710128, I see that this properties file has kept this reference after the move to trunk. Is it going to stay like this?

I haven't been actively following the evolution of the pluto container, so if I am missing something basic, or if you want me to dig further into this issue, or just want to know what I am interested at all, please let me know! I want to make sure this e-mail is read (and replied!) so I prefer to keep it short.

Thanks!

Pablo Pera


---------- Forwarded message ----------
From: ** <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
Date: Thu, Oct 30, 2008 at 3:44 PM
Subject: svn commit: r709176 - in /portals/pluto/branches/2.0-spi-refactoring: pluto-container-api/src/main/java/org/apache/pluto/ pluto-container-api/src/main/java/org/apache/pluto/services/ pluto-container-api/src/main/java/org/apache/pluto/spi/optional/ plut...
To: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>


Author: ate
Date: Thu Oct 30 07:44:16 2008
New Revision: 709176

URL: http://svn.apache.org/viewvc?rev=709176&view=rev <http://svn.apache.org/viewvc?rev=709176&view=rev>
Log:
PLUTO-481 - Pluto 2.0 Refactoring Initiative
See: http://issues.apache.org/jira/browse/PLUTO-481
- decoupling DescriptorService as ContainerService again as its not used/needed by the container itself - other portals can simply use/extend this interface and/or its implementation but there's no need to tell Pluto about it :)

Added:
portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/services/PortletAppDescriptorService.java (contents, props changed) - copied, changed from r708685, portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/spi/optional/PortletAppDescriptorService.java
Removed:
portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/spi/optional/PortletAppDescriptorService.java
Modified:
portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/OptionalContainerServices.java portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/services/PlutoServices.java portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/DefaultOptionalContainerServices.java portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PlutoContainerServices.java portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletDescriptorRegistry.java portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/services/jaxb/PortletAppDescriptorServiceImpl.java portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/resources/org/apache/pluto/core/pluto-configuration.properties portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/ear/ComplexEarAssemblerTest.java portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/ear/EarAssemblerTest.java portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/io/AssemblyStreamTest.java

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/OptionalContainerServices.java URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/OptionalContainerServices.java?rev=709176&r1=709175&r2=709176&view=diff <http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/OptionalContainerServices.java?rev=709176&r1=709175&r2=709176&view=diff>
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/OptionalContainerServices.java (original) +++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/OptionalContainerServices.java Thu Oct 30 07:44:16 2008
@@ -17,7 +17,6 @@
 package org.apache.pluto;

 import org.apache.pluto.spi.optional.PortalAdministrationService;
-import org.apache.pluto.spi.optional.PortletAppDescriptorService;
 import org.apache.pluto.spi.optional.PortletEnvironmentService;
 import org.apache.pluto.spi.optional.PortletInfoService;
 import org.apache.pluto.spi.optional.PortletInvokerService;
@@ -111,12 +110,4 @@
     * of PortletWindow parameters in a PortalURL
     */
    NamespaceMapper getNamespaceMapper();
-
-    /**
- * Returns the portlet application descriptor service used to marshall descriptor streams
-     *
-     * @return the descriptor service
-     */
-    PortletAppDescriptorService getDescriptorService();
-
 }

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/services/PlutoServices.java URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/services/PlutoServices.java?rev=709176&r1=709175&r2=709176&view=diff <http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/services/PlutoServices.java?rev=709176&r1=709175&r2=709176&view=diff>
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/services/PlutoServices.java (original) +++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/services/PlutoServices.java Thu Oct 30 07:44:16 2008
@@ -23,7 +23,6 @@
 import org.apache.pluto.spi.ContainerInvocationService;
 import org.apache.pluto.spi.PortalCallbackService;
 import org.apache.pluto.spi.optional.PortalAdministrationService;
-import org.apache.pluto.spi.optional.PortletAppDescriptorService;
 import org.apache.pluto.spi.optional.PortletEnvironmentService;
 import org.apache.pluto.spi.optional.PortletInfoService;
 import org.apache.pluto.spi.optional.PortletInvokerService;
@@ -112,9 +111,4 @@
    {
        return provider.getUserInfoService();
    }
-
-    public PortletAppDescriptorService getDescriptorService()
-    {
-        return provider.getDescriptorService();
-    }
 }

Copied: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/services/PortletAppDescriptorService.java (from r708685, portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/spi/optional/PortletAppDescriptorService.java) URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/services/PortletAppDescriptorService.java?p2=portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/services/PortletAppDescriptorService.java&p1=portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/spi/optional/PortletAppDescriptorService.java&r1=708685&r2=709176&rev=709176&view=diff <http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/services/PortletAppDescriptorService.java?p2=portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/services/PortletAppDescriptorService.java&p1=portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/spi/optional/PortletAppDescriptorService.java&r1=708685&r2=709176&rev=709176&view=diff>
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/spi/optional/PortletAppDescriptorService.java (original) +++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/services/PortletAppDescriptorService.java Thu Oct 30 07:44:16 2008
@@ -14,7 +14,7 @@
 * limitations under the License.
 */

-package org.apache.pluto.spi.optional;
+package org.apache.pluto.services;

 import java.io.IOException;
 import java.io.InputStream;

Propchange: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/services/PortletAppDescriptorService.java
------------------------------------------------------------------------------
   svn:eol-style = native

Propchange: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/services/PortletAppDescriptorService.java
------------------------------------------------------------------------------
   svn:mergeinfo =

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/DefaultOptionalContainerServices.java URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/DefaultOptionalContainerServices.java?rev=709176&r1=709175&r2=709176&view=diff <http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/DefaultOptionalContainerServices.java?rev=709176&r1=709175&r2=709176&view=diff>
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/DefaultOptionalContainerServices.java (original) +++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/DefaultOptionalContainerServices.java Thu Oct 30 07:44:16 2008
@@ -19,8 +19,8 @@
 import org.apache.pluto.NamespaceMapper;
 import org.apache.pluto.OptionalContainerServices;
import org.apache.pluto.descriptors.services.jaxb.PortletAppDescriptorServiceImpl;
+import org.apache.pluto.services.PortletAppDescriptorService;
 import org.apache.pluto.spi.optional.PortalAdministrationService;
-import org.apache.pluto.spi.optional.PortletAppDescriptorService;
 import org.apache.pluto.spi.optional.PortletEnvironmentService;
 import org.apache.pluto.spi.optional.PortletInfoService;
 import org.apache.pluto.spi.optional.PortletInvokerService;

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PlutoContainerServices.java URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PlutoContainerServices.java?rev=709176&r1=709175&r2=709176&view=diff <http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PlutoContainerServices.java?rev=709176&r1=709175&r2=709176&view=diff>
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PlutoContainerServices.java (original) +++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PlutoContainerServices.java Thu Oct 30 07:44:16 2008
@@ -21,13 +21,11 @@
 import org.apache.pluto.NamespaceMapper;
 import org.apache.pluto.OptionalContainerServices;
 import org.apache.pluto.RequiredContainerServices;
-import org.apache.pluto.descriptors.services.jaxb.PortletAppDescriptorServiceImpl;
 import org.apache.pluto.services.ContainerServices;
 import org.apache.pluto.spi.CCPPProfileService;
 import org.apache.pluto.spi.ContainerInvocationService;
 import org.apache.pluto.spi.PortalCallbackService;
 import org.apache.pluto.spi.optional.PortalAdministrationService;
-import org.apache.pluto.spi.optional.PortletAppDescriptorService;
 import org.apache.pluto.spi.optional.PortletEnvironmentService;
 import org.apache.pluto.spi.optional.PortletInfoService;
 import org.apache.pluto.spi.optional.PortletInvokerService;
@@ -59,7 +57,6 @@
    private UserInfoService userInfoService;
    private RequestAttributeService requestAttributeService;
    private NamespaceMapper namespaceMapper;
-    private PortletAppDescriptorService descriptorService;

    public PlutoContainerServices()
    {
@@ -121,9 +118,6 @@
        namespaceMapper = optionalServices.getNamespaceMapper();
        if (namespaceMapper == null)
            namespaceMapper = new DefaultNamespaceMapper();
-        descriptorService = optionalServices.getDescriptorService();
-        if (descriptorService == null)
-            descriptorService = new PortletAppDescriptorServiceImpl();
    }

    protected void createDefaultOptionalServices()
@@ -138,7 +132,6 @@
        userInfoService = new DefaultUserInfoService();
        namespaceMapper = new DefaultNamespaceMapper();
requestAttributeService = new DefaultRequestAttributeService(namespaceMapper, userInfoService);
-        descriptorService = new PortletAppDescriptorServiceImpl();
    }

    protected void createDefaultRequiredServices()
@@ -228,10 +221,4 @@
    {
        return this.namespaceMapper;
    }
-
-    public PortletAppDescriptorService getDescriptorService()
-    {
-        return this.descriptorService;
-    }
-
 }

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletDescriptorRegistry.java URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletDescriptorRegistry.java?rev=709176&r1=709175&r2=709176&view=diff <http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletDescriptorRegistry.java?rev=709176&r1=709175&r2=709176&view=diff>
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletDescriptorRegistry.java (original) +++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/PortletDescriptorRegistry.java Thu Oct 30 07:44:16 2008
@@ -26,7 +26,7 @@
 import org.apache.pluto.PlutoConfigurationException;
 import org.apache.pluto.PortletContainerException;
 import org.apache.pluto.om.portlet.PortletApplicationDefinition;
-import org.apache.pluto.spi.optional.PortletAppDescriptorService;
+import org.apache.pluto.services.PortletAppDescriptorService;
 import org.apache.pluto.util.StringManager;

 /**

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/services/jaxb/PortletAppDescriptorServiceImpl.java URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/services/jaxb/PortletAppDescriptorServiceImpl.java?rev=709176&r1=709175&r2=709176&view=diff <http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/services/jaxb/PortletAppDescriptorServiceImpl.java?rev=709176&r1=709175&r2=709176&view=diff>
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/services/jaxb/PortletAppDescriptorServiceImpl.java (original) +++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/services/jaxb/PortletAppDescriptorServiceImpl.java Thu Oct 30 07:44:16 2008
@@ -12,7 +12,7 @@

 import org.apache.pluto.descriptors.portlet.PortletAppType;
 import org.apache.pluto.om.portlet.PortletApplicationDefinition;
-import org.apache.pluto.spi.optional.PortletAppDescriptorService;
+import org.apache.pluto.services.PortletAppDescriptorService;

 /**
 *  JAXB implementation of the xml2java binding

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/resources/org/apache/pluto/core/pluto-configuration.properties URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/resources/org/apache/pluto/core/pluto-configuration.properties?rev=709176&r1=709175&r2=709176&view=diff <http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/resources/org/apache/pluto/core/pluto-configuration.properties?rev=709176&r1=709175&r2=709176&view=diff>
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/resources/org/apache/pluto/core/pluto-configuration.properties (original) +++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/resources/org/apache/pluto/core/pluto-configuration.properties Thu Oct 30 07:44:16 2008
@@ -20,11 +20,4 @@

 
org.apache.pluto.descriptors.services.PortletAppDescriptorService=org.apache.pluto.descriptors.services.jaxb.PortletAppDescriptorServiceImpl

-######################################################################
-# if you want to use castor for xml binding use the following instead
-# (Note: its not possible to use QNames, because Castor doesn't support this)
-######################################################################
-#org.apache.pluto.descriptors.services.PortletAppDescriptorService=org.apache.pluto.descriptors.services.castor.PortletAppDescriptorServiceImpl
-
-
 
org.apache.pluto.container.supportedContainerRuntimeOptions=test,escapeXML,value

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/ear/ComplexEarAssemblerTest.java URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/ear/ComplexEarAssemblerTest.java?rev=709176&r1=709175&r2=709176&view=diff <http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/ear/ComplexEarAssemblerTest.java?rev=709176&r1=709175&r2=709176&view=diff>
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/ear/ComplexEarAssemblerTest.java (original) +++ portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/ear/ComplexEarAssemblerTest.java Thu Oct 30 07:44:16 2008
@@ -29,7 +29,7 @@
import org.apache.pluto.descriptors.services.jaxb.PortletAppDescriptorServiceImpl;
 import org.apache.pluto.om.portlet.PortletDefinition;
 import org.apache.pluto.om.portlet.PortletApplicationDefinition;
-import org.apache.pluto.spi.optional.PortletAppDescriptorService;
+import org.apache.pluto.services.PortletAppDescriptorService;
 import org.apache.pluto.util.assemble.ArchiveBasedAssemblyTest;
 import org.apache.pluto.util.assemble.Assembler;
 import org.apache.pluto.util.assemble.AssemblerConfig;

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/ear/EarAssemblerTest.java URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/ear/EarAssemblerTest.java?rev=709176&r1=709175&r2=709176&view=diff <http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/ear/EarAssemblerTest.java?rev=709176&r1=709175&r2=709176&view=diff>
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/ear/EarAssemblerTest.java (original) +++ portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/ear/EarAssemblerTest.java Thu Oct 30 07:44:16 2008
@@ -27,7 +27,7 @@
import org.apache.pluto.descriptors.services.jaxb.PortletAppDescriptorServiceImpl;
 import org.apache.pluto.om.portlet.PortletDefinition;
 import org.apache.pluto.om.portlet.PortletApplicationDefinition;
-import org.apache.pluto.spi.optional.PortletAppDescriptorService;
+import org.apache.pluto.services.PortletAppDescriptorService;
 import org.apache.pluto.util.assemble.ArchiveBasedAssemblyTest;
 import org.apache.pluto.util.assemble.Assembler;
 import org.apache.pluto.util.assemble.AssemblerConfig;

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/io/AssemblyStreamTest.java URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/io/AssemblyStreamTest.java?rev=709176&r1=709175&r2=709176&view=diff <http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/io/AssemblyStreamTest.java?rev=709176&r1=709175&r2=709176&view=diff>
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/io/AssemblyStreamTest.java (original) +++ portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/io/AssemblyStreamTest.java Thu Oct 30 07:44:16 2008
@@ -33,7 +33,7 @@
import org.apache.pluto.descriptors.services.jaxb.PortletAppDescriptorServiceImpl;
 import org.apache.pluto.om.portlet.PortletDefinition;
 import org.apache.pluto.om.portlet.PortletApplicationDefinition;
-import org.apache.pluto.spi.optional.PortletAppDescriptorService;
+import org.apache.pluto.services.PortletAppDescriptorService;
 import org.apache.pluto.util.assemble.Assembler;
 import org.apache.pluto.util.descriptors.web.PlutoWebXmlRewriter;





Reply via email to