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 2007/02/03 17:28:18 UTC

svn commit: r503228 - in /portals/pluto/trunk: pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/ pluto-descriptor-impl/src/main/resources/org/apache/pluto/descriptors/services/castor/ pluto-descriptor-impl/src/test/java/org/apach...

Author: ddewolf
Date: Sat Feb  3 08:28:17 2007
New Revision: 503228

URL: http://svn.apache.org/viewvc?view=rev&rev=503228
Log:
PLUTO-291 Implementing dd for windowstates, modes, and user attributes

Added:
    portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/CustomPortletModeDD.java   (with props)
    portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/CustomWindowStateDD.java   (with props)
    portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/UserAttributeDD.java   (with props)
    portals/pluto/trunk/pluto-descriptor-impl/src/test/java/org/apache/pluto/descriptors/services/castor/PortletAppDescriptorServiceImplTest.java   (with props)
Modified:
    portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/PortletAppDD.java
    portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/PortletDD.java
    portals/pluto/trunk/pluto-descriptor-impl/src/main/resources/org/apache/pluto/descriptors/services/castor/castor-portlet-xml-mapping.xml

Added: portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/CustomPortletModeDD.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/CustomPortletModeDD.java?view=auto&rev=503228
==============================================================================
--- portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/CustomPortletModeDD.java (added)
+++ portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/CustomPortletModeDD.java Sat Feb  3 08:28:17 2007
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2005-2007 The Apache Software Foundation
+ *
+ * Licensed 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.descriptors.portlet;
+
+/**
+ *
+ * @author <a href="ddewolf@apache.org">David H. DeWolf</a>
+ * @version $Id$
+ * @since 1.1.0
+ */
+public class CustomPortletModeDD {
+
+    private String description;
+
+    private String portletMode;
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getPortletMode() {
+        return portletMode;
+    }
+
+    public void setPortletMode(String portletMode) {
+        this.portletMode = portletMode;
+    }
+}

Propchange: portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/CustomPortletModeDD.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/CustomPortletModeDD.java
------------------------------------------------------------------------------
    svn:keywords = Id Author Date Rev

Added: portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/CustomWindowStateDD.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/CustomWindowStateDD.java?view=auto&rev=503228
==============================================================================
--- portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/CustomWindowStateDD.java (added)
+++ portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/CustomWindowStateDD.java Sat Feb  3 08:28:17 2007
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2005-2007 The Apache Software Foundation
+ *
+ * Licensed 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.descriptors.portlet;
+
+/**
+ *
+ * @author <a href="ddewolf@apache.org">David H. DeWolf</a>
+ * @version $Id$
+ * @since 1.1.0
+ */
+public class CustomWindowStateDD {
+
+    private String description;
+
+    private String windowState;
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getWindowState() {
+        return windowState;
+    }
+
+    public void setWindowState(String windowState) {
+        this.windowState = windowState;
+    }
+}

Propchange: portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/CustomWindowStateDD.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/CustomWindowStateDD.java
------------------------------------------------------------------------------
    svn:keywords = Id Author Date Rev

Modified: portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/PortletAppDD.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/PortletAppDD.java?view=diff&rev=503228&r1=503227&r2=503228
==============================================================================
--- portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/PortletAppDD.java (original)
+++ portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/PortletAppDD.java Sat Feb  3 08:28:17 2007
@@ -30,6 +30,15 @@
     /** The defined portlets within the system. */
     private List portlets = new ArrayList();
 
+    /** The defined custom modes within the application. */
+    private List customPortletModes = new ArrayList();
+
+    /** The defined custom states within the application. */
+    private List customWindowStates = new ArrayList();
+
+    /** The defined userAttributes within the app. */
+    private List userAttributes = new ArrayList();
+
     /**
      * Default Constructor.
      */
@@ -52,6 +61,27 @@
         this.portlets = portlets;
     }
 
+    public List getCustomPortletModes() {
+        return customPortletModes;
+    }
 
