You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsrp4j-dev@portals.apache.org by Chris Delgado <ch...@chrisdelgado.com> on 2005/02/07 01:09:13 UTC

producer and proxyportlet

Currently the wsrp producer and proxyportlet are mated to the specifics of
Pluto's
portlet container.  Most of it is in the area of Pluto's Portlet Object
Model (org.apache.pluto.om.*)
and Pluto's service provider interface. This makes it difficult and messy to
use the wsrp
producer on a different portlet container.  I've listed the classes involved
below.
 
Can we instead create an interface that can be implemented by any 3rd-party
JSR168 compliant
container?  Another option would be to generically support 168 portlet
attributes -- but this would
be more restrictive.
 
I think by doing this, other portlet containers could more easily implement
wsrp and even 
package it with their product.
 
 
./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/ProxyPor
tlet.java:import org.apache.pluto.core.CoreUtils;
./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/URLGener
atorImpl.java:     * Maps wsrp-windowStates to pluto-windowStates.
./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/WSRPRequ
estImpl.java:import org.apache.pluto.core.CoreUtils;
./src/org/apache/wsrp4j/persistence/xml/driver/ServerPersistentInformationPr
oviderImpl.java:    // mapping file name of the portlet (pluto)
./src/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandlerImp
l.java:package org.apache.wsrp4j.producer.provider.pluto.driver;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/DynamicInformationPro
viderImpl.java:package org.apache.wsrp4j.producer.provider.pluto.driver;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/InformationProviderSe
rviceFactoryImpl.java:package
org.apache.wsrp4j.producer.provider.pluto.driver;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletActionProvider
Impl.java:package org.apache.wsrp4j.producer.provider.pluto.driver;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.ja
va:package org.apache.wsrp4j.producer.provider.pluto.driver;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.ja
va:import org.apache.pluto.portalImpl.util.ObjectID;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletPoolImpl.java:
package org.apache.wsrp4j.producer.provider.pluto.driver;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateImpl.java
:package org.apache.wsrp4j.producer.provider.pluto.driver;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateManagerIm
pl.java:package org.apache.wsrp4j.producer.provider.pluto.driver;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletURLProviderImp
l.java:package org.apache.wsrp4j.producer.provider.pluto.driver;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderFactoryImpl.j
ava:package org.apache.wsrp4j.producer.provider.pluto.driver;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:pac
kage org.apache.wsrp4j.producer.provider.pluto.driver;
org.apache.pluto.portalImpl.services.factorymanager.FactoryManager;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:imp
ort org.apache.pluto.portalImpl.services.log.Log;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/ResourceURLProviderIm
pl.java:package org.apache.wsrp4j.producer.provider.pluto.driver;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/ServletRequestFactory
Impl.java:package org.apache.wsrp4j.producer.provider.pluto.driver;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/StoredResponse.java:p
ackage org.apache.wsrp4j.producer.provider.pluto.driver;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPPortletEntityImpl
.java:package org.apache.wsrp4j.producer.provider.pluto.driver;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
toryImpl.java:package org.apache.wsrp4j.producer.provider.pluto.driver;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
toryImpl.java:import org.apache.pluto.factory.RenderResponseFactory;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
toryImpl.java:import org.apache.pluto.om.window.PortletWindow;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
toryImpl.java:  WSRP4J specific implementation of the pluto
RenderResponseFactory.
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseImp
l.java:package org.apache.wsrp4j.producer.provider.pluto.driver;
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPServletRequestWra
pperImpl.java:package org.apache.wsrp4j.producer.provider.pluto.driver;
./src/org/apache/wsrp4j/producer/provider/pluto/PlutoPortletPool.java:packag
e org.apache.wsrp4j.producer.provider.pluto;
./src/org/apache/wsrp4j/producer/provider/pluto/PlutoProvider.java:package
org.apache.wsrp4j.producer.provider.pluto;
./src/org/apache/wsrp4j/producer/provider/pluto/WSRPDynamicInformationProvid
er.java:package org.apache.wsrp4j.producer.provider.pluto;

 
 
 
 

Re: producer and proxyportlet

Posted by Diego Louzán <di...@metalicana.org>.
For my project we are creating a new portlet container from scratch and I'll 
have to integrate that container with WSRP4J, so it'll be another opportunity 
for ensuring portal implementation independence.
     As Chris already has some experience implementing portlet container 
integration for his own project it should be wise to let him suggest the best 
way for organizing classes.

Regards.
Diego.

Jason Novotny wrote:
> 
>    Hi Chris,
> 
>    I for one am pretty happy that you see this issue as important as I 
> do and I filed this in the bugtracker a long time ago. As the lead 
> developer of the GridSphere portal, I would really like to be able to 
> provide consumer support using WSRP4J and actually plan on doing the 
> integration just before our March GridSphere / Portlets workshop in the 
> UK-- http://www.nesc.ac.uk/esi/events/549/ for those interested in 
> attending :-)
> 
>    Thanks, Jason
> 
> Chris Delgado wrote:
> 
>> Currently the wsrp producer and proxyportlet are mated to the 
>> specifics of Pluto's
>> portlet container.  Most of it is in the area of Pluto's Portlet 
>> Object Model (org.apache.pluto.om.*)
>> and Pluto's service provider interface. This makes it difficult and 
>> messy to use the wsrp
>> producer on a different portlet container.  I've listed the classes 
>> involved below.
>>  
>> Can we instead create an interface that can be implemented by any 
>> 3rd-party JSR168 compliant
>> container?  Another option would be to generically support 168 portlet 
>> attributes -- but this would
>> be more restrictive.
>>  
>> I think by doing this, other portlet containers could more easily 
>> implement wsrp and even
>> package it with their product.
>>  
>>  
>> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/ProxyPortlet.java:import 
>> org.apache.pluto.core.CoreUtils;
>> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/URLGeneratorImpl.java:     
>> * Maps wsrp-windowStates to pluto-windowStates.
>> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/WSRPRequestImpl.java:import 
>> org.apache.pluto.core.CoreUtils;
>> ./src/org/apache/wsrp4j/persistence/xml/driver/ServerPersistentInformationProviderImpl.java:    
>> // mapping file name of the portlet (pluto)
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandlerImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/DynamicInformationProviderImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/InformationProviderServiceFactoryImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletActionProviderImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.java:import 
>> org.apache.pluto.portalImpl.util.ObjectID;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletPoolImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateManagerImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletURLProviderImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderFactoryImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> org.apache.pluto.portalImpl.services.factorymanager.FactoryManager;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:import 
>> org.apache.pluto.portalImpl.services.log.Log;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ResourceURLProviderImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ServletRequestFactoryImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/StoredResponse.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPPortletEntityImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFactoryImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFactoryImpl.java:import 
>> org.apache.pluto.factory.RenderResponseFactory;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFactoryImpl.java:import 
>> org.apache.pluto.om.window.PortletWindow;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFactoryImpl.java:  
>> WSRP4J specific implementation of the pluto RenderResponseFactory.
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPServletRequestWrapperImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/PlutoPortletPool.java:package 
>> org.apache.wsrp4j.producer.provider.pluto;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/PlutoProvider.java:package 
>> org.apache.wsrp4j.producer.provider.pluto;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/WSRPDynamicInformationProvider.java:package 
>> org.apache.wsrp4j.producer.provider.pluto;
>>  
>>  
>>  
>>  
> 
> 
> 

Re: producer and proxyportlet

Posted by Julie MacNaught <jm...@apache.org>.
This is great stuff.  I would like to emphasize that the proxy portlet 
is consumer-side, and it definintely has unfortunate dependencies on 
pluto.  This has been on the todo list for a long time.

As far as the producer is concerned, some thought was given during 
design about abstracting the "provider" interfaces to make it possible 
to add a new provider.  The theory is that one merely needs to write 
implementations for all the interfaces in
org.apache.wsrp4j.producer.provider to interact with a different container.

The pluto specific implementation of these interfaces are found in 
org.apache.wsrp4j.producer.provider.driver, 
org.apache.wsrp4j.producer.provider.pluto, and 
org.apache.wsrp4j.producer.provider.pluto.driver .

I don't think it's possible to write a provider which will work with any 
container, because container interfaces are not standardized.  JSR168 
only addresses the interface that portlets must implement to be used by 
a JSR168 container.

The "provider" interfaces supplied in wsrp4j may not be suitable for 
integrating every container, but we won't know 'til we try.

Jason Novotny wrote:

> 
>    Hi Chris,
> 
>    I for one am pretty happy that you see this issue as important as I 
> do and I filed this in the bugtracker a long time ago. As the lead 
> developer of the GridSphere portal, I would really like to be able to 
> provide consumer support using WSRP4J and actually plan on doing the 
> integration just before our March GridSphere / Portlets workshop in the 
> UK-- http://www.nesc.ac.uk/esi/events/549/ for those interested in 
> attending :-)
> 
>    Thanks, Jason
> 
> Chris Delgado wrote:
> 
>> Currently the wsrp producer and proxyportlet are mated to the 
>> specifics of Pluto's
>> portlet container.  Most of it is in the area of Pluto's Portlet 
>> Object Model (org.apache.pluto.om.*)
>> and Pluto's service provider interface. This makes it difficult and 
>> messy to use the wsrp
>> producer on a different portlet container.  I've listed the classes 
>> involved below.
>>  
>> Can we instead create an interface that can be implemented by any 
>> 3rd-party JSR168 compliant
>> container?  Another option would be to generically support 168 portlet 
>> attributes -- but this would
>> be more restrictive.
>>  
>> I think by doing this, other portlet containers could more easily 
>> implement wsrp and even
>> package it with their product.
>>  
>>  
>> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/ProxyPortlet.java:import 
>> org.apache.pluto.core.CoreUtils;
>> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/URLGeneratorImpl.java:     
>> * Maps wsrp-windowStates to pluto-windowStates.
>> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/WSRPRequestImpl.java:import 
>> org.apache.pluto.core.CoreUtils;
>> ./src/org/apache/wsrp4j/persistence/xml/driver/ServerPersistentInformationProviderImpl.java:    
>> // mapping file name of the portlet (pluto)
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandlerImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/DynamicInformationProviderImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/InformationProviderServiceFactoryImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletActionProviderImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.java:import 
>> org.apache.pluto.portalImpl.util.ObjectID;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletPoolImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateManagerImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletURLProviderImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderFactoryImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> org.apache.pluto.portalImpl.services.factorymanager.FactoryManager;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:import 
>> org.apache.pluto.portalImpl.services.log.Log;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ResourceURLProviderImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ServletRequestFactoryImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/StoredResponse.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPPortletEntityImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFactoryImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFactoryImpl.java:import 
>> org.apache.pluto.factory.RenderResponseFactory;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFactoryImpl.java:import 
>> org.apache.pluto.om.window.PortletWindow;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFactoryImpl.java:  
>> WSRP4J specific implementation of the pluto RenderResponseFactory.
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPServletRequestWrapperImpl.java:package 
>> org.apache.wsrp4j.producer.provider.pluto.driver;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/PlutoPortletPool.java:package 
>> org.apache.wsrp4j.producer.provider.pluto;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/PlutoProvider.java:package 
>> org.apache.wsrp4j.producer.provider.pluto;
>> ./src/org/apache/wsrp4j/producer/provider/pluto/WSRPDynamicInformationProvider.java:package 
>> org.apache.wsrp4j.producer.provider.pluto;
>>  
>>  
>>  
>>  
> 
> 
> 
> 

-- 
Julie MacNaught
IBM Research
jmacna@apache.org
jmacna@us.ibm.com
DADB E3B5 8CB7 6B9B F4A0  8BF7 E830 1848 16A8 D3AB

Re: producer and proxyportlet

Posted by Diego Louzán <di...@metalicana.org>.
Yes, there's no actual PortletWindow class in the specification because 
it's a concept belonging to the portal, not to the portlets. Anyway, a 
PortletWindow concept is referred several times in JSR168 specification 
as the union of a portlet and a personalization of it. It should be a 
good start taking the same idea as is stated in Pluto code.

Regards.
Diego.

