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 2008/10/21 18:25:07 UTC

svn commit: r706677 [1/3] - in /portals/pluto/branches/2.0-spi-refactoring: pluto-container-api/src/main/java/org/apache/pluto/om/ pluto-container-api/src/main/java/org/apache/pluto/om/portlet/ pluto-container/src/main/java/org/apache/pluto/core/ pluto...

Author: ate
Date: Tue Oct 21 09:25:05 2008
New Revision: 706677

URL: http://svn.apache.org/viewvc?rev=706677&view=rev
Log:
PLUTO-509: JAXB portlet descriptor model handling broken with respect to the different namespace handling for portlet API 1.0 and 2.0
See: https://issues.apache.org/jira/browse/PLUTO-509
Third rewrite, better be good now ...

Added:
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/
      - copied from r706133, portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet20/
Removed:
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/ElementFactoryList.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet20/
Modified:
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/ContainerRuntimeOption.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/CustomPortletMode.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/CustomWindowState.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Description.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/DisplayName.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/EventDefinition.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/EventDefinitionReference.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Filter.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/FilterMapping.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/InitParam.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Listener.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/PortletApplicationDefinition.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/PortletDefinition.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Preference.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Preferences.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/PublicRenderParameter.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/SecurityConstraint.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/SecurityRoleRef.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Supports.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/UserAttribute.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/UserDataConstraint.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/DefaultPortletPreferencesService.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/ContainerRuntimeOptionType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/CustomPortletModeType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/CustomWindowStateType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/DescriptionType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/DisplayNameType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/EventDefinitionReferenceType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/EventDefinitionType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/FilterMappingType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/FilterType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/InitParamType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/ListenerType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/ObjectFactory.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/PortletAppType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/PortletCollectionType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/PortletInfoType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/PortletPreferencesType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/PortletType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/PreferenceType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/PublicRenderParameterType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/SecurityConstraintType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/SecurityRoleRefType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/SupportsType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/UserAttributeType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/UserDataConstraintType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/package-info.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet10/ContainerRuntimeOptionType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet10/CustomPortletModeType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet10/CustomWindowStateType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet10/DescriptionType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet10/DisplayNameType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet10/InitParamType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet10/PortletAppType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet10/PortletCollectionType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet10/PortletInfoType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet10/PortletPreferencesType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet10/PortletType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet10/PreferenceType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet10/SecurityConstraintType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet10/SecurityRoleRefType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet10/SupportsType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet10/UserAttributeType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet10/UserDataConstraintType.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/services/jaxb/PortletAppDescriptorService.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/java/org/apache/pluto/internal/impl/PortletConfigImpl.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/test/java/org/apache/pluto/descriptors/services/jaxb/JaxBDescriptorServiceImplTest.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/test/java/org/apache/pluto/internal/impl/ResourceBundleFactoryTest.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventProviderImpl.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/FilterConfigImpl.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/FilterManagerImpl.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletURLListenerImpl.java
    portals/pluto/branches/2.0-spi-refactoring/pluto-util/src/test/java/org/apache/pluto/util/assemble/ear/ComplexEarAssemblerTest.java

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/ContainerRuntimeOption.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/ContainerRuntimeOption.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/ContainerRuntimeOption.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/ContainerRuntimeOption.java Tue Oct 21 09:25:05 2008
@@ -20,7 +20,7 @@
 public interface ContainerRuntimeOption {
 
 	String getName();
-	void setName(String name);
 
 	List<String> getValues();
+	void addValue(String value);
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/CustomPortletMode.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/CustomPortletMode.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/CustomPortletMode.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/CustomPortletMode.java Tue Oct 21 09:25:05 2008
@@ -15,18 +15,17 @@
  */
 package org.apache.pluto.om.portlet;
 
+import java.util.List;
 import java.util.Locale;
 
-import org.apache.pluto.om.ElementFactoryList;
-
 public interface CustomPortletMode {
 
+    String getPortletMode();
+    
 	boolean isPortalManaged();
 	void setPortalManaged(boolean portalManaged);
 
 	Description getDescription(Locale locale);
-	ElementFactoryList<Description> getDescriptions();
-
-	String getPortletMode();
-	void setPortletMode(String portletMode);
+	List<? extends Description> getDescriptions();
+	Description addDescription(String lang);
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/CustomWindowState.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/CustomWindowState.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/CustomWindowState.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/CustomWindowState.java Tue Oct 21 09:25:05 2008
@@ -15,15 +15,14 @@
  */
 package org.apache.pluto.om.portlet;
 
+import java.util.List;
 import java.util.Locale;
 
-import org.apache.pluto.om.ElementFactoryList;
-
 public interface CustomWindowState {
 
-    Description getDescription(Locale locale);
-	ElementFactoryList<Description> getDescriptions();
+    String getWindowState();
 
-	String getWindowState();
-	void setWindowState(String windowState);
+    Description getDescription(Locale locale);
+	List<? extends Description> getDescriptions();
+    Description addDescription(String lang);
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Description.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Description.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Description.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Description.java Tue Oct 21 09:25:05 2008
@@ -19,11 +19,10 @@
 
 public interface Description {
 
+    String getLang();
+    
 	String getDescription();
 	void setDescription(String description);
 
-	String getLang();
-	void setLang(String lang);
-	
 	Locale getLocale();
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/DisplayName.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/DisplayName.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/DisplayName.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/DisplayName.java Tue Oct 21 09:25:05 2008
@@ -19,11 +19,10 @@
 
 public interface DisplayName {
 
+    String getLang();
+
 	String getDisplayName();
 	void setDisplayName(String displayName);
-
-	String getLang();
-	void setLang(String lang);
 	
 	Locale getLocale();
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/EventDefinition.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/EventDefinition.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/EventDefinition.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/EventDefinition.java Tue Oct 21 09:25:05 2008
@@ -20,23 +20,20 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.pluto.om.ElementFactoryList;
-
 public interface EventDefinition
 {
+    QName getQName();
+    String getName();
+    
 	List<QName> getAliases();
+	void addAlias(QName qName);
 
 	Description getDescription(Locale locale);
-	ElementFactoryList<Description> getDescriptions();
+    List<? extends Description> getDescriptions();
+    Description addDescription(String lang);
 	
 	String getValueType();
 	void setValueType(String valueType);
 
-	QName getQName();
-	void setQName(QName qname);
-
-	String getName();
-	void setName(String name);
-	
 	QName getQualifiedName(String defaultNamespace);
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/EventDefinitionReference.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/EventDefinitionReference.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/EventDefinitionReference.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/EventDefinitionReference.java Tue Oct 21 09:25:05 2008
@@ -20,10 +20,8 @@
 public interface EventDefinitionReference {
 
 	QName getQName();
-	void setQName(QName qname);
 
 	String getName();	
-	void setName(String name);
 	
 	QName getQualifiedName(String defaultNamespace);	
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Filter.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Filter.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Filter.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Filter.java Tue Oct 21 09:25:05 2008
@@ -18,24 +18,25 @@
 import java.util.List;
 import java.util.Locale;
 
-import org.apache.pluto.om.ElementFactoryList;
-
 public interface Filter {
 
+    String getFilterName();
+
     Description getDescription(Locale locale);
-	ElementFactoryList<Description> getDescriptions();
+    List<? extends Description> getDescriptions();
+    Description addDescription(String lang);
 
 	DisplayName getDisplayName(Locale locale);
-	ElementFactoryList<DisplayName> getDisplayNames();
+	List<? extends DisplayName> getDisplayNames();
+	DisplayName addDisplayName(String lang);
 
 	String getFilterClass();
 	void setFilterClass(String filterClass);
 
-	String getFilterName();
-	void setFilterName(String filterName);
-
 	InitParam getInitParam(String paramName);
-	ElementFactoryList<InitParam> getInitParams();
+	List<? extends InitParam> getInitParams();
+	InitParam addInitParam(String paramName);
 
 	List<String> getLifecycles();
+	void addLifecycle(String lifecycle);
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/FilterMapping.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/FilterMapping.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/FilterMapping.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/FilterMapping.java Tue Oct 21 09:25:05 2008
@@ -20,7 +20,7 @@
 public interface FilterMapping {
 
 	String getFilterName();
-	void setFilterName(String filterName);
 
 	List<String> getPortletNames();
+	void addPortletName(String portletName);
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/InitParam.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/InitParam.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/InitParam.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/InitParam.java Tue Oct 21 09:25:05 2008
@@ -15,40 +15,17 @@
  */
 package org.apache.pluto.om.portlet;
 
+import java.util.List;
 import java.util.Locale;
 
-import org.apache.pluto.om.ElementFactoryList;
-
 public interface InitParam {
 
-	/**
-	 * Retrieve the name of the parameter.
-	 * @return
-	 */
 	String getParamName();
 
-	/**
-	 * Set the name of the parameter.
-	 * @param paramName
-	 */
-	void setParamName(String paramName);
-
-	/**
-	 * Get the name of the parameter.
-	 * @return
-	 */
 	String getParamValue();
-
-	/**
-	 * Set the value of the parameter.
-	 * @param paramValue
-	 */
 	void setParamValue(String paramValue);
 
 	Description getDescription(Locale locale);
-	/**
-	 * Retrieve the description list.
-	 * @return
-	 */
-	public ElementFactoryList<Description> getDescriptions();
+    List<? extends Description> getDescriptions();
+    Description addDescription(String lang);
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Listener.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Listener.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Listener.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Listener.java Tue Oct 21 09:25:05 2008
@@ -15,18 +15,18 @@
  */
 package org.apache.pluto.om.portlet;
 
+import java.util.List;
 import java.util.Locale;
 
-import org.apache.pluto.om.ElementFactoryList;
-
 public interface Listener {
+    
+    String getListenerClass();
 
     Description getDescription(Locale locale);
-	ElementFactoryList<Description> getDescriptions();
+    List<? extends Description> getDescriptions();
+    Description addDescription(String lang);
 	
 	DisplayName getDisplayName(Locale locale);
-	ElementFactoryList<DisplayName> getDisplayNames();
-	
-	String getListenerClass();
-	void setListenerClass(String listenerClass);
+    List<? extends DisplayName> getDisplayNames();
+    DisplayName addDisplayName(String lang);
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/PortletApplicationDefinition.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/PortletApplicationDefinition.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/PortletApplicationDefinition.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/PortletApplicationDefinition.java Tue Oct 21 09:25:05 2008
@@ -15,69 +15,67 @@
  */
 package org.apache.pluto.om.portlet;
 
-import org.apache.pluto.om.ElementFactoryList;
+import java.util.List;
 
+import javax.xml.namespace.QName;
 
 public interface PortletApplicationDefinition {
 
-    /**
-     * The name of the Portlet Application
-     * <br/>
-     */
+    String JSR_168_VERSION = "1.0";
+    String JSR_286_VERSION = "2.0";
+
     String getName();
-    
-    /**
-     * Set the name for the Portlet Application
-     * @param name
-     */
     void setName(String name);
     
     PortletDefinition getPortlet(String portletName);
-	/**
-	 * Retrieve the portlets which exist within this application.
-	 * @return
-	 */
-	ElementFactoryList<PortletDefinition> getPortlets();
-
-	/**
-	 * @return Returns the events.
-	 */
-	ElementFactoryList<EventDefinition> getEventDefinitions();
+	List<? extends PortletDefinition> getPortlets();
+	PortletDefinition addPortlet(String name);
+	
+	List<? extends EventDefinition> getEventDefinitions();
+	EventDefinition addEventDefinition(String name);
+    EventDefinition addEventDefinition(QName qname);
 
 	PublicRenderParameter getPublicRenderParameter(String identifier);
-	/**
-	 * @return Returns the public render parameter.
-	 */
-	ElementFactoryList<PublicRenderParameter> getPublicRenderParameters();
+	List<? extends PublicRenderParameter> getPublicRenderParameters();
+	PublicRenderParameter addPublicRenderParameter(String name, String identifier);
+    PublicRenderParameter addPublicRenderParameter(QName qname, String identifier);
 
 	String getVersion();
 	void setVersion(String version);
 
 	CustomPortletMode getCustomPortletMode(String name);
-	ElementFactoryList<CustomPortletMode> getCustomPortletModes();
+	List<? extends CustomPortletMode> getCustomPortletModes();
+	CustomPortletMode addCustomPortletMode(String name);
 
     CustomWindowState getCustomWindowState(String name);
-	ElementFactoryList<CustomWindowState> getCustomWindowStates();
+	List<? extends CustomWindowState> getCustomWindowStates();
+	CustomWindowState addCustomWindowState(String name);
 
 	UserAttribute getUserAttribute(String name);
-	ElementFactoryList<UserAttribute> getUserAttributes();
+	List<? extends UserAttribute> getUserAttributes();
+	UserAttribute addUserAttribute(String name);
 
-	ElementFactoryList<SecurityConstraint> getSecurityConstraints();
+	List<? extends SecurityConstraint> getSecurityConstraints();
+	SecurityConstraint addSecurityConstraint(String transportGuarantee);
 
 	String getResourceBundle();
 	void setResourceBundle(String resourceBundle);
 
 	Filter getFilter(String filterName);
-	ElementFactoryList<Filter> getFilters();
+	List<? extends Filter> getFilters();
+	Filter addFilter(String filterName);
 
 	FilterMapping getFilterMapping(String filterName);
-	ElementFactoryList<FilterMapping> getFilterMappings();
+	List<? extends FilterMapping> getFilterMappings();
+	FilterMapping addFilterMapping(String filterName);
 
-	ElementFactoryList<Listener> getListeners();
+	List<? extends Listener> getListeners();
+	Listener addListener(String listenerClass);
 
 	String getDefaultNamespace();
 	void setDefaultNamespace(String defaultNamespace);
 
 	ContainerRuntimeOption getContainerRuntimeOption(String name);
-	ElementFactoryList<ContainerRuntimeOption> getContainerRuntimeOptions();
+	List<? extends ContainerRuntimeOption> getContainerRuntimeOptions();
+	ContainerRuntimeOption addContainerRuntimeOption(String name);
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/PortletDefinition.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/PortletDefinition.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/PortletDefinition.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/PortletDefinition.java Tue Oct 21 09:25:05 2008
@@ -18,49 +18,57 @@
 import java.util.List;
 import java.util.Locale;
 
-import org.apache.pluto.om.ElementFactoryList;
+import javax.xml.namespace.QName;
 
 public interface PortletDefinition {
     
-	PortletApplicationDefinition getApplication();
-	void setApplication(PortletApplicationDefinition application);
+    String getPortletName();
+
+    PortletApplicationDefinition getApplication();
 
     InitParam getInitParam(String paramName);
-	ElementFactoryList<InitParam> getInitParams();
+	List<? extends InitParam> getInitParams();
+	InitParam addInitParam(String paramName);
 	
 	String getPortletClass();
 	void setPortletClass(String portletClass);
 
 	PortletInfo getPortletInfo();
-    PortletInfo getPortletInfo(boolean create);
-
-	String getPortletName();
-	void setPortletName(String portletName);
 
 	Preferences getPortletPreferences();
-    Preferences getPortletPreferences(boolean create);
 
-    ElementFactoryList<EventDefinitionReference> getSupportedProcessingEvents();
-    ElementFactoryList<EventDefinitionReference> getSupportedPublishingEvents();
+    List<? extends EventDefinitionReference> getSupportedProcessingEvents();
+    EventDefinitionReference addSupportedProcessingEvent(QName qname);
+    EventDefinitionReference addSupportedProcessingEvent(String name);
+    
+    List<? extends EventDefinitionReference> getSupportedPublishingEvents();
+    EventDefinitionReference addSupportedPublishingEvent(QName qname);
+    EventDefinitionReference addSupportedPublishingEvent(String name);
 
 	List<String> getSupportedPublicRenderParameters();
+	void addSupportedPublicRenderParameter(String identifier);
 
 	String getResourceBundle();
 	void setResourceBundle(String resourceBundle);
 
 	SecurityRoleRef getSecurityRoleRef(String roleName);
-	ElementFactoryList<SecurityRoleRef> getSecurityRoleRefs();
+	List<? extends SecurityRoleRef> getSecurityRoleRefs();
+	SecurityRoleRef addSecurityRoleRef(String roleName);
 
 	Supports getSupports(String mimeType);
-	ElementFactoryList<Supports> getSupports();
+	List<? extends Supports> getSupports();
+	Supports addSupports(String mimeType);
 
 	Description getDescription(Locale locale);
-	ElementFactoryList<Description> getDescriptions();
+    List<? extends Description> getDescriptions();
+    Description addDescription(String lang);
 
 	DisplayName getDisplayName(Locale locale);
-    ElementFactoryList<DisplayName> getDisplayNames();
+    List<? extends DisplayName> getDisplayNames();
+    DisplayName addDisplayName(String lang);
 
 	List<String> getSupportedLocales();
+	void addSupportedLocale(String lang);
 
 	int getExpirationCache();
     void setExpirationCache(int expirationCache);
@@ -69,5 +77,6 @@
 	void setCacheScope(String cacheScope);
 
 	ContainerRuntimeOption getContainerRuntimeOption(String name);
-	ElementFactoryList<ContainerRuntimeOption> getContainerRuntimeOptions();
+	List<? extends ContainerRuntimeOption> getContainerRuntimeOptions();
+	ContainerRuntimeOption addContainerRuntimeOption(String name);
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Preference.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Preference.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Preference.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Preference.java Tue Oct 21 09:25:05 2008
@@ -19,10 +19,10 @@
 
 public interface Preference {
 
-	String getName();
-	void setName(String name);
+    String getName();
 
-	List<String> getValues();
+    List<String> getValues();
+	void addValue(String value);
 
 	boolean isReadOnly();
 	void setReadOnly(boolean readOnly);

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Preferences.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Preferences.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Preferences.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Preferences.java Tue Oct 21 09:25:05 2008
@@ -15,12 +15,13 @@
  */
 package org.apache.pluto.om.portlet;
 
-import org.apache.pluto.om.ElementFactoryList;
+import java.util.List;
 
 public interface Preferences {
 
     Preference getPortletPreference(String name);
-	ElementFactoryList<Preference> getPortletPreferences();
+	List<? extends Preference> getPortletPreferences();
+	Preference addPreference(String name);
 
 	String getPreferencesValidator();
 	void setPreferencesValidator(String preferencesValidator);

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/PublicRenderParameter.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/PublicRenderParameter.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/PublicRenderParameter.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/PublicRenderParameter.java Tue Oct 21 09:25:05 2008
@@ -20,21 +20,16 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.pluto.om.ElementFactoryList;
-
 public interface PublicRenderParameter {
 
-    Description getDescription(Locale locale);
-	ElementFactoryList<Description> getDescriptions();
-
-	String getIdentifier();
-	void setIdentifier(String id);
+    QName getQName();
+    String getName();
+    String getIdentifier();
 
-	QName getQName();
-    void setQName(QName qname);
+    Description getDescription(Locale locale);
+    List<? extends Description> getDescriptions();
+    Description addDescription(String lang);
 
 	List<QName> getAliases();
-	
-    String getName();
-	void setName(String name);
+	void addAlias(QName alias);
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/SecurityConstraint.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/SecurityConstraint.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/SecurityConstraint.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/SecurityConstraint.java Tue Oct 21 09:25:05 2008
@@ -18,14 +18,14 @@
 import java.util.List;
 import java.util.Locale;
 
-import org.apache.pluto.om.ElementFactoryList;
-
 public interface SecurityConstraint {
+    
+    UserDataConstraint getUserDataConstraint();
 
     DisplayName getDisplayName(Locale locale);
-	ElementFactoryList<DisplayName> getDisplayNames();
+    List<? extends DisplayName> getDisplayNames();
+    DisplayName addDisplayName(String lang);
 	
     List<String> getPortletNames();
-    
-	UserDataConstraint getUserDataConstraint();
+    void addPortletName(String portletName);
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/SecurityRoleRef.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/SecurityRoleRef.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/SecurityRoleRef.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/SecurityRoleRef.java Tue Oct 21 09:25:05 2008
@@ -15,18 +15,17 @@
  */
 package org.apache.pluto.om.portlet;
 
+import java.util.List;
 import java.util.Locale;
 
-import org.apache.pluto.om.ElementFactoryList;
-
 public interface SecurityRoleRef {
 
 	String getRoleName();
-	void setRoleName(String roleName);
 
 	String getRoleLink();
 	void setRoleLink(String roleLink);
 
 	Description getDescription(Locale locale);
-	ElementFactoryList<Description> getDescriptions();
+    List<? extends Description> getDescriptions();
+    Description addDescription(String lang);
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Supports.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Supports.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Supports.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/Supports.java Tue Oct 21 09:25:05 2008
@@ -20,8 +20,10 @@
 public interface Supports {
 
 	String getMimeType();
-	void setMimeType(String mimeType);
 
 	List<String> getPortletModes();
-    List<String> getWindowStates();
+	void addPortletMode(String portletMode);
+
+	List<String> getWindowStates();
+    void addWindowState(String windowState);
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/UserAttribute.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/UserAttribute.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/UserAttribute.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/UserAttribute.java Tue Oct 21 09:25:05 2008
@@ -15,15 +15,14 @@
  */
 package org.apache.pluto.om.portlet;
 
+import java.util.List;
 import java.util.Locale;
 
-import org.apache.pluto.om.ElementFactoryList;
-
 public interface UserAttribute {
+    
+    String getName();
 
     Description getDescription(Locale locale);
-	ElementFactoryList<Description> getDescriptions();
-	
-	String getName();
-	void setName(String name);
+    List<? extends Description> getDescriptions();
+    Description addDescription(String lang);
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/UserDataConstraint.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/UserDataConstraint.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/UserDataConstraint.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container-api/src/main/java/org/apache/pluto/om/portlet/UserDataConstraint.java Tue Oct 21 09:25:05 2008
@@ -15,19 +15,18 @@
  */
 package org.apache.pluto.om.portlet;
 
+import java.util.List;
 import java.util.Locale;
 
-import org.apache.pluto.om.ElementFactoryList;
-
 public interface UserDataConstraint {
 
 	String NONE = "NONE";
 	String INTEGRAL = "INTEGRAL";
 	String CONFIDENTIAL = "CONFIDENTIAL";
 
+    String getTransportGuarantee();
+    
 	Description getDescription(Locale locale);
-	ElementFactoryList<Description> getDescriptions();
-
-	String getTransportGuarantee();
-	void setTransportGuarantee(String transportGuarantee);
+    List<? extends Description> getDescriptions();
+    Description addDescription(String lang);
 }
\ No newline at end of file

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/DefaultPortletPreferencesService.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/DefaultPortletPreferencesService.java?rev=706677&r1=706676&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/DefaultPortletPreferencesService.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/core/DefaultPortletPreferencesService.java Tue Oct 21 09:25:05 2008
@@ -91,7 +91,7 @@
      * </p>
      * @return the default preferences set
      * 
-     * @see org.apache.pluto.descriptors.portlet20.PreferenceType
+     * @see org.apache.pluto.descriptors.portlet.PreferenceType
      */
     public Map<String,InternalPortletPreference> getDefaultPreferences( PortletWindow portletWindow,
                                                               PortletRequest request )

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/ContainerRuntimeOptionType.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/ContainerRuntimeOptionType.java?rev=706677&r1=706133&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/ContainerRuntimeOptionType.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/ContainerRuntimeOptionType.java Tue Oct 21 09:25:05 2008
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.pluto.descriptors.portlet20;
+package org.apache.pluto.descriptors.portlet;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -80,8 +80,8 @@
         return value;
     }
 
-    public void setValues(List<String> values)
+    public void addValue(String value)
     {
-        this.value = values;
+        getValues().add(value);
     }
 }

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/CustomPortletModeType.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/CustomPortletModeType.java?rev=706677&r1=706133&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/CustomPortletModeType.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/CustomPortletModeType.java Tue Oct 21 09:25:05 2008
@@ -14,8 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.pluto.descriptors.portlet20;
+package org.apache.pluto.descriptors.portlet;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 
@@ -26,7 +27,6 @@
 import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
-import org.apache.pluto.om.ElementFactoryList;
 import org.apache.pluto.om.portlet.CustomPortletMode;
 import org.apache.pluto.om.portlet.Description;
 
@@ -57,8 +57,8 @@
 @XmlType(name = "custom-portlet-modeType", propOrder = { "description", "portletMode", "portalManaged" })
 public class CustomPortletModeType implements CustomPortletMode
 {
-    @XmlElement(name = "description", type=DescriptionType.class)
-    protected List<Description> description;
+    @XmlElement(name = "description")
+    protected List<DescriptionType> description;
     @XmlElement(name = "portlet-mode", required = true)
     @XmlJavaTypeAdapter(value=CollapsedStringAdapter.class)
     protected String portletMode;
@@ -77,30 +77,26 @@
         return null;
     }
     
-    public ElementFactoryList<Description> getDescriptions()
+    public List<? extends Description> getDescriptions()
     {
-        if (description == null || !(description instanceof ElementFactoryList))
+        if (description == null)
         {
-            ElementFactoryList<Description> lf = 
-                new ElementFactoryList<Description>( new ElementFactoryList.Factory<Description>()
-                {
-                    public Class<? extends Description> getElementClass()
-                    {
-                        return DescriptionType.class;
-                    }
-
-                    public Description newElement()
-                    {
-                        return new DescriptionType();
-                    }
-                }); 
-            if (description != null)
-            {
-                lf.addAll(description);
-            }
-            description = lf;
+            description = new ArrayList<DescriptionType>();
+        }
+        return description;
+    }
+    
+    public Description addDescription(String lang)
+    {
+        DescriptionType d = new DescriptionType();
+        d.setLang(lang);
+        if (getDescription(d.getLocale()) != null)
+        {
+            throw new IllegalArgumentException("Description for language: "+d.getLocale()+" already defined");
         }
-        return (ElementFactoryList<Description>)description;
+        getDescriptions();
+        description.add(d);
+        return d;
     }
 
     public String getPortletMode()
@@ -110,7 +106,7 @@
 
     public void setPortletMode(String value)
     {
-        portletMode = value != null ? value.toLowerCase() : null;
+        portletMode = value.toLowerCase();
     }
 
     public boolean isPortalManaged()

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/CustomWindowStateType.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/CustomWindowStateType.java?rev=706677&r1=706133&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/CustomWindowStateType.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/CustomWindowStateType.java Tue Oct 21 09:25:05 2008
@@ -14,8 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.pluto.descriptors.portlet20;
+package org.apache.pluto.descriptors.portlet;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 
@@ -26,7 +27,6 @@
 import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
-import org.apache.pluto.om.ElementFactoryList;
 import org.apache.pluto.om.portlet.CustomWindowState;
 import org.apache.pluto.om.portlet.Description;
 
@@ -55,8 +55,8 @@
 @XmlType(name = "custom-window-stateType", propOrder = { "description", "windowState" })
 public class CustomWindowStateType implements CustomWindowState
 {
-    @XmlElement(name = "description", type=DescriptionType.class)
-    protected List<Description> description;
+    @XmlElement(name = "description")
+    protected List<DescriptionType> description;
     @XmlElement(name = "window-state", required = true)
     @XmlJavaTypeAdapter(value=CollapsedStringAdapter.class)
     protected String windowState;
@@ -73,30 +73,26 @@
         return null;
     }
     
-   public ElementFactoryList<Description> getDescriptions()
+    public List<? extends Description> getDescriptions()
     {
-        if (description == null || !(description instanceof ElementFactoryList))
+        if (description == null)
         {
-            ElementFactoryList<Description> lf = 
-                new ElementFactoryList<Description>( new ElementFactoryList.Factory<Description>()
-                {
-                    public Class<? extends Description> getElementClass()
-                    {
-                        return DescriptionType.class;
-                    }
-
-                    public Description newElement()
-                    {
-                        return new DescriptionType();
-                    }
-                }); 
-            if (description != null)
-            {
-                lf.addAll(description);
-            }
-            description = lf;
+            description = new ArrayList<DescriptionType>();
+        }
+        return description;
+    }
+    
+    public Description addDescription(String lang)
+    {
+        DescriptionType d = new DescriptionType();
+        d.setLang(lang);
+        if (getDescription(d.getLocale()) != null)
+        {
+            throw new IllegalArgumentException("Description for language: "+d.getLocale()+" already defined");
         }
-        return (ElementFactoryList<Description>)description;
+        getDescriptions();
+        description.add(d);
+        return d;
     }
 
     public String getWindowState()
@@ -106,6 +102,6 @@
 
     public void setWindowState(String value)
     {
-        windowState = value != null ? value.toLowerCase() : null;
+        windowState = value.toLowerCase();
     }
 }

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/DescriptionType.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/DescriptionType.java?rev=706677&r1=706133&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/DescriptionType.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/DescriptionType.java Tue Oct 21 09:25:05 2008
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.pluto.descriptors.portlet20;
+package org.apache.pluto.descriptors.portlet;
 
 import java.util.Locale;
 

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/DisplayNameType.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/DisplayNameType.java?rev=706677&r1=706133&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/DisplayNameType.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/DisplayNameType.java Tue Oct 21 09:25:05 2008
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.pluto.descriptors.portlet20;
+package org.apache.pluto.descriptors.portlet;
 
 import java.util.Locale;
 

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/EventDefinitionReferenceType.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/EventDefinitionReferenceType.java?rev=706677&r1=706133&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/EventDefinitionReferenceType.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/EventDefinitionReferenceType.java Tue Oct 21 09:25:05 2008
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.pluto.descriptors.portlet20;
+package org.apache.pluto.descriptors.portlet;
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/EventDefinitionType.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/EventDefinitionType.java?rev=706677&r1=706133&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/EventDefinitionType.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/EventDefinitionType.java Tue Oct 21 09:25:05 2008
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.pluto.descriptors.portlet20;
+package org.apache.pluto.descriptors.portlet;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -29,7 +29,6 @@
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import javax.xml.namespace.QName;
 
-import org.apache.pluto.om.ElementFactoryList;
 import org.apache.pluto.om.portlet.Description;
 import org.apache.pluto.om.portlet.EventDefinition;
 
@@ -64,8 +63,8 @@
 @XmlType(name = "event-definitionType", propOrder = { "description", "qname", "name", "alias", "valueType" })
 public class EventDefinitionType implements EventDefinition
 {
-    @XmlElement(name = "description", type=DescriptionType.class)
-    protected List<Description> description;
+    @XmlElement(name = "description")
+    protected List<DescriptionType> description;
     protected QName qname;
     @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
     @XmlSchemaType(name = "NCName")
@@ -86,30 +85,26 @@
         return null;
     }
     
-    public ElementFactoryList<Description> getDescriptions()
+    public List<? extends Description> getDescriptions()
     {
-        if (description == null || !(description instanceof ElementFactoryList))
+        if (description == null)
         {
-            ElementFactoryList<Description> lf = 
-                new ElementFactoryList<Description>( new ElementFactoryList.Factory<Description>()
-                {
-                    public Class<? extends Description> getElementClass()
-                    {
-                        return DescriptionType.class;
-                    }
-
-                    public Description newElement()
-                    {
-                        return new DescriptionType();
-                    }
-                }); 
-            if (description != null)
-            {
-                lf.addAll(description);
-            }
-            description = lf;
+            description = new ArrayList<DescriptionType>();
+        }
+        return description;
+    }
+    
+    public Description addDescription(String lang)
+    {
+        DescriptionType d = new DescriptionType();
+        d.setLang(lang);
+        if (getDescription(d.getLocale()) != null)
+        {
+            throw new IllegalArgumentException("Description for language: "+d.getLocale()+" already defined");
         }
-        return (ElementFactoryList<Description>)description;
+        getDescriptions();
+        description.add(d);
+        return d;
     }
 
     public QName getQName()
@@ -120,6 +115,7 @@
     public void setQName(QName value)
     {
         qname = value;
+        name = null;
     }
 
     public String getName()
@@ -130,6 +126,7 @@
     public void setName(String value)
     {
         name = value;
+        qname = null;
     }
 
     public List<QName> getAliases()
@@ -140,6 +137,12 @@
         }
         return alias;
     }
+    
+    public void addAlias(QName alias)
+    {
+        // TODO: check for duplicates
+        getAliases().add(alias);
+    }
 
     public String getValueType()
     {

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/FilterMappingType.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/FilterMappingType.java?rev=706677&r1=706133&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/FilterMappingType.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/FilterMappingType.java Tue Oct 21 09:25:05 2008
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.pluto.descriptors.portlet20;
+package org.apache.pluto.descriptors.portlet;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -79,4 +79,10 @@
         }
         return portletName;
     }
+    
+    public void addPortletName(String name)
+    {
+        // TODO: check for duplicates
+        getPortletNames().add(name);
+    }
 }

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/FilterType.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/FilterType.java?rev=706677&r1=706133&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/FilterType.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/FilterType.java Tue Oct 21 09:25:05 2008
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.pluto.descriptors.portlet20;
+package org.apache.pluto.descriptors.portlet;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -25,7 +25,6 @@
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
 
-import org.apache.pluto.om.ElementFactoryList;
 import org.apache.pluto.om.portlet.Description;
 import org.apache.pluto.om.portlet.DisplayName;
 import org.apache.pluto.om.portlet.Filter;
@@ -63,18 +62,18 @@
                                            "initParam" })
 public class FilterType implements Filter
 {
-    @XmlElement(name = "description", type=DescriptionType.class)
-    protected List<Description> description;
-    @XmlElement(name = "display-name", type=DisplayNameType.class)
-    protected List<DisplayName> displayName;
+    @XmlElement(name = "description")
+    protected List<DescriptionType> description;
+    @XmlElement(name = "display-name")
+    protected List<DisplayNameType> displayName;
     @XmlElement(name = "filter-name", required = true)
     protected String filterName;
     @XmlElement(name = "filter-class", required = true)
     protected String filterClass;
     @XmlElement(required = true)
     protected List<String> lifecycle;
-    @XmlElement(name = "init-param", type=InitParamType.class)
-    protected List<InitParam> initParam;
+    @XmlElement(name = "init-param")
+    protected List<InitParamType> initParam;
 
     public Description getDescription(Locale locale)
     {
@@ -88,30 +87,26 @@
         return null;
     }
     
-    public ElementFactoryList<Description> getDescriptions()
+    public List<? extends Description> getDescriptions()
     {
-        if (description == null || !(description instanceof ElementFactoryList))
+        if (description == null)
         {
-            ElementFactoryList<Description> lf = 
-                new ElementFactoryList<Description>( new ElementFactoryList.Factory<Description>()
-                {
-                    public Class<? extends Description> getElementClass()
-                    {
-                        return DescriptionType.class;
-                    }
-
-                    public Description newElement()
-                    {
-                        return new DescriptionType();
-                    }
-                }); 
-            if (description != null)
-            {
-                lf.addAll(description);
-            }
-            description = lf;
+            description = new ArrayList<DescriptionType>();
+        }
+        return description;
+    }
+    
+    public Description addDescription(String lang)
+    {
+        DescriptionType d = new DescriptionType();
+        d.setLang(lang);
+        if (getDescription(d.getLocale()) != null)
+        {
+            throw new IllegalArgumentException("Description for language: "+d.getLocale()+" already defined");
         }
-        return (ElementFactoryList<Description>)description;
+        getDescriptions();
+        description.add(d);
+        return d;
     }
 
     public DisplayName getDisplayName(Locale locale)
@@ -126,30 +121,26 @@
         return null;
     }
     
-    public ElementFactoryList<DisplayName> getDisplayNames()
+    public List<? extends DisplayName> getDisplayNames()
     {
-        if (displayName == null || !(displayName instanceof ElementFactoryList))
+        if (displayName == null)
         {
-            ElementFactoryList<DisplayName> lf = 
-                new ElementFactoryList<DisplayName>( new ElementFactoryList.Factory<DisplayName>()
-                {
-                    public Class<? extends DisplayName> getElementClass()
-                    {
-                        return DisplayNameType.class;
-                    }
-
-                    public DisplayName newElement()
-                    {
-                        return new DisplayNameType();
-                    }
-                }); 
-            if (displayName != null)
-            {
-                lf.addAll(displayName);
-            }
-            displayName = lf;
+            displayName = new ArrayList<DisplayNameType>();
+        }
+        return displayName;
+    }
+    
+    public DisplayName addDisplayName(String lang)
+    {
+        DisplayNameType d = new DisplayNameType();
+        d.setLang(lang);
+        if (getDisplayName(d.getLocale()) != null)
+        {
+            throw new IllegalArgumentException("DisplayName for language: "+d.getLocale()+" already defined");
         }
-        return (ElementFactoryList<DisplayName>)displayName;
+        getDisplayNames();
+        displayName.add(d);
+        return d;
     }
 
     public String getFilterName()
@@ -181,6 +172,12 @@
         return lifecycle;
     }
     
+    public void addLifecycle(String name)
+    {
+        // TODO: check valid name and duplicates
+        getLifecycles().add(name);
+    }
+    
     public InitParam getInitParam(String name)
     {
         for (InitParam param : getInitParams())
@@ -193,29 +190,25 @@
         return null;
     }
 
-    public ElementFactoryList<InitParam> getInitParams()
+    public List<? extends InitParam> getInitParams()
     {
-        if (initParam == null || !(initParam instanceof ElementFactoryList))
+        if (initParam == null)
         {
-            ElementFactoryList<InitParam> lf = 
-                new ElementFactoryList<InitParam>( new ElementFactoryList.Factory<InitParam>()
-                {
-                    public Class<? extends InitParam> getElementClass()
-                    {
-                        return InitParamType.class;
-                    }
-
-                    public InitParam newElement()
-                    {
-                        return new InitParamType();
-                    }
-                }); 
-            if (initParam != null)
-            {
-                lf.addAll(initParam);
-            }
-            initParam = lf;
+            initParam = new ArrayList<InitParamType>();
+        }
+        return initParam;
+    }
+    
+    public InitParam addInitParam(String paramName)
+    {
+        if (getInitParam(paramName) != null)
+        {
+            throw new IllegalArgumentException("Init parameter: "+paramName+" already defined");
         }
-        return (ElementFactoryList<InitParam>)initParam;
+        InitParamType param = new InitParamType();
+        param.setParamName(paramName);
+        getInitParams();
+        initParam.add(param);
+        return param;
     }
 }

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/InitParamType.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/InitParamType.java?rev=706677&r1=706133&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/InitParamType.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/InitParamType.java Tue Oct 21 09:25:05 2008
@@ -14,8 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.pluto.descriptors.portlet20;
+package org.apache.pluto.descriptors.portlet;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 
@@ -26,7 +27,6 @@
 import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
-import org.apache.pluto.om.ElementFactoryList;
 import org.apache.pluto.om.portlet.Description;
 import org.apache.pluto.om.portlet.InitParam;
 
@@ -56,8 +56,8 @@
 @XmlType(name = "init-paramType", propOrder = { "description", "name", "value" })
 public class InitParamType implements InitParam
 {
-    @XmlElement(name = "description", type=DescriptionType.class)
-    protected List<Description> description;
+    @XmlElement(name = "description")
+    protected List<DescriptionType> description;
     @XmlElement(required = true)
     @XmlJavaTypeAdapter(value=CollapsedStringAdapter.class)
     protected String name;
@@ -77,30 +77,26 @@
         return null;
     }
     
-    public ElementFactoryList<Description> getDescriptions()
+    public List<? extends Description> getDescriptions()
     {
-        if (description == null || !(description instanceof ElementFactoryList))
+        if (description == null)
         {
-            ElementFactoryList<Description> lf = 
-                new ElementFactoryList<Description>( new ElementFactoryList.Factory<Description>()
-                {
-                    public Class<? extends Description> getElementClass()
-                    {
-                        return DescriptionType.class;
-                    }
-
-                    public Description newElement()
-                    {
-                        return new DescriptionType();
-                    }
-                }); 
-            if (description != null)
-            {
-                lf.addAll(description);
-            }
-            description = lf;
+            description = new ArrayList<DescriptionType>();
+        }
+        return description;
+    }
+    
+    public Description addDescription(String lang)
+    {
+        DescriptionType d = new DescriptionType();
+        d.setLang(lang);
+        if (getDescription(d.getLocale()) != null)
+        {
+            throw new IllegalArgumentException("Description for language: "+d.getLocale()+" already defined");
         }
-        return (ElementFactoryList<Description>)description;
+        getDescriptions();
+        description.add(d);
+        return d;
     }
 
     public String getParamName()

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/ListenerType.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/ListenerType.java?rev=706677&r1=706133&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/ListenerType.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/ListenerType.java Tue Oct 21 09:25:05 2008
@@ -14,8 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.pluto.descriptors.portlet20;
+package org.apache.pluto.descriptors.portlet;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 
@@ -24,7 +25,6 @@
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
 
-import org.apache.pluto.om.ElementFactoryList;
 import org.apache.pluto.om.portlet.Description;
 import org.apache.pluto.om.portlet.DisplayName;
 import org.apache.pluto.om.portlet.Listener;
@@ -55,10 +55,10 @@
 @XmlType(name = "listenerType", propOrder = { "description", "displayName", "listenerClass" })
 public class ListenerType implements Listener
 {
-    @XmlElement(name = "description", type=DescriptionType.class)
-    protected List<Description> description;
-    @XmlElement(name = "display-name", type=DisplayNameType.class)
-    protected List<DisplayName> displayName;
+    @XmlElement(name = "description")
+    protected List<DescriptionType> description;
+    @XmlElement(name = "display-name")
+    protected List<DisplayNameType> displayName;
     @XmlElement(name = "listener-class", required = true)
     protected String listenerClass;
 
@@ -74,30 +74,26 @@
         return null;
     }
     
-    public ElementFactoryList<Description> getDescriptions()
+    public List<? extends Description> getDescriptions()
     {
-        if (description == null || !(description instanceof ElementFactoryList))
+        if (description == null)
         {
-            ElementFactoryList<Description> lf = 
-                new ElementFactoryList<Description>( new ElementFactoryList.Factory<Description>()
-                {
-                    public Class<? extends Description> getElementClass()
-                    {
-                        return DescriptionType.class;
-                    }
-
-                    public Description newElement()
-                    {
-                        return new DescriptionType();
-                    }
-                }); 
-            if (description != null)
-            {
-                lf.addAll(description);
-            }
-            description = lf;
+            description = new ArrayList<DescriptionType>();
+        }
+        return description;
+    }
+    
+    public Description addDescription(String lang)
+    {
+        DescriptionType d = new DescriptionType();
+        d.setLang(lang);
+        if (getDescription(d.getLocale()) != null)
+        {
+            throw new IllegalArgumentException("Description for language: "+d.getLocale()+" already defined");
         }
-        return (ElementFactoryList<Description>)description;
+        getDescriptions();
+        description.add(d);
+        return d;
     }
 
     public DisplayName getDisplayName(Locale locale)
@@ -112,30 +108,26 @@
         return null;
     }
     
-    public ElementFactoryList<DisplayName> getDisplayNames()
+    public List<? extends DisplayName> getDisplayNames()
     {
-        if (displayName == null || !(displayName instanceof ElementFactoryList))
+        if (displayName == null)
         {
-            ElementFactoryList<DisplayName> lf = 
-                new ElementFactoryList<DisplayName>( new ElementFactoryList.Factory<DisplayName>()
-                {
-                    public Class<? extends DisplayName> getElementClass()
-                    {
-                        return DisplayNameType.class;
-                    }
-
-                    public DisplayName newElement()
-                    {
-                        return new DisplayNameType();
-                    }
-                }); 
-            if (displayName != null)
-            {
-                lf.addAll(displayName);
-            }
-            displayName = lf;
+            displayName = new ArrayList<DisplayNameType>();
+        }
+        return displayName;
+    }
+    
+    public DisplayName addDisplayName(String lang)
+    {
+        DisplayNameType d = new DisplayNameType();
+        d.setLang(lang);
+        if (getDisplayName(d.getLocale()) != null)
+        {
+            throw new IllegalArgumentException("DisplayName for language: "+d.getLocale()+" already defined");
         }
-        return (ElementFactoryList<DisplayName>)displayName;
+        getDisplayNames();
+        displayName.add(d);
+        return d;
     }
 
     public String getListenerClass()

Modified: portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/ObjectFactory.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/ObjectFactory.java?rev=706677&r1=706133&r2=706677&view=diff
==============================================================================
--- portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/ObjectFactory.java (original)
+++ portals/pluto/branches/2.0-spi-refactoring/pluto-container/src/main/java/org/apache/pluto/descriptors/portlet/ObjectFactory.java Tue Oct 21 09:25:05 2008
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.pluto.descriptors.portlet20;
+package org.apache.pluto.descriptors.portlet;
 
 import javax.xml.bind.JAXBElement;
 import javax.xml.bind.annotation.XmlElementDecl;