Hi Alex,

I'll try to answer some of these questions...

Alexandre-Michael Neubert wrote:
*       What is the difference between a POP (Producer offered portlet) and
a CCP (Consumer configured portlet)?

CCP's are "instances", if you will, of a POP. Each CCP can have its own unique configuration associated with it. CCP's are created when a consumer requests a POP to be cloned.

But, how can I choose to make portlets available to all customers? Is this
configured in the producer?  In the portlet itself ? Is there a property in
wsrp4j-producer to set (and if yes which one and where)?

Portlets are "made available" by being exposed by the producer's Service Description. In WSRP4J, the consumer must register with the producer first, prior to accessing the service description.

If you want the service descriptions to be exposed to all users without requiring registration, you have to edit:
wsrp4j-producer/WEB-INF/persistence/descriptions/org.apache.wsrp4j.commons.persistence.driver.WSRPServiceDescription.xml

and modify requiresRegistration attribute to "true".

Can I forbid cloning of my portlets simply by not exposing the Portlet
Management interface?

Yes.

We did some tests on WSRP4J and it appears that:

*       Before the first request, all exposed portlets are POP
*       After the first request on a portlet, this portlet becomes CCP
Is this correct?

IIRC, yes.

*       We have some trouble with the <portletStateChange> attribute in the
SOAP message. We want to have it positioned to "readWrite", but sometimes
the passed attribute is "cloneBeforeWrite" or "ReadOnly".

Can we ourselves set this attribute? If yes, who is in charge of doing so
(producer or consumer)? And where does it have to be done?

Section 6.3.2 of the spec addresses this. The portletStateChange attribute is set by the consumer, specifically: Default: org.apache.wsrp4j.consumer.proxyportlet.impl.ConsumerEnvironmentImpl

Request time: org.apache.wsrp4j.commons.consumer.driver.portletdriver.PortletDriverImpl.getInteractionParams()

PortletStateChange is only sent on blockingAction's (JSR-168 action requests). You can see the diagram on page 43 of the spec (6.3.2)


*       Finally, I wonder about the signification of the term "Portlet
preferences". In the JSR 168 portlet specification, portlet preferences are
attributes which can be set and manipulated by the portlet itself.

In the WSRP specification though, portlet preferences are manipulated by the
consumer and producer each time the portlet needs to change its persistent
state.

Can't help you here, I haven't reached this point in my development... I'd have to dig into the spec and code a bit more.

We also did some tests on sample WSRP portlets and it seems that each time a
form is submitted, the persistent state of the portlet needs to be changed.

If you are submitting a JSR-168 action url, then yes, each time the form is submitted a state change could be happening. If your form submission isn't going to change state (that would be weird), then use render urls.

What is exactly this persistent state and where is it stored?

This is dependent on your portlet.

Does this automatically mean that the portlet has to be cloned if several
users access it at the same time?

Yes, I think so.


I know these are a lot of questions, but I couldn't get more information
from the specification and I have hard time to understand all these
concepts.

I hope this helps. I'm certainly not an expert, but I have been digging around in the code and the spec the last couple weeks. Others should feel free to chime in if I'm spreading mis-information.

Thanks,
Elliot

Reply via email to