← Prev in month
← Prev in thread
Next in thread →
Next in month →
getProperties: qname to names (String[]) mapping
the last time we discussed how to map the qnames defined for portlet
properties to the getPortletProperties() operation which takes a names
string array as parameter identifiers.
In the xsd, the operation is defined as follows:
<complexType name="getPortletProperties">
<sequence>
<element name="registrationContext"
type="types:RegistrationContext" nillable="true"/>
<element name="portletContext" type="types:PortletContext"/>
<element name="userContext" type="types:UserContext"
nillable="true"/>
<element name="names" type="xsd:string"
nillable="true" maxOccurs="unbounded"/>
</sequence>
</complexType>
<element name="getPortletProperties"
type="types:getPortletProperties"/>
We came up with 4 proposals:
1. use java qname notation as used for example in the JSR286 deployment
descriptor
This maps a Qname(NSURI, localpart) to the String "{NSURI}localpart"
A request would look as follows:
<getPortletProperties>
<registrationContext>...</registrationContext>
<portletContext>...</registrationContext>
<userContext>...></userContext>
<names>{http://example.org}propertyName1</names>
<names>{http://example2.org}propertyName2</names>
</getPortletProperties>
The qname representation is derived from the name attribute in the
PropertyDescription complexType.
2. use the local part
The argument here was, that PortletProperties are local to a portlet
anyways and therefor a "virtual" default NS could be applied.
A PropertyDescription with qname=(http://example.org, propertyName1) would
become to "propertyName1", example:
<getPortletProperties>
<registrationContext>...</registrationContext>
<portletContext>...</registrationContext>
<userContext>...></userContext>
<names>propertyName1</names>
<names>propertyName2</names>
</getPortletProperties>
3. use XML notation
the proposal would rely on XML support of adding NS declarations to
elements and refer to those declaration in the element value, example:
<getPortletProperties>
<registrationContext>...</registrationContext>
<portletContext>...</registrationContext>
<userContext>...></userContext>
<names xmlns:x='http://example.org'>x:propertyName1</names>
<names xmlns:y='http://example2.org'>y:propertyName2</names>
</getPortletProperties>
4. use an extension to provide the full qname to the operation
I think this solution would be ruled out, since the getPortletProperties
complex type is not extensible at that level.
Only its subtypes are extensible, wheras the names[] is a first class
citizen of getPortletProperties.
Mit freundlichen Gruessen / best regards,
Richard Jacob
______________________________________________________
IBM Lab Boeblingen, Germany
Dept. 2289, WebSphere Portal Server Development 1
WSRP Team Lead
WSRP Architecture & Standardization
Phone: ++49 7031 16-3469 - Fax: ++49 7031 16-4888
IBM Deutschland Entwicklung GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschäftsführung: Herbert Kircher
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294
← Prev in month
← Prev in thread
Next in thread →
Next in month →