This document presents the XML syntax used by the default XML Registry implementation.
The portlet-entry
element is the main element encountered in the Registry.
It describes a Portlet object that can be used within a portal page description.
There are 3 main types of portlet-entry
definitions, controlled by
the value of the type
attribute in the entry:
These portlets cannot be used directly in a portlet page and simply provide a configuration template for creating ref portlet-entry.
The classname
element is required in an abstract portlet
These are the default portlet entries created within the registry and describe standard Java component complying to the Portlet API that can be added directly within a portal page.
The classname
element is required in an instance portlet
These entries are the more frequently encountered definitions in the registry. They define portlets that reference another existing portlet entry in the registry, yet override or complement the previous definitions with additionnal parameters.
The parent
attribute is required in a ref portlet and must refer another
existing abstract or instance portlet, but not another ref portlet.
The classname
element should not occur within a ref prtlet definition.
In addition to the type
attribute, portlet entries can also use standard
attributes and elements that can be used in most other registry entries and are explained
here
<!ELEMENT portlet-entry ( security?, security-ref?, meta-info?, classname?, parameter*, media-type*, url?, category* )> <!ATTLIST portlet-entry name ID #REQUIRED hidden ( true | false ) "false" type ( abstract | instance | ref ) "instance" application ( true | false ) "false" parent IDREF #IMPLIED > <!ELEMENT parameter ( security?, security-ref?, meta-info? )> <!ATTLIST parameter name CDATA #REQUIRED value CDATA #REQUIRED type (int | boolean | string | list | style ) "string" cachedOnName ( true | false ) "false" cachedOnValue ( true | false ) "false" > <!ELEMENT classname CDATA> <!ELEMENT meta-info ( title?, description?, image? ) > <!ELEMENT title CDATA> <!ELEMENT description CDATA> <!ELEMENT image CDATA> <!ELEMENT media-type EMPTY> <!ATTLIST media-type ref IDREF #REQUIRED > <!ELEMENT url CDATA> <!ATTLIST url cachedOnUrl ( true | false ) "false" > <!ELEMENT category CDATA> <!ATTLIST category group CDATA #IMPLIED >
Some parameters have special meanings when encountered in a portlet-entry
defintion:
Name | Minimum Version | Usage |
---|---|---|
_showtitlebar | 1.4b1 |
Will cause the default portlet control not to draw any title bar around the portlet.
This behavior is deprecated 1.4b2 and replaced by the more powerful _control
attribute associated with a no title bar control like "ClearControl"
|
_control | 1.4b2 |
Will cause any new instance of this portlet-entry to be associated with the
control specified in the parameter value when added to a portal page.
|
Also note that any parameter starting with a "_" will not be ignored by the default portlet customizer.
The first example presents a minimal abstract type portlet definition. Note that it's defined as hidden to prevent the entry from showing up when browsing for portlets
<portlet-entry name="Velocity" type="abstract" hidden="true"> <classname>org.apache.jetspeed.portal.portlets.VelocityPortlet</classname> </portlet-entry>
The second example provides a standard instance type portlet definition.
<portlet-entry name="JetspeedContent" type="instance"> <meta-info> <title>Jetspeed Content Example</title> <description>Example of Jetspeed Content portlet.</description> </meta-info> <classname>org.apache.jetspeed.portal.portlets.JetspeedContent</classname> <parameter name="provider-name" value="jetspeed" hidden="false"/> <media-type ref="html"/> </portlet-entry>
The third example shows how to reference the above abstract definition and add additionnal parameters that will specify the actual behavior of the portlet.
<portlet-entry name="SecurityExample" type="ref" parent="Velocity"> <security-ref parent="user-view_admin-all"/> <meta-info> <title>SecurityExample</title> <description>Simple Security Example</description> </meta-info> <parameter name="template" value="SecurityExample" hidden="false"/> <media-type ref="html"/> <category>demo</category> <category>velocity.demo</category> </portlet-entry>
The portlet-control-entry
element defines the available
PortletControl
available to decorate the different portlets.
The portlet-control-entry
definition is nearly identical
to those of instance type portlet-entry
, expect that there's
no category
, url
or caching related attributes.
<!ELEMENT portlet-control-entry ( security?, security-ref?, meta-info?, classname?, parameter*, media-type+ )> <!ATTLIST portlet-control-entry name ID #REQUIRED hidden ( true | false ) "false" > <!ELEMENT parameter ( security?, security-ref?, meta-info? )> <!ATTLIST parameter name CDATA #REQUIRED value CDATA #REQUIRED type (int | boolean | string | list) "string" > <!ELEMENT classname CDATA> <!ELEMENT meta-info ( title?, description?, image? ) > <!ELEMENT title CDATA> <!ELEMENT description CDATA> <!ELEMENT image CDATA> <!ELEMENT media-type EMPTY> <!ATTLIST media-type ref IDREF #REQUIRED >
A typical control defintion will use the default VelocityPortletControl
and simply specify the associated template and working parameters.
<portlet-control-entry name="TitlePortletControl"> <classname>org.apache.jetspeed.portal.controls.VelocityPortletControl</classname> <parameter name="theme" value="jetspeed.vm"/> <meta-info> <title>Simple titled control</title> </meta-info> <media-type ref="html"/> <media-type ref="wml"/> </portlet-control-entry>
The portlet-controller-entry
element defines the available
PortletController
that are used to lay out a pane content.
The syntax and usage of this element is exactly the same as the portlet-control-entry
<!ELEMENT portlet-controller-entry ( parameter*, media-type+ )> <!ATTLIST portlet-controller-entry name ID #REQUIRED hidden ( true | false ) "false" > <!ELEMENT parameter EMPTY> <!ATTLIST parameter name CDATA #REQUIRED value CDATA #REQUIRED type (int | boolean | string | list ) "string" > <!ELEMENT media-type EMPTY> <!ATTLIST media-type ref IDREF #REQUIRED >
A typical controller defintion will use the default VelocityPortletController
and simply specify the associated template and working parameters.
<portlet-controller-entry name="TwoColumns"> <classname>org.apache.jetspeed.portal.controllers.VelocityPortletController</classname> <parameter name="template" value="multicolumn.vm" /> <parameter name="action" value="controllers.MultiColumnControllerAction" /> <parameter name="sizes" value="50%,50%" /> <parameter name="cols" value="2" /> <media-type ref="html"/> <meta-info> <title>Two columns (50/50)</title> </meta-info> </portlet-controller-entry>
The skin-entry
element defines the color scheme that can be used to decorate
the portal pages. It contists of a simple named list of properties that can be associated
to a portal or pane on a portal page.
<!ELEMENT skin-entry ( property+ )> <!ATTLIST skin-entry name ID #REQUIRED hidden ( true | false ) "false" > <!ELEMENT property EMPTY> <!ATTLIST property name CDATA #REQUIRED value CDATA #REQUIRED type (int | boolean | string | list) "string" >
The following properties are currently used by the default controls and controllers. It's possible to freely add new properties.
These properties are only styling hints that may be disregarded by some controls or controllers.
Name | Description |
---|---|
text-color | The default text color for portlet content |
background-color | The default background color for portlet context |
title-text-color | The default text color within a control titlebar |
title-background-color | The default background color within a control titlebar |
highlight-text-color | The default text color for the selected pane title within a paned titlebar |
highlight-background-color | The default background color for the selected pane title within a paned titlebar |
title-style-class | The CSS class name for a control titlebar. |
highlight-title-style-class | The CSS class name for the selected pane title within a paned titlebar |
controller-style-class | The CSS class name for a controller-managed content area |
portlet-style-class | The CSS class name for a portlet area |
content-style-class | The CSS class name for portlet content |
tab-style-class | The CSS class name for a tabbed pane area |
tab-title-style-class | The CSS class name for the title area in a tabbed pane |
tab-content-style-class | The CSS class name for the content area in a tabbed pane |
This example presents the default skin definition used by the default Jetspeed portal.
<skin-entry name="orange-grey"> <property name="text-color" value="#000000"/> <property name="background-color" value="#ffffff"/> <property name="title-text-color" value="#000000"/> <property name="title-background-color" value="#dddddd"/> <property name="title-style-class" value="TitleStyleClass"/> <property name="highlight-text-color" value="#000000"/> <property name="highlight-background-color" value="#FFCC00"/> <property name="highlight-title-style-class" value="HighlightTitleStyleClass"/> <property name="controller-style-class" value="ControllerStyleClass"/> <property name="portlet-style-class" value="PortletStyleClass"/> <property name="content-style-class" value="ContentStyleClass"/> <property name="tab-style-class" value="TabStyleClass"/> <property name="tab-title-style-class" value="TabTitleStyleClass"/> <property name="tab-content-style-class" value="TabContentStyleClass"/> </skin-entry>
The media-type-entry
element defines the media types
supported the portal instance.
These media types are defined by a MIME content type, an optional character set and an optional set of user agent capabilities required to correctly access this media type.
The media types are referenced by the portlet-entry
,
portlet-control-entry
and portlet-controller-entry
to
define when these entries can be used.
<!ELEMENT media-type-entry ( mime-type, character-set?, capability-map? )> <!ATTLIST media-type-entry name ID #REQUIRED hidden ( true | false ) "false" > <!ELEMENT mime-type CDATA> <!ELEMENT character-set CDATA> <!ELEMENT capability-map ( capability* )> <!ELEMENT capability CDATA>
These elements needs to be ordered from most preferred to least preferred for the client detection to work correctly.
For more information, see the Client media detection document.
<media-type-entry name="html"> <mime-type>text/html</mime-type> <character-set>UTF-8</character-set> <meta-info> <title>HTML</title> <description>Rich HTML for HTML 4.0 compliants browsers</description> </meta-info> <capability-map> <capability>HTML_TABLE</capability> <capability>HTML_IMAGE</capability> </capability-map> </media-type-entry>
The client-entry
element, introduced in the Jetspeed release 1.4b2,
describes known user agents and their capabilities in handling the different
content-types.
<!ELEMENT client-entry ( user-agent-pattern, manufacturer, model, version, mimetype-map, capability-map? )> <!ATTLIST client-entry name ID #REQUIRED hidden ( true | false ) "false" > <!ELEMENT user-agent-pattern CDATA> <!ELEMENT manufacturer CDATA> <!ELEMENT model CDATA> <!ELEMENT version CDATA> <!ELEMENT mimetype-map ( mimetype+ )> <!ELEMENT mimetype CDATA> <!ELEMENT capability-map ( capability* )> <!ELEMENT capability CDATA>
These elements needs to be ordered from most preferred to least preferred for the client detection to work correctly.
For more information, see the Client media detection document.
<client-entry name="mozilla"> <user-agent-pattern>.*Mozilla/5.*</user-agent-pattern> <manufacturer>Mozilla</manufacturer> <model>Mozilla</model> <version>1.1</version> <mimetype-map> <mimetype>text/html</mimetype> <mimetype>text/xhtml</mimetype> <mimetype>text/xml</mimetype> </mimetype-map> <capability-map> <capability>HTML_3_2</capability> <capability>HTML_4_0</capability> <capability>HTML_JAVA</capability> <capability>HTML_JAVA_JRE</capability> <capability>HTML_JAVASCRIPT</capability> <capability>HTML_TABLE</capability> <capability>HTML_NESTED_TABLE</capability> <capability>HTML_FORM</capability> <capability>HTML_FRAME</capability> <capability>HTML_IFRAME</capability> <capability>HTML_IMAGE</capability> <capability>HTML_CSS1</capability> <capability>HTML_CSS2</capability> <capability>HTML_CSSP</capability> <capability>HTML_DOM_1</capability> <capability>HTML_PLUGIN</capability> <capability>HTTP_COOKIE</capability> </capability-map> </client-entry>
The security-entry
element is used to describe standard sets
of access rules that can be used to protect portal elements or actions.
These security entry are referenced by the other types of registry entries
by using the security-ref
element.
<!ELEMENT security-entry ( meta-info?, access+ )> <!ATTLIST security-entry name ID #REQUIRED > <!ELEMENT access (allow-if*, allow-if-owner? )> <!ATTLIST access action CDATA #REQUIRED > <!ELEMENT allow-if EMPTY> <!ATTLIST allow-if role CDATA #REQUIRED > <!ELEMENT allow-if-owner EMPTY>
<security-entry name="user-view_admin-all"> <meta-info> <title>Users+V and Admin+C</title> <description>Users view, Admin full access.</description> </meta-info> <access action="*"> <allow-if role="admin"/> </access> <access action="view"> <allow-if role="user"/> </access> </security-entry>
Several attributes and inner elements can be found in all registry entry types with similar semantics. This section describes these attributes and elements.
Name | Type | Description |
---|---|---|
hidden | attribute |
The
Usage of this attribute should considered deprecated since the same functionality
can be achieved better by using the |
meta-info | element |
The
|
security-ref | element |
The |