OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsrp-interfaces message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Transient properties


Attached is a proposal for supporting transient properties.  You may 
recall that in mid-August we decided to make one last push to see if we 
could define transient properties in 2.0 vs relying on public parameters 
[and needing to retrofit in 3.0].  Please review and comment asap as 
there isn't much time to refine this before needing to make the go/no go 
decision for 2.0.   
   -Mike-
Title: Transient Properties

Transient Properties


Definitions:

Transient Property:  a piece of shared consumer managed state with a defined-persistent lifetime declared by the producer and supplied to that producer in all non-initialalization calls in its Markup port (required feature in 2.0).

Summary

Transient properties:
Scopes:
How they work:

Details:


PropertyDescription:

change to:
 PropertyDescription
    [R] QName        name
    [R] QName        type
    [O] string       preferredScope
    [O] string       requiredScope
    [O] Property     default

    [O] LocalizedString    label
    [O] LocalizedString    hint
    [O] string        capabilities[]
    [O] Extension        extensions[]


from:
 PropertyDescription
    [R] QName        name
    [R] QName        type
    [O] LocalizedString    label
    [O] LocalizedString    hint
    [O] string        capabilities[]
    [O] Extension        extensions[]


Discussion:
I added the preferredScope, requiredScope, default fields into PropertyDsecription because a ModelDescription must be used to define the set of transient properties.  The way we have defined ModelDescription requires everything be in PropertyDescription.  These fields are optional.  The set of predefined scopes are:
wsrp:consumerRequest:  duration of a single client/consumer request
wsrp:navigationalState: duration of navigationalState in this consumer
wsrp:consumerSession: duration of consumer's user session
wsrp:consumerApplication: duration of active consumer.
wsrp:persistent: duration is persistent across consumer activations.
wsrp:registration: duration of this registration

The default preferred/required scope value is based on the context of the description.  For registration properties its wsrp:registration [this is the only valid value].  For a portlet's properties its wsrp:persistent [again this is the only valid value].  In the case of transient properties its wsrp:consumerRequest.

PortletDescription:

change to:
 PortletDescription
    [R] Handle            portletHandle
    [R] MarkupType        markupTypes[]
    [O] ID                groupID
    [O] LocalizedString        description
    [O] LocalizedString        shortTitle
    [O] LocalizedString        title
    [O] LocalizedString        displayName
    [O] LocalizedString        keywords[]
    [O] ID                portletID
    [O] QName            publishedEvents[]
    [O] QName            handledEvents[]
    [O] ModelDescription     transientPropertyDescriptions
    [O] string             userCategories[]
    [O] string             userProfileItems[]
    [O] boolean            usesMethodGet
    [O] boolean            defaultMarkupSecure
    [O] boolean            onlySecure
    [O] boolean            userContextStoredInSession
    [O] boolean            templatesStoredInSession
    [O] boolean            hasUserSpecificState
    [O] boolean            doesUrlTemplateProcessing
    [O] Extension            extensions[]


from:

 PortletDescription
    [R] Handle            portletHandle
    [R] MarkupType        markupTypes[]
    [O] ID                groupID
    [O] LocalizedString        description
    [O] LocalizedString        shortTitle
    [O] LocalizedString        title
    [O] LocalizedString        displayName
    [O] LocalizedString        keywords[]
    [O] ID                portletID
    [O] QName            publishedEvents[]
    [O] QName            handledEvents[]
    [O] ModelDescription     publicParameterDescriptions -- removed
    [O] string             userCategories[]
    [O] string             userProfileItems[]
    [O] boolean            usesMethodGet
    [O] boolean            defaultMarkupSecure
    [O] boolean            onlySecure
    [O] boolean            userContextStoredInSession
    [O] boolean            templatesStoredInSession
    [O] boolean            hasUserSpecificState
    [O] boolean            doesUrlTemplateProcessing
    [O] Extension            extensions[]


Discussion:
publicParameters were merely transient properties at wsrp:navigationalState.  To add transientProperties we merely replace the publicParameterDescriptions field with a transientPropertyDescriptions field.


Property Types:
change to:
 Property
    [R] QName    name
    [O] string    xmlLang
    [O] Object    value[]
    [O] string    scope


from:
 Property
    [R] QName    name
    [O] string    xmlLang
    [O] Object    value[]

Discussion:
With the addition of transient properties there is now a need/interest in representing the [current] scope of a given property .  We require this field have a value when passing transient properties otherwise its optional.

RuntimeContext:

change to:
RuntimeContext
    [R] string        userAuthentication
    [O] Key        portletInstanceKey
    [O] string         namespacePrefix
    [O] string        interactionFieldPrefix
    [O] Templates        templates
    [O] ID            sessionID
    [O] Property         transientProperties[]
    [O] Extension        extensions[]


from:
 RuntimeContext
    [R] string        userAuthentication
    [O] Key        portletInstanceKey
    [O] string         namespacePrefix
    [O] string        interactionFieldPrefix
    [O] Templates        templates
    [O] ID            sessionID
    [O] Property         publicParameters[]
    [O] Extension        extensions[]


Discussion:
Again, to pass transientProperties to performBlockingInteraction, handleEvents, getMarkup, and getResource, we merely replace the publicParameters field with a transientProperties field.



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]