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
- From: Rich Thompson <richt2@us.ibm.com>
- To: wsrp-interop@lists.oasis-open.org
- Date: Mon, 30 Jun 2003 09:42:40 -0400
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
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
|
|
--
David Ward
Principal Software Engineer
Oracle Portal
| Oracle European Development Centre
520 Oracle Parkway
Thames Valley Park
Reading
Berkshire RG6 1RA
UK
|
|
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]