Chris Delgado wrote:
> Hi Jason and Diego,
> 
> Thanks for reviewing and providing feedback...
> Yes, I agree that this interface isn't great, and I was thinking
> of how useful javax.portlet.PortletWindow would be...but
> it turns out there isn't a javax.portlet.PortletWindow !
> 
> Diego - Thanks for catching my errors in the pluto impl; I took
> your advice about the "PortletWindow" interface idea -- I looked
> at Pluto's OM, and I am emulating their PortletWindow interface
> for the consumer portlet.
> 
> I'll post some updated code...more suggestions are welcome.....
> 
> -----Original Message-----
> From: Jason Novotny [mailto:novotny@aei.mpg.de] 
> Sent: Wednesday, February 09, 2005 2:08 PM
> To: wsrp4j-dev@ws.apache.org
> Subject: Re: producer and proxyportlet
> 
> 
> 
> Hi Chris,
> 
>     Very nice work! I just had a quick glance at your classes. It seems 
> kind of annoying for this PortletInteractionRequest to look like:
> 
> public interface PortletInteractionRequest
> {
>     public Object getPortletWindow(Object request);
> }
> 
> Couldn't that return a javax.portlet.PortletWindow, an actual JSR class? 
> If however it's not a window, maybe it should be named something else a 
> little more clear so it would make more sense for portal vendors (also 
> javadoc would be nice :-)). I agree that minimal code modification is 
> often a good start.
> 
>     Thanks, Jason
> 
> 
> Chris Delgado wrote:
> 
> 
>>I've made changes to the ProxyPortlet to abstract out the Pluto 
>>implementation.  I also refactored the ProxyPortlet packaging slightly 
>>from: org.apache.wsrp4j.consumer.portlet.impl
>>to:
>>org.apache.wsrp4j.consumer.portlet.pluto
>>since the Pluto package effectively is now an implementation of the
>>ProxyPortlet for Pluto.
>>
>>It was really just 2 classes (ProxyPortlet and WSRPRequestImpl) that
>>used Pluto's CoreUtils to get a PortletWindow.  I investigated 
>>extending an existing interface along the WSRPBaseRequest and 
>>InteractionRequest consumer interface hierarchy, since both 
>>ProxyPortlet and WSRPRequestImpl implemented them -- but there was 
>>not a "clean" way to add in a method that didn't involve a cascade 
>>of changes. So I added a new interface:
>>org.apache.wsrp4j.consumer.portlet.PortletInteractionRequest with
>>a getPortletWindow() signature.  Suggestions on a better design are
>>welcome.
>>
>>I'm attaching the 2 changes (ProxyPortlet and WSRPRequestImpl) and
>>the new interface (PortletInteractionRequest).  I'll do some testing
>>today and tomorrow to verify I haven't broken anything for Pluto.
>>If someone else could too, that would be great.
>>
>>In theory, what's left to do now is to implement the producer and 
>>ProxyPortlet on another container.  BTW...in looking at the producer 
>>code, it's already abstracted through interfaces from Pluto.  The Pluto 
>>driver code implements specifically for Pluto, so we /should/ be able 
>>to get started on a producer for another container with no changes to 
>>the existing provider code.
>>
>>-----Original Message-----
>>From: Jason Novotny [mailto:novotny@aei.mpg.de]
>>Sent: Monday, February 07, 2005 12:59 PM
>>To: wsrp4j-dev@ws.apache.org
>>Subject: Re: producer and proxyportlet
>>
>>
>>
>>   Whoops, that should be:
>>
>>cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository login (hit 
>>enter)
>>  cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository co
>>gridsphere
>>
>>   Jason
>>
>>Jason Novotny wrote:
>>
>> 
>>
>>
>>>  This is great, Chris. Please check out our GridSphere code if you
>>>get a chance from CVS by doing the following:
>>>
>>>  cvs -d anonymous@portal.aei.mpg.de:/home/repository login (hit 
>>>enter)
>>>  cvs -d anonymous@portal.aei.mpg.de:/home/repository co gridsphere
>>>
>>>Our website is at www.gridsphere.org
>>>
>>>I have virtually no experience with WSRP4j although I have been
>>>following the mail list just to see what various issues are related to 
>>>it, so I'm very grateful for your expertise. I agree with your 
>>>assesment-- it sounds like we need some kind of provider independent 
>>>interface that any portal implementation could provide an 
>>>implementation of. Having had a quick look at the ProxyPortlet, it 
>>>doesn't appear there is too much Pluto specific stuff, but still it's 
>>>hard to figure out exactly what the variables are and why they are 
>>>needed to me...
>>>
>>>  Thanks, Jason
>>>
>>>Chris Delgado wrote:
>>>
>>>   
>>>
>>>
>>>>Great. We should work together on this; We would need to start with 
>>>>the producer -- effectively create a 'gridsphere driver' that is an 
>>>>implementation of the new interface.  Then we will need to modify the 
>>>>ProxyPortlet to use the new interface....shouldn't be too hard.  We 
>>>>could even run some initial tests using the swing consumer to see if 
>>>>things are working (without including ProxyPortlet).
>>>>
>>>>I'll get started on the interface layer this week.
>>>>
>>>>-----Original Message-----
>>>>From: Jason Novotny [mailto:novotny@aei.mpg.de] Sent: Monday,
>>>>February 07, 2005 1:43 AM
>>>>To: wsrp4j-dev@ws.apache.org
>>>>Subject: Re: producer and proxyportlet
>>>>
>>>>
>>>>
>>>>  Hi Chris,
>>>>
>>>>  I for one am pretty happy that you see this issue as important as
>>>>I do and I filed this in the bugtracker a long time ago. As the lead 
>>>>developer of the GridSphere portal, I would really like to be able to 
>>>>provide consumer support using WSRP4J and actually plan on doing the 
>>>>integration just before our March GridSphere / Portlets workshop in 
>>>>the UK-- http://www.nesc.ac.uk/esi/events/549/ for those interested 
>>>>in attending :-)
>>>>
>>>>  Thanks, Jason
>>>>
>>>>Chris Delgado wrote:
>>>>
>>>>
>>>>
>>>>     
>>>>
>>>>
>>>>>Currently the wsrp producer and proxyportlet are mated to the 
>>>>>specifics of Pluto's portlet container.  Most of it is in the area 
>>>>>of Pluto's Portlet Object Model (org.apache.pluto.om.*)
>>>>>and Pluto's service provider interface. This makes it difficult and 
>>>>>messy to use the wsrp
>>>>>producer on a different portlet container.  I've listed the classes 
>>>>>involved below.
>>>>>
>>>>>Can we instead create an interface that can be implemented by any 
>>>>>3rd-party JSR168 compliant container?  Another option would be to 
>>>>>generically support 168 portlet attributes -- but this would
>>>>>be more restrictive.
>>>>>
>>>>>I think by doing this, other portlet containers could more easily 
>>>>>implement wsrp and even package it with their product.
>>>>>
>>>>>
>>>>>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/
>>>>>Pr
>>>>>oxyPortlet.java:import
>>>>>org.apache.pluto.core.CoreUtils;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/URL
>>Gener
>>
>> 
>>
>>
>>>>atorImpl.java:      
>>>>
>>>>     
>>>>
>>>>
>>>>>* Maps wsrp-windowStates to pluto-windowStates.
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/WSR
>>PRequ
>>
>> 
>>
>>
>>>>estImpl.java:import
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.pluto.core.CoreUtils;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/persistence/xml/driver/ServerPersistentInformat
>>ionPr
>>
>> 
>>
>>
>>>>oviderImpl.java:     
>>>>
>>>>     
>>>>
>>>>
>>>>>// mapping file name of the portlet (pluto)
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandl
>>erImp
>>
>> 
>>
>>
>>>>l.java:package
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/DynamicInformati
>>onPro
>>
>> 
>>
>>
>>>>viderImpl.java:package
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/InformationProvi
>>derSe
>>
>> 
>>
>>
>>>>rviceFactoryImpl.java:package
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletActionPro
>>vider
>>
>> 
>>
>>
>>>>Impl.java:package
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerIm
>>pl.ja
>>
>> 
>>
>>
>>>>va:package
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerIm
>>pl.ja
>>
>> 
>>
>>
>>>>va:import
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.pluto.portalImpl.util.ObjectID;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletPoolImpl.
>>java:
>>
>> 
>>
>>
>>>>package
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateImpl
>>.java
>>
>> 
>>
>>
>>>>:package
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateMana
>>gerIm
>>
>> 
>>
>>
>>>>pl.java:package
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletURLProvid
>>erImp
>>
>> 
>>
>>
>>>>l.java:package
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderFactoryI
>>mpl.j
>>
>> 
>>
>>
>>>>ava:package
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.jav
>>a:pac
>>
>> 
>>
>>
>>>>kage
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>org.apache.pluto.portalImpl.services.factorymanager.FactoryManager;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.jav
>>a:imp
>>
>> 
>>
>>
>>>>ort
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.pluto.portalImpl.services.log.Log;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ResourceURLProvi
>>derIm
>>
>> 
>>
>>
>>>>pl.java:package
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ServletRequestFa
>>ctory
>>
>> 
>>
>>
>>>>Impl.java:package
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/StoredResponse.j
>>ava:p
>>
>> 
>>
>>
>>>>ackage
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPPortletEntit
>>yImpl
>>
>> 
>>
>>
>>>>.java:package
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>seFac
>>
>> 
>>
>>
>>>>toryImpl.java:package
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>seFac
>>
>> 
>>
>>
>>>>toryImpl.java:import
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.pluto.factory.RenderResponseFactory;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>seFac
>>
>> 
>>
>>
>>>>toryImpl.java:import
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.pluto.om.window.PortletWindow;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>seFac
>>
>> 
>>
>>
>>>>toryImpl.java:   
>>>>
>>>>     
>>>>
>>>>
>>>>>WSRP4J specific implementation of the pluto RenderResponseFactory.
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>seImp
>>
>> 
>>
>>
>>>>l.java:package
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPServletReque
>>stWra
>>
>> 
>>
>>
>>>>pperImpl.java:package
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/PlutoPortletPool.java:p
>>ackag
>>
>> 
>>
>>
>>>>e
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>>
>>>>>       
>>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/PlutoProvider.java:pack
>>age
>> 
>>
>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>     
>>>>
>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/WSRPDynamicInformationP
>>rovid
>>
>> 
>>
>>
>>>>er.java:package
>>>>
>>>>     
>>>>
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>     
>>>>
>>>
>>>   
>>>
> 
> 

Re: producer and proxyportlet

Posted by Jason Novotny <no...@aei.mpg.de>.
Chris Delgado wrote:

>Hi Jason and Diego,
>
>Thanks for reviewing and providing feedback...
>Yes, I agree that this interface isn't great, and I was thinking
>of how useful javax.portlet.PortletWindow would be...but
>it turns out there isn't a javax.portlet.PortletWindow !
>
>  
>
    Right you are-- I was somehow thinking of our original portlet api 
taken from WbSphere which did have a PortletWindow interface, but 
otherwise all we have is a WindowState object.

    Jason

>Diego - Thanks for catching my errors in the pluto impl; I took
>your advice about the "PortletWindow" interface idea -- I looked
>at Pluto's OM, and I am emulating their PortletWindow interface
>for the consumer portlet.
>
>I'll post some updated code...more suggestions are welcome.....
>
>-----Original Message-----
>From: Jason Novotny [mailto:novotny@aei.mpg.de] 
>Sent: Wednesday, February 09, 2005 2:08 PM
>To: wsrp4j-dev@ws.apache.org
>Subject: Re: producer and proxyportlet
>
>
>
>Hi Chris,
>
>    Very nice work! I just had a quick glance at your classes. It seems 
>kind of annoying for this PortletInteractionRequest to look like:
>
>public interface PortletInteractionRequest
>{
>    public Object getPortletWindow(Object request);
>}
>
>Couldn't that return a javax.portlet.PortletWindow, an actual JSR class? 
>If however it's not a window, maybe it should be named something else a 
>little more clear so it would make more sense for portal vendors (also 
>javadoc would be nice :-)). I agree that minimal code modification is 
>often a good start.
>
>    Thanks, Jason
>
>
>Chris Delgado wrote:
>
>  
>
>>I've made changes to the ProxyPortlet to abstract out the Pluto 
>>implementation.  I also refactored the ProxyPortlet packaging slightly 
>>from: org.apache.wsrp4j.consumer.portlet.impl
>>to:
>>org.apache.wsrp4j.consumer.portlet.pluto
>>since the Pluto package effectively is now an implementation of the
>>ProxyPortlet for Pluto.
>>
>>It was really just 2 classes (ProxyPortlet and WSRPRequestImpl) that
>>used Pluto's CoreUtils to get a PortletWindow.  I investigated 
>>extending an existing interface along the WSRPBaseRequest and 
>>InteractionRequest consumer interface hierarchy, since both 
>>ProxyPortlet and WSRPRequestImpl implemented them -- but there was 
>>not a "clean" way to add in a method that didn't involve a cascade 
>>of changes. So I added a new interface:
>>org.apache.wsrp4j.consumer.portlet.PortletInteractionRequest with
>>a getPortletWindow() signature.  Suggestions on a better design are
>>welcome.
>>
>>I'm attaching the 2 changes (ProxyPortlet and WSRPRequestImpl) and
>>the new interface (PortletInteractionRequest).  I'll do some testing
>>today and tomorrow to verify I haven't broken anything for Pluto.
>>If someone else could too, that would be great.
>>
>>In theory, what's left to do now is to implement the producer and 
>>ProxyPortlet on another container.  BTW...in looking at the producer 
>>code, it's already abstracted through interfaces from Pluto.  The Pluto 
>>driver code implements specifically for Pluto, so we /should/ be able 
>>to get started on a producer for another container with no changes to 
>>the existing provider code.
>>
>>-----Original Message-----
>>From: Jason Novotny [mailto:novotny@aei.mpg.de]
>>Sent: Monday, February 07, 2005 12:59 PM
>>To: wsrp4j-dev@ws.apache.org
>>Subject: Re: producer and proxyportlet
>>
>>
>>
>>   Whoops, that should be:
>>
>>cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository login (hit 
>>enter)
>>  cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository co
>>gridsphere
>>
>>   Jason
>>
>>Jason Novotny wrote:
>>
>> 
>>
>>    
>>
>>>  This is great, Chris. Please check out our GridSphere code if you
>>>get a chance from CVS by doing the following:
>>>
>>>  cvs -d anonymous@portal.aei.mpg.de:/home/repository login (hit 
>>>enter)
>>>  cvs -d anonymous@portal.aei.mpg.de:/home/repository co gridsphere
>>>
>>>Our website is at www.gridsphere.org
>>>
>>>I have virtually no experience with WSRP4j although I have been
>>>following the mail list just to see what various issues are related to 
>>>it, so I'm very grateful for your expertise. I agree with your 
>>>assesment-- it sounds like we need some kind of provider independent 
>>>interface that any portal implementation could provide an 
>>>implementation of. Having had a quick look at the ProxyPortlet, it 
>>>doesn't appear there is too much Pluto specific stuff, but still it's 
>>>hard to figure out exactly what the variables are and why they are 
>>>needed to me...
>>>
>>>  Thanks, Jason
>>>
>>>Chris Delgado wrote:
>>>
>>>   
>>>
>>>      
>>>
>>>>Great. We should work together on this; We would need to start with 
>>>>the producer -- effectively create a 'gridsphere driver' that is an 
>>>>implementation of the new interface.  Then we will need to modify the 
>>>>ProxyPortlet to use the new interface....shouldn't be too hard.  We 
>>>>could even run some initial tests using the swing consumer to see if 
>>>>things are working (without including ProxyPortlet).
>>>>
>>>>I'll get started on the interface layer this week.
>>>>
>>>>-----Original Message-----
>>>>From: Jason Novotny [mailto:novotny@aei.mpg.de] Sent: Monday,
>>>>February 07, 2005 1:43 AM
>>>>To: wsrp4j-dev@ws.apache.org
>>>>Subject: Re: producer and proxyportlet
>>>>
>>>>
>>>>
>>>>  Hi Chris,
>>>>
>>>>  I for one am pretty happy that you see this issue as important as
>>>>I do and I filed this in the bugtracker a long time ago. As the lead 
>>>>developer of the GridSphere portal, I would really like to be able to 
>>>>provide consumer support using WSRP4J and actually plan on doing the 
>>>>integration just before our March GridSphere / Portlets workshop in 
>>>>the UK-- http://www.nesc.ac.uk/esi/events/549/ for those interested 
>>>>in attending :-)
>>>>
>>>>  Thanks, Jason
>>>>
>>>>Chris Delgado wrote:
>>>>
>>>>
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>Currently the wsrp producer and proxyportlet are mated to the 
>>>>>specifics of Pluto's portlet container.  Most of it is in the area 
>>>>>of Pluto's Portlet Object Model (org.apache.pluto.om.*)
>>>>>and Pluto's service provider interface. This makes it difficult and 
>>>>>messy to use the wsrp
>>>>>producer on a different portlet container.  I've listed the classes 
>>>>>involved below.
>>>>>
>>>>>Can we instead create an interface that can be implemented by any 
>>>>>3rd-party JSR168 compliant container?  Another option would be to 
>>>>>generically support 168 portlet attributes -- but this would
>>>>>be more restrictive.
>>>>>
>>>>>I think by doing this, other portlet containers could more easily 
>>>>>implement wsrp and even package it with their product.
>>>>>
>>>>>
>>>>>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/
>>>>>Pr
>>>>>oxyPortlet.java:import
>>>>>org.apache.pluto.core.CoreUtils;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/URL
>>Gener
>>
>> 
>>
>>    
>>
>>>>atorImpl.java:      
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>* Maps wsrp-windowStates to pluto-windowStates.
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/WSR
>>PRequ
>>
>> 
>>
>>    
>>
>>>>estImpl.java:import
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.pluto.core.CoreUtils;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/persistence/xml/driver/ServerPersistentInformat
>>ionPr
>>
>> 
>>
>>    
>>
>>>>oviderImpl.java:     
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>// mapping file name of the portlet (pluto)
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandl
>>erImp
>>
>> 
>>
>>    
>>
>>>>l.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/DynamicInformati
>>onPro
>>
>> 
>>
>>    
>>
>>>>viderImpl.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/InformationProvi
>>derSe
>>
>> 
>>
>>    
>>
>>>>rviceFactoryImpl.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletActionPro
>>vider
>>
>> 
>>
>>    
>>
>>>>Impl.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerIm
>>pl.ja
>>
>> 
>>
>>    
>>
>>>>va:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerIm
>>pl.ja
>>
>> 
>>
>>    
>>
>>>>va:import
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.pluto.portalImpl.util.ObjectID;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletPoolImpl.
>>java:
>>
>> 
>>
>>    
>>
>>>>package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateImpl
>>.java
>>
>> 
>>
>>    
>>
>>>>:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateMana
>>gerIm
>>
>> 
>>
>>    
>>
>>>>pl.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletURLProvid
>>erImp
>>
>> 
>>
>>    
>>
>>>>l.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderFactoryI
>>mpl.j
>>
>> 
>>
>>    
>>
>>>>ava:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.jav
>>a:pac
>>
>> 
>>
>>    
>>
>>>>kage
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>org.apache.pluto.portalImpl.services.factorymanager.FactoryManager;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.jav
>>a:imp
>>
>> 
>>
>>    
>>
>>>>ort
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.pluto.portalImpl.services.log.Log;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ResourceURLProvi
>>derIm
>>
>> 
>>
>>    
>>
>>>>pl.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ServletRequestFa
>>ctory
>>
>> 
>>
>>    
>>
>>>>Impl.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/StoredResponse.j
>>ava:p
>>
>> 
>>
>>    
>>
>>>>ackage
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPPortletEntit
>>yImpl
>>
>> 
>>
>>    
>>
>>>>.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>seFac
>>
>> 
>>
>>    
>>
>>>>toryImpl.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>seFac
>>
>> 
>>
>>    
>>
>>>>toryImpl.java:import
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.pluto.factory.RenderResponseFactory;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>seFac
>>
>> 
>>
>>    
>>
>>>>toryImpl.java:import
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.pluto.om.window.PortletWindow;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>seFac
>>
>> 
>>
>>    
>>
>>>>toryImpl.java:   
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>WSRP4J specific implementation of the pluto RenderResponseFactory.
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>seImp
>>
>> 
>>
>>    
>>
>>>>l.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPServletReque
>>stWra
>>
>> 
>>
>>    
>>
>>>>pperImpl.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/PlutoPortletPool.java:p
>>ackag
>>
>> 
>>
>>    
>>
>>>>e
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/PlutoProvider.java:pack
>>age
>> 
>>
>>    
>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/WSRPDynamicInformationP
>>rovid
>>
>> 
>>
>>    
>>
>>>>er.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>   
>>>
>>>      
>>>
>
>
>  
>