-}
+    public void setCustomPortletModes(List customPortletModes) {
+        this.customPortletModes = customPortletModes;
+    }
+
+    public List getCustomWindowStates() {
+        return customWindowStates;
+    }
+
+    public void setCustomWindowStates(List customWindowStates) {
+        this.customWindowStates = customWindowStates;
+    }
 
+    public List getUserAttributes() {
+        return userAttributes;
+    }
+
+    public void setUserAttributes(List userAttributes) {
+        this.userAttributes = userAttributes;
+    }
+}

Modified: portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/PortletDD.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/PortletDD.java?view=diff&rev=503228&r1=503227&r2=503228
==============================================================================
--- portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/PortletDD.java (original)
+++ portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/PortletDD.java Sat Feb  3 08:28:17 2007
@@ -80,7 +80,6 @@
      * @throws IllegalArgumentException if the name has a period since it is used
      * to create the portlet ID in <code>PortletWindowConfig.createPortletId()</code>
      * using a dot to separate the context path from the portlet name.
-     * @see PortletWindowConfig#createPortletId(String, String)
      */
     public void setPortletName(String portletName) {
     	if (portletName.indexOf('.') != -1) {

Added: portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/UserAttributeDD.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/UserAttributeDD.java?view=auto&rev=503228
==============================================================================
--- portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/UserAttributeDD.java (added)
+++ portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/UserAttributeDD.java Sat Feb  3 08:28:17 2007
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2005-2007 The Apache Software Foundation
+ *
+ * Licensed 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.descriptors.portlet;
+
+/**
+ *
+ * @author <a href="ddewolf@apache.org">David H. DeWolf</a>
+ * @version $Id$
+ * @since 1.1.0
+ */
+public class UserAttributeDD {
+
+    private String name;
+
+    private String description;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+    
+}

Propchange: portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/UserAttributeDD.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/pluto/trunk/pluto-descriptor-api/src/main/java/org/apache/pluto/descriptors/portlet/UserAttributeDD.java
------------------------------------------------------------------------------
    svn:keywords = Id Author Date Rev

Modified: portals/pluto/trunk/pluto-descriptor-impl/src/main/resources/org/apache/pluto/descriptors/services/castor/castor-portlet-xml-mapping.xml
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-descriptor-impl/src/main/resources/org/apache/pluto/descriptors/services/castor/castor-portlet-xml-mapping.xml?view=diff&rev=503228&r1=503227&r2=503228
==============================================================================
--- portals/pluto/trunk/pluto-descriptor-impl/src/main/resources/org/apache/pluto/descriptors/services/castor/castor-portlet-xml-mapping.xml (original)
+++ portals/pluto/trunk/pluto-descriptor-impl/src/main/resources/org/apache/pluto/descriptors/services/castor/castor-portlet-xml-mapping.xml Sat Feb  3 08:28:17 2007
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Object Mapping DTD Version 1.0//EN"
-                         "http://castor.exolab.org/mapping.dtd">
+    "http://castor.exolab.org/mapping.dtd">
 <!-- 
   Copyright 2004 The Apache Software Foundation
 
@@ -17,117 +17,160 @@
   limitations under the License.
 -->
 <mapping>
-  <description>Portlet Deployment Descriptor Mapping</description>
+    <description>Portlet Deployment Descriptor Mapping</description>
 
-  <!--
-   Bare Bones for now!
-   -->
-
-  <class name="org.apache.pluto.descriptors.portlet.PortletAppDD">
-    <map-to xml="portlet-app"/>
-    <field name="Portlets"
-           type="org.apache.pluto.descriptors.portlet.PortletDD"
-           collection="arraylist">
-      <bind-xml name="portlet" node="element"/>
-    </field>
-  </class>
-
-  <class name="org.apache.pluto.descriptors.portlet.PortletDD">
-    <field name="PortletName">
-      <bind-xml name="portlet-name" node="element"/>
-    </field>
-
-    <field name="PortletClass">
-      <bind-xml name="portlet-class" node="element"/>
-    </field>
-
-    <field name="PortletInfo" type="org.apache.pluto.descriptors.portlet.PortletInfoDD">
-      <bind-xml name="portlet-info" node="element"/>
-    </field>
-
-    <field name="InitParams" type="org.apache.pluto.descriptors.common.InitParamDD" collection="arraylist">
-      <bind-xml name="init-param" node="element" />
-    </field>
-      
-    <field name="ResourceBundle">
-      <bind-xml name="resource-bundle" node="element"/>
-    </field>
-
-    <field name="SecurityRoleRefs"
-           type="org.apache.pluto.descriptors.common.SecurityRoleRefDD"
-           collection="arraylist">
-      <bind-xml name="security-role-ref" node="element"/>
-    </field>
-
-    <field name="Supports" type="org.apache.pluto.descriptors.portlet.SupportsDD"
-           collection="arraylist">
-      <bind-xml name="supports" node="element"/>
-    </field>
-
-    <field name="PortletPreferences" type="org.apache.pluto.descriptors.portlet.PortletPreferencesDD">
-      <bind-xml name="portlet-preferences" node="element" />
-    </field>
-  </class>
-
-  <class name="org.apache.pluto.descriptors.portlet.PortletInfoDD">
-    <map-to xml="portlet-info"/>
-    <field name="Title">
-      <bind-xml name="title" node="element"/>
-    </field>
-    <field name="Keywords">
-      <bind-xml name="keywords" node="element"/>
-    </field>
-    <field name="ShortTitle">
-      <bind-xml name="short-title" node="element"/>
-    </field>
-  </class>
-    
-  <class name="org.apache.pluto.descriptors.portlet.SupportsDD">
-    <map-to xml="supports"/>
-
-    <field name="MimeType">
-      <bind-xml name="mime-type" node="element"/>
-    </field>
-
-    <field name="PortletModes" type="java.lang.String"
-           collection="arraylist">
-      <bind-xml name="portlet-mode" node="element"/>
-    </field>
-  </class>
-
-  <class name="org.apache.pluto.descriptors.common.InitParamDD">
-    <field name="ParamName">
-      <bind-xml name="name" node="element"/>
-    </field>
-    <field name="ParamValue">
-      <bind-xml name="value" node="element"/>
-    </field>
-  </class>
-
-  <class name="org.apache.pluto.descriptors.portlet.PortletPreferencesDD">
-    <map-to xml="portlet-preferences" />
-
-    <field name="PortletPreferences" type="org.apache.pluto.descriptors.portlet.PortletPreferenceDD"
-          collection="arraylist">
-      <bind-xml name="preference" node="element"/>
-    </field>
-
-    <field name="PreferencesValidator">
-      <bind-xml name="preferences-validator" node="element" />
-    </field>
-  </class>
-
-  <class name="org.apache.pluto.descriptors.portlet.PortletPreferenceDD">
-    <field name="Name">
-      <bind-xml name="name" node="element"/>
-    </field>
-    <field name="Values" type="java.lang.String" collection="arraylist">
-      <bind-xml name="value" node="element"/>
-    </field>
-    <field name="ReadOnly" type="boolean">
-      <bind-xml name="read-only" node="element"/>
-    </field>
-  </class>
+    <!--
+    Bare Bones for now!
+    -->
+
+    <class name="org.apache.pluto.descriptors.portlet.PortletAppDD">
+        <map-to xml="portlet-app"/>
+        <field name="Portlets"
+               type="org.apache.pluto.descriptors.portlet.PortletDD"
+               collection="arraylist">
+            <bind-xml name="portlet" node="element"/>
+        </field>
+
+        <field name="CustomPortletModes"
+               type="org.apache.pluto.descriptors.portlet.CustomPortletModeDD"
+               collection="arraylist">
+            <bind-xml name="custom-portlet-mode" node="element"/>
+        </field>
+        <field name="CustomWindowStates"
+               type="org.apache.pluto.descriptors.portlet.CustomWindowStateDD"
+               collection="arraylist">
+            <bind-xml name="custom-window-state" node="element"/>
+        </field>
+        <field name="UserAttributes"
+               type="org.apache.pluto.descriptors.portlet.UserAttributeDD"
+               collection="arraylist">
+            <bind-xml name="user-attribute" node="element"/>
+        </field>
+    </class>
+
+    <class name="org.apache.pluto.descriptors.portlet.PortletDD">
+        <field name="PortletName">
+            <bind-xml name="portlet-name" node="element"/>
+        </field>
+
+        <field name="PortletClass">
+            <bind-xml name="portlet-class" node="element"/>
+        </field>
+
+        <field name="PortletInfo" type="org.apache.pluto.descriptors.portlet.PortletInfoDD">
+            <bind-xml name="portlet-info" node="element"/>
+        </field>
+
+        <field name="InitParams" type="org.apache.pluto.descriptors.common.InitParamDD" collection="arraylist">
+            <bind-xml name="init-param" node="element"/>
+        </field>
+
+        <field name="ResourceBundle">
+            <bind-xml name="resource-bundle" node="element"/>
+        </field>
+
+        <field name="SecurityRoleRefs"
+               type="org.apache.pluto.descriptors.common.SecurityRoleRefDD"
+               collection="arraylist">
+            <bind-xml name="security-role-ref" node="element"/>
+        </field>
+
+        <field name="Supports" type="org.apache.pluto.descriptors.portlet.SupportsDD"
+               collection="arraylist">
+            <bind-xml name="supports" node="element"/>
+        </field>
+
+        <field name="PortletPreferences" type="org.apache.pluto.descriptors.portlet.PortletPreferencesDD">
+            <bind-xml name="portlet-preferences" node="element"/>
+        </field>
+    </class>
+
+    <class name="org.apache.pluto.descriptors.portlet.PortletInfoDD">
+        <map-to xml="portlet-info"/>
+        <field name="Title">
+            <bind-xml name="title" node="element"/>
+        </field>
+        <field name="Keywords">
+            <bind-xml name="keywords" node="element"/>
+        </field>
+        <field name="ShortTitle">
+            <bind-xml name="short-title" node="element"/>
+        </field>
+    </class>
+
+    <class name="org.apache.pluto.descriptors.portlet.SupportsDD">
+        <map-to xml="supports"/>
+
+        <field name="MimeType">
+            <bind-xml name="mime-type" node="element"/>
+        </field>
+
+        <field name="PortletModes" type="java.lang.String"
+               collection="arraylist">
+            <bind-xml name="portlet-mode" node="element"/>
+        </field>
+    </class>
+
+    <class name="org.apache.pluto.descriptors.common.InitParamDD">
+        <field name="ParamName">
+            <bind-xml name="name" node="element"/>
+        </field>
+        <field name="ParamValue">
+            <bind-xml name="value" node="element"/>
+        </field>
+    </class>
+
+    <class name="org.apache.pluto.descriptors.portlet.PortletPreferencesDD">
+        <map-to xml="portlet-preferences"/>
+
+        <field name="PortletPreferences" type="org.apache.pluto.descriptors.portlet.PortletPreferenceDD"
+               collection="arraylist">
+            <bind-xml name="preference" node="element"/>
+        </field>
+
+        <field name="PreferencesValidator">
+            <bind-xml name="preferences-validator" node="element"/>
+        </field>
+    </class>
+
+    <class name="org.apache.pluto.descriptors.portlet.PortletPreferenceDD">
+        <field name="Name">
+            <bind-xml name="name" node="element"/>
+        </field>
+        <field name="Values" type="java.lang.String" collection="arraylist">
+            <bind-xml name="value" node="element"/>
+        </field>
+        <field name="ReadOnly" type="boolean">
+            <bind-xml name="read-only" node="element"/>
+        </field>
+    </class>
+
+    <class name="org.apache.pluto.descriptors.portlet.CustomPortletModeDD">
+        <field name="PortletMode">
+            <bind-xml name="portlet-mode" node="element"/>
+        </field>
+        <field name="Description">
+            <bind-xml name="description" node="element"/>
+        </field>
+    </class>
+
+    <class name="org.apache.pluto.descriptors.portlet.CustomWindowStateDD">
+        <field name="WindowState">
+            <bind-xml name="window-state" node="element"/>
+        </field>
+        <field name="Description">
+            <bind-xml name="description" node="element"/>
+        </field>
+    </class>
+
+    <class name="org.apache.pluto.descriptors.portlet.UserAttributeDD">
+        <field name="Name">
+            <bind-xml name="name" node="element"/>
+        </field>
+        <field name="Description">
+            <bind-xml name="description" node="element"/>
+        </field>
+    </class>
 
 </mapping>
 

Added: portals/pluto/trunk/pluto-descriptor-impl/src/test/java/org/apache/pluto/descriptors/services/castor/PortletAppDescriptorServiceImplTest.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-descriptor-impl/src/test/java/org/apache/pluto/descriptors/services/castor/PortletAppDescriptorServiceImplTest.java?view=auto&rev=503228
==============================================================================
--- portals/pluto/trunk/pluto-descriptor-impl/src/test/java/org/apache/pluto/descriptors/services/castor/PortletAppDescriptorServiceImplTest.java (added)
+++ portals/pluto/trunk/pluto-descriptor-impl/src/test/java/org/apache/pluto/descriptors/services/castor/PortletAppDescriptorServiceImplTest.java Sat Feb  3 08:28:17 2007
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2005-2007 The Apache Software Foundation
+ *
+ * Licensed 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.descriptors.services.castor;
+
+import junit.framework.TestCase;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.io.IOException;
+
+import org.apache.pluto.descriptors.portlet.PortletAppDD;
+
+/**
+ *
+ * @author <a href="ddewolf@apache.org">David H. DeWolf</a>
+ * @version $Id$
+ * @since 1.1.0
+ */
+public class PortletAppDescriptorServiceImplTest extends TestCase {
+
+    private PortletAppDescriptorServiceImpl service;
+
+    public void setUp() {
+        service = new PortletAppDescriptorServiceImpl();
+    }
+
+    public void testParse() throws IOException {
+        InputStream in = new ByteArrayInputStream(xml.toString().getBytes());
+
+        PortletAppDD dd = service.read(in);
+        assertEquals(0, dd.getPortlets().size());
+        assertEquals(2, dd.getCustomPortletModes().size());
+        assertEquals(2, dd.getCustomWindowStates().size());
+        assertEquals(1, dd.getUserAttributes().size());
+    }
+
+
+    private String xml = "<portlet-app\n" +
+        "    xmlns=\"http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd\"\n" +
+        "    version=\"1.0\"\n" +
+        "    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
+        "    xsi:schemaLocation=\"http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd\n" +
+        "                        http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd\">" +
+        " <custom-portlet-mode><description>Test</description><portlet-mode>customMode</portlet-mode></custom-portlet-mode>" +
+        " <custom-portlet-mode><description>Test2</description><portlet-mode>customMode2</portlet-mode></custom-portlet-mode>" +
+        " <custom-window-state><description>Test</description><window-state>customWindow</window-state></custom-window-state>" +
+        " <custom-window-state><description>Test2</description><window-state>customWindow2</window-state></custom-window-state>" +
+        " <user-attribute><description>Test2</description><name>user</name></user-attribute>" +
+        "</portlet-app>";
+}

Propchange: portals/pluto/trunk/pluto-descriptor-impl/src/test/java/org/apache/pluto/descriptors/services/castor/PortletAppDescriptorServiceImplTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/pluto/trunk/pluto-descriptor-impl/src/test/java/org/apache/pluto/descriptors/services/castor/PortletAppDescriptorServiceImplTest.java
------------------------------------------------------------------------------
    svn:keywords = Id Author Date Rev