You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2009/03/05 03:06:08 UTC
svn commit: r750289 - in /portals/jetspeed-2/portal/trunk:
components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/
components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/
components/jetspeed-registry/src/test/java/org/apach...
Author: taylor
Date: Thu Mar 5 02:06:07 2009
New Revision: 750289
URL: http://svn.apache.org/viewvc?rev=750289&view=rev
Log:
https://issues.apache.org/jira/browse/JS2-927
security constraints and transport guarantee
Added:
portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/SecuredPortletImpl.java (with props)
portals/jetspeed-2/portal/trunk/etc/xsd/portlet-spec-1.0.xsd (with props)
portals/jetspeed-2/portal/trunk/etc/xsd/portlet-spec-2.0.xsd (with props)
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/portlet/SecuredPortlet.java (with props)
Modified:
portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/registry_repository.xml
portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java
portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/SecurityConstraintImpl.java
portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletregistry/TestPortletRegistryDAO.java
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/portlet/UserDataConstraint.java
portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/registry-schema.xml
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/registry_repository.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/registry_repository.xml?rev=750289&r1=750288&r2=750289&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/registry_repository.xml (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/registry_repository.xml Thu Mar 5 02:06:07 2009
@@ -339,6 +339,16 @@
>
<inverse-foreignkey field-ref="applicationId"/>
</collection-descriptor>
+
+ <collection-descriptor
+ name="securityConstraints"
+ element-class-ref="org.apache.jetspeed.om.portlet.impl.SecurityConstraintImpl"
+ auto-delete="true"
+ auto-update = "true"
+ auto-retrieve = "true"
+ >
+ <inverse-foreignkey field-ref="applicationId"/>
+ </collection-descriptor>
</class-descriptor>
@@ -2067,5 +2077,112 @@
</collection-descriptor>
</class-descriptor>
+
+ <!--
+ - P A S E C U R I T Y C O N S T R A I N T
+ -->
+ <class-descriptor
+ class="org.apache.jetspeed.om.portlet.impl.SecurityConstraintImpl"
+ table="PA_SECURITY_CONSTRAINT"
+ >
+
+ <field-descriptor
+ name="id"
+ column="ID"
+ jdbc-type="BIGINT"
+ primarykey="true"
+ autoincrement="true"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="applicationId"
+ column="APPLICATION_ID"
+ jdbc-type="BIGINT"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="userDataConstraints::transportGuarantee"
+ column="TRANSPORT"
+ jdbc-type="VARCHAR"
+ />
+
+ <collection-descriptor
+ name="displayNames"
+ element-class-ref="org.apache.jetspeed.om.portlet.impl.DisplayNameImpl"
+ auto-delete="true"
+ auto-update = "true"
+ auto-retrieve = "true"
+ >
+ <inverse-foreignkey field-ref="ownerId"/>
+ <query-customizer class="org.apache.jetspeed.util.ojb.CollectionOwnerClassDiscriminatorQueryCustomizer">
+ <attribute
+ attribute-name="discriminatorField"
+ attribute-value="owner"
+ />
+ </query-customizer>
+ </collection-descriptor>
+
+ <collection-descriptor
+ name="portletNames"
+ element-class-ref="org.apache.jetspeed.om.portlet.impl.SecuredPortletImpl"
+ auto-delete="true"
+ auto-update = "true"
+ auto-retrieve = "true"
+
+ >
+ <inverse-foreignkey field-ref="ownerId"/>
+ </collection-descriptor>
+
+ <collection-descriptor
+ name="userDataConstraints::descriptions"
+ element-class-ref="org.apache.jetspeed.om.portlet.impl.DescriptionImpl"
+ auto-delete="true"
+ auto-update = "true"
+ auto-retrieve = "true"
+ >
+ <inverse-foreignkey field-ref="ownerId"/>
+ <query-customizer class="org.apache.jetspeed.util.ojb.CollectionOwnerClassDiscriminatorQueryCustomizer">
+ <attribute
+ attribute-name="discriminatorField"
+ attribute-value="owner"
+ />
+ </query-customizer>
+ </collection-descriptor>
+
+ </class-descriptor>
+<!--
+ - S E C U R E D P O R T L E T
+ -->
+ <class-descriptor
+ class="org.apache.jetspeed.om.portlet.impl.SecuredPortletImpl"
+ table="SECURED_PORTLET"
+ >
+
+ <field-descriptor
+ name="id"
+ column="ID"
+ jdbc-type="BIGINT"
+ primarykey="true"
+ autoincrement="true"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="ownerId"
+ column="OWNER_ID"
+ jdbc-type="BIGINT"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="name"
+ column="NAME"
+ jdbc-type="VARCHAR"
+ />
+
+ </class-descriptor>
+
</descriptor-repository>
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java?rev=750289&r1=750288&r2=750289&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java Thu Mar 5 02:06:07 2009
@@ -55,6 +55,7 @@
import org.apache.ojb.broker.PersistenceBroker;
import org.apache.ojb.broker.PersistenceBrokerAware;
import org.apache.ojb.broker.PersistenceBrokerException;
+import org.apache.pluto.om.portlet.UserDataConstraint;
/**
*
@@ -705,15 +706,50 @@
return securityConstraints;
}
+ private final String[]TRANSPORTS =
+ {
+ UserDataConstraint.NONE,
+ UserDataConstraint.INTEGRAL,
+ UserDataConstraint.CONFIDENTIAL
+ };
+
public SecurityConstraint addSecurityConstraint(String transportGuarantee)
{
- SecurityConstraintImpl sc = new SecurityConstraintImpl();
- ((UserDataConstraintImpl)sc.getUserDataConstraint()).setTransportGuarantee(transportGuarantee);
- getSecurityConstraints();
+ if (getSecurityConstraint(transportGuarantee) != null)
+ {
+ throw new IllegalArgumentException("Security Constraint with name: " + transportGuarantee + " already defined");
+ }
+ boolean isValid = false;
+ for (String t : TRANSPORTS)
+ {
+ if (transportGuarantee.equalsIgnoreCase(t))
+ {
+ isValid = true;
+ break;
+ }
+ }
+ if (!isValid)
+ {
+ throw new IllegalArgumentException("Security Constraint with name: " + transportGuarantee + " is not a valid transport name");
+ }
+ SecurityConstraint sc = new SecurityConstraintImpl();
+ sc.getUserDataConstraint().setTransportGuarantee(transportGuarantee);
getSecurityConstraints().add(sc);
return sc;
}
+ public SecurityConstraint getSecurityConstraint(String transport)
+ {
+ for (SecurityConstraint sc : getSecurityConstraints())
+ {
+ if (sc.getUserDataConstraint().getTransportGuarantee().equals(transport))
+ {
+ return sc;
+ }
+ }
+ return null;
+ }
+
public Filter getFilter(String filterName)
{
for (Filter f : getFilters())
Added: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/SecuredPortletImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/SecuredPortletImpl.java?rev=750289&view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/SecuredPortletImpl.java (added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/SecuredPortletImpl.java Thu Mar 5 02:06:07 2009
@@ -0,0 +1,34 @@
+package org.apache.jetspeed.om.portlet.impl;
+
+import org.apache.jetspeed.om.portlet.SecuredPortlet;
+
+
+
+public class SecuredPortletImpl implements SecuredPortlet
+{
+ private String name;
+
+ public SecuredPortletImpl()
+ {}
+
+ public SecuredPortletImpl(String name)
+ {
+ this.name = name;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public boolean equals(Object qname)
+ {
+ return (this.toString().equals(qname.toString()));
+ }
+
+ public String toString()
+ {
+ return name;
+ }
+
+}
Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/SecuredPortletImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/SecuredPortletImpl.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/SecurityConstraintImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/SecurityConstraintImpl.java?rev=750289&r1=750288&r2=750289&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/SecurityConstraintImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/SecurityConstraintImpl.java Thu Mar 5 02:06:07 2009
@@ -23,6 +23,8 @@
import java.util.Locale;
import org.apache.jetspeed.om.portlet.DisplayName;
+import org.apache.jetspeed.om.portlet.FilterLifecycle;
+import org.apache.jetspeed.om.portlet.SecuredPortlet;
import org.apache.jetspeed.om.portlet.SecurityConstraint;
import org.apache.jetspeed.om.portlet.UserDataConstraint;
import org.apache.jetspeed.util.JetspeedLocale;
@@ -33,8 +35,8 @@
*/
public class SecurityConstraintImpl implements SecurityConstraint, Serializable
{
- protected UserDataConstraint userDataConstraint;
- protected List<String> portletNames;
+ protected UserDataConstraintImpl userDataConstraints;
+ protected List<SecuredPortlet> portletNames;
protected List<DisplayName> displayNames;
public DisplayName getDisplayName(Locale locale)
@@ -69,29 +71,39 @@
{
if (portletNames == null)
{
- portletNames = new ArrayList<String>();
+ portletNames = new ArrayList<SecuredPortlet>();
}
- return portletNames;
+ List<String> result = new ArrayList<String>();
+ for (SecuredPortlet sp : portletNames)
+ {
+ result.add(sp.toString());
+ }
+ return result;
}
public void addPortletName(String portletName)
{
- for (String name : getPortletNames())
+ if (portletNames == null)
{
- if (name.equals(portletName))
+ portletNames = new ArrayList<SecuredPortlet>();
+ }
+ for (SecuredPortlet sp : portletNames)
+ {
+ if (sp.equals(portletName))
{
- throw new IllegalArgumentException("Portlet name: "+name+" already defined");
+ throw new IllegalArgumentException("Support for security constraint portlet name with identifier: " + portletName + " already defined");
}
}
- portletNames.add(portletName);
+ portletNames.add(new SecuredPortletImpl(portletName));
}
public UserDataConstraint getUserDataConstraint()
{
- if (userDataConstraint == null)
+ if (userDataConstraints == null)
{
- userDataConstraint = new UserDataConstraintImpl();
+ userDataConstraints = new UserDataConstraintImpl();
}
- return userDataConstraint;
+ return userDataConstraints;
}
+
}
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletregistry/TestPortletRegistryDAO.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletregistry/TestPortletRegistryDAO.java?rev=750289&r1=750288&r2=750289&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletregistry/TestPortletRegistryDAO.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletregistry/TestPortletRegistryDAO.java Thu Mar 5 02:06:07 2009
@@ -44,6 +44,7 @@
import org.apache.jetspeed.om.portlet.Preference;
import org.apache.jetspeed.om.portlet.Preferences;
import org.apache.jetspeed.om.portlet.PublicRenderParameter;
+import org.apache.jetspeed.om.portlet.SecurityConstraint;
import org.apache.jetspeed.om.portlet.Supports;
import org.apache.jetspeed.om.portlet.UserAttribute;
import org.apache.jetspeed.om.portlet.UserAttributeRef;
@@ -51,6 +52,7 @@
import org.apache.jetspeed.om.portlet.impl.PortletApplicationDefinitionImpl;
import org.apache.jetspeed.om.portlet.impl.PortletDefinitionImpl;
import org.apache.jetspeed.util.JetspeedLocale;
+import org.apache.pluto.om.portlet.UserDataConstraint;
/**
* <p>
@@ -431,6 +433,30 @@
dn7.setDisplayName("Listen!");
DisplayName dn8 = listener2.addDisplayName("fr");
dn8.setDisplayName("coutez!");
+
+ SecurityConstraint sc = app.addSecurityConstraint(UserDataConstraint.INTEGRAL);
+ DisplayName scdn1 = sc.addDisplayName("en");
+ scdn1.setDisplayName("Integral Security Transport");
+ DisplayName scdn2 = sc.addDisplayName("fr");
+ scdn2.setDisplayName("Transport Intgral de Scurit");
+ sc.addPortletName("PortletOne");
+ sc.addPortletName("PortletTwo");
+ sc.addPortletName("PortletThree");
+ Description des1 = sc.getUserDataConstraint().addDescription("en");
+ des1.setDescription("This is the Integral Security Transport");
+ Description des2 = sc.getUserDataConstraint().addDescription("fr");
+ des2.setDescription("Ceci est le Transport Intgral de Scurit");
+ SecurityConstraint sc2 = app.addSecurityConstraint(UserDataConstraint.CONFIDENTIAL);
+ scdn1 = sc2.addDisplayName("en");
+ scdn1.setDisplayName("Confidential Security Transport");
+ scdn2 = sc2.addDisplayName("fr");
+ scdn2.setDisplayName("Transport Confidentiel de Scurit");
+ sc2.addPortletName("PortletA");
+ sc2.addPortletName("PortletB");
+ des1 = sc2.getUserDataConstraint().addDescription("en");
+ des1.setDescription("This is the Confidential Security Transport");
+ des2 = sc2.getUserDataConstraint().addDescription("fr");
+ des2.setDescription("Ceci est le Transport Confidentiel de Scurit");
}
public static void verifyPortlet20Data(PortletApplication app, PortletDefinition portlet)
@@ -619,6 +645,41 @@
dn6 = dnames.get(1);
assertEquals(dn6.getLang(), "fr");
assertEquals(dn6.getDisplayName(), "coutez!");
+
+ List<SecurityConstraint> scs = app.getSecurityConstraints();
+ assertEquals(scs.size(), 2);
+ SecurityConstraint sc1 = scs.get(0);
+ assertEquals(sc1.getUserDataConstraint().getTransportGuarantee(), UserDataConstraint.INTEGRAL);
+ DisplayName scdn1 = sc1.getDisplayName(new Locale("en"));
+ assertEquals(scdn1.getLang(), "en");
+ assertEquals(scdn1.getDisplayName(), "Integral Security Transport");
+ DisplayName scdn2 = sc1.getDisplayName(new Locale("fr"));
+ assertEquals(scdn2.getDisplayName(), "Transport Intgral de Scurit");
+ assertEquals(sc1.getPortletNames().get(0), "PortletOne");
+ assertEquals(sc1.getPortletNames().get(1), "PortletTwo");
+ assertEquals(sc1.getPortletNames().get(2), "PortletThree");
+ Description des1 = sc1.getUserDataConstraint().getDescription(new Locale("en"));
+ assertEquals(des1.getLang(), "en");
+ assertEquals(des1.getDescription(), "This is the Integral Security Transport");
+ Description des2 = sc1.getUserDataConstraint().getDescription(new Locale("fr"));
+ assertEquals(des2.getLang(), "fr");
+ assertEquals(des2.getDescription(), "Ceci est le Transport Intgral de Scurit");
+
+ SecurityConstraint sc2 = scs.get(1);
+ assertEquals(sc2.getUserDataConstraint().getTransportGuarantee(), UserDataConstraint.CONFIDENTIAL);
+ scdn1 = sc2.getDisplayName(new Locale("en"));
+ assertEquals(scdn1.getLang(), "en");
+ assertEquals(scdn1.getDisplayName(), "Confidential Security Transport");
+ scdn2 = sc2.getDisplayName(new Locale("fr"));
+ assertEquals(scdn2.getDisplayName(), "Transport Confidentiel de Scurit");
+ assertEquals(sc2.getPortletNames().get(0), "PortletA");
+ assertEquals(sc2.getPortletNames().get(1), "PortletB");
+ des1 = sc2.getUserDataConstraint().getDescription(new Locale("en"));
+ assertEquals(des1.getLang(), "en");
+ assertEquals(des1.getDescription(), "This is the Confidential Security Transport");
+ des2 = sc2.getUserDataConstraint().getDescription(new Locale("fr"));
+ assertEquals(des2.getLang(), "fr");
+ assertEquals(des2.getDescription(), "Ceci est le Transport Confidentiel de Scurit");
}
}
Added: portals/jetspeed-2/portal/trunk/etc/xsd/portlet-spec-1.0.xsd
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/etc/xsd/portlet-spec-1.0.xsd?rev=750289&view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/etc/xsd/portlet-spec-1.0.xsd (added)
+++ portals/jetspeed-2/portal/trunk/etc/xsd/portlet-spec-1.0.xsd Thu Mar 5 02:06:07 2009
@@ -0,0 +1,648 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<schema targetNamespace="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:portlet="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0" xml:lang="en">
+ <annotation>
+ <documentation>
+ This is the XML Schema for the Portlet 1.0 deployment descriptor.
+ </documentation>
+ </annotation>
+ <annotation>
+ <documentation>
+ The following conventions apply to all J2EE
+ deployment descriptor elements unless indicated otherwise.
+ - In elements that specify a pathname to a file within the
+ same JAR file, relative filenames (i.e., those not
+ starting with "/") are considered relative to the root of
+ the JAR file's namespace. Absolute filenames (i.e., those
+ starting with "/") also specify names in the root of the
+ JAR file's namespace. In general, relative names are
+ preferred. The exception is .war files where absolute
+ names are preferred for consistency with the Servlet API.
+ </documentation>
+ </annotation>
+ <!-- *********************************************************** -->
+ <import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+ <element name="portlet-app" type="portlet:portlet-appType">
+ <annotation>
+ <documentation>
+ The portlet-app element is the root of the deployment descriptor
+ for a portlet application. This element has a required attribute version
+ to specify to which version of the schema the deployment descriptor
+ conforms.
+ </documentation>
+ </annotation>
+ <unique name="portlet-name-uniqueness">
+ <annotation>
+ <documentation>
+ The portlet element contains the name of a portlet.
+ This name must be unique within the portlet application.
+ </documentation>
+ </annotation>
+ <selector xpath="portlet:portlet"/>
+ <field xpath="portlet:portlet-name"/>
+ </unique>
+ <unique name="custom-portlet-mode-uniqueness">
+ <annotation>
+ <documentation>
+ The custom-portlet-mode element contains the portlet-mode.
+ This portlet mode must be unique within the portlet application.
+ </documentation>
+ </annotation>
+ <selector xpath="portlet:custom-portlet-mode"/>
+ <field xpath="portlet:portlet-mode"/>
+ </unique>
+ <unique name="custom-window-state-uniqueness">
+ <annotation>
+ <documentation>
+ The custom-window-state element contains the window-state.
+ This window state must be unique within the portlet application.
+ </documentation>
+ </annotation>
+ <selector xpath="portlet:custom-window-state"/>
+ <field xpath="portlet:window-state"/>
+ </unique>
+ <unique name="user-attribute-name-uniqueness">
+ <annotation>
+ <documentation>
+ The user-attribute element contains the name the attribute.
+ This name must be unique within the portlet application.
+ </documentation>
+ </annotation>
+ <selector xpath="portlet:user-attribute"/>
+ <field xpath="portlet:name"/>
+ </unique>
+ </element>
+ <complexType name="portlet-appType">
+ <sequence>
+ <element name="portlet" type="portlet:portletType" minOccurs="0" maxOccurs="unbounded">
+ <unique name="init-param-name-uniqueness">
+ <annotation>
+ <documentation>
+ The init-param element contains the name the attribute.
+ This name must be unique within the portlet.
+ </documentation>
+ </annotation>
+ <selector xpath="portlet:init-param"/>
+ <field xpath="portlet:name"/>
+ </unique>
+ <unique name="supports-mime-type-uniqueness">
+ <annotation>
+ <documentation>
+ The supports element contains the supported mime-type.
+ This mime type must be unique within the portlet.
+ </documentation>
+ </annotation>
+ <selector xpath="portlet:supports"/>
+ <field xpath="mime-type"/>
+ </unique>
+ <unique name="preference-name-uniqueness">
+ <annotation>
+ <documentation>
+ The preference element contains the name the preference.
+ This name must be unique within the portlet.
+ </documentation>
+ </annotation>
+ <selector xpath="portlet:portlet-preferences/portlet:preference"/>
+ <field xpath="portlet:name"/>
+ </unique>
+ <unique name="security-role-ref-name-uniqueness">
+ <annotation>
+ <documentation>
+ The security-role-ref element contains the role-name.
+ This role name must be unique within the portlet.
+ </documentation>
+ </annotation>
+ <selector xpath="portlet:security-role-ref"/>
+ <field xpath="portlet:role-name"/>
+ </unique>
+ </element>
+ <element name="custom-portlet-mode" type="portlet:custom-portlet-modeType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="custom-window-state" type="portlet:custom-window-stateType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="user-attribute" type="portlet:user-attributeType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="security-constraint" type="portlet:security-constraintType" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="version" type="string" use="required"/>
+ <attribute name="id" type="string" use="optional"/>
+ </complexType>
+ <complexType name="custom-portlet-modeType">
+ <annotation>
+ <documentation>
+ A custom portlet mode that one or more portlets in
+ this portlet application supports.
+ Used in: portlet-app
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="portlet-mode" type="portlet:portlet-modeType"/>
+ </sequence>
+ <attribute name="id" type="string" use="optional"/>
+ </complexType>
+ <complexType name="custom-window-stateType">
+ <annotation>
+ <documentation>
+ A custom window state that one or more portlets in this
+ portlet application supports.
+ Used in: portlet-app
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="window-state" type="portlet:window-stateType"/>
+ </sequence>
+ <attribute name="id" type="string" use="optional"/>
+ </complexType>
+ <complexType name="expiration-cacheType">
+ <annotation>
+ <documentation>
+ Expriation-cache defines expiration-based caching for this
+ portlet. The parameter indicates
+ the time in seconds after which the portlet output expires.
+ -1 indicates that the output never expires.
+ Used in: portlet
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="int"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="init-paramType">
+ <annotation>
+ <documentation>
+ The init-param element contains a name/value pair as an
+ initialization param of the portlet
+ Used in:portlet
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="name" type="portlet:nameType"/>
+ <element name="value" type="portlet:valueType"/>
+ </sequence>
+ <attribute name="id" type="string" use="optional"/>
+ </complexType>
+ <complexType name="keywordsType">
+ <annotation>
+ <documentation>
+ Locale specific keywords associated with this portlet.
+ The kewords are separated by commas.
+ Used in: portlet-info
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="mime-typeType">
+ <annotation>
+ <documentation>
+ MIME type name, e.g. "text/html".
+ The MIME type may also contain the wildcard
+ character '*', like "text/*" or "*/*".
+ Used in: supports
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="nameType">
+ <annotation>
+ <documentation>
+ The name element contains the name of a parameter.
+ Used in: init-param, ...
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="portletType">
+ <annotation>
+ <documentation>
+ The portlet element contains the declarative data of a portlet.
+ Used in: portlet-app
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="portlet-name" type="portlet:portlet-nameType"/>
+ <element name="display-name" type="portlet:display-nameType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="portlet-class" type="portlet:portlet-classType"/>
+ <element name="init-param" type="portlet:init-paramType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="expiration-cache" type="portlet:expiration-cacheType" minOccurs="0"/>
+ <element name="supports" type="portlet:supportsType" maxOccurs="unbounded"/>
+ <element name="supported-locale" type="portlet:supported-localeType" minOccurs="0" maxOccurs="unbounded"/>
+ <choice>
+ <sequence>
+ <element name="resource-bundle" type="portlet:resource-bundleType"/>
+ <element name="portlet-info" type="portlet:portlet-infoType" minOccurs="0"/>
+ </sequence>
+ <element name="portlet-info" type="portlet:portlet-infoType"/>
+ </choice>
+ <element name="portlet-preferences" type="portlet:portlet-preferencesType" minOccurs="0"/>
+ <element name="security-role-ref" type="portlet:security-role-refType" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="optional"/>
+ </complexType>
+ <simpleType name="portlet-classType">
+ <annotation>
+ <documentation>
+ The portlet-class element contains the fully
+ qualified class name of the portlet.
+ Used in: portlet
+ </documentation>
+ </annotation>
+ <restriction base="portlet:fully-qualified-classType"/>
+ </simpleType>
+ <complexType name="portlet-collectionType">
+ <annotation>
+ <documentation>
+ The portlet-collectionType is used to identify a subset
+ of portlets within a portlet application to which a
+ security constraint applies.
+ Used in: security-constraint
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="portlet-name" type="portlet:portlet-nameType" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ <complexType name="portlet-infoType">
+ <sequence>
+ <element name="title" type="portlet:titleType"/>
+ <element name="short-title" type="portlet:short-titleType" minOccurs="0"/>
+ <element name="keywords" type="portlet:keywordsType" minOccurs="0"/>
+ </sequence>
+ <attribute name="id" type="string" use="optional"/>
+ </complexType>
+ <complexType name="portlet-modeType">
+ <annotation>
+ <documentation>
+ Portlet modes. The specification pre-defines the following values
+ as valid portlet mode constants:
+ "edit", "help", "view".
+ Portlet mode names are not case sensitive.
+ Used in: custom-portlet-mode, supports
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="portlet-nameType">
+ <annotation>
+ <documentation>
+ The portlet-name element contains the canonical name of the
+ portlet. Each portlet name is unique within the portlet
+ application.
+ Used in: portlet, portlet-mapping
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="portlet-preferencesType">
+ <annotation>
+ <documentation>
+ Portlet persistent preference store.
+ Used in: portlet
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="preference" type="portlet:preferenceType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="preferences-validator" type="portlet:preferences-validatorType" minOccurs="0"/>
+ </sequence>
+ <attribute name="id" type="string" use="optional"/>
+ </complexType>
+ <complexType name="preferenceType">
+ <annotation>
+ <documentation>
+ Persistent preference values that may be used for customization
+ and personalization by the portlet.
+ Used in: portlet-preferences
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="name" type="portlet:nameType"/>
+ <element name="value" type="portlet:valueType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="read-only" type="portlet:read-onlyType" minOccurs="0"/>
+ </sequence>
+ <attribute name="id" type="string" use="optional"/>
+ </complexType>
+ <simpleType name="preferences-validatorType">
+ <annotation>
+ <documentation>
+ The class specified under preferences-validator implements
+ the PreferencesValidator interface to validate the
+ preferences settings.
+ Used in: portlet-preferences
+ </documentation>
+ </annotation>
+ <restriction base="portlet:fully-qualified-classType"/>
+ </simpleType>
+ <simpleType name="read-onlyType">
+ <annotation>
+ <documentation>
+ read-only indicates that a setting cannot
+ be changed in any of the standard portlet modes
+ ("view","edit" or "help").
+ Per default all preferences are modifiable.
+ Valid values are:
+ - true for read-only
+ - false for modifiable
+ Used in: preferences
+ </documentation>
+ </annotation>
+ <restriction base="portlet:string">
+ <enumeration value="true"/>
+ <enumeration value="false"/>
+ </restriction>
+ </simpleType>
+ <complexType name="resource-bundleType">
+ <annotation>
+ <documentation>
+ Filename of the resource bundle containing the language specific
+ portlet informations in different languages.
+ Used in: portlet-info
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="role-linkType">
+ <annotation>
+ <documentation>
+ The role-link element is a reference to a defined security role.
+ The role-link element must contain the name of one of the
+ security roles defined in the security-role elements.
+ Used in: security-role-ref
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="security-constraintType">
+ <annotation>
+ <documentation>
+ The security-constraintType is used to associate
+ intended security constraints with one or more portlets.
+ Used in: portlet-app
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="display-name" type="portlet:display-nameType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="portlet-collection" type="portlet:portlet-collectionType"/>
+ <element name="user-data-constraint" type="portlet:user-data-constraintType"/>
+ </sequence>
+ <attribute name="id" type="string" use="optional"/>
+ </complexType>
+ <complexType name="security-role-refType">
+ <annotation>
+ <documentation>
+ The security-role-ref element contains the declaration of a
+ security role reference in the code of the web application. The
+ declaration consists of an optional description, the security
+ role name used in the code, and an optional link to a security
+ role. If the security role is not specified, the Deployer must
+ choose an appropriate security role.
+ The value of the role name element must be the String used
+ as the parameter to the
+ EJBContext.isCallerInRole(String roleName) method
+ or the HttpServletRequest.isUserInRole(String role) method.
+ Used in: portlet
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="role-name" type="portlet:role-nameType"/>
+ <element name="role-link" type="portlet:role-linkType" minOccurs="0"/>
+ </sequence>
+ <attribute name="id" type="string" use="optional"/>
+ </complexType>
+ <complexType name="short-titleType">
+ <annotation>
+ <documentation>
+ Locale specific short version of the static title.
+ Used in: portlet-info
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="supportsType">
+ <annotation>
+ <documentation>
+ Supports indicates the portlet modes a
+ portlet supports for a specific content type. All portlets must
+ support the view mode.
+ Used in: portlet
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="mime-type" type="portlet:mime-typeType"/>
+ <element name="portlet-mode" type="portlet:portlet-modeType" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="string" use="optional"/>
+ </complexType>
+ <complexType name="supported-localeType">
+ <annotation>
+ <documentation>
+ Indicated the locales the portlet supports.
+ Used in: portlet
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="titleType">
+ <annotation>
+ <documentation>
+ Locale specific static title for this portlet.
+ Used in: portlet-info
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string"/>
+ </simpleContent>
+ </complexType>
+ <simpleType name="transport-guaranteeType">
+ <annotation>
+ <documentation>
+ The transport-guaranteeType specifies that
+ the communication between client and portlet should
+ be NONE, INTEGRAL, or CONFIDENTIAL.
+ NONE means that the portlet does not
+ require any transport guarantees. A value of
+ INTEGRAL means that the portlet requires that the
+ data sent between the client and portlet be sent in
+ such a way that it can't be changed in transit.
+ CONFIDENTIAL means that the portlet requires
+ that the data be transmitted in a fashion that
+ prevents other entities from observing the contents
+ of the transmission.
+ In most cases, the presence of the INTEGRAL or
+ CONFIDENTIAL flag will indicate that the use
+ of SSL is required.
+ Used in: user-data-constraint
+ </documentation>
+ </annotation>
+ <restriction base="portlet:string">
+ <enumeration value="NONE"/>
+ <enumeration value="INTEGRAL"/>
+ <enumeration value="CONFIDENTIAL"/>
+ </restriction>
+ </simpleType>
+ <complexType name="user-attributeType">
+ <annotation>
+ <documentation>
+ User attribute defines a user specific attribute that the
+ portlet application needs. The portlet within this application
+ can access this attribute via the request parameter USER_INFO
+ map.
+ Used in: portlet-app
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="name" type="portlet:nameType"/>
+ </sequence>
+ <attribute name="id" type="string" use="optional"/>
+ </complexType>
+ <complexType name="user-data-constraintType">
+ <annotation>
+ <documentation>
+ The user-data-constraintType is used to indicate how
+ data communicated between the client and portlet should be
+ protected.
+ Used in: security-constraint
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="transport-guarantee" type="portlet:transport-guaranteeType"/>
+ </sequence>
+ <attribute name="id" type="string" use="optional"/>
+ </complexType>
+ <complexType name="valueType">
+ <annotation>
+ <documentation>
+ The value element contains the value of a parameter.
+ Used in: init-param
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="window-stateType">
+ <annotation>
+ <documentation>
+ Portlet window state. Window state names are not case sensitive.
+ Used in: custom-window-state
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string"/>
+ </simpleContent>
+ </complexType>
+ <!--- everything below is copied from j2ee_1_4.xsd -->
+ <complexType name="descriptionType">
+ <annotation>
+ <documentation>
+ The description element is used to provide text describing the
+ parent element. The description element should include any
+ information that the portlet application war file producer wants
+ to provide to the consumer of the portlet application war file
+ (i.e., to the Deployer). Typically, the tools used by the
+ portlet application war file consumer will display the
+ description when processing the parent element that contains the
+ description. It has an optional attribute xml:lang to indicate
+ which language is used in the description according to
+ RFC 1766 (http://www.ietf.org/rfc/rfc1766.txt). The default
+ value of this attribute is English(âenâ).
+ Used in: init-param, portlet, portlet-app, security-role
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string">
+ <attribute ref="xml:lang"/>
+ </extension>
+ </simpleContent>
+ </complexType>
+ <complexType name="display-nameType">
+ <annotation>
+ <documentation>
+ The display-name type contains a short name that is intended
+ to be displayed by tools. It is used by display-name
+ elements. The display name need not be unique.
+ Example:
+ ...
+ <display-name xml:lang="en">Employee Self Service</display-name>
+
+ It has an optional attribute xml:lang to indicate
+ which language is used in the description according to
+ RFC 1766 (http://www.ietf.org/rfc/rfc1766.txt). The default
+ value of this attribute is English(âenâ).
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="portlet:string">
+ <attribute ref="xml:lang"/>
+ </extension>
+ </simpleContent>
+ </complexType>
+ <simpleType name="fully-qualified-classType">
+ <annotation>
+ <documentation>
+ The elements that use this type designate the name of a
+ Java class or interface.
+ </documentation>
+ </annotation>
+ <restriction base="portlet:string"/>
+ </simpleType>
+ <simpleType name="role-nameType">
+ <annotation>
+ <documentation>
+ The role-nameType designates the name of a security role.
+
+ The name must conform to the lexical rules for an NMTOKEN.
+ </documentation>
+ </annotation>
+ <restriction base="NMTOKEN"/>
+ </simpleType>
+ <simpleType name="string">
+ <annotation>
+ <documentation>
+ This is a special string datatype that is defined by J2EE
+ as a base type for defining collapsed strings. When
+ schemas require trailing/leading space elimination as
+ well as collapsing the existing whitespace, this base
+ type may be used.
+ </documentation>
+ </annotation>
+ <restriction base="string">
+ <whiteSpace value="collapse"/>
+ </restriction>
+ </simpleType>
+</schema>
Propchange: portals/jetspeed-2/portal/trunk/etc/xsd/portlet-spec-1.0.xsd
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: portals/jetspeed-2/portal/trunk/etc/xsd/portlet-spec-1.0.xsd
------------------------------------------------------------------------------
svn:keywords = Id
Added: portals/jetspeed-2/portal/trunk/etc/xsd/portlet-spec-2.0.xsd
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/etc/xsd/portlet-spec-2.0.xsd?rev=750289&view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/etc/xsd/portlet-spec-2.0.xsd (added)
+++ portals/jetspeed-2/portal/trunk/etc/xsd/portlet-spec-2.0.xsd Thu Mar 5 02:06:07 2009
@@ -0,0 +1,846 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:portlet="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.0" xml:lang="en">
+ <annotation>
+ <documentation>
+ This is the XML Schema for the Portlet 2.0 deployment descriptor.
+ </documentation>
+ </annotation>
+ <annotation>
+ <documentation>
+ The following conventions apply to all J2EE
+ deployment descriptor elements unless indicated otherwise.
+ - In elements that specify a pathname to a file within the
+ same JAR file, relative filenames (i.e., those not
+ starting with "/") are considered relative to the root of
+ the JAR file's namespace. Absolute filenames (i.e., those
+ starting with "/") also specify names in the root of the
+ JAR file's namespace. In general, relative names are
+ preferred. The exception is .war files where absolute
+ names are preferred for consistency with the Servlet API.
+ </documentation>
+ </annotation>
+ <!-- *********************************************************** -->
+ <import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+ <element name="portlet-app" type="portlet:portlet-appType">
+ <annotation>
+ <documentation>
+ The portlet-app element is the root of the deployment descriptor
+ for a portlet application. This element has a required attribute version
+ to specify to which version of the schema the deployment descriptor
+ conforms. In order to be a valid JSR 286 portlet application the version
+ must have the value "2.0".
+ </documentation>
+ </annotation>
+ <unique name="portlet-name-uniqueness">
+ <annotation>
+ <documentation>
+ The portlet element contains the name of a portlet.
+ This name must be unique within the portlet application.
+ </documentation>
+ </annotation>
+ <selector xpath="portlet:portlet"/>
+ <field xpath="portlet:portlet-name"/>
+ </unique>
+ <unique name="custom-portlet-mode-uniqueness">
+ <annotation>
+ <documentation>
+ The custom-portlet-mode element contains the portlet-mode.
+ This portlet mode must be unique within the portlet application.
+ </documentation>
+ </annotation>
+ <selector xpath="portlet:custom-portlet-mode"/>
+ <field xpath="portlet:portlet-mode"/>
+ </unique>
+ <unique name="custom-window-state-uniqueness">
+ <annotation>
+ <documentation>
+ The custom-window-state element contains the window-state.
+ This window state must be unique within the portlet application.
+ </documentation>
+ </annotation>
+ <selector xpath="portlet:custom-window-state"/>
+ <field xpath="portlet:window-state"/>
+ </unique>
+ <unique name="user-attribute-name-uniqueness">
+ <annotation>
+ <documentation>
+ The user-attribute element contains the name the attribute.
+ This name must be unique within the portlet application.
+ </documentation>
+ </annotation>
+ <selector xpath="portlet:user-attribute"/>
+ <field xpath="portlet:name"/>
+ </unique>
+ <unique name="filter-name-uniqueness">
+ <annotation>
+ <documentation>
+ The filter element contains the name of a filter.
+ The name must be unique within the portlet application.
+ </documentation>
+ </annotation>
+ <selector xpath="portlet:filter"/>
+ <field xpath="portlet:filter-name"/>
+ </unique>
+ </element>
+ <complexType name="portlet-appType">
+ <sequence>
+ <element name="portlet" type="portlet:portletType" minOccurs="0" maxOccurs="unbounded">
+ <unique name="init-param-name-uniqueness">
+ <annotation>
+ <documentation>
+ The init-param element contains the name the attribute.
+ This name must be unique within the portlet.
+ </documentation>
+ </annotation>
+ <selector xpath="portlet:init-param"/>
+ <field xpath="portlet:name"/>
+ </unique>
+ <unique name="supports-mime-type-uniqueness">
+ <annotation>
+ <documentation>
+ The supports element contains the supported mime-type.
+ This mime type must be unique within the portlet.
+ </documentation>
+ </annotation>
+ <selector xpath="portlet:supports"/>
+ <field xpath="mime-type"/>
+ </unique>
+ <unique name="preference-name-uniqueness">
+ <annotation>
+ <documentation>
+ The preference element contains the name the preference.
+ This name must be unique within the portlet.
+ </documentation>
+ </annotation>
+ <selector xpath="portlet:portlet-preferences/portlet:preference"/>
+ <field xpath="portlet:name"/>
+ </unique>
+ <unique name="security-role-ref-name-uniqueness">
+ <annotation>
+ <documentation>
+ The security-role-ref element contains the role-name.
+ This role name must be unique within the portlet.
+ </documentation>
+ </annotation>
+ <selector xpath="portlet:security-role-ref"/>
+ <field xpath="portlet:role-name"/>
+ </unique>
+ </element>
+ <element name="custom-portlet-mode" type="portlet:custom-portlet-modeType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="custom-window-state" type="portlet:custom-window-stateType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="user-attribute" type="portlet:user-attributeType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="security-constraint" type="portlet:security-constraintType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="resource-bundle" type="portlet:resource-bundleType" minOccurs="0"/>
+ <element name="filter" type="portlet:filterType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="filter-mapping" type="portlet:filter-mappingType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="default-namespace" type="xs:anyURI" minOccurs="0"/>
+ <element name="event-definition" type="portlet:event-definitionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="public-render-parameter" type="portlet:public-render-parameterType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="listener" type="portlet:listenerType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="container-runtime-option" type="portlet:container-runtime-optionType" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="version" type="portlet:string" use="required"/>
+ <attribute name="id" type="portlet:string" use="optional"/>
+ </complexType>
+ <complexType name="cache-scopeType">
+ <annotation>
+ <documentation>
+ Caching scope, allowed values are "private" indicating that the content should not be shared
+ across users and "public" indicating that the content may be shared across users.
+ The default value if not present is "private".
+ Used in: portlet
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="portlet:string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="custom-portlet-modeType">
+ <annotation>
+ <documentation>
+ A custom portlet mode that one or more portlets in
+ this portlet application supports.
+ If the portal does not need to provide some management functionality
+ for this portlet mode, the portal-managed element needs to be set
+ to "false", otherwise to "true". Default is "true".
+ Used in: portlet-app
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="portlet-mode" type="portlet:portlet-modeType"/>
+ <element name="portal-managed" type="portlet:portal-managedType" minOccurs="0"/>
+ </sequence>
+ <attribute name="id" type="portlet:string" use="optional"/>
+ </complexType>
+ <complexType name="custom-window-stateType">
+ <annotation>
+ <documentation>
+ A custom window state that one or more portlets in this
+ portlet application supports.
+ Used in: portlet-app
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="window-state" type="portlet:window-stateType"/>
+ </sequence>
+ <attribute name="id" type="portlet:string" use="optional"/>
+ </complexType>
+ <complexType name="expiration-cacheType">
+ <annotation>
+ <documentation>
+ Expiration-time defines the time in seconds after which the portlet output expires.
+ -1 indicates that the output never expires.
+ Used in: portlet
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="int"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="init-paramType">
+ <annotation>
+ <documentation>
+ The init-param element contains a name/value pair as an
+ initialization param of the portlet
+ Used in:portlet
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="name" type="portlet:nameType"/>
+ <element name="value" type="portlet:valueType"/>
+ </sequence>
+ <attribute name="id" type="portlet:string" use="optional"/>
+ </complexType>
+ <complexType name="keywordsType">
+ <annotation>
+ <documentation>
+ Locale specific keywords associated with this portlet.
+ The kewords are separated by commas.
+ Used in: portlet-info
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="portlet:string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="mime-typeType">
+ <annotation>
+ <documentation>
+ MIME type name, e.g. "text/html".
+ The MIME type may also contain the wildcard
+ character '*', like "text/*" or "*/*".
+ Used in: supports
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="portlet:string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="nameType">
+ <annotation>
+ <documentation>
+ The name element contains the name of a parameter.
+ Used in: init-param, ...
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="portlet:string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="portletType">
+ <annotation>
+ <documentation>
+ The portlet element contains the declarative data of a portlet.
+ Used in: portlet-app
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="portlet-name" type="portlet:portlet-nameType"/>
+ <element name="display-name" type="portlet:display-nameType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="portlet-class" type="portlet:portlet-classType"/>
+ <element name="init-param" type="portlet:init-paramType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="expiration-cache" type="portlet:expiration-cacheType" minOccurs="0"/>
+ <element name="cache-scope" type="portlet:cache-scopeType" minOccurs="0"/>
+ <element name="supports" type="portlet:supportsType" maxOccurs="unbounded"/>
+ <element name="supported-locale" type="portlet:supported-localeType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="resource-bundle" type="portlet:resource-bundleType" minOccurs="0"/>
+ <element name="portlet-info" type="portlet:portlet-infoType" minOccurs="0"/>
+ <element name="portlet-preferences" type="portlet:portlet-preferencesType" minOccurs="0"/>
+ <element name="security-role-ref" type="portlet:security-role-refType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="supported-processing-event" type="portlet:event-definition-referenceType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="supported-publishing-event" type="portlet:event-definition-referenceType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="supported-public-render-parameter" type="portlet:string" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="container-runtime-option" type="portlet:container-runtime-optionType" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="portlet:string" use="optional"/>
+ </complexType>
+ <simpleType name="portlet-classType">
+ <annotation>
+ <documentation>
+ The portlet-class element contains the fully
+ qualified class name of the portlet.
+ Used in: portlet
+ </documentation>
+ </annotation>
+ <restriction base="portlet:fully-qualified-classType"/>
+ </simpleType>
+ <complexType name="container-runtime-optionType">
+ <annotation>
+ <documentation>
+ The container-runtime-option element contains settings
+ for the portlet container that the portlet expects to be honored
+ at runtime. These settings may re-define default portlet container
+ behavior, like the javax.portlet.escapeXml setting that disables
+ XML encoding of URLs produced by the portlet tag library as
+ default.
+ Names with the javax.portlet prefix are reserved for the Java
+ Portlet Specification.
+ Used in: portlet-app, portlet
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="name" type="portlet:nameType"/>
+ <element name="value" type="portlet:valueType" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ <complexType name="filter-mappingType">
+ <annotation>
+ <documentation>
+ Declaration of the filter mappings in this portlet
+ application is done by using filter-mappingType.
+ The container uses the filter-mapping
+ declarations to decide which filters to apply to a request,
+ and in what order. To determine which filters to
+ apply it matches filter-mapping declarations on the
+ portlet-name and the lifecyle phase defined in the
+ filter element. The order in which filters are invoked
+ is the order in which filter-mapping declarations
+ that match appear in the list of filter-mapping elements.
+ Used in: portlet-app
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="filter-name" type="portlet:filter-nameType"/>
+ <element name="portlet-name" type="portlet:portlet-nameType" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ <complexType name="filterType">
+ <annotation>
+ <documentation>
+ The filter element specifies a filter that can transform the
+ content of portlet requests and portlet responses.
+ Filters can access the initialization parameters declared in
+ the deployment descriptor at runtime via the FilterConfig
+ interface.
+ A filter can be restricted to one or more lifecycle phases
+ of the portlet. Valid entries for lifecycle are:
+ ACTION_PHASE, EVENT_PHASE, RENDER_PHASE,
+ RESOURCE_PHASE
+ Used in: portlet-app
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="display-name" type="portlet:display-nameType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="filter-name" type="portlet:filter-nameType"/>
+ <element name="filter-class" type="portlet:fully-qualified-classType"/>
+ <element name="lifecycle" type="portlet:string" maxOccurs="unbounded"/>
+ <element name="init-param" type="portlet:init-paramType" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ <complexType name="portlet-collectionType">
+ <annotation>
+ <documentation>
+ The portlet-collectionType is used to identify a subset
+ of portlets within a portlet application to which a
+ security constraint applies.
+ Used in: security-constraint
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="portlet-name" type="portlet:portlet-nameType" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ <complexType name="event-definitionType">
+ <annotation>
+ <documentation>
+ The event-definitionType is used to declare events the portlet can either
+ receive or emit.
+ The name must be unique and must be the one the
+ portlet is using in its code for referencing this event.
+ Used in: portlet-app
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <choice>
+ <element name="qname" type="xs:QName"/>
+ <element name="name" type="xs:NCName"/>
+ </choice>
+ <element name="alias" type="xs:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="value-type" type="portlet:fully-qualified-classType" minOccurs="0"/>
+ </sequence>
+ <attribute name="id" type="portlet:string" use="optional"/>
+ </complexType>
+ <complexType name="event-definition-referenceType">
+ <annotation>
+ <documentation>
+ The event-definition-referenceType is used to reference events
+ declared with the event-definition element at application level.
+ Used in: portlet
+ </documentation>
+ </annotation>
+ <choice>
+ <element name="qname" type="xs:QName"/>
+ <element name="name" type="xs:NCName"/>
+ </choice>
+ <attribute name="id" type="portlet:string" use="optional"/>
+ </complexType>
+ <complexType name="listenerType">
+ <annotation>
+ <documentation>
+ The listenerType is used to declare listeners for this portlet application.
+ Used in: portlet-app
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="display-name" type="portlet:display-nameType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="listener-class" type="portlet:fully-qualified-classType"/>
+ </sequence>
+ <attribute name="id" type="portlet:string" use="optional"/>
+ </complexType>
+ <complexType name="portlet-infoType">
+ <sequence>
+ <element name="title" type="portlet:titleType" minOccurs="0"/>
+ <element name="short-title" type="portlet:short-titleType" minOccurs="0"/>
+ <element name="keywords" type="portlet:keywordsType" minOccurs="0"/>
+ </sequence>
+ <attribute name="id" type="portlet:string" use="optional"/>
+ </complexType>
+ <simpleType name="portal-managedType">
+ <annotation>
+ <documentation>
+ portal-managed indicates if a custom portlet mode
+ needs to be managed by the portal or not.
+ Per default all custom portlet modes are portal managed.
+ Valid values are:
+ - true for portal-managed
+ - false for not portal managed
+ Used in: custom-portlet-modes
+ </documentation>
+ </annotation>
+ <restriction base="portlet:string">
+ <enumeration value="true"/>
+ <enumeration value="false"/>
+ </restriction>
+ </simpleType>
+ <complexType name="portlet-modeType">
+ <annotation>
+ <documentation>
+ Portlet modes. The specification pre-defines the following values
+ as valid portlet mode constants:
+ "edit", "help", "view".
+ Portlet mode names are not case sensitive.
+ Used in: custom-portlet-mode, supports
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="portlet:string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="portlet-nameType">
+ <annotation>
+ <documentation>
+ The portlet-name element contains the canonical name of the
+ portlet. Each portlet name is unique within the portlet
+ application.
+ Used in: portlet, filter-mapping
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="portlet:string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="portlet-preferencesType">
+ <annotation>
+ <documentation>
+ Portlet persistent preference store.
+ Used in: portlet
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="preference" type="portlet:preferenceType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="preferences-validator" type="portlet:preferences-validatorType" minOccurs="0"/>
+ </sequence>
+ <attribute name="id" type="portlet:string" use="optional"/>
+ </complexType>
+ <complexType name="preferenceType">
+ <annotation>
+ <documentation>
+ Persistent preference values that may be used for customization
+ and personalization by the portlet.
+ Used in: portlet-preferences
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="name" type="portlet:nameType"/>
+ <element name="value" type="portlet:valueType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="read-only" type="portlet:read-onlyType" minOccurs="0"/>
+ </sequence>
+ <attribute name="id" type="portlet:string" use="optional"/>
+ </complexType>
+ <simpleType name="preferences-validatorType">
+ <annotation>
+ <documentation>
+ The class specified under preferences-validator implements
+ the PreferencesValidator interface to validate the
+ preferences settings.
+ Used in: portlet-preferences
+ </documentation>
+ </annotation>
+ <restriction base="portlet:fully-qualified-classType"/>
+ </simpleType>
+ <simpleType name="read-onlyType">
+ <annotation>
+ <documentation>
+ read-only indicates that a setting cannot
+ be changed in any of the standard portlet modes
+ ("view","edit" or "help").
+ Per default all preferences are modifiable.
+ Valid values are:
+ - true for read-only
+ - false for modifiable
+ Used in: preferences
+ </documentation>
+ </annotation>
+ <restriction base="portlet:string">
+ <enumeration value="true"/>
+ <enumeration value="false"/>
+ </restriction>
+ </simpleType>
+ <complexType name="resource-bundleType">
+ <annotation>
+ <documentation>
+ Name of the resource bundle containing the language specific
+ portlet informations in different languages (Filename without
+ the language specific part (e.g. _en) and the ending (.properties).
+ Used in: portlet-info
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="portlet:string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="role-linkType">
+ <annotation>
+ <documentation>
+ The role-link element is a reference to a defined security role.
+ The role-link element must contain the name of one of the
+ security roles defined in the security-role elements.
+ Used in: security-role-ref
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="portlet:string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="security-constraintType">
+ <annotation>
+ <documentation>
+ The security-constraintType is used to associate
+ intended security constraints with one or more portlets.
+ Used in: portlet-app
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="display-name" type="portlet:display-nameType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="portlet-collection" type="portlet:portlet-collectionType"/>
+ <element name="user-data-constraint" type="portlet:user-data-constraintType"/>
+ </sequence>
+ <attribute name="id" type="portlet:string" use="optional"/>
+ </complexType>
+ <complexType name="security-role-refType">
+ <annotation>
+ <documentation>
+ The security-role-ref element contains the declaration of a
+ security role reference in the code of the web application. The
+ declaration consists of an optional description, the security
+ role name used in the code, and an optional link to a security
+ role. If the security role is not specified, the Deployer must
+ choose an appropriate security role.
+ The value of the role name element must be the String used
+ as the parameter to the
+ EJBContext.isCallerInRole(String roleName) method
+ or the HttpServletRequest.isUserInRole(String role) method.
+ Used in: portlet
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="role-name" type="portlet:role-nameType"/>
+ <element name="role-link" type="portlet:role-linkType" minOccurs="0"/>
+ </sequence>
+ <attribute name="id" type="portlet:string" use="optional"/>
+ </complexType>
+ <complexType name="public-render-parameterType">
+ <annotation>
+ <documentation>
+ The public-render-parameters defines a render parameter that is allowed to be public
+ and thus be shared with other portlets.
+ The identifier must be used for referencing this public render parameter in the portlet code.
+ Used in: portlet-app
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="identifier" type="portlet:string"/>
+ <choice>
+ <element name="qname" type="xs:QName"/>
+ <element name="name" type="xs:NCName"/>
+ </choice>
+ <element name="alias" type="xs:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="portlet:string" use="optional"/>
+ </complexType>
+ <complexType name="short-titleType">
+ <annotation>
+ <documentation>
+ Locale specific short version of the static title.
+ Used in: portlet-info
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="portlet:string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="supportsType">
+ <annotation>
+ <documentation>
+ Supports indicates the portlet modes a
+ portlet supports for a specific content type. All portlets must
+ support the view mode.
+ Used in: portlet
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="mime-type" type="portlet:mime-typeType"/>
+ <element name="portlet-mode" type="portlet:portlet-modeType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="window-state" type="portlet:window-stateType" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="id" type="portlet:string" use="optional"/>
+ </complexType>
+ <complexType name="supported-localeType">
+ <annotation>
+ <documentation>
+ Indicated the locales the portlet supports.
+ Used in: portlet
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="portlet:string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="titleType">
+ <annotation>
+ <documentation>
+ Locale specific static title for this portlet.
+ Used in: portlet-info
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="portlet:string"/>
+ </simpleContent>
+ </complexType>
+ <simpleType name="transport-guaranteeType">
+ <annotation>
+ <documentation>
+ The transport-guaranteeType specifies that
+ the communication between client and portlet should
+ be NONE, INTEGRAL, or CONFIDENTIAL.
+ NONE means that the portlet does not
+ require any transport guarantees. A value of
+ INTEGRAL means that the portlet requires that the
+ data sent between the client and portlet be sent in
+ such a way that it can't be changed in transit.
+ CONFIDENTIAL means that the portlet requires
+ that the data be transmitted in a fashion that
+ prevents other entities from observing the contents
+ of the transmission.
+ In most cases, the presence of the INTEGRAL or
+ CONFIDENTIAL flag will indicate that the use
+ of SSL is required.
+ Used in: user-data-constraint
+ </documentation>
+ </annotation>
+ <restriction base="portlet:string">
+ <enumeration value="NONE"/>
+ <enumeration value="INTEGRAL"/>
+ <enumeration value="CONFIDENTIAL"/>
+ </restriction>
+ </simpleType>
+ <complexType name="user-attributeType">
+ <annotation>
+ <documentation>
+ User attribute defines a user specific attribute that the
+ portlet application needs. The portlet within this application
+ can access this attribute via the request parameter USER_INFO
+ map.
+ Used in: portlet-app
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="name" type="portlet:nameType"/>
+ </sequence>
+ <attribute name="id" type="portlet:string" use="optional"/>
+ </complexType>
+ <complexType name="user-data-constraintType">
+ <annotation>
+ <documentation>
+ The user-data-constraintType is used to indicate how
+ data communicated between the client and portlet should be
+ protected.
+ Used in: security-constraint
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="transport-guarantee" type="portlet:transport-guaranteeType"/>
+ </sequence>
+ <attribute name="id" type="portlet:string" use="optional"/>
+ </complexType>
+ <complexType name="valueType">
+ <annotation>
+ <documentation>
+ The value element contains the value of a parameter.
+ Used in: init-param
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="portlet:string"/>
+ </simpleContent>
+ </complexType>
+ <complexType name="window-stateType">
+ <annotation>
+ <documentation>
+ Portlet window state. Window state names are not case sensitive.
+ Used in: custom-window-state
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="portlet:string"/>
+ </simpleContent>
+ </complexType>
+ <!--- everything below is copied from j2ee_1_4.xsd -->
+ <complexType name="descriptionType">
+ <annotation>
+ <documentation>
+ The description element is used to provide text describing the
+ parent element. The description element should include any
+ information that the portlet application war file producer wants
+ to provide to the consumer of the portlet application war file
+ (i.e., to the Deployer). Typically, the tools used by the
+ portlet application war file consumer will display the
+ description when processing the parent element that contains the
+ description. It has an optional attribute xml:lang to indicate
+ which language is used in the description according to
+ RFC 1766 (http://www.ietf.org/rfc/rfc1766.txt). The default
+ value of this attribute is English(âenâ).
+ Used in: init-param, portlet, portlet-app, security-role
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="portlet:string">
+ <attribute ref="xml:lang"/>
+ </extension>
+ </simpleContent>
+ </complexType>
+ <complexType name="display-nameType">
+ <annotation>
+ <documentation>
+ The display-name type contains a short name that is intended
+ to be displayed by tools. It is used by display-name
+ elements. The display name need not be unique.
+ Example:
+ ...
+ <display-name xml:lang="en">Employee Self Service</display-name>
+
+ It has an optional attribute xml:lang to indicate
+ which language is used in the description according to
+ RFC 1766 (http://www.ietf.org/rfc/rfc1766.txt). The default
+ value of this attribute is English(âenâ).
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="portlet:string">
+ <attribute ref="xml:lang"/>
+ </extension>
+ </simpleContent>
+ </complexType>
+ <simpleType name="fully-qualified-classType">
+ <annotation>
+ <documentation>
+ The elements that use this type designate the name of a
+ Java class or interface.
+ </documentation>
+ </annotation>
+ <restriction base="portlet:string"/>
+ </simpleType>
+ <simpleType name="role-nameType">
+ <annotation>
+ <documentation>
+ The role-nameType designates the name of a security role.
+
+ The name must conform to the lexical rules for an NMTOKEN.
+ </documentation>
+ </annotation>
+ <restriction base="NMTOKEN"/>
+ </simpleType>
+ <simpleType name="string">
+ <annotation>
+ <documentation>
+ This is a special string datatype that is defined by JavaEE
+ as a base type for defining collapsed strings. When
+ schemas require trailing/leading space elimination as
+ well as collapsing the existing whitespace, this base
+ type may be used.
+ </documentation>
+ </annotation>
+ <restriction base="string">
+ <whiteSpace value="collapse"/>
+ </restriction>
+ </simpleType>
+ <simpleType name="filter-nameType">
+ <annotation>
+ <documentation>
+ The logical name of the filter is declare
+ by using filter-nameType. This name is used to map the
+ filter. Each filter name is unique within the portlet
+ application.
+ Used in: filter, filter-mapping
+ </documentation>
+ </annotation>
+ <restriction base="portlet:string"/>
+ </simpleType>
+</schema>
Propchange: portals/jetspeed-2/portal/trunk/etc/xsd/portlet-spec-2.0.xsd
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: portals/jetspeed-2/portal/trunk/etc/xsd/portlet-spec-2.0.xsd
------------------------------------------------------------------------------
svn:keywords = Id
Added: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/portlet/SecuredPortlet.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/portlet/SecuredPortlet.java?rev=750289&view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/portlet/SecuredPortlet.java (added)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/portlet/SecuredPortlet.java Thu Mar 5 02:06:07 2009
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2008 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.jetspeed.om.portlet;
+
+
+public interface SecuredPortlet
+{
+ String getName();
+}
\ No newline at end of file
Propchange: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/portlet/SecuredPortlet.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/portlet/SecuredPortlet.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/portlet/UserDataConstraint.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/portlet/UserDataConstraint.java?rev=750289&r1=750288&r2=750289&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/portlet/UserDataConstraint.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/portlet/UserDataConstraint.java Thu Mar 5 02:06:07 2009
@@ -29,4 +29,5 @@
Description getDescription(Locale locale);
List<Description> getDescriptions();
Description addDescription(String lang);
+ void setTransportGuarantee(String transport);
}
\ No newline at end of file
Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/registry-schema.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/registry-schema.xml?rev=750289&r1=750288&r2=750289&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/registry-schema.xml (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/registry-schema.xml Thu Mar 5 02:06:07 2009
@@ -416,5 +416,23 @@
<column name="APPLICATION_ID" required="true" type="INTEGER"/>
<column name="LISTENER_CLASS" required="false" size="255" type="VARCHAR"/>
</table>
+
+ <!--
+ PORTLET SECURITY CONSTRAINT
+ -->
+ <table name="PA_SECURITY_CONSTRAINT">
+ <column name="ID" primaryKey="true" required="true" type="INTEGER"/>
+ <column name="APPLICATION_ID" required="true" type="INTEGER"/>
+ <column name="TRANSPORT" required="true" size="40" type="VARCHAR"/>
+ </table>
+
+ <!--
+ SECURED PORTLET NAME
+ -->
+ <table name="SECURED_PORTLET">
+ <column name="ID" primaryKey="true" required="true" type="INTEGER"/>
+ <column name="OWNER_ID" required="true" type="INTEGER"/>
+ <column name="NAME" required="true" size="150" type="VARCHAR"/>
+ </table>
</database>
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org