RE: producer and proxyportlet

Posted by Chris Delgado <ch...@chrisdelgado.com>.
Hi Jason and Diego,

Thanks for reviewing and providing feedback...
Yes, I agree that this interface isn't great, and I was thinking
of how useful javax.portlet.PortletWindow would be...but
it turns out there isn't a javax.portlet.PortletWindow !

Diego - Thanks for catching my errors in the pluto impl; I took
your advice about the "PortletWindow" interface idea -- I looked
at Pluto's OM, and I am emulating their PortletWindow interface
for the consumer portlet.

I'll post some updated code...more suggestions are welcome.....

-----Original Message-----
From: Jason Novotny [mailto:novotny@aei.mpg.de] 
Sent: Wednesday, February 09, 2005 2:08 PM
To: wsrp4j-dev@ws.apache.org
Subject: Re: producer and proxyportlet



Hi Chris,

    Very nice work! I just had a quick glance at your classes. It seems 
kind of annoying for this PortletInteractionRequest to look like:

public interface PortletInteractionRequest
{
    public Object getPortletWindow(Object request);
}

Couldn't that return a javax.portlet.PortletWindow, an actual JSR class? 
If however it's not a window, maybe it should be named something else a 
little more clear so it would make more sense for portal vendors (also 
javadoc would be nice :-)). I agree that minimal code modification is 
often a good start.

    Thanks, Jason


Chris Delgado wrote:

>I've made changes to the ProxyPortlet to abstract out the Pluto 
>implementation.  I also refactored the ProxyPortlet packaging slightly 
>from: org.apache.wsrp4j.consumer.portlet.impl
>to:
>org.apache.wsrp4j.consumer.portlet.pluto
>since the Pluto package effectively is now an implementation of the
>ProxyPortlet for Pluto.
>
>It was really just 2 classes (ProxyPortlet and WSRPRequestImpl) that
>used Pluto's CoreUtils to get a PortletWindow.  I investigated 
>extending an existing interface along the WSRPBaseRequest and 
>InteractionRequest consumer interface hierarchy, since both 
>ProxyPortlet and WSRPRequestImpl implemented them -- but there was 
>not a "clean" way to add in a method that didn't involve a cascade 
>of changes. So I added a new interface:
>org.apache.wsrp4j.consumer.portlet.PortletInteractionRequest with
>a getPortletWindow() signature.  Suggestions on a better design are
>welcome.
>
>I'm attaching the 2 changes (ProxyPortlet and WSRPRequestImpl) and
>the new interface (PortletInteractionRequest).  I'll do some testing
>today and tomorrow to verify I haven't broken anything for Pluto.
>If someone else could too, that would be great.
>
>In theory, what's left to do now is to implement the producer and 
>ProxyPortlet on another container.  BTW...in looking at the producer 
>code, it's already abstracted through interfaces from Pluto.  The Pluto 
>driver code implements specifically for Pluto, so we /should/ be able 
>to get started on a producer for another container with no changes to 
>the existing provider code.
>
>-----Original Message-----
>From: Jason Novotny [mailto:novotny@aei.mpg.de]
>Sent: Monday, February 07, 2005 12:59 PM
>To: wsrp4j-dev@ws.apache.org
>Subject: Re: producer and proxyportlet
>
>
>
>    Whoops, that should be:
>
>cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository login (hit 
>enter)
>   cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository co
>gridsphere
>
>    Jason
>
>Jason Novotny wrote:
>
>  
>
>>   This is great, Chris. Please check out our GridSphere code if you
>>get a chance from CVS by doing the following:
>>
>>   cvs -d anonymous@portal.aei.mpg.de:/home/repository login (hit 
>>enter)
>>   cvs -d anonymous@portal.aei.mpg.de:/home/repository co gridsphere
>>
>>Our website is at www.gridsphere.org
>>
>>I have virtually no experience with WSRP4j although I have been
>>following the mail list just to see what various issues are related to 
>>it, so I'm very grateful for your expertise. I agree with your 
>>assesment-- it sounds like we need some kind of provider independent 
>>interface that any portal implementation could provide an 
>>implementation of. Having had a quick look at the ProxyPortlet, it 
>>doesn't appear there is too much Pluto specific stuff, but still it's 
>>hard to figure out exactly what the variables are and why they are 
>>needed to me...
>>
>>   Thanks, Jason
>>
>>Chris Delgado wrote:
>>
>>    
>>
>>>Great. We should work together on this; We would need to start with 
>>>the producer -- effectively create a 'gridsphere driver' that is an 
>>>implementation of the new interface.  Then we will need to modify the 
>>>ProxyPortlet to use the new interface....shouldn't be too hard.  We 
>>>could even run some initial tests using the swing consumer to see if 
>>>things are working (without including ProxyPortlet).
>>>
>>>I'll get started on the interface layer this week.
>>>
>>>-----Original Message-----
>>>From: Jason Novotny [mailto:novotny@aei.mpg.de] Sent: Monday,
>>>February 07, 2005 1:43 AM
>>>To: wsrp4j-dev@ws.apache.org
>>>Subject: Re: producer and proxyportlet
>>>
>>>
>>>
>>>   Hi Chris,
>>>
>>>   I for one am pretty happy that you see this issue as important as
>>>I do and I filed this in the bugtracker a long time ago. As the lead 
>>>developer of the GridSphere portal, I would really like to be able to 
>>>provide consumer support using WSRP4J and actually plan on doing the 
>>>integration just before our March GridSphere / Portlets workshop in 
>>>the UK-- http://www.nesc.ac.uk/esi/events/549/ for those interested 
>>>in attending :-)
>>>
>>>   Thanks, Jason
>>>
>>>Chris Delgado wrote:
>>>
>>> 
>>>
>>>      
>>>
>>>>Currently the wsrp producer and proxyportlet are mated to the 
>>>>specifics of Pluto's portlet container.  Most of it is in the area 
>>>>of Pluto's Portlet Object Model (org.apache.pluto.om.*)
>>>>and Pluto's service provider interface. This makes it difficult and 
>>>>messy to use the wsrp
>>>>producer on a different portlet container.  I've listed the classes 
>>>>involved below.
>>>>
>>>>Can we instead create an interface that can be implemented by any 
>>>>3rd-party JSR168 compliant container?  Another option would be to 
>>>>generically support 168 portlet attributes -- but this would
>>>>be more restrictive.
>>>>
>>>>I think by doing this, other portlet containers could more easily 
>>>>implement wsrp and even package it with their product.
>>>>
>>>>
>>>>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/
>>>>Pr
>>>>oxyPortlet.java:import
>>>>org.apache.pluto.core.CoreUtils;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/URL
>Gener
>
>  
>
>>>atorImpl.java:      
>>>
>>>      
>>>
>>>>* Maps wsrp-windowStates to pluto-windowStates.
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/WSR
>PRequ
>
>  
>
>>>estImpl.java:import
>>>
>>>      
>>>
>>>>org.apache.pluto.core.CoreUtils;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/persistence/xml/driver/ServerPersistentInformat
>ionPr
>
>  
>
>>>oviderImpl.java:     
>>>
>>>      
>>>
>>>>// mapping file name of the portlet (pluto)
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandl
>erImp
>
>  
>
>>>l.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/DynamicInformati
>onPro
>
>  
>
>>>viderImpl.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/InformationProvi
>derSe
>
>  
>
>>>rviceFactoryImpl.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletActionPro
>vider
>
>  
>
>>>Impl.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerIm
>pl.ja
>
>  
>
>>>va:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerIm
>pl.ja
>
>  
>
>>>va:import
>>>
>>>      
>>>
>>>>org.apache.pluto.portalImpl.util.ObjectID;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletPoolImpl.
>java:
>
>  
>
>>>package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateImpl
>.java
>
>  
>
>>>:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateMana
>gerIm
>
>  
>
>>>pl.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletURLProvid
>erImp
>
>  
>
>>>l.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderFactoryI
>mpl.j
>
>  
>
>>>ava:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.jav
>a:pac
>
>  
>
>>>kage
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>org.apache.pluto.portalImpl.services.factorymanager.FactoryManager;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.jav
>a:imp
>
>  
>
>>>ort
>>>
>>>      
>>>
>>>>org.apache.pluto.portalImpl.services.log.Log;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ResourceURLProvi
>derIm
>
>  
>
>>>pl.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ServletRequestFa
>ctory
>
>  
>
>>>Impl.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/StoredResponse.j
>ava:p
>
>  
>
>>>ackage
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPPortletEntit
>yImpl
>
>  
>
>>>.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>seFac
>
>  
>
>>>toryImpl.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>seFac
>
>  
>
>>>toryImpl.java:import
>>>
>>>      
>>>
>>>>org.apache.pluto.factory.RenderResponseFactory;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>seFac
>
>  
>
>>>toryImpl.java:import
>>>
>>>      
>>>
>>>>org.apache.pluto.om.window.PortletWindow;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>seFac
>
>  
>
>>>toryImpl.java:   
>>>
>>>      
>>>
>>>>WSRP4J specific implementation of the pluto RenderResponseFactory.
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>seImp
>
>  
>
>>>l.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPServletReque
>stWra
>
>  
>
>>>pperImpl.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/PlutoPortletPool.java:p
>ackag
>
>  
>
>>>e
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>
>>>>        
>>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/PlutoProvider.java:pack
>age
>  
>
>>>>  
>>>>        
>>>>
>>> 
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/WSRPDynamicInformationP
>rovid
>
>  
>
>>>er.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>
>>>>
>>>>
>>>>
>>>>  
>>>>        
>>>>
>>>
>>>
>>> 
>>>
>>>      
>>>
>>    
>>


Re: producer and proxyportlet

Posted by Diego Louzán <di...@metalicana.org>.
In WSRP4J cvs file
provider/pluto/war/WEB-INF/classes/WSRPServices.properties, property 
«provider.factory». You'll find the same file with less entries in 
producer/war/WEB-INF/classes directory, but this is a duplicated file. The one 
that gets deployed is the former. This an issue that has to be resolved in cvs.

Regards.
Diego.

