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

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsrp-interop message

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


Subject: Re: [wsrp-interop] cloneBeforeWrite when using ProducerOfferedPortlets



1. The hasUserSpecificState flag is independent of whether or not clones are allowed. It simply states to the Consumer that the portlet is going to store user specific state so that the Consumer can clone the portlet before the first usage rather than receiving a clone back on the first interaction. This flag was added due to the thinking that many portlets would use a shared customization rather than user specific persistent state. This becomes easier to manage if the number of clones is not increased simply because a new user has registered with the Consumer.

2. I did not mean to imply the Producer choosing to clone outside of portletStateChange="cloneBeforeWrite" (or a clonePortlet() invocation), but do see how that could have been read into my comments. I think the spec does limit the Producer to these two times for when it may clone a portlet.

Rich Thompson



David Ward <david.ward@oracle.com>

06/30/2003 09:30 AM

       
        To:        Rich Thompson/Watson/IBM@IBMUS
        cc:        wsrp-interop@lists.oasis-open.org
        Subject:        Re: [wsrp-interop] cloneBeforeWrite when using ProducerOfferedPortlets



Yes so hasUserSpecificState = true => allow user specific clones

does hasUserSpecificState = false => don't allow user specific clones? If not, then this flag seems rather pointless, as you still seem to have the possiblity of user-specific clones being created (so you may as well clone the portlet on addition to the page all the time to prevent cache invalidations in the future).

Are you also saying you would expect the producer to clone the POP even when portletStateChange != cloneBeforeWrite? This makes the "readWrite" and "cloneBeforeWrite" values sound equivalent.

Dave

Rich Thompson wrote:


The purpose of this flag (has UserSpecificState) is for those cases where a portlet always has state specific to the user (e.g. an email portlet). It is purely an optimization allowing the Consumer to clone the portlet for the user on first view of a page containing it.


I would agree that using a value of cloneBeforeWrite for portletStateChange (the new name) would be better when using POPs. There was some discussion about whether this type of case should have its own fault message (CloneRequired), but the decision was that it would be rare enough that OperationFailed or PortletStateChangeRequired would be suffice.


I would note that the one down side of throwing the PortletStateChangeRequired fault rather than cloning the POP is that the Consumer is unable to associate the cloned portlet with any current session while the Producer can do such a change while doing the clone (one of the big advantages of the clone-on-write semantics).


Rich Thompson
OASIS WSRP TC Chair
Interaction Middleware and Standards for Portal Server
IBM T.J. Watson Research Center / Yorktown Heights, NY
Phone: (914) 945-3225    email:
richt2@us.ibm.com

David Ward <david.ward@oracle.com>

06/27/2003 01:09 PM

       
       To:        Richard Jacob
<richard.jacob@de.ibm.com>
       cc:        wsrp-interop@lists.oasis-open.org

       Subject:        Re: [wsrp-interop] cloneBeforeWrite when using ProducerOfferedPortlets




Shouldn't you be setting state change to "cloneBeforeWrite" in this case? As far as I understand, the producer-offered entities are read-only.

I still have questions about the meaning of hasUserSpecificState from Andre's testing. Does hasUserSpecificState=false mean the consumer should never have to call cloneEntity() or send "cloneBeforeWrite"? If not, then what is the purpose of this flag?

Andre's portlets are returning hasUserSpecificState=false, even though they expect to be able to update state and hence clone new copies of the producer offered entity.

Regards

Dave

Richard Jacob wrote:

Hi,

the Oracle producer throws a StateChangeRequiredFault if our consumer uses
a producer offered portlet (POP) and wants to change the persistent state
in edit mode of portlet E:0:default for example.
We have the InteractionParams.stateChange set to "readwrite" allowing the
producer to write.

I think the flag hasUserSpecificState in PortletDescription encourages the
consumer to clone, but it is not required to clone.
I think if a consumer using a POP allows the portlet to change its state,
the producer should perform a clone before write here.
The spec says for the PortletStateChangeRequiredFault:  Used when a Portlet
needs to modify its persistent state, but has been prevented from doing so.
So my understanding is that this fault should only be thrown if the
consumer indicates "readonly" to the portlet but the portlet needs to
change its persistent state on an action.

If we interpreted the flag hasUserSpecificState=true as the requirement to
clone, producers not exposing the PortletManagement interface could never
have portlets that change their persistent state.

What do people think?

Mit freundlichen Gruessen / best regards,

      Richard Jacob
______________________________________________________
IBM Lab Boeblingen, Germany
Dept.8288, WebSphere Portal Server Development
Phone: ++49 7031 16-3469  -  Fax: ++49 7031 16-4888
Email:
mailto:richard.jacob@de.ibm.com


You may leave a Technical Committee at any time by visiting
http://www.oasis-open.org/apps/org/workgroup/wsrp-interop/members/leave_workgroup.php

 

--

David Ward
Principal Software Engineer
Oracle Portal
Oracle European Development Centre
520 Oracle Parkway
Thames Valley Park
Reading
Berkshire RG6 1RA
UK
Email:
david.ward@oracle.com
Tel:
+44 118 924 5079
Fax:
+44 118 924 5005






--

David Ward
Principal Software Engineer
Oracle Portal
Oracle European Development Centre
520 Oracle Parkway
Thames Valley Park
Reading
Berkshire RG6 1RA
UK
Email:
david.ward@oracle.com
Tel:
+44 118 924 5079
Fax:
+44 118 924 5005






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