Jason Novotny wrote:
> 
> Hi Chris,
> 
>    I'll take a stab at evaluating the produer interfaces-- where is the 
> option or flag that indicates what provider WSRP4J uses? I assume if 
> that gets set and I provide the implementation classes I can try testing 
> it.
> 
>    Thanks, Jason
> 
> Chris Delgado wrote:
> 
>> Hi Jason,
>> I had a look at the current producer provider code, and like Julie
>> says, it is pretty well abstracted as it is.  I think it will be a
>> matter of seeing if another container's SPI fits into the interface
>> methods as easily as Pluto.
>>
>> That being said, I think you should be able to implement the existing
>> producer for GridSphere -- once I'm done with the abstraction for the
>> ProxyPortlet on the consumer side, you could then implement that piece
>> for GridSphere.
>>
>> I haven't yet checked out your code base, but I'll do so in the next
>> few days -- I'd like to see for myself how you guys have implemented
>> the portlet container.
>>
>> -----Original Message-----
>> From: Jason Novotny [mailto:novotny@aei.mpg.de] Sent: Wednesday, 
>> February 09, 2005 2:08 PM
>> To: wsrp4j-dev@ws.apache.org
>> Subject: Re: producer and proxyportlet
>>
>>
>>
>> Hi Chris,
>>
>>    Very nice work! I just had a quick glance at your classes. It seems 
>> kind of annoying for this PortletInteractionRequest to look like:
>>
>> public interface PortletInteractionRequest
>> {
>>    public Object getPortletWindow(Object request);
>> }
>>
>> Couldn't that return a javax.portlet.PortletWindow, an actual JSR 
>> class? If however it's not a window, maybe it should be named 
>> something else a little more clear so it would make more sense for 
>> portal vendors (also javadoc would be nice :-)). I agree that minimal 
>> code modification is often a good start.
>>
>>    Thanks, Jason
>>
>>
>> Chris Delgado wrote:
>>
>>  
>>
>>> I've made changes to the ProxyPortlet to abstract out the Pluto 
>>> implementation.  I also refactored the ProxyPortlet packaging 
>>> slightly from: org.apache.wsrp4j.consumer.portlet.impl
>>> to:
>>> org.apache.wsrp4j.consumer.portlet.pluto
>>> since the Pluto package effectively is now an implementation of the
>>> ProxyPortlet for Pluto.
>>>
>>> It was really just 2 classes (ProxyPortlet and WSRPRequestImpl) that
>>> used Pluto's CoreUtils to get a PortletWindow.  I investigated 
>>> extending an existing interface along the WSRPBaseRequest and 
>>> InteractionRequest consumer interface hierarchy, since both 
>>> ProxyPortlet and WSRPRequestImpl implemented them -- but there was 
>>> not a "clean" way to add in a method that didn't involve a cascade of 
>>> changes. So I added a new interface:
>>> org.apache.wsrp4j.consumer.portlet.PortletInteractionRequest with
>>> a getPortletWindow() signature.  Suggestions on a better design are
>>> welcome.
>>>
>>> I'm attaching the 2 changes (ProxyPortlet and WSRPRequestImpl) and
>>> the new interface (PortletInteractionRequest).  I'll do some testing
>>> today and tomorrow to verify I haven't broken anything for Pluto.
>>> If someone else could too, that would be great.
>>>
>>> In theory, what's left to do now is to implement the producer and 
>>> ProxyPortlet on another container.  BTW...in looking at the producer 
>>> code, it's already abstracted through interfaces from Pluto.  The 
>>> Pluto driver code implements specifically for Pluto, so we /should/ 
>>> be able to get started on a producer for another container with no 
>>> changes to the existing provider code.
>>>
>>> -----Original Message-----
>>> From: Jason Novotny [mailto:novotny@aei.mpg.de]
>>> Sent: Monday, February 07, 2005 12:59 PM
>>> To: wsrp4j-dev@ws.apache.org
>>> Subject: Re: producer and proxyportlet
>>>
>>>
>>>
>>>   Whoops, that should be:
>>>
>>> cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository login 
>>> (hit enter)
>>>  cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository co
>>> gridsphere
>>>
>>>   Jason
>>>
>>> Jason Novotny wrote:
>>>
>>>
>>>
>>>   
>>>
>>>>  This is great, Chris. Please check out our GridSphere code if you
>>>> get a chance from CVS by doing the following:
>>>>
>>>>  cvs -d anonymous@portal.aei.mpg.de:/home/repository login (hit enter)
>>>>  cvs -d anonymous@portal.aei.mpg.de:/home/repository co gridsphere
>>>>
>>>> Our website is at www.gridsphere.org
>>>>
>>>> I have virtually no experience with WSRP4j although I have been
>>>> following the mail list just to see what various issues are related 
>>>> to it, so I'm very grateful for your expertise. I agree with your 
>>>> assesment-- it sounds like we need some kind of provider independent 
>>>> interface that any portal implementation could provide an 
>>>> implementation of. Having had a quick look at the ProxyPortlet, it 
>>>> doesn't appear there is too much Pluto specific stuff, but still 
>>>> it's hard to figure out exactly what the variables are and why they 
>>>> are needed to me...
>>>>
>>>>  Thanks, Jason
>>>>
>>>> Chris Delgado wrote:
>>>>
>>>>  
>>>>     
>>>>
>>>>> Great. We should work together on this; We would need to start with 
>>>>> the producer -- effectively create a 'gridsphere driver' that is an 
>>>>> implementation of the new interface.  Then we will need to modify 
>>>>> the ProxyPortlet to use the new interface....shouldn't be too 
>>>>> hard.  We could even run some initial tests using the swing 
>>>>> consumer to see if things are working (without including 
>>>>> ProxyPortlet).
>>>>>
>>>>> I'll get started on the interface layer this week.
>>>>>
>>>>> -----Original Message-----
>>>>> From: Jason Novotny [mailto:novotny@aei.mpg.de] Sent: Monday,
>>>>> February 07, 2005 1:43 AM
>>>>> To: wsrp4j-dev@ws.apache.org
>>>>> Subject: Re: producer and proxyportlet
>>>>>
>>>>>
>>>>>
>>>>>  Hi Chris,
>>>>>
>>>>>  I for one am pretty happy that you see this issue as important as
>>>>> I do and I filed this in the bugtracker a long time ago. As the 
>>>>> lead developer of the GridSphere portal, I would really like to be 
>>>>> able to provide consumer support using WSRP4J and actually plan on 
>>>>> doing the integration just before our March GridSphere / Portlets 
>>>>> workshop in the UK-- http://www.nesc.ac.uk/esi/events/549/ for 
>>>>> those interested in attending :-)
>>>>>
>>>>>  Thanks, Jason
>>>>>
>>>>> Chris Delgado wrote:
>>>>>
>>>>>
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> Currently the wsrp producer and proxyportlet are mated to the 
>>>>>> specifics of Pluto's portlet container.  Most of it is in the area 
>>>>>> of Pluto's Portlet Object Model (org.apache.pluto.om.*)
>>>>>> and Pluto's service provider interface. This makes it difficult 
>>>>>> and messy to use the wsrp
>>>>>> producer on a different portlet container.  I've listed the 
>>>>>> classes involved below.
>>>>>>
>>>>>> Can we instead create an interface that can be implemented by any 
>>>>>> 3rd-party JSR168 compliant container?  Another option would be to 
>>>>>> generically support 168 portlet attributes -- but this would
>>>>>> be more restrictive.
>>>>>>
>>>>>> I think by doing this, other portlet containers could more easily 
>>>>>> implement wsrp and even package it with their product.
>>>>>>
>>>>>>
>>>>>> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/
>>>>>> Pr
>>>>>> oxyPortlet.java:import
>>>>>> org.apache.pluto.core.CoreUtils;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/URL
>>> Gener
>>>
>>>
>>>
>>>   
>>>
>>>>> atorImpl.java:     
>>>>>    
>>>>>       
>>>>>
>>>>>> * Maps wsrp-windowStates to pluto-windowStates.
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/WSR
>>> PRequ
>>>
>>>
>>>
>>>   
>>>
>>>>> estImpl.java:import
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.pluto.core.CoreUtils;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/persistence/xml/driver/ServerPersistentInformat
>>> ionPr
>>>
>>>
>>>
>>>   
>>>
>>>>> oviderImpl.java:    
>>>>>    
>>>>>       
>>>>>
>>>>>> // mapping file name of the portlet (pluto)
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandl
>>> erImp
>>>
>>>
>>>
>>>   
>>>
>>>>> l.java:package
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/DynamicInformati
>>> onPro
>>>
>>>
>>>
>>>   
>>>
>>>>> viderImpl.java:package
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/InformationProvi
>>> derSe
>>>
>>>
>>>
>>>   
>>>
>>>>> rviceFactoryImpl.java:package
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletActionPro
>>> vider
>>>
>>>
>>>
>>>   
>>>
>>>>> Impl.java:package
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerIm
>>> pl.ja
>>>
>>>
>>>
>>>   
>>>
>>>>> va:package
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerIm
>>> pl.ja
>>>
>>>
>>>
>>>   
>>>
>>>>> va:import
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.pluto.portalImpl.util.ObjectID;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletPoolImpl.
>>> java:
>>>
>>>
>>>
>>>   
>>>
>>>>> package
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateImpl
>>> .java
>>>
>>>
>>>
>>>   
>>>
>>>>> :package
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateMana
>>> gerIm
>>>
>>>
>>>
>>>   
>>>
>>>>> pl.java:package
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletURLProvid
>>> erImp
>>>
>>>
>>>
>>>   
>>>
>>>>> l.java:package
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderFactoryI
>>> mpl.j
>>>
>>>
>>>
>>>   
>>>
>>>>> ava:package
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.jav
>>> a:pac
>>>
>>>
>>>
>>>   
>>>
>>>>> kage
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>> org.apache.pluto.portalImpl.services.factorymanager.FactoryManager;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.jav
>>> a:imp
>>>
>>>
>>>
>>>   
>>>
>>>>> ort
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.pluto.portalImpl.services.log.Log;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ResourceURLProvi
>>> derIm
>>>
>>>
>>>
>>>   
>>>
>>>>> pl.java:package
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ServletRequestFa
>>> ctory
>>>
>>>
>>>
>>>   
>>>
>>>>> Impl.java:package
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/StoredResponse.j
>>> ava:p
>>>
>>>
>>>
>>>   
>>>
>>>>> ackage
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPPortletEntit
>>> yImpl
>>>
>>>
>>>
>>>   
>>>
>>>>> .java:package
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>> seFac
>>>
>>>
>>>
>>>   
>>>
>>>>> toryImpl.java:package
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>> seFac
>>>
>>>
>>>
>>>   
>>>
>>>>> toryImpl.java:import
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.pluto.factory.RenderResponseFactory;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>> seFac
>>>
>>>
>>>
>>>   
>>>
>>>>> toryImpl.java:import
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.pluto.om.window.PortletWindow;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>> seFac
>>>
>>>
>>>
>>>   
>>>
>>>>> toryImpl.java:  
>>>>>    
>>>>>       
>>>>>
>>>>>> WSRP4J specific implementation of the pluto RenderResponseFactory.
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>> seImp
>>>
>>>
>>>
>>>   
>>>
>>>>> l.java:package
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPServletReque
>>> stWra
>>>
>>>
>>>
>>>   
>>>
>>>>> pperImpl.java:package
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/PlutoPortletPool.java:p
>>> ackag
>>>
>>>
>>>
>>>   
>>>
>>>>> e
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto;
>>>>>>
>>>>>>      
>>>>>>         
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/PlutoProvider.java:pack
>>> age
>>>
>>>
>>>   
>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto;
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>    
>>>>>       
>>>
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/WSRPDynamicInformationP
>>> rovid
>>>
>>>
>>>
>>>   
>>>
>>>>> er.java:package
>>>>>
>>>>>    
>>>>>       
>>>>>
>>>>>> org.apache.wsrp4j.producer.provider.pluto;
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>      
>>>>>>         
>>>>>
>>>>>
>>>>>
>>>>>    
>>>>>       
>>>>
>>>>  
>>>>     
>>
>>
>>
>>  
>>
> 

Re: producer and proxyportlet

Posted by Jason Novotny <no...@aei.mpg.de>.
Hi Chris,

    I'll take a stab at evaluating the produer interfaces-- where is the 
option or flag that indicates what provider WSRP4J uses? I assume if 
that gets set and I provide the implementation classes I can try testing it.

    Thanks, Jason

Chris Delgado wrote:

>Hi Jason,
>I had a look at the current producer provider code, and like Julie
>says, it is pretty well abstracted as it is.  I think it will be a
>matter of seeing if another container's SPI fits into the interface
>methods as easily as Pluto.
>
>That being said, I think you should be able to implement the existing
>producer for GridSphere -- once I'm done with the abstraction for the
>ProxyPortlet on the consumer side, you could then implement that piece
>for GridSphere.
>
>I haven't yet checked out your code base, but I'll do so in the next
>few days -- I'd like to see for myself how you guys have implemented
>the portlet container.
>
>-----Original Message-----
>From: Jason Novotny [mailto:novotny@aei.mpg.de] 
>Sent: Wednesday, February 09, 2005 2:08 PM
>To: wsrp4j-dev@ws.apache.org
>Subject: Re: producer and proxyportlet
>
>
>
>Hi Chris,
>
>    Very nice work! I just had a quick glance at your classes. It seems 
>kind of annoying for this PortletInteractionRequest to look like:
>
>public interface PortletInteractionRequest
>{
>    public Object getPortletWindow(Object request);
>}
>
>Couldn't that return a javax.portlet.PortletWindow, an actual JSR class? 
>If however it's not a window, maybe it should be named something else a 
>little more clear so it would make more sense for portal vendors (also 
>javadoc would be nice :-)). I agree that minimal code modification is 
>often a good start.
>
>    Thanks, Jason
>
>
>Chris Delgado wrote:
>
>  
>
>>I've made changes to the ProxyPortlet to abstract out the Pluto 
>>implementation.  I also refactored the ProxyPortlet packaging slightly 
>>from: org.apache.wsrp4j.consumer.portlet.impl
>>to:
>>org.apache.wsrp4j.consumer.portlet.pluto
>>since the Pluto package effectively is now an implementation of the
>>ProxyPortlet for Pluto.
>>
>>It was really just 2 classes (ProxyPortlet and WSRPRequestImpl) that
>>used Pluto's CoreUtils to get a PortletWindow.  I investigated 
>>extending an existing interface along the WSRPBaseRequest and 
>>InteractionRequest consumer interface hierarchy, since both 
>>ProxyPortlet and WSRPRequestImpl implemented them -- but there was 
>>not a "clean" way to add in a method that didn't involve a cascade 
>>of changes. So I added a new interface:
>>org.apache.wsrp4j.consumer.portlet.PortletInteractionRequest with
>>a getPortletWindow() signature.  Suggestions on a better design are
>>welcome.
>>
>>I'm attaching the 2 changes (ProxyPortlet and WSRPRequestImpl) and
>>the new interface (PortletInteractionRequest).  I'll do some testing
>>today and tomorrow to verify I haven't broken anything for Pluto.
>>If someone else could too, that would be great.
>>
>>In theory, what's left to do now is to implement the producer and 
>>ProxyPortlet on another container.  BTW...in looking at the producer 
>>code, it's already abstracted through interfaces from Pluto.  The Pluto 
>>driver code implements specifically for Pluto, so we /should/ be able 
>>to get started on a producer for another container with no changes to 
>>the existing provider code.
>>
>>-----Original Message-----
>>From: Jason Novotny [mailto:novotny@aei.mpg.de]
>>Sent: Monday, February 07, 2005 12:59 PM
>>To: wsrp4j-dev@ws.apache.org
>>Subject: Re: producer and proxyportlet
>>
>>
>>
>>   Whoops, that should be:
>>
>>cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository login (hit 
>>enter)
>>  cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository co
>>gridsphere
>>
>>   Jason
>>
>>Jason Novotny wrote:
>>
>> 
>>
>>    
>>
>>>  This is great, Chris. Please check out our GridSphere code if you
>>>get a chance from CVS by doing the following:
>>>
>>>  cvs -d anonymous@portal.aei.mpg.de:/home/repository login (hit 
>>>enter)
>>>  cvs -d anonymous@portal.aei.mpg.de:/home/repository co gridsphere
>>>
>>>Our website is at www.gridsphere.org
>>>
>>>I have virtually no experience with WSRP4j although I have been
>>>following the mail list just to see what various issues are related to 
>>>it, so I'm very grateful for your expertise. I agree with your 
>>>assesment-- it sounds like we need some kind of provider independent 
>>>interface that any portal implementation could provide an 
>>>implementation of. Having had a quick look at the ProxyPortlet, it 
>>>doesn't appear there is too much Pluto specific stuff, but still it's 
>>>hard to figure out exactly what the variables are and why they are 
>>>needed to me...
>>>
>>>  Thanks, Jason
>>>
>>>Chris Delgado wrote:
>>>
>>>   
>>>
>>>      
>>>
>>>>Great. We should work together on this; We would need to start with 
>>>>the producer -- effectively create a 'gridsphere driver' that is an 
>>>>implementation of the new interface.  Then we will need to modify the 
>>>>ProxyPortlet to use the new interface....shouldn't be too hard.  We 
>>>>could even run some initial tests using the swing consumer to see if 
>>>>things are working (without including ProxyPortlet).
>>>>
>>>>I'll get started on the interface layer this week.
>>>>
>>>>-----Original Message-----
>>>>From: Jason Novotny [mailto:novotny@aei.mpg.de] Sent: Monday,
>>>>February 07, 2005 1:43 AM
>>>>To: wsrp4j-dev@ws.apache.org
>>>>Subject: Re: producer and proxyportlet
>>>>
>>>>
>>>>
>>>>  Hi Chris,
>>>>
>>>>  I for one am pretty happy that you see this issue as important as
>>>>I do and I filed this in the bugtracker a long time ago. As the lead 
>>>>developer of the GridSphere portal, I would really like to be able to 
>>>>provide consumer support using WSRP4J and actually plan on doing the 
>>>>integration just before our March GridSphere / Portlets workshop in 
>>>>the UK-- http://www.nesc.ac.uk/esi/events/549/ for those interested 
>>>>in attending :-)
>>>>
>>>>  Thanks, Jason
>>>>
>>>>Chris Delgado wrote:
>>>>
>>>>
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>Currently the wsrp producer and proxyportlet are mated to the 
>>>>>specifics of Pluto's portlet container.  Most of it is in the area 
>>>>>of Pluto's Portlet Object Model (org.apache.pluto.om.*)
>>>>>and Pluto's service provider interface. This makes it difficult and 
>>>>>messy to use the wsrp
>>>>>producer on a different portlet container.  I've listed the classes 
>>>>>involved below.
>>>>>
>>>>>Can we instead create an interface that can be implemented by any 
>>>>>3rd-party JSR168 compliant container?  Another option would be to 
>>>>>generically support 168 portlet attributes -- but this would
>>>>>be more restrictive.
>>>>>
>>>>>I think by doing this, other portlet containers could more easily 
>>>>>implement wsrp and even package it with their product.
>>>>>
>>>>>
>>>>>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/
>>>>>Pr
>>>>>oxyPortlet.java:import
>>>>>org.apache.pluto.core.CoreUtils;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/URL
>>Gener
>>
>> 
>>
>>    
>>
>>>>atorImpl.java:      
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>* Maps wsrp-windowStates to pluto-windowStates.
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/WSR
>>PRequ
>>
>> 
>>
>>    
>>
>>>>estImpl.java:import
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.pluto.core.CoreUtils;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/persistence/xml/driver/ServerPersistentInformat
>>ionPr
>>
>> 
>>
>>    
>>
>>>>oviderImpl.java:     
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>// mapping file name of the portlet (pluto)
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandl
>>erImp
>>
>> 
>>
>>    
>>
>>>>l.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/DynamicInformati
>>onPro
>>
>> 
>>
>>    
>>
>>>>viderImpl.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/InformationProvi
>>derSe
>>
>> 
>>
>>    
>>
>>>>rviceFactoryImpl.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletActionPro
>>vider
>>
>> 
>>
>>    
>>
>>>>Impl.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerIm
>>pl.ja
>>
>> 
>>
>>    
>>
>>>>va:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerIm
>>pl.ja
>>
>> 
>>
>>    
>>
>>>>va:import
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.pluto.portalImpl.util.ObjectID;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletPoolImpl.
>>java:
>>
>> 
>>
>>    
>>
>>>>package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateImpl
>>.java
>>
>> 
>>
>>    
>>
>>>>:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateMana
>>gerIm
>>
>> 
>>
>>    
>>
>>>>pl.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletURLProvid
>>erImp
>>
>> 
>>
>>    
>>
>>>>l.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderFactoryI
>>mpl.j
>>
>> 
>>
>>    
>>
>>>>ava:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.jav
>>a:pac
>>
>> 
>>
>>    
>>
>>>>kage
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>org.apache.pluto.portalImpl.services.factorymanager.FactoryManager;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.jav
>>a:imp
>>
>> 
>>
>>    
>>
>>>>ort
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.pluto.portalImpl.services.log.Log;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ResourceURLProvi
>>derIm
>>
>> 
>>
>>    
>>
>>>>pl.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ServletRequestFa
>>ctory
>>
>> 
>>
>>    
>>
>>>>Impl.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/StoredResponse.j
>>ava:p
>>
>> 
>>
>>    
>>
>>>>ackage
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPPortletEntit
>>yImpl
>>
>> 
>>
>>    
>>
>>>>.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>seFac
>>
>> 
>>
>>    
>>
>>>>toryImpl.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>seFac
>>
>> 
>>
>>    
>>
>>>>toryImpl.java:import
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.pluto.factory.RenderResponseFactory;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>seFac
>>
>> 
>>
>>    
>>
>>>>toryImpl.java:import
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.pluto.om.window.PortletWindow;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>seFac
>>
>> 
>>
>>    
>>
>>>>toryImpl.java:   
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>WSRP4J specific implementation of the pluto RenderResponseFactory.
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>>seImp
>>
>> 
>>
>>    
>>
>>>>l.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPServletReque
>>stWra
>>
>> 
>>
>>    
>>
>>>>pperImpl.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/PlutoPortletPool.java:p
>>ackag
>>
>> 
>>
>>    
>>
>>>>e
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/PlutoProvider.java:pack
>>age
>> 
>>
>>    
>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>     
>>>>
>>>>        
>>>>
>>./src/org/apache/wsrp4j/producer/provider/pluto/WSRPDynamicInformationP
>>rovid
>>
>> 
>>
>>    
>>
>>>>er.java:package
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> 
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>   
>>>
>>>      
>>>
>
>
>  
>


RE: producer and proxyportlet

Posted by Chris Delgado <ch...@chrisdelgado.com>.
Hi Jason,
I had a look at the current producer provider code, and like Julie
says, it is pretty well abstracted as it is.  I think it will be a
matter of seeing if another container's SPI fits into the interface
methods as easily as Pluto.

That being said, I think you should be able to implement the existing
producer for GridSphere -- once I'm done with the abstraction for the
ProxyPortlet on the consumer side, you could then implement that piece
for GridSphere.

I haven't yet checked out your code base, but I'll do so in the next
few days -- I'd like to see for myself how you guys have implemented
the portlet container.

-----Original Message-----
From: Jason Novotny [mailto:novotny@aei.mpg.de] 
Sent: Wednesday, February 09, 2005 2:08 PM
To: wsrp4j-dev@ws.apache.org
Subject: Re: producer and proxyportlet



Hi Chris,

    Very nice work! I just had a quick glance at your classes. It seems 
kind of annoying for this PortletInteractionRequest to look like:

public interface PortletInteractionRequest
{
    public Object getPortletWindow(Object request);
}

Couldn't that return a javax.portlet.PortletWindow, an actual JSR class? 
If however it's not a window, maybe it should be named something else a 
little more clear so it would make more sense for portal vendors (also 
javadoc would be nice :-)). I agree that minimal code modification is 
often a good start.

    Thanks, Jason


Chris Delgado wrote:

>I've made changes to the ProxyPortlet to abstract out the Pluto 
>implementation.  I also refactored the ProxyPortlet packaging slightly 
>from: org.apache.wsrp4j.consumer.portlet.impl
>to:
>org.apache.wsrp4j.consumer.portlet.pluto
>since the Pluto package effectively is now an implementation of the
>ProxyPortlet for Pluto.
>
>It was really just 2 classes (ProxyPortlet and WSRPRequestImpl) that
>used Pluto's CoreUtils to get a PortletWindow.  I investigated 
>extending an existing interface along the WSRPBaseRequest and 
>InteractionRequest consumer interface hierarchy, since both 
>ProxyPortlet and WSRPRequestImpl implemented them -- but there was 
>not a "clean" way to add in a method that didn't involve a cascade 
>of changes. So I added a new interface:
>org.apache.wsrp4j.consumer.portlet.PortletInteractionRequest with
>a getPortletWindow() signature.  Suggestions on a better design are
>welcome.
>
>I'm attaching the 2 changes (ProxyPortlet and WSRPRequestImpl) and
>the new interface (PortletInteractionRequest).  I'll do some testing
>today and tomorrow to verify I haven't broken anything for Pluto.
>If someone else could too, that would be great.
>
>In theory, what's left to do now is to implement the producer and 
>ProxyPortlet on another container.  BTW...in looking at the producer 
>code, it's already abstracted through interfaces from Pluto.  The Pluto 
>driver code implements specifically for Pluto, so we /should/ be able 
>to get started on a producer for another container with no changes to 
>the existing provider code.
>
>-----Original Message-----
>From: Jason Novotny [mailto:novotny@aei.mpg.de]
>Sent: Monday, February 07, 2005 12:59 PM
>To: wsrp4j-dev@ws.apache.org
>Subject: Re: producer and proxyportlet
>
>
>
>    Whoops, that should be:
>
>cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository login (hit 
>enter)
>   cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository co
>gridsphere
>
>    Jason
>
>Jason Novotny wrote:
>
>  
>
>>   This is great, Chris. Please check out our GridSphere code if you
>>get a chance from CVS by doing the following:
>>
>>   cvs -d anonymous@portal.aei.mpg.de:/home/repository login (hit 
>>enter)
>>   cvs -d anonymous@portal.aei.mpg.de:/home/repository co gridsphere
>>
>>Our website is at www.gridsphere.org
>>
>>I have virtually no experience with WSRP4j although I have been
>>following the mail list just to see what various issues are related to 
>>it, so I'm very grateful for your expertise. I agree with your 
>>assesment-- it sounds like we need some kind of provider independent 
>>interface that any portal implementation could provide an 
>>implementation of. Having had a quick look at the ProxyPortlet, it 
>>doesn't appear there is too much Pluto specific stuff, but still it's 
>>hard to figure out exactly what the variables are and why they are 
>>needed to me...
>>
>>   Thanks, Jason
>>
>>Chris Delgado wrote:
>>
>>    
>>
>>>Great. We should work together on this; We would need to start with 
>>>the producer -- effectively create a 'gridsphere driver' that is an 
>>>implementation of the new interface.  Then we will need to modify the 
>>>ProxyPortlet to use the new interface....shouldn't be too hard.  We 
>>>could even run some initial tests using the swing consumer to see if 
>>>things are working (without including ProxyPortlet).
>>>
>>>I'll get started on the interface layer this week.
>>>
>>>-----Original Message-----
>>>From: Jason Novotny [mailto:novotny@aei.mpg.de] Sent: Monday,
>>>February 07, 2005 1:43 AM
>>>To: wsrp4j-dev@ws.apache.org
>>>Subject: Re: producer and proxyportlet
>>>
>>>
>>>
>>>   Hi Chris,
>>>
>>>   I for one am pretty happy that you see this issue as important as
>>>I do and I filed this in the bugtracker a long time ago. As the lead 
>>>developer of the GridSphere portal, I would really like to be able to 
>>>provide consumer support using WSRP4J and actually plan on doing the 
>>>integration just before our March GridSphere / Portlets workshop in 
>>>the UK-- http://www.nesc.ac.uk/esi/events/549/ for those interested 
>>>in attending :-)
>>>
>>>   Thanks, Jason
>>>
>>>Chris Delgado wrote:
>>>
>>> 
>>>
>>>      
>>>
>>>>Currently the wsrp producer and proxyportlet are mated to the 
>>>>specifics of Pluto's portlet container.  Most of it is in the area 
>>>>of Pluto's Portlet Object Model (org.apache.pluto.om.*)
>>>>and Pluto's service provider interface. This makes it difficult and 
>>>>messy to use the wsrp
>>>>producer on a different portlet container.  I've listed the classes 
>>>>involved below.
>>>>
>>>>Can we instead create an interface that can be implemented by any 
>>>>3rd-party JSR168 compliant container?  Another option would be to 
>>>>generically support 168 portlet attributes -- but this would
>>>>be more restrictive.
>>>>
>>>>I think by doing this, other portlet containers could more easily 
>>>>implement wsrp and even package it with their product.
>>>>
>>>>
>>>>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/
>>>>Pr
>>>>oxyPortlet.java:import
>>>>org.apache.pluto.core.CoreUtils;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/URL
>Gener
>
>  
>
>>>atorImpl.java:      
>>>
>>>      
>>>
>>>>* Maps wsrp-windowStates to pluto-windowStates.
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/WSR
>PRequ
>
>  
>
>>>estImpl.java:import
>>>
>>>      
>>>
>>>>org.apache.pluto.core.CoreUtils;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/persistence/xml/driver/ServerPersistentInformat
>ionPr
>
>  
>
>>>oviderImpl.java:     
>>>
>>>      
>>>
>>>>// mapping file name of the portlet (pluto)
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandl
>erImp
>
>  
>
>>>l.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/DynamicInformati
>onPro
>
>  
>
>>>viderImpl.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/InformationProvi
>derSe
>
>  
>
>>>rviceFactoryImpl.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletActionPro
>vider
>
>  
>
>>>Impl.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerIm
>pl.ja
>
>  
>
>>>va:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerIm
>pl.ja
>
>  
>
>>>va:import
>>>
>>>      
>>>
>>>>org.apache.pluto.portalImpl.util.ObjectID;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletPoolImpl.
>java:
>
>  
>
>>>package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateImpl
>.java
>
>  
>
>>>:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateMana
>gerIm
>
>  
>
>>>pl.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletURLProvid
>erImp
>
>  
>
>>>l.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderFactoryI
>mpl.j
>
>  
>
>>>ava:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.jav
>a:pac
>
>  
>
>>>kage
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>org.apache.pluto.portalImpl.services.factorymanager.FactoryManager;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.jav
>a:imp
>
>  
>
>>>ort
>>>
>>>      
>>>
>>>>org.apache.pluto.portalImpl.services.log.Log;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ResourceURLProvi
>derIm
>
>  
>
>>>pl.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ServletRequestFa
>ctory
>
>  
>
>>>Impl.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/StoredResponse.j
>ava:p
>
>  
>
>>>ackage
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPPortletEntit
>yImpl
>
>  
>
>>>.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>seFac
>
>  
>
>>>toryImpl.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>seFac
>
>  
>
>>>toryImpl.java:import
>>>
>>>      
>>>
>>>>org.apache.pluto.factory.RenderResponseFactory;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>seFac
>
>  
>
>>>toryImpl.java:import
>>>
>>>      
>>>
>>>>org.apache.pluto.om.window.PortletWindow;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>seFac
>
>  
>
>>>toryImpl.java:   
>>>
>>>      
>>>
>>>>WSRP4J specific implementation of the pluto RenderResponseFactory.
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderRespon
>seImp
>
>  
>
>>>l.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPServletReque
>stWra
>
>  
>
>>>pperImpl.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/PlutoPortletPool.java:p
>ackag
>
>  
>
>>>e
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>
>>>>        
>>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/PlutoProvider.java:pack
>age
>  
>
>>>>  
>>>>        
>>>>
>>> 
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/WSRPDynamicInformationP
>rovid
>
>  
>
>>>er.java:package
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>
>>>>
>>>>
>>>>
>>>>  
>>>>        
>>>>
>>>
>>>
>>> 
>>>
>>>      
>>>
>>    
>>


Re: producer and proxyportlet

Posted by Jason Novotny <no...@aei.mpg.de>.
Hi Chris,

    Very nice work! I just had a quick glance at your classes. It seems 
kind of annoying for this PortletInteractionRequest to look like:

public interface PortletInteractionRequest
{
    public Object getPortletWindow(Object request);
}

Couldn't that return a javax.portlet.PortletWindow, an actual JSR class? 
If however it's not a window, maybe it should be named something else a 
little more clear so it would make more sense for portal vendors (also 
javadoc would be nice :-)). I agree that minimal code modification is 
often a good start.

    Thanks, Jason


Chris Delgado wrote:

>I've made changes to the ProxyPortlet to abstract out the Pluto
>implementation.  I also refactored the ProxyPortlet packaging
>slightly from:
>org.apache.wsrp4j.consumer.portlet.impl 
>to:
>org.apache.wsrp4j.consumer.portlet.pluto
>since the Pluto package effectively is now an implementation of the
>ProxyPortlet for Pluto.
>
>It was really just 2 classes (ProxyPortlet and WSRPRequestImpl) that 
>used Pluto's CoreUtils to get a PortletWindow.  I investigated 
>extending an existing interface along the WSRPBaseRequest and 
>InteractionRequest consumer interface hierarchy, since both 
>ProxyPortlet and WSRPRequestImpl implemented them -- but there was 
>not a "clean" way to add in a method that didn't involve a cascade 
>of changes. So I added a new interface:
>org.apache.wsrp4j.consumer.portlet.PortletInteractionRequest with
>a getPortletWindow() signature.  Suggestions on a better design are
>welcome.
>
>I'm attaching the 2 changes (ProxyPortlet and WSRPRequestImpl) and 
>the new interface (PortletInteractionRequest).  I'll do some testing
>today and tomorrow to verify I haven't broken anything for Pluto.
>If someone else could too, that would be great.
>
>In theory, what's left to do now is to implement the producer and
>ProxyPortlet on another container.  BTW...in looking at the producer
>code, it's already abstracted through interfaces from Pluto.  The
>Pluto driver code implements specifically for Pluto, so we /should/
>be able to get started on a producer for another container with no
>changes to the existing provider code.
>
>-----Original Message-----
>From: Jason Novotny [mailto:novotny@aei.mpg.de] 
>Sent: Monday, February 07, 2005 12:59 PM
>To: wsrp4j-dev@ws.apache.org
>Subject: Re: producer and proxyportlet
>
>
>
>    Whoops, that should be:
>
>cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository login
>(hit enter)
>   cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository co 
>gridsphere
>
>    Jason
>
>Jason Novotny wrote:
>
>  
>
>>   This is great, Chris. Please check out our GridSphere code if you 
>>get a chance from CVS by doing the following:
>>
>>   cvs -d anonymous@portal.aei.mpg.de:/home/repository login
>>(hit enter)
>>   cvs -d anonymous@portal.aei.mpg.de:/home/repository co gridsphere
>>
>>Our website is at www.gridsphere.org
>>
>>I have virtually no experience with WSRP4j although I have been 
>>following the mail list just to see what various issues are related to 
>>it, so I'm very grateful for your expertise. I agree with your 
>>assesment-- it sounds like we need some kind of provider independent 
>>interface that any portal implementation could provide an 
>>implementation of. Having had a quick look at the ProxyPortlet, it 
>>doesn't appear there is too much Pluto specific stuff, but still it's 
>>hard to figure out exactly what the variables are and why they are 
>>needed to me...
>>
>>   Thanks, Jason
>>
>>Chris Delgado wrote:
>>
>>    
>>
>>>Great. We should work together on this; We would need to start
>>>with the producer -- effectively create a 'gridsphere driver' that
>>>is an implementation of the new interface.  Then we will need to
>>>modify the ProxyPortlet to use the new interface....shouldn't be
>>>too hard.  We could even run some initial tests using the swing 
>>>consumer to see if things are working (without including ProxyPortlet).
>>>
>>>I'll get started on the interface layer this week.
>>>
>>>-----Original Message-----
>>>From: Jason Novotny [mailto:novotny@aei.mpg.de] Sent: Monday, 
>>>February 07, 2005 1:43 AM
>>>To: wsrp4j-dev@ws.apache.org
>>>Subject: Re: producer and proxyportlet
>>>
>>>
>>>
>>>   Hi Chris,
>>>
>>>   I for one am pretty happy that you see this issue as important as 
>>>I do and I filed this in the bugtracker a long time ago. As the lead 
>>>developer of the GridSphere portal, I would really like to be able to 
>>>provide consumer support using WSRP4J and actually plan on doing the 
>>>integration just before our March GridSphere / Portlets workshop in 
>>>the UK-- http://www.nesc.ac.uk/esi/events/549/ for those interested 
>>>in attending :-)
>>>
>>>   Thanks, Jason
>>>
>>>Chris Delgado wrote:
>>>
>>> 
>>>
>>>      
>>>
>>>>Currently the wsrp producer and proxyportlet are mated to the
>>>>specifics of Pluto's
>>>>portlet container.  Most of it is in the area of Pluto's Portlet 
>>>>Object Model (org.apache.pluto.om.*)
>>>>and Pluto's service provider interface. This makes it difficult and 
>>>>messy to use the wsrp
>>>>producer on a different portlet container.  I've listed the classes 
>>>>involved below.
>>>>
>>>>Can we instead create an interface that can be implemented by any
>>>>3rd-party JSR168 compliant
>>>>container?  Another option would be to generically support 168 
>>>>portlet attributes -- but this would
>>>>be more restrictive.
>>>>
>>>>I think by doing this, other portlet containers could more easily
>>>>implement wsrp and even
>>>>package it with their product.
>>>>
>>>>
>>>>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/Pr
>>>>oxyPortlet.java:import
>>>>org.apache.pluto.core.CoreUtils;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/URLGener
>
>  
>
>>>atorImpl.java:      
>>>
>>>      
>>>
>>>>* Maps wsrp-windowStates to pluto-windowStates.
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/WSRPRequ
>
>  
>
>>>estImpl.java:import  
>>>
>>>      
>>>
>>>>org.apache.pluto.core.CoreUtils;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/persistence/xml/driver/ServerPersistentInformationPr
>
>  
>
>>>oviderImpl.java:     
>>>
>>>      
>>>
>>>>// mapping file name of the portlet (pluto)
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandlerImp
>
>  
>
>>>l.java:package  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/DynamicInformationPro
>
>  
>
>>>viderImpl.java:package  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/InformationProviderSe
>
>  
>
>>>rviceFactoryImpl.java:package  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletActionProvider
>
>  
>
>>>Impl.java:package  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.ja
>
>  
>
>>>va:package  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.ja
>
>  
>
>>>va:import  
>>>
>>>      
>>>
>>>>org.apache.pluto.portalImpl.util.ObjectID;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletPoolImpl.java:
>
>  
>
>>>package  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateImpl.java
>
>  
>
>>>:package  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateManagerIm
>
>  
>
>>>pl.java:package  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletURLProviderImp
>
>  
>
>>>l.java:package  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderFactoryImpl.j
>
>  
>
>>>ava:package  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:pac
>
>  
>
>>>kage  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>org.apache.pluto.portalImpl.services.factorymanager.FactoryManager;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:imp
>
>  
>
>>>ort  
>>>
>>>      
>>>
>>>>org.apache.pluto.portalImpl.services.log.Log;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ResourceURLProviderIm
>
>  
>
>>>pl.java:package  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ServletRequestFactory
>
>  
>
>>>Impl.java:package  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/StoredResponse.java:p
>
>  
>
>>>ackage  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPPortletEntityImpl
>
>  
>
>>>.java:package  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
>
>  
>
>>>toryImpl.java:package  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
>
>  
>
>>>toryImpl.java:import  
>>>
>>>      
>>>
>>>>org.apache.pluto.factory.RenderResponseFactory;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
>
>  
>
>>>toryImpl.java:import  
>>>
>>>      
>>>
>>>>org.apache.pluto.om.window.PortletWindow;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
>
>  
>
>>>toryImpl.java:   
>>>
>>>      
>>>
>>>>WSRP4J specific implementation of the pluto RenderResponseFactory.
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseImp
>
>  
>
>>>l.java:package  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPServletRequestWra
>
>  
>
>>>pperImpl.java:package  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/PlutoPortletPool.java:packag
>
>  
>
>>>e  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>
>>>>        
>>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/PlutoProvider.java:package 
>  
>
>>>>  
>>>>        
>>>>
>>> 
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>
>>>>  
>>>>        
>>>>
>>>      
>>>
>./src/org/apache/wsrp4j/producer/provider/pluto/WSRPDynamicInformationProvid
>
>  
>
>>>er.java:package  
>>>
>>>      
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>
>>>>
>>>>
>>>>
>>>>  
>>>>        
>>>>
>>>
>>>
>>> 
>>>
>>>      
>>>
>>    
>>


Re: producer and proxyportlet

Posted by Diego Louzán <di...@metalicana.org>.
The package naming scheme is ok for me, maybe we'll need some refinements in 
the future, but for now seems good. Maybe we could change 
PortletInteractionRequest interface name for something more meaningful, like 
"PortletWindowProvider" (only a suggestion).
     I'm -1 on ProxyPortlet and WSRPRequestImpl implementing 
PortletInteractionRequest interface. They are two different classes with 
different semantics and the fact they implement the same interface it's odd at 
least. I see no need for ProxyPortlet to implement PortletInteractionRequest.
     As I see it, we could move PortletInteractionRequest to:

public PortletWindow getPortletWindow();

where "PortletWindow" is some kind of new interface that emulates the one from 
Pluto (and I've seen that concept in the JSR-168 specification, although only 
abstract, I think we would need the concept). On Pluto implementation it wraps 
Pluto's PortletWindow class. Then our calls in ProxyPortlet would be:

InteractionRequest actionRequest =
         new WSRPRequestImpl(windowSession, request);
PortletWindow myWindow = actionRequest.getPortletWindow();

and

MarkupRequest markupRequest =
         new WSRPRequestImpl(windowSession, request);
PortletWindow myWindow = markupRequest.getPortletWindow();

     Does it seem reasonable that the PortletWindow can only be obtained 
through a WSRPRequest? There's another call to CoreUtils in ProxyPortlet in 
method getWindowSession. Suggestions welcome.
     BTW, in your solution you forgot to update the getPortletWindow calls on 
render method of ProxyPortlet class.
     Keep in mind these are only thoughts, I haven't tested anything.

Regards.
Diego.

Chris Delgado wrote:
> I've made changes to the ProxyPortlet to abstract out the Pluto
> implementation.  I also refactored the ProxyPortlet packaging
> slightly from:
> org.apache.wsrp4j.consumer.portlet.impl 
> to:
> org.apache.wsrp4j.consumer.portlet.pluto
> since the Pluto package effectively is now an implementation of the
> ProxyPortlet for Pluto.
> 
> It was really just 2 classes (ProxyPortlet and WSRPRequestImpl) that 
> used Pluto's CoreUtils to get a PortletWindow.  I investigated 
> extending an existing interface along the WSRPBaseRequest and 
> InteractionRequest consumer interface hierarchy, since both 
> ProxyPortlet and WSRPRequestImpl implemented them -- but there was 
> not a "clean" way to add in a method that didn't involve a cascade 
> of changes. So I added a new interface:
> org.apache.wsrp4j.consumer.portlet.PortletInteractionRequest with
> a getPortletWindow() signature.  Suggestions on a better design are
> welcome.
> 
> I'm attaching the 2 changes (ProxyPortlet and WSRPRequestImpl) and 
> the new interface (PortletInteractionRequest).  I'll do some testing
> today and tomorrow to verify I haven't broken anything for Pluto.
> If someone else could too, that would be great.
> 
> In theory, what's left to do now is to implement the producer and
> ProxyPortlet on another container.  BTW...in looking at the producer
> code, it's already abstracted through interfaces from Pluto.  The
> Pluto driver code implements specifically for Pluto, so we /should/
> be able to get started on a producer for another container with no
> changes to the existing provider code.
> 
> -----Original Message-----
> From: Jason Novotny [mailto:novotny@aei.mpg.de] 
> Sent: Monday, February 07, 2005 12:59 PM
> To: wsrp4j-dev@ws.apache.org
> Subject: Re: producer and proxyportlet
> 
> 
> 
>     Whoops, that should be:
> 
> cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository login
> (hit enter)
>    cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository co 
> gridsphere
> 
>     Jason
> 
> Jason Novotny wrote:
> 
> 
>>   This is great, Chris. Please check out our GridSphere code if you 
>>get a chance from CVS by doing the following:
>>
>>   cvs -d anonymous@portal.aei.mpg.de:/home/repository login
>>(hit enter)
>>   cvs -d anonymous@portal.aei.mpg.de:/home/repository co gridsphere
>>
>>Our website is at www.gridsphere.org
>>
>>I have virtually no experience with WSRP4j although I have been 
>>following the mail list just to see what various issues are related to 
>>it, so I'm very grateful for your expertise. I agree with your 
>>assesment-- it sounds like we need some kind of provider independent 
>>interface that any portal implementation could provide an 
>>implementation of. Having had a quick look at the ProxyPortlet, it 
>>doesn't appear there is too much Pluto specific stuff, but still it's 
>>hard to figure out exactly what the variables are and why they are 
>>needed to me...
>>
>>   Thanks, Jason
>>
>>Chris Delgado wrote:
>>
>>
>>>Great. We should work together on this; We would need to start
>>>with the producer -- effectively create a 'gridsphere driver' that
>>>is an implementation of the new interface.  Then we will need to
>>>modify the ProxyPortlet to use the new interface....shouldn't be
>>>too hard.  We could even run some initial tests using the swing 
>>>consumer to see if things are working (without including ProxyPortlet).
>>>
>>>I'll get started on the interface layer this week.
>>>
>>>-----Original Message-----
>>>From: Jason Novotny [mailto:novotny@aei.mpg.de] Sent: Monday, 
>>>February 07, 2005 1:43 AM
>>>To: wsrp4j-dev@ws.apache.org
>>>Subject: Re: producer and proxyportlet
>>>
>>>
>>>
>>>   Hi Chris,
>>>
>>>   I for one am pretty happy that you see this issue as important as 
>>>I do and I filed this in the bugtracker a long time ago. As the lead 
>>>developer of the GridSphere portal, I would really like to be able to 
>>>provide consumer support using WSRP4J and actually plan on doing the 
>>>integration just before our March GridSphere / Portlets workshop in 
>>>the UK-- http://www.nesc.ac.uk/esi/events/549/ for those interested 
>>>in attending :-)
>>>
>>>   Thanks, Jason
>>>
>>>Chris Delgado wrote:
>>>
>>> 
>>>
>>>
>>>>Currently the wsrp producer and proxyportlet are mated to the
>>>>specifics of Pluto's
>>>>portlet container.  Most of it is in the area of Pluto's Portlet 
>>>>Object Model (org.apache.pluto.om.*)
>>>>and Pluto's service provider interface. This makes it difficult and 
>>>>messy to use the wsrp
>>>>producer on a different portlet container.  I've listed the classes 
>>>>involved below.
>>>>
>>>>Can we instead create an interface that can be implemented by any
>>>>3rd-party JSR168 compliant
>>>>container?  Another option would be to generically support 168 
>>>>portlet attributes -- but this would
>>>>be more restrictive.
>>>>
>>>>I think by doing this, other portlet containers could more easily
>>>>implement wsrp and even
>>>>package it with their product.
>>>>
>>>>
>>>>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/Pr
>>>>oxyPortlet.java:import
>>>>org.apache.pluto.core.CoreUtils;
>>>>
>>>>  
>>>
>>>
> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/URLGener
> 
> 
>>>atorImpl.java:      
>>>
>>>
>>>>* Maps wsrp-windowStates to pluto-windowStates.
>>>>
>>>>  
>>>
>>>
> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/WSRPRequ
> 
> 
>>>estImpl.java:import  
>>>
>>>
>>>>org.apache.pluto.core.CoreUtils;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/persistence/xml/driver/ServerPersistentInformationPr
> 
> 
>>>oviderImpl.java:     
>>>
>>>
>>>>// mapping file name of the portlet (pluto)
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandlerImp
> 
> 
>>>l.java:package  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/DynamicInformationPro
> 
> 
>>>viderImpl.java:package  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/InformationProviderSe
> 
> 
>>>rviceFactoryImpl.java:package  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletActionProvider
> 
> 
>>>Impl.java:package  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.ja
> 
> 
>>>va:package  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.ja
> 
> 
>>>va:import  
>>>
>>>
>>>>org.apache.pluto.portalImpl.util.ObjectID;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletPoolImpl.java:
> 
> 
>>>package  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateImpl.java
> 
> 
>>>:package  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateManagerIm
> 
> 
>>>pl.java:package  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletURLProviderImp
> 
> 
>>>l.java:package  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderFactoryImpl.j
> 
> 
>>>ava:package  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:pac
> 
> 
>>>kage  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>org.apache.pluto.portalImpl.services.factorymanager.FactoryManager;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:imp
> 
> 
>>>ort  
>>>
>>>
>>>>org.apache.pluto.portalImpl.services.log.Log;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ResourceURLProviderIm
> 
> 
>>>pl.java:package  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ServletRequestFactory
> 
> 
>>>Impl.java:package  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/StoredResponse.java:p
> 
> 
>>>ackage  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPPortletEntityImpl
> 
> 
>>>.java:package  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
> 
> 
>>>toryImpl.java:package  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
> 
> 
>>>toryImpl.java:import  
>>>
>>>
>>>>org.apache.pluto.factory.RenderResponseFactory;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
> 
> 
>>>toryImpl.java:import  
>>>
>>>
>>>>org.apache.pluto.om.window.PortletWindow;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
> 
> 
>>>toryImpl.java:   
>>>
>>>
>>>>WSRP4J specific implementation of the pluto RenderResponseFactory.
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseImp
> 
> 
>>>l.java:package  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPServletRequestWra
> 
> 
>>>pperImpl.java:package  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/PlutoPortletPool.java:packag
> 
> 
>>>e  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>
> 
> ./src/org/apache/wsrp4j/producer/provider/pluto/PlutoProvider.java:package 
> 
>>>>  
>>>
>>>
>>> 
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>
>>>>  
>>>
>>>
> ./src/org/apache/wsrp4j/producer/provider/pluto/WSRPDynamicInformationProvid
> 
> 
>>>er.java:package  
>>>
>>>
>>>>org.apache.wsrp4j.producer.provider.pluto;
>>>>
>>>>
>>>>
>>>>
>>>>  
>>>
>>>
>>>
>>>
>>> 
>>>
>>
>>

RE: producer and proxyportlet

Posted by Chris Delgado <ch...@chrisdelgado.com>.
I've made changes to the ProxyPortlet to abstract out the Pluto
implementation.  I also refactored the ProxyPortlet packaging
slightly from:
org.apache.wsrp4j.consumer.portlet.impl 
to:
org.apache.wsrp4j.consumer.portlet.pluto
since the Pluto package effectively is now an implementation of the
ProxyPortlet for Pluto.

It was really just 2 classes (ProxyPortlet and WSRPRequestImpl) that 
used Pluto's CoreUtils to get a PortletWindow.  I investigated 
extending an existing interface along the WSRPBaseRequest and 
InteractionRequest consumer interface hierarchy, since both 
ProxyPortlet and WSRPRequestImpl implemented them -- but there was 
not a "clean" way to add in a method that didn't involve a cascade 
of changes. So I added a new interface:
org.apache.wsrp4j.consumer.portlet.PortletInteractionRequest with
a getPortletWindow() signature.  Suggestions on a better design are
welcome.

I'm attaching the 2 changes (ProxyPortlet and WSRPRequestImpl) and 
the new interface (PortletInteractionRequest).  I'll do some testing
today and tomorrow to verify I haven't broken anything for Pluto.
If someone else could too, that would be great.

In theory, what's left to do now is to implement the producer and
ProxyPortlet on another container.  BTW...in looking at the producer
code, it's already abstracted through interfaces from Pluto.  The
Pluto driver code implements specifically for Pluto, so we /should/
be able to get started on a producer for another container with no
changes to the existing provider code.

-----Original Message-----
From: Jason Novotny [mailto:novotny@aei.mpg.de] 
Sent: Monday, February 07, 2005 12:59 PM
To: wsrp4j-dev@ws.apache.org
Subject: Re: producer and proxyportlet



    Whoops, that should be:

cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository login
(hit enter)
   cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository co 
gridsphere

    Jason

Jason Novotny wrote:

>
>    This is great, Chris. Please check out our GridSphere code if you 
> get a chance from CVS by doing the following:
>
>    cvs -d anonymous@portal.aei.mpg.de:/home/repository login
> (hit enter)
>    cvs -d anonymous@portal.aei.mpg.de:/home/repository co gridsphere
>
> Our website is at www.gridsphere.org
>
> I have virtually no experience with WSRP4j although I have been 
> following the mail list just to see what various issues are related to 
> it, so I'm very grateful for your expertise. I agree with your 
> assesment-- it sounds like we need some kind of provider independent 
> interface that any portal implementation could provide an 
> implementation of. Having had a quick look at the ProxyPortlet, it 
> doesn't appear there is too much Pluto specific stuff, but still it's 
> hard to figure out exactly what the variables are and why they are 
> needed to me...
>
>    Thanks, Jason
>
> Chris Delgado wrote:
>
>> Great. We should work together on this; We would need to start
>> with the producer -- effectively create a 'gridsphere driver' that
>> is an implementation of the new interface.  Then we will need to
>> modify the ProxyPortlet to use the new interface....shouldn't be
>> too hard.  We could even run some initial tests using the swing 
>> consumer to see if things are working (without including ProxyPortlet).
>>
>> I'll get started on the interface layer this week.
>>
>> -----Original Message-----
>> From: Jason Novotny [mailto:novotny@aei.mpg.de] Sent: Monday, 
>> February 07, 2005 1:43 AM
>> To: wsrp4j-dev@ws.apache.org
>> Subject: Re: producer and proxyportlet
>>
>>
>>
>>    Hi Chris,
>>
>>    I for one am pretty happy that you see this issue as important as 
>> I do and I filed this in the bugtracker a long time ago. As the lead 
>> developer of the GridSphere portal, I would really like to be able to 
>> provide consumer support using WSRP4J and actually plan on doing the 
>> integration just before our March GridSphere / Portlets workshop in 
>> the UK-- http://www.nesc.ac.uk/esi/events/549/ for those interested 
>> in attending :-)
>>
>>    Thanks, Jason
>>
>> Chris Delgado wrote:
>>
>>  
>>
>>> Currently the wsrp producer and proxyportlet are mated to the
>>> specifics of Pluto's
>>> portlet container.  Most of it is in the area of Pluto's Portlet 
>>> Object Model (org.apache.pluto.om.*)
>>> and Pluto's service provider interface. This makes it difficult and 
>>> messy to use the wsrp
>>> producer on a different portlet container.  I've listed the classes 
>>> involved below.
>>>
>>> Can we instead create an interface that can be implemented by any
>>> 3rd-party JSR168 compliant
>>> container?  Another option would be to generically support 168 
>>> portlet attributes -- but this would
>>> be more restrictive.
>>>
>>> I think by doing this, other portlet containers could more easily
>>> implement wsrp and even
>>> package it with their product.
>>>
>>>
>>> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/Pr
>>> oxyPortlet.java:import
>>> org.apache.pluto.core.CoreUtils;
>>>
>>>   
>>
>>
./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/URLGener

>>
>> atorImpl.java:      
>>
>>> * Maps wsrp-windowStates to pluto-windowStates.
>>>
>>>   
>>
>>
./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/WSRPRequ

>>
>> estImpl.java:import  
>>
>>> org.apache.pluto.core.CoreUtils;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/persistence/xml/driver/ServerPersistentInformationPr

>>
>> oviderImpl.java:     
>>
>>> // mapping file name of the portlet (pluto)
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandlerImp

>>
>> l.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/DynamicInformationPro

>>
>> viderImpl.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/InformationProviderSe

>>
>> rviceFactoryImpl.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletActionProvider

>>
>> Impl.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.ja

>>
>> va:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.ja

>>
>> va:import  
>>
>>> org.apache.pluto.portalImpl.util.ObjectID;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletPoolImpl.java:

>>
>> package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateImpl.java

>>
>> :package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateManagerIm

>>
>> pl.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletURLProviderImp

>>
>> l.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderFactoryImpl.j

>>
>> ava:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:pac

>>
>> kage  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>> org.apache.pluto.portalImpl.services.factorymanager.FactoryManager;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:imp

>>
>> ort  
>>
>>> org.apache.pluto.portalImpl.services.log.Log;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/ResourceURLProviderIm

>>
>> pl.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/ServletRequestFactory

>>
>> Impl.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/StoredResponse.java:p

>>
>> ackage  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPPortletEntityImpl

>>
>> .java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac

>>
>> toryImpl.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac

>>
>> toryImpl.java:import  
>>
>>> org.apache.pluto.factory.RenderResponseFactory;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac

>>
>> toryImpl.java:import  
>>
>>> org.apache.pluto.om.window.PortletWindow;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac

>>
>> toryImpl.java:   
>>
>>> WSRP4J specific implementation of the pluto RenderResponseFactory.
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseImp

>>
>> l.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPServletRequestWra

>>
>> pperImpl.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/PlutoPortletPool.java:packag

>>
>> e  
>>
>>> org.apache.wsrp4j.producer.provider.pluto;
>>>
./src/org/apache/wsrp4j/producer/provider/pluto/PlutoProvider.java:package 
>>>
>>>   
>>
>>
>>  
>>
>>> org.apache.wsrp4j.producer.provider.pluto;
>>>
>>>   
>>
>>
./src/org/apache/wsrp4j/producer/provider/pluto/WSRPDynamicInformationProvid

>>
>> er.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto;
>>>
>>>
>>>
>>>
>>>   
>>
>>
>>
>>
>>  
>>
>
>

Re: producer and proxyportlet

Posted by Jason Novotny <no...@aei.mpg.de>.
    Whoops, that should be:

cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository login
(hit enter)
   cvs -d :pserver:anonymous@portal.aei.mpg.de:/home/repository co 
gridsphere

    Jason

Jason Novotny wrote:

>
>    This is great, Chris. Please check out our GridSphere code if you 
> get a chance from CVS by doing the following:
>
>    cvs -d anonymous@portal.aei.mpg.de:/home/repository login
> (hit enter)
>    cvs -d anonymous@portal.aei.mpg.de:/home/repository co gridsphere
>
> Our website is at www.gridsphere.org
>
> I have virtually no experience with WSRP4j although I have been 
> following the mail list just to see what various issues are related to 
> it, so I'm very grateful for your expertise. I agree with your 
> assesment-- it sounds like we need some kind of provider independent 
> interface that any portal implementation could provide an 
> implementation of. Having had a quick look at the ProxyPortlet, it 
> doesn't appear there is too much Pluto specific stuff, but still it's 
> hard to figure out exactly what the variables are and why they are 
> needed to me...
>
>    Thanks, Jason
>
> Chris Delgado wrote:
>
>> Great. We should work together on this; We would need to start
>> with the producer -- effectively create a 'gridsphere driver' that
>> is an implementation of the new interface.  Then we will need to
>> modify the ProxyPortlet to use the new interface....shouldn't be
>> too hard.  We could even run some initial tests using the swing 
>> consumer to see if things are working (without including ProxyPortlet).
>>
>> I'll get started on the interface layer this week.
>>
>> -----Original Message-----
>> From: Jason Novotny [mailto:novotny@aei.mpg.de] Sent: Monday, 
>> February 07, 2005 1:43 AM
>> To: wsrp4j-dev@ws.apache.org
>> Subject: Re: producer and proxyportlet
>>
>>
>>
>>    Hi Chris,
>>
>>    I for one am pretty happy that you see this issue as important as 
>> I do and I filed this in the bugtracker a long time ago. As the lead 
>> developer of the GridSphere portal, I would really like to be able to 
>> provide consumer support using WSRP4J and actually plan on doing the 
>> integration just before our March GridSphere / Portlets workshop in 
>> the UK-- http://www.nesc.ac.uk/esi/events/549/ for those interested 
>> in attending :-)
>>
>>    Thanks, Jason
>>
>> Chris Delgado wrote:
>>
>>  
>>
>>> Currently the wsrp producer and proxyportlet are mated to the
>>> specifics of Pluto's
>>> portlet container.  Most of it is in the area of Pluto's Portlet 
>>> Object Model (org.apache.pluto.om.*)
>>> and Pluto's service provider interface. This makes it difficult and 
>>> messy to use the wsrp
>>> producer on a different portlet container.  I've listed the classes 
>>> involved below.
>>>
>>> Can we instead create an interface that can be implemented by any
>>> 3rd-party JSR168 compliant
>>> container?  Another option would be to generically support 168 
>>> portlet attributes -- but this would
>>> be more restrictive.
>>>
>>> I think by doing this, other portlet containers could more easily
>>> implement wsrp and even
>>> package it with their product.
>>>
>>>
>>> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/Pr
>>> oxyPortlet.java:import
>>> org.apache.pluto.core.CoreUtils;
>>>
>>>   
>>
>> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/URLGener 
>>
>> atorImpl.java:      
>>
>>> * Maps wsrp-windowStates to pluto-windowStates.
>>>
>>>   
>>
>> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/WSRPRequ 
>>
>> estImpl.java:import  
>>
>>> org.apache.pluto.core.CoreUtils;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/persistence/xml/driver/ServerPersistentInformationPr 
>>
>> oviderImpl.java:     
>>
>>> // mapping file name of the portlet (pluto)
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandlerImp 
>>
>> l.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/DynamicInformationPro 
>>
>> viderImpl.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/InformationProviderSe 
>>
>> rviceFactoryImpl.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletActionProvider 
>>
>> Impl.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.ja 
>>
>> va:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.ja 
>>
>> va:import  
>>
>>> org.apache.pluto.portalImpl.util.ObjectID;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletPoolImpl.java: 
>>
>> package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateImpl.java 
>>
>> :package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateManagerIm 
>>
>> pl.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletURLProviderImp 
>>
>> l.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderFactoryImpl.j 
>>
>> ava:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:pac 
>>
>> kage  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>> org.apache.pluto.portalImpl.services.factorymanager.FactoryManager;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:imp 
>>
>> ort  
>>
>>> org.apache.pluto.portalImpl.services.log.Log;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ResourceURLProviderIm 
>>
>> pl.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ServletRequestFactory 
>>
>> Impl.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/StoredResponse.java:p 
>>
>> ackage  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPPortletEntityImpl 
>>
>> .java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac 
>>
>> toryImpl.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac 
>>
>> toryImpl.java:import  
>>
>>> org.apache.pluto.factory.RenderResponseFactory;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac 
>>
>> toryImpl.java:import  
>>
>>> org.apache.pluto.om.window.PortletWindow;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac 
>>
>> toryImpl.java:   
>>
>>> WSRP4J specific implementation of the pluto RenderResponseFactory.
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseImp 
>>
>> l.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPServletRequestWra 
>>
>> pperImpl.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto.driver;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/PlutoPortletPool.java:packag 
>>
>> e  
>>
>>> org.apache.wsrp4j.producer.provider.pluto;
>>> ./src/org/apache/wsrp4j/producer/provider/pluto/PlutoProvider.java:package 
>>>
>>>   
>>
>>
>>  
>>
>>> org.apache.wsrp4j.producer.provider.pluto;
>>>
>>>   
>>
>> ./src/org/apache/wsrp4j/producer/provider/pluto/WSRPDynamicInformationProvid 
>>
>> er.java:package  
>>
>>> org.apache.wsrp4j.producer.provider.pluto;
>>>
>>>
>>>
>>>
>>>   
>>
>>
>>
>>
>>  
>>
>
>


Re: producer and proxyportlet

Posted by Jason Novotny <no...@aei.mpg.de>.
    This is great, Chris. Please check out our GridSphere code if you 
get a chance from CVS by doing the following:

    cvs -d anonymous@portal.aei.mpg.de:/home/repository login
(hit enter)
    cvs -d anonymous@portal.aei.mpg.de:/home/repository co gridsphere

Our website is at www.gridsphere.org

I have virtually no experience with WSRP4j although I have been 
following the mail list just to see what various issues are related to 
it, so I'm very grateful for your expertise. I agree with your 
assesment-- it sounds like we need some kind of provider independent 
interface that any portal implementation could provide an implementation 
of. Having had a quick look at the ProxyPortlet, it doesn't appear there 
is too much Pluto specific stuff, but still it's hard to figure out 
exactly what the variables are and why they are needed to me...

    Thanks, Jason

Chris Delgado wrote:

>Great. We should work together on this; We would need to start
>with the producer -- effectively create a 'gridsphere driver' that
>is an implementation of the new interface.  Then we will need to
>modify the ProxyPortlet to use the new interface....shouldn't be
>too hard.  We could even run some initial tests using the swing 
>consumer to see if things are working (without including ProxyPortlet).
>
>I'll get started on the interface layer this week.
>
>-----Original Message-----
>From: Jason Novotny [mailto:novotny@aei.mpg.de] 
>Sent: Monday, February 07, 2005 1:43 AM
>To: wsrp4j-dev@ws.apache.org
>Subject: Re: producer and proxyportlet
>
>
>
>    Hi Chris,
>
>    I for one am pretty happy that you see this issue as important as I 
>do and I filed this in the bugtracker a long time ago. As the lead 
>developer of the GridSphere portal, I would really like to be able to 
>provide consumer support using WSRP4J and actually plan on doing the 
>integration just before our March GridSphere / Portlets workshop in the 
>UK-- http://www.nesc.ac.uk/esi/events/549/ for those interested in 
>attending :-)
>
>    Thanks, Jason
>
>Chris Delgado wrote:
>
>  
>
>>Currently the wsrp producer and proxyportlet are mated to the
>>specifics of Pluto's
>>portlet container.  Most of it is in the area of Pluto's Portlet 
>>Object Model (org.apache.pluto.om.*)
>>and Pluto's service provider interface. This makes it difficult and 
>>messy to use the wsrp
>>producer on a different portlet container.  I've listed the classes 
>>involved below.
>> 
>>Can we instead create an interface that can be implemented by any
>>3rd-party JSR168 compliant
>>container?  Another option would be to generically support 168 portlet 
>>attributes -- but this would
>>be more restrictive.
>> 
>>I think by doing this, other portlet containers could more easily
>>implement wsrp and even
>>package it with their product.
>> 
>> 
>>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/Pr
>>oxyPortlet.java:import
>>org.apache.pluto.core.CoreUtils;
>>
>>    
>>
>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/URLGener
>atorImpl.java:     
>  
>
>>* Maps wsrp-windowStates to pluto-windowStates.
>>
>>    
>>
>./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/WSRPRequ
>estImpl.java:import 
>  
>
>>org.apache.pluto.core.CoreUtils;
>>
>>    
>>
>./src/org/apache/wsrp4j/persistence/xml/driver/ServerPersistentInformationPr
>oviderImpl.java:    
>  
>
>>// mapping file name of the portlet (pluto)
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandlerImp
>l.java:package 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/DynamicInformationPro
>viderImpl.java:package 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/InformationProviderSe
>rviceFactoryImpl.java:package 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletActionProvider
>Impl.java:package 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.ja
>va:package 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.ja
>va:import 
>  
>
>>org.apache.pluto.portalImpl.util.ObjectID;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletPoolImpl.java:
>package 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateImpl.java
>:package 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateManagerIm
>pl.java:package 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletURLProviderImp
>l.java:package 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderFactoryImpl.j
>ava:package 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:pac
>kage 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>org.apache.pluto.portalImpl.services.factorymanager.FactoryManager;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:imp
>ort 
>  
>
>>org.apache.pluto.portalImpl.services.log.Log;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ResourceURLProviderIm
>pl.java:package 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/ServletRequestFactory
>Impl.java:package 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/StoredResponse.java:p
>ackage 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPPortletEntityImpl
>.java:package 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
>toryImpl.java:package 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
>toryImpl.java:import 
>  
>
>>org.apache.pluto.factory.RenderResponseFactory;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
>toryImpl.java:import 
>  
>
>>org.apache.pluto.om.window.PortletWindow;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
>toryImpl.java:  
>  
>
>>WSRP4J specific implementation of the pluto RenderResponseFactory.
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseImp
>l.java:package 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPServletRequestWra
>pperImpl.java:package 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto.driver;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/PlutoPortletPool.java:packag
>e 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto;
>>./src/org/apache/wsrp4j/producer/provider/pluto/PlutoProvider.java:package
>>    
>>
>
>  
>
>>org.apache.wsrp4j.producer.provider.pluto;
>>
>>    
>>
>./src/org/apache/wsrp4j/producer/provider/pluto/WSRPDynamicInformationProvid
>er.java:package 
>  
>
>>org.apache.wsrp4j.producer.provider.pluto;
>> 
>> 
>> 
>> 
>>    
>>
>
>
>
>  
>


RE: producer and proxyportlet

Posted by Chris Delgado <ch...@chrisdelgado.com>.
Great. We should work together on this; We would need to start
with the producer -- effectively create a 'gridsphere driver' that
is an implementation of the new interface.  Then we will need to
modify the ProxyPortlet to use the new interface....shouldn't be
too hard.  We could even run some initial tests using the swing 
consumer to see if things are working (without including ProxyPortlet).

I'll get started on the interface layer this week.

-----Original Message-----
From: Jason Novotny [mailto:novotny@aei.mpg.de] 
Sent: Monday, February 07, 2005 1:43 AM
To: wsrp4j-dev@ws.apache.org
Subject: Re: producer and proxyportlet



    Hi Chris,

    I for one am pretty happy that you see this issue as important as I 
do and I filed this in the bugtracker a long time ago. As the lead 
developer of the GridSphere portal, I would really like to be able to 
provide consumer support using WSRP4J and actually plan on doing the 
integration just before our March GridSphere / Portlets workshop in the 
UK-- http://www.nesc.ac.uk/esi/events/549/ for those interested in 
attending :-)

    Thanks, Jason

Chris Delgado wrote:

> Currently the wsrp producer and proxyportlet are mated to the
> specifics of Pluto's
> portlet container.  Most of it is in the area of Pluto's Portlet 
> Object Model (org.apache.pluto.om.*)
> and Pluto's service provider interface. This makes it difficult and 
> messy to use the wsrp
> producer on a different portlet container.  I've listed the classes 
> involved below.
>  
> Can we instead create an interface that can be implemented by any
> 3rd-party JSR168 compliant
> container?  Another option would be to generically support 168 portlet 
> attributes -- but this would
> be more restrictive.
>  
> I think by doing this, other portlet containers could more easily
> implement wsrp and even
> package it with their product.
>  
>  
> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/Pr
> oxyPortlet.java:import
> org.apache.pluto.core.CoreUtils;
>
./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/URLGener
atorImpl.java:     
> * Maps wsrp-windowStates to pluto-windowStates.
>
./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/WSRPRequ
estImpl.java:import 
> org.apache.pluto.core.CoreUtils;
>
./src/org/apache/wsrp4j/persistence/xml/driver/ServerPersistentInformationPr
oviderImpl.java:    
> // mapping file name of the portlet (pluto)
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandlerImp
l.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/DynamicInformationPro
viderImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/InformationProviderSe
rviceFactoryImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletActionProvider
Impl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.ja
va:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.ja
va:import 
> org.apache.pluto.portalImpl.util.ObjectID;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletPoolImpl.java:
package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateImpl.java
:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateManagerIm
pl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletURLProviderImp
l.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderFactoryImpl.j
ava:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:pac
kage 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> org.apache.pluto.portalImpl.services.factorymanager.FactoryManager;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:imp
ort 
> org.apache.pluto.portalImpl.services.log.Log;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/ResourceURLProviderIm
pl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/ServletRequestFactory
Impl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/StoredResponse.java:p
ackage 
> org.apache.wsrp4j.producer.provider.pluto.driver;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPPortletEntityImpl
.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
toryImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
toryImpl.java:import 
> org.apache.pluto.factory.RenderResponseFactory;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
toryImpl.java:import 
> org.apache.pluto.om.window.PortletWindow;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFac
toryImpl.java:  
> WSRP4J specific implementation of the pluto RenderResponseFactory.
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseImp
l.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
>
./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPServletRequestWra
pperImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
>
./src/org/apache/wsrp4j/producer/provider/pluto/PlutoPortletPool.java:packag
e 
> org.apache.wsrp4j.producer.provider.pluto;
> ./src/org/apache/wsrp4j/producer/provider/pluto/PlutoProvider.java:package

> org.apache.wsrp4j.producer.provider.pluto;
>
./src/org/apache/wsrp4j/producer/provider/pluto/WSRPDynamicInformationProvid
er.java:package 
> org.apache.wsrp4j.producer.provider.pluto;
>  
>  
>  
>  



Re: producer and proxyportlet

Posted by Jason Novotny <no...@aei.mpg.de>.
    Hi Chris,

    I for one am pretty happy that you see this issue as important as I 
do and I filed this in the bugtracker a long time ago. As the lead 
developer of the GridSphere portal, I would really like to be able to 
provide consumer support using WSRP4J and actually plan on doing the 
integration just before our March GridSphere / Portlets workshop in the 
UK-- http://www.nesc.ac.uk/esi/events/549/ for those interested in 
attending :-)

    Thanks, Jason

Chris Delgado wrote:

> Currently the wsrp producer and proxyportlet are mated to the 
> specifics of Pluto's
> portlet container.  Most of it is in the area of Pluto's Portlet 
> Object Model (org.apache.pluto.om.*)
> and Pluto's service provider interface. This makes it difficult and 
> messy to use the wsrp
> producer on a different portlet container.  I've listed the classes 
> involved below.
>  
> Can we instead create an interface that can be implemented by any 
> 3rd-party JSR168 compliant
> container?  Another option would be to generically support 168 portlet 
> attributes -- but this would
> be more restrictive.
>  
> I think by doing this, other portlet containers could more easily 
> implement wsrp and even
> package it with their product.
>  
>  
> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/ProxyPortlet.java:import 
> org.apache.pluto.core.CoreUtils;
> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/URLGeneratorImpl.java:     
> * Maps wsrp-windowStates to pluto-windowStates.
> ./portlets/proxyportlet/src/org/apache/wsrp4j/consumer/portlet/impl/WSRPRequestImpl.java:import 
> org.apache.pluto.core.CoreUtils;
> ./src/org/apache/wsrp4j/persistence/xml/driver/ServerPersistentInformationProviderImpl.java:    
> // mapping file name of the portlet (pluto)
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/DescriptionHandlerImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/DynamicInformationProviderImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/InformationProviderServiceFactoryImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletActionProviderImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletInvokerImpl.java:import 
> org.apache.pluto.portalImpl.util.ObjectID;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletPoolImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletStateManagerImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/PortletURLProviderImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderFactoryImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> org.apache.pluto.portalImpl.services.factorymanager.FactoryManager;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ProviderImpl.java:import 
> org.apache.pluto.portalImpl.services.log.Log;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ResourceURLProviderImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/ServletRequestFactoryImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/StoredResponse.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPPortletEntityImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFactoryImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFactoryImpl.java:import 
> org.apache.pluto.factory.RenderResponseFactory;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFactoryImpl.java:import 
> org.apache.pluto.om.window.PortletWindow;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseFactoryImpl.java:  
> WSRP4J specific implementation of the pluto RenderResponseFactory.
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPRenderResponseImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> ./src/org/apache/wsrp4j/producer/provider/pluto/driver/WSRPServletRequestWrapperImpl.java:package 
> org.apache.wsrp4j.producer.provider.pluto.driver;
> ./src/org/apache/wsrp4j/producer/provider/pluto/PlutoPortletPool.java:package 
> org.apache.wsrp4j.producer.provider.pluto;
> ./src/org/apache/wsrp4j/producer/provider/pluto/PlutoProvider.java:package 
> org.apache.wsrp4j.producer.provider.pluto;
> ./src/org/apache/wsrp4j/producer/provider/pluto/WSRPDynamicInformationProvider.java:package 
> org.apache.wsrp4j.producer.provider.pluto;
>  
>  
>  
>