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 Bharath Kumar N <bh...@gmail.com> on 2007/01/16 21:31:29 UTC

Help : Migrate Portlets to WSRP

Hi,

  I'm doing some research on porting existing Portlets to  WSRP.The portlets
are not JSR-168 complaint. We are using the Plumtree portal which supports
WSRP.
 I'm having difficulty finding much information on   the technical aspects
of developing a WSRP Portlet, let alone porting   an existing JSR-168
Portlet to WSRP.

 I have download WSRP4J source code and built the same.Still trying to
understand how it works.

Are there any resources that  you may know of that can help us to implement
the same ?  Appreciate any advice on the same

 Thanks
 Bharath
-- 
View this message in context: http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a8398232
Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.


Re: [2] ReNeed some clarificatoins

Posted by Bharath Kumar N <bh...@gmail.com>.

portletID and gadgetID are the same :)

The best way to do it is to include the plumtree jar and access the plumtree
portal properties...

Was just trying to see if there are any other options :)        
 
Anyways, Thank you very much

--Bharath


Kevin Irmscher wrote:
> 
> Hi,
> 
> I was actually referring to the gadgetID Bharath had mentioned before.
> I'm not familiar with gadgets but I guess they are similar to
> portlets.
> 
> Regards, Kevin
> 
> On 2/27/07, Sandy Pérez González <sp...@yahoo.es> wrote:
>> Hello,
>>
>> > As far as I know there are no standard methods to get the portlet id
>> > or the portlet's location on the portal page.
>>
>> When you say "portlet id", are you referring to Pluto portlet id?
>> Because this is specific of Pluto implementation, but this is not
>> standard, then, only using pluto's libraries we will be able to access
>> to Pluto portlet id and only if the used portlet container is Pluto.
>> AFAIK the standard only considers the portlet-name and portlet-window,
>> and these can be access using portlet API. I hope be useful :)
>>
>> --
>> Regards,
>>  Sandy
>>
>> > Hi Bharath,
>>
>> > JSR168 provides some methods to retrieve information about the portal.
>> > Take a look at the methods of PortalContext and PortletContext. You
>> > can get the user and other related information name by adding
>> > according 'user-attribute' elements to the portlet.xml. As far as I
>> > know there are no standard methods to get the portlet id or the
>> > portlet's location on the portal page.
>>
>> > Regards,
>> > Kevin
>>
>>
>>
>> > On 2/22/07, Bharath Kumar N <bh...@gmail.com> wrote:
>> >>
>> >> Kevin,
>> >>           I agree JSR168 portlets addresses the write once and deploy
>> on
>> >> different portals.
>> >>
>> >>    In our case we plan to write a common page which will retrieve all
>> the
>> >> portal specific properties
>> >>    and send them as hidden parameters to the rest of the portlets we
>> have.
>> >>
>> >>    Is there an API provided by JSR168 which allows us to get these
>> portal
>> >> specific properties,without checking for
>> >>    the portal type  ?
>> >>
>> >>    If there is no common API,we will have to do the same logic as
>> explained
>> >> in my pervious mail.
>> >>    Check the portal type and do things   accordingly.
>> >>       If(portalType="PLumtree") {
>> >>            //use plumtree specific API to get the username,gadgetId
>> etc...
>> >>       }
>> >>       else If(portalType="Weblogic") {
>> >>            //use web logic poratl specific API to get the
>> username,gadgetId
>> >> etc...
>> >>       }
>> >>
>> >>
>> >> Thanks for the clarifications
>> >> Bharath
>> >>
>> >> Kevin Irmscher wrote:
>> >> >
>> >> > Hi Bharath,
>> >> >
>> >> > I missed the fact that your portlets are not JSR168 compliant. I was
>> >> > actually talking about user attributes that are passed from the
>> >> > consumer to the producer. However, I'm still not sure if I got you
>> >> > right. You are correct that WSRP supports portal interoperability,
>> but
>> >> > in the sense that you deploy a portlet in one portal which is the
>> WSRP
>> >> > producer. Then you are able to consume this portlet in other portals
>> >> > which contain a WSRP consumer implementation.
>> >> >
>> >> > I think you are talking more about portlet interoperability, i.e.
>> >> > develope a portlet once and deploy it in several portals without
>> >> > changing the code. This, however, is addressed by the JSR168 portlet
>> >> > standard.
>> >> >
>> >> > Regards,
>> >> > Kevin
>> >> >
>> >> >
>> >> > On 2/22/07, Bharath Kumar N <bh...@gmail.com> wrote:
>> >> >>
>> >> >> Hi Kevin,
>> >> >>            Thanks for the quick reply.Portlets we have are not
>> JSR168
>> >> >> compliant portlets.
>> >> >> So there are no portlet.xml files for our portlets.
>> >> >>       As per my understanding you are talking about the
>> user-defined
>> >> >> attributes which are passed from the
>> >> >> producer to the consumer.
>> >> >>      But,I wanted to see if WSRP provides a way( i mean common API
>> ) to
>> >> >> retrieve portal specific properties
>> >> >> like username,gadgetId etc.
>> >> >>      We deploy our portlets in plumtree portal.And plumtree
>> provides API
>> >> >> to
>> >> >> get the portal properties.
>> >> >> Example :
>> >> >>
>> /**************************************************************************/
>> >> >>         ptGadgetID =
>> >> >> gsServices.getGatewaySpecificConfig().getProperty("PT-Gadget-ID");
>> >> >>         ptUserName =
>> >> >> gsServices.getGatewaySpecificConfig().getProperty("PT-User-Name");
>> >> >>
>> >> >>
>> /**************************************************************************/
>> >> >>           Since WSRP supports portal interoperability (ie same code
>> can
>> >> >> be
>> >> >> deployed in other portals without any change ), I thought WSRP
>> provides
>> >> >> common API which is implemented by all the portal vendors(
>> plumtree,web
>> >> >> logic portal,liferay etc...) for the portal properties.?
>> >> >>
>> >> >>      If it does not then we have to check the portal type and do
>> things
>> >> >> accordingly.
>> >> >>      If(portalType="PLumtree") {
>> >> >>           //use plumtree specific API to get the username,gadgetId
>> etc...
>> >> >>      }
>> >> >>      else If(portalType="Weblogic") {
>> >> >>           //use web logic poratl specific API to get the
>> >> >> username,gadgetId
>> >> >> etc...
>> >> >>      }
>> >> >>      else If(portalType="Liferay") {
>> >> >>           //use web logic poratl specific API to get the
>> >> >> username,gadgetId
>> >> >> etc...
>> >> >>      }
>> >> >>
>> >> >> Thanks
>> >> >> Bharath
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >> Kevin Irmscher wrote:
>> >> >> >
>> >> >> > Hi Barath,
>> >> >> >
>> >> >> > JSR168 and WSRP provide a mechanism for portlets to use end-user
>> >> >> > information. First of all you declare the user attributes which
>> the
>> >> >> > portlet wants to access in the portlet.xml of your portlet
>> >> >> > application.
>> >> >> >
>> >> >> > This looks like this:
>> >> >> >
>> >> >> > <user-attribute>
>> >> >> >     <name>user.name.given</name>
>> >> >> > </user-attribute>
>> >> >> > <user-attribute>
>> >> >> >     <name>user.name.family</name>
>> >> >> > </user-attribute>
>> >> >> > <user-attribute>
>> >> >> >     <name>user.bdate</name>
>> >> >> > </user-attribute>
>> >> >> > <user-attribute>
>> >> >> >     <name>user.gender</name>
>> >> >> > </user-attribute>
>> >> >> >
>> >> >> > You can find a list of all user-attribute elements in the
>> appendix of
>> >> >> > the JSR168 document. Here is how to access these attributes in
>> your
>> >> >> > portlet:
>> >> >> >
>> >> >> > Map userInfo = (Map)
>> request.getAttribute(PortletRequest.USER_INFO);
>> >> >> >                       if (userInfo != null) {
>> >> >> >                               Set keys = userInfo.keySet();
>> >> >> >                               for (Object k : keys) {
>> >> >> >                                       out.println(k + ": " +
>> >> >> userInfo.get(k)
>> >> >> >                                                                 
>> +
>> >> >> "<br/>");
>> >> >> >                               }
>> >> >> >                       }
>> >> >> >
>> >> >> > For which attributes the portlet will actually get a value
>> depends on
>> >> >> > the portal. It may provide values for name and birth date but not
>> for
>> >> >> > gender.
>> >> >> >
>> >> >> > Now WSRP comes into play. What kind of user information you can
>> access
>> >> >> > depends on both, the consumer and the producer. In order to get
>> user
>> >> >> > specific behavior, the remote portlet needs user information
>> which may
>> >> >> > be supplied to the producer when the consumer invokes certain
>> >> >> > operations, such as getMarkup(). During registration the consumer
>> may
>> >> >> > also send custom profile attributes. The remote portlet itself
>> also
>> >> >> > needs to declare the user attributes it wants to access in its
>> >> >> > portlet.xml, as I explained above.
>> >> >> >
>> >> >> > To actual use all this stuff you need, on the one hand a consumer
>> >> >> > which sends user information to the producer. On the other hand,
>> the
>> >> >> > producer has to map this information to the specific user
>> attributes
>> >> >> > declared in the portlet.xml so the portlet is able to access
>> them. I
>> >> >> > tested this with the WSRP4J producer but unfortunately the
>> portlet
>> >> >> > couldn't get the user information that was sent by the consumer
>> >> >> > (Liferay portal).
>> >> >> >
>> >> >> > Regards,
>> >> >> > Kevin
>> >> >> >
>> >> >> >
>> >> >> > On 2/21/07, Bharath Kumar N <bh...@gmail.com> wrote:
>> >> >> >>
>> >> >> >> Diego,
>> >> >> >>       I have a another question regarding WSRP.This time its
>> specific
>> >> >> to
>> >> >> >> WSRP API.
>> >> >> >>
>> >> >> >> Every portal has certain properties like
>> portalUserName,stylesheet,
>> >> >> >> portletID,portletCommunityID
>> >> >> >> and so forth.Since WSRP is a specification for interoperability
>> >> >> between
>> >> >> >> portals,I believe there should
>> >> >> >> be an common API for getting the portal specific properties.
>> >> >> >>
>> >> >> >>     Does WSRP specification provide the APIS to retrieve the
>> portal
>> >> >> >> specific
>> >> >> >> properties
>> >> >> >> like userName,portletID,portletCommunityID ? If yes can you
>> please
>> >> >> guide
>> >> >> >> me
>> >> >> >> through it.
>> >> >> >> Any examples or links will be of use?
>> >> >> >>
>> >> >> >>
>> >> >> >> Thanks
>> >> >> >> Bharath
>> >> >> >>
>> >> >> >>
>> >> >> >> Bharath Kumar N wrote:
>> >> >> >> >
>> >> >> >> > Diego,
>> >> >> >> >      Thank you very much. I was able to get WSRP working on
>> our
>> >> >> >> > portlets.Appreciate all your explanations from day one.
>> >> >> >> >
>> >> >> >> > Thanks again!!!
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >
>> >> >> >> > Diego Louzán-3 wrote:
>> >> >> >> >>
>> >> >> >> >> See inline response.
>> >> >> >> >>
>> >> >> >> >> Bharath Kumar N escribió:
>> >> >> >> >>> Diego,
>> >> >> >> >>>          Thanks a ton for the explanations.It really helped
>> me to
>> >> >> >> move
>> >> >> >> >>> forward.
>> >> >> >> >>>  But,as always i have a few more questions. :)
>> >> >> >> >>>
>> >> >> >> >>> 1) How do we expose the WSRP producer as a web service.?
>> >> >> >> >>
>> >> >> >> >> The WSRP producer is already a web service. The endpoints
>> specified
>> >> >> by
>> >> >> >> >> Axis already implement the required interfaces.
>> >> >> >> >>
>> >> >> >> >>> 2) A basic question is How and where in the framework is the
>> WSRP
>> >> >> >> >>> Producer
>> >> >> >> >>> exposed as a webservice ?
>> >> >> >> >>>     As per my understanding here is the workflow,
>> >> >> >> >>>     i) AxisServlet is the contact point for the Producer.
>> >> >> >> >>>     ii) AxisServlet uses the file server-deploy.wsdd to
>> specify
>> >> >> which
>> >> >> >> >>> classes implement which endpoints.
>> >> >> >> >>>        Then it delegates the processing to the class
>> specified on
>> >> >> >> >>> server-deploy.wsdd.
>> >> >> >> >>>     iii) In producer,each of these classes delegate their
>> >> >> processing
>> >> >> >> to
>> >> >> >> >>> WSRPEngine
>> >> >> >> >>>
>> >> >> >> >>>    Now where is the webservice coming into picture in this
>> >> >> workflow?
>> >> >> >> >>> What is
>> >> >> >> >>> the web-service endpoint url to access the producer?
>> >> >> >> >>
>> >> >> >> >> The endpoint urls specified by Axis and accesible through
>> your app
>> >> >> >> >> server (in this case, tomcat).
>> >> >> >> >>
>> >> >> >> >>> iii) We will not be using the proxyportlet because the
>> portlets
>> >> >> which
>> >> >> >> we
>> >> >> >> >>> have are not JSR168 complaint.So we will just register the 
>> wsrp
>> >> >> >> >>> producer
>> >> >> >> >>> web-service endpoint url  in the plumtree portal.So,thats
>> the
>> >> >> reason
>> >> >> >> for
>> >> >> >> >>> me
>> >> >> >> >>> asking the way to expose the producer as a web service.
>> >> >> >> >>
>> >> >> >> >> If your portlets aren't jsr168, then WSRP4J Producer won't be
>> able
>> >> >> to
>> >> >> >> >> access them, you'll have to provide your own provider
>> interface for
>> >> >> >> >> dealing with your local portlets.
>> >> >> >> >>
>> >> >> >> >>>
>> >> >> >> >>> Thanks
>> >> >> >> >>> Bharath
>> >> >> >> >>>
>> >> >> >> >>>
>> >> >> >> >>>
>> >> >> >> >>>
>> >> >> >> >>>
>> >> >> >> >>>
>> >> >> >> >>> dlouzan wrote:
>> >> >> >> >>>> -----BEGIN PGP SIGNED MESSAGE-----
>> >> >> >> >>>> Hash: SHA1
>> >> >> >> >>>>
>> >> >> >> >>>> See inline response.
>> >> >> >> >>>>
>> >> >> >> >>>> Bharath Kumar N escribió:
>> >> >> >> >>>>> Diego,
>> >> >> >> >>>>>         I need some help from u'r side to tie a few loose
>> ends
>> >> >> in
>> >> >> >> my
>> >> >> >> >>>>> understanding of implementation WSRP.
>> >> >> >> >>>>>
>> >> >> >> >>>>> We are not using Pluto as the provider.We have implemented
>> our
>> >> >> own
>> >> >> >> >>>>> provider
>> >> >> >> >>>>> factory and I have made the change in the
>> >> >> >> >>>>> ..\producer\WEB-INF\classes\WSRPServices.properties
>> >> >> >> >>>>> ** provider.factory=
>> >> >> >> >>>>> com.slb.sis.dp.wsrp.producer.driver.ProviderFactoryImpl.
>> >> >> >> >>>>> ** consumer.registry.factory =
>> >> >> >> >>>>>
>> org.apache.wsrp4j.producer.driver.ConsumerRegistryFactoryImpl
>> >> >> >> {remains
>> >> >> >> >>>>> the
>> >> >> >> >>>>> same}.
>> >> >> >> >>>>> So,my 1st goal  is to test the producer workflow.And
>> next,Debug
>> >> >> the
>> >> >> >> >>>>> code
>> >> >> >> >>>>> and
>> >> >> >> >>>>> understand the workflow
>> >> >> >> >>>>> between
>> >> >> >> >>>>>
>> >> >> >> >>>>> *The Consumer and the Axis Engine( AxisServlet)
>> >> >> >> >>>>> *Axis Engine and the WSRPEngine
>> >> >> >> >>>>> *WSRPEngine and the Provider (implemented by us)
>> >> >> >> >>>>>
>> >> >> >> >>>>> 1) We will be using the plumtree portal.And my
>> understanding is
>> >> >> >> that
>> >> >> >> >>>>> Plumtree portal will be the consumer.So,My belief is that
>> >> >> consumer
>> >> >> >> >>>>> need
>> >> >> >> >>>>> not be implemented.Am I right?
>> >> >> >> >>>> ProxyPortlet is a generic JSR-168 portlet that can act as a
>> WSRP
>> >> >> >> >>>> consumer. As long as your portal accepts JSR-168 portlets
>> (or
>> >> >> your
>> >> >> >> >>>> portal provides its own WSRP consumer component) you won't
>> have
>> >> >> to
>> >> >> >> >>>> implement any consumer.
>> >> >> >> >>>>
>> >> >> >> >>>>> 2)    The consumer calls the producer through the Urls
>> >> >> >> >>>>>
>> *http://localhost:8080/usland_wsrp_producer/WSRPBaseService
>> >> >> >> {provider
>> >> >> >> >>>>> implemented methods are working}
>> >> >> >> >>>>>
>> >> >> >>
>> >> >>
>> *http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService{provider
>> >> >> >> >>>>> implemented methods are working}
>> >> >> >> >>>>>   which will be registerd while registering the portlet.
>> >> >> >> >>>>> Is my understanding right? how do I simulate it without
>> actual
>> >> >> >> portal?
>> >> >> >> >>>> You can use SwingConsumer as a test for your producer. It's
>> a
>> >> >> Swing
>> >> >> >> >>>> standalone application that acts as a WSRP consumer. Keep
>> in mind
>> >> >> >> that
>> >> >> >> >>>> its functionality is very limited and its serves only the
>> purpose
>> >> >> of
>> >> >> >> >>>> easy testing.
>> >> >> >> >>>>
>> >> >> >> >>>>> I tried testing the functionality by calling
>> >> >> >> >>>>>
>> >> >> >>
>> >> >>
>> http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService?method=getServiceDescription
>> >> >> >> >>>>>
>> >> >> >> >>>>> and expected the output to xml format of
>> >> >> >> >>>>> getServiceDescriptionResponse.But
>> >> >> >> >>>>> it threw a
>> >> >> >> >>>>> fault NoTraget service WSRPServiceDescriptionService
>> found.
>> >> >> >> >>>>> So how do I register the 4 interfaces service with the
>> >> >> AxisServlet?
>> >> >> >> >>>> If I'm understanding it correctly, you are using the old
>> WSRP4J
>> >> >> >> repos.
>> >> >> >> >>>> Check the new producer in the SVN repos that is fully
>> functional
>> >> >> and
>> >> >> >> >>>> it's easier to understand.
>> >> >> >> >>>>     AxisServlet uses the file server-deploy.wsdd to specify
>> which
>> >> >> >> >>>> classes implement which endpoints. For instance:
>> >> >> >> >>>>
>> >> >> >> >>>> <service name="WSRPBaseService" ...>
>> >> >> >> >>>> ...
>> >> >> >> >>>>   <parameter name="className"
>> >> >> >> >>>>
>> >> >> >>
>> >> >>
>> value="org.apache.wsrp4j.commons.producer.binding.WSRPMarkupBindingImpl"/>
>> >> >> >> >>>> ...
>> >> >> >> >>>> </service>
>> >> >> >> >>>>
>> >> >> >> >>>> That declaration links the Markup interface to the class
>> >> >> specified
>> >> >> >> by
>> >> >> >> >>>> the parameter tag. Then, these classes delegate their
>> processing
>> >> >> to
>> >> >> >> >>>> WSRPEngine singleton. Check the example configuration for
>> more
>> >> >> >> details.
>> >> >> >> >>>>
>> >> >> >> >>>>> 3) What is the first thing which will be called by the
>> Consumer
>> >> >> ?
>> >> >> >> >>>>>    Is it the AxisServlet which will be the contact point ?
>> >> >> >> >>>>>    If not then ,when will the AxisServlet exactly be used
>> in the
>> >> >> >> whole
>> >> >> >> >>>>> workflow?
>> >> >> >> >>>> Yes, the AxisServlet is the contact point. Then it
>> delegates the
>> >> >> >> >>>> processing to the class specified on server-deploy.wsdd. In
>> >> >> >> producer,
>> >> >> >> >>>> each of these classes delegate their processing to
>> WSRPEngine.
>> >> >> >> >>>>
>> >> >> >> >>>>> 4)When will the WSRPEngine be called.Is it the AxisServlet
>> which
>> >> >> >> calls
>> >> >> >> >>>>> it
>> >> >> >> >>>>> ?
>> >> >> >> >>>> Already answered.
>> >> >> >> >>>>
>> >> >> >> >>>>> Thanks again for the help.Appreciate your patience.
>> >> >> >> >>>>>
>> >> >> >> >>>>> Regards
>> >> >> >> >>>>> Bharath
>> >> >> >> >>>> Hope that helps. Regards.
>> >> >> >> >>>> Diego.
>> >> >> >> >>>>
>> >> >> >> >>>>>
>> >> >> >> >>>>>
>> >> >> >> >>>>>
>> >> >> >> >>>>>
>> >> >> >> >>>>>
>> >> >> >> >>>>>
>> >> >> >> >>>>>
>> >> >> >> >>>>>
>> >> >> >> >>>>> dlouzan wrote:
>> >> >> >> >>>>> Bharath Kumar N escribió:
>> >> >> >> >>>>>>>> Hi Diego,
>> >> >> >> >>>>>>>>     Thanks for the quick reply and the options too. I
>> have
>> >> >> gone
>> >> >> >> >>>>>>>> through
>> >> >> >> >>>>>>>> the
>> >> >> >> >>>>>>>> WSRP Primer and surely it is
>> >> >> >> >>>>>>>> a good document to understand WSRP conceptually.
>> >> >> >> >>>>>>>>    I am trying to understand the working of WSRP4J.The
>> best
>> >> >> way
>> >> >> >> to
>> >> >> >> >>>>>>>> understand would be via an example.
>> >> >> >> >>>>>>>> Say,Using the WSRP4J Producer "wsrp4j-producer" and the
>> WSRP
>> >> >> >> >>>>>>>> Consumer
>> >> >> >> >>>>>>>> "wsrp4j-proxyportlet"
>> >> >> >> >>>>>>>> I am trying to configure a simple JSR 168 portlet
>> HelloWorld.
>> >> >> >> >>>>>>>>
>> >> >> >> >>>>>>>>    I appreciate your comments and feedback on the
>> following
>> >> >> >> points.
>> >> >> >> >>>>>>>>
>> >> >> >> >>>>>>>> Have divided the WSRP interaction between the portlet
>> >> >> Producer
>> >> >> >> and
>> >> >> >> >>>>>>>> the
>> >> >> >> >>>>>>>> Consumer into :
>> >> >> >> >>>>>>>>
>> >> >> >> >>>>>>>> i) Interaction between Producer and the Portlet :
>> >> >> >> >>>>>>>>      Which are the configuration files {xml or
>> .properties
>> >> >> files
>> >> >> >> >>>>>>>> }in
>> >> >> >> >>>>>>>> which
>> >> >> >> >>>>>>>> the
>> >> >> >> >>>>>>>>      changes have to be made to configure the portlet
>> as a
>> >> >> >> Producer
>> >> >> >> >>>>>>>>
>> >> >> >> >>>>>>>> ii) Communication between the Producer and the Consumer
>> :
>> >> >> >> >>>>>>>>      The communication is via SOAP messages.Again Which
>> are
>> >> >> the
>> >> >> >> >>>>>>>> configuration files {xml or .properties fiels }in which
>> the
>> >> >> >> changes
>> >> >> >> >>>>>>>> have
>> >> >> >> >>>>>>>> to
>> >> >> >> >>>>>>>> be made for the interaction between the Consumer and
>> >> >> Producer.
>> >> >> >> >>>>>>>>
>> >> >> >> >>>>>>>> iii) Communication between the Consumer and the
>> portal(in my
>> >> >> >> case
>> >> >> >> >>>>>>>> the
>> >> >> >> >>>>>>>> portal
>> >> >> >> >>>>>>>> is Plumtree):
>> >> >> >> >>>>>>>>
>> >> >> >> >>>>>>>>    This I assume is all to do with the registration of
>> the
>> >> >> >> Consumer
>> >> >> >> >>>>>>>> in
>> >> >> >> >>>>>>>> the
>> >> >> >> >>>>>>>> Plumtree portal,instead of
>> >> >> >> >>>>>>>>    the registration of HelloWorld portlet.
>> >> >> >> >>>>>>>>
>> >> >> >> >>>>>>>>
>> >> >> >> >>>>>>>> Thanks
>> >> >> >> >>>>>>>> Bharath
>> >> >> >> >>>>>>>>
>> >> >> >> >>>>>>>>
>> >> >> >> >>>>>>>>
>> >> >> >> >>>>>>>> dlouzan wrote:
>> >> >> >> >>>>>>>> Bharath Kumar N escribió:
>> >> >> >> >>>>>>>>>>> Hi,
>> >> >> >> >>>>>>>>>>>
>> >> >> >> >>>>>>>>>>>   I'm doing some research on porting existing
>> Portlets to
>> >> >> >> >>>>>>>>>>> WSRP.The
>> >> >> >> >>>>>>>>>>> portlets
>> >> >> >> >>>>>>>>>>> are not JSR-168 complaint. We are using the Plumtree
>> >> >> portal
>> >> >> >> >>>>>>>>>>> which
>> >> >> >> >>>>>>>>>>> supports
>> >> >> >> >>>>>>>>>>> WSRP.
>> >> >> >> >>>>>>>>>>>  I'm having difficulty finding much information on  
>> the
>> >> >> >> >>>>>>>>>>> technical
>> >> >> >> >>>>>>>>>>> aspects
>> >> >> >> >>>>>>>>>>> of developing a WSRP Portlet, let alone porting   an
>> >> >> existing
>> >> >> >> >>>>>>>>>>> JSR-168
>> >> >> >> >>>>>>>>>>> Portlet to WSRP.
>> >> >> >> >>>>>>>>>>>
>> >> >> >> >>>>>>>>>>>  I have download WSRP4J source code and built the
>> >> >> same.Still
>> >> >> >> >>>>>>>>>>> trying
>> >> >> >> >>>>>>>>>>> to
>> >> >> >> >>>>>>>>>>> understand how it works.
>> >> >> >> >>>>>>>>>>>
>> >> >> >> >>>>>>>>>>> Are there any resources that  you may know of that
>> can
>> >> >> help
>> >> >> >> us
>> >> >> >> >>>>>>>>>>> to
>> >> >> >> >>>>>>>>>>> implement
>> >> >> >> >>>>>>>>>>> the same ?  Appreciate any advice on the same
>> >> >> >> >>>>>>>>>>>
>> >> >> >> >>>>>>>>>>>  Thanks
>> >> >> >> >>>>>>>>>>>  Bharath
>> >> >> >> >>>>>>>> Well, by your comments I understand that your two main
>> >> >> problems
>> >> >> >> are
>> >> >> >> >>>>>>>> (1)
>> >> >> >> >>>>>>>> understanding how WSRP really works and (2) how to
>> expose
>> >> >> that
>> >> >> >> >>>>>>>> functionality in a non-JSR-168 environment.
>> >> >> >> >>>>>>>>
>> >> >> >> >>>>>>>> About the first point there aren't many options around.
>> The
>> >> >> WSRP
>> >> >> >> >>>>>>>> specification is the best of them although very hard to
>> read.
>> >> >> If
>> >> >> >> >>>>>>>> you
>> >> >> >> >>>>>>>> haven't read it already, try the WSRPv1 Primer
>> >> >> >> >>>>>>>>
>> >> >> >>
>> >> >>
>> (http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html).
>> >> >> >> >>>>>>>> It shows some of the communication involved in a very
>> clear
>> >> >> >> manner.
>> >> >> >> >>>>>>>>
>> >> >> >> >>>>>>>> On the second point, my experience has always been in a
>> >> >> JSR-168
>> >> >> >> >>>>>>>> environment. But WSRP4J source code is a nice example
>> on how
>> >> >> to
>> >> >> >> >>>>>>>> implement WSRP functionality besides JSR-168. In fact,
>> you
>> >> >> can
>> >> >> >> >>>>>>>> reuse
>> >> >> >> >>>>>>>> the
>> >> >> >> >>>>>>>> three commons packages and the two persistence ones on
>> any
>> >> >> other
>> >> >> >> >>>>>>>> project
>> >> >> >> >>>>>>>> (they don't have any strong dependencies on JSR-168
>> besides
>> >> >> some
>> >> >> >> >>>>>>>> utilities, they are completely reusable componentes for
>> any
>> >> >> >> >>>>>>>> producer
>> >> >> >> >>>>>>>> or
>> >> >> >> >>>>>>>> consumer implementation).
>> >> >> >> >>>>>>>>
>> >> >> >> >>>>>>>> Hope that helps.
>> >> >> >> >>>>>>>>
>> >> >> >> >>>>>>>> Regards.
>> >> >> >> >>>>>>>> Diego.
>> >> >> >> >>>>> Hello Bharath, I'm sorry for the late response but I've
>> been
>> >> >> very
>> >> >> >> busy
>> >> >> >> >>>>> and didn't have time to monitor the list. About your
>> questions:
>> >> >> >> >>>>>
>> >> >> >> >>>>> i)
>> >> >> >> >>>>>     If you're using wsrp4j-producer, you don't have to
>> make any
>> >> >> >> >>>>> changes
>> >> >> >> >>>>> to your JSR-168 portlets. Just take your .war file
>> containing
>> >> >> the
>> >> >> >> >>>>> portlets you want to expose and just use the deployer
>> included
>> >> >> (see
>> >> >> >> >>>>> README.txt for details). Your portlets will be
>> automagically
>> >> >> >> exposed
>> >> >> >> >>>>> as
>> >> >> >> >>>>> WSRP.
>> >> >> >> >>>>>     That utility modifies the configuration files exposed
>> by
>> >> >> >> >>>>> PlutoPortal
>> >> >> >> >>>>> (mainly the ones under WEB-INF/data). It also modifies the
>> >> >> >> portlet.xml
>> >> >> >> >>>>> file included on your portletapp so all the portlets
>> delegate
>> >> >> their
>> >> >> >> >>>>> processing to the servlet included in Pluto.
>> >> >> >> >>>>>
>> >> >> >> >>>>> ii)
>> >> >> >> >>>>>     The communication between consumer and producer is
>> >> >> standardized
>> >> >> >> by
>> >> >> >> >>>>> the WSRP specification. The README.txt specifies some
>> extension
>> >> >> >> points
>> >> >> >> >>>>> you can configure (like Producer URL Writing support), but
>> the
>> >> >> >> >>>>> communication will work without that.
>> >> >> >> >>>>>
>> >> >> >> >>>>> iii)
>> >> >> >> >>>>>     You have to register proxyportlet into your portal.
>> Each
>> >> >> portal
>> >> >> >> >>>>> includes its way to add JSR-168 portlets, so you'll have
>> to read
>> >> >> >> the
>> >> >> >> >>>>> documentation. Once you have deployed proxyportlet, you
>> have to
>> >> >> >> >>>>> configure the remote portlets using the two configuration
>> >> >> portlets
>> >> >> >> >>>>> included in proxyportlet (there are some limitations, I'll
>> try
>> >> >> to
>> >> >> >> >>>>> specify them in the README.txt this afternoon).
>> >> >> >> >>>>>
>> >> >> >> >>>>> Regards.
>> >> >> >> >>>>> Diego.
>> >> >> >> >>>>>>
>> >> >> >> >>>> -----BEGIN PGP SIGNATURE-----
>> >> >> >> >>>> Version: GnuPG v1.4.3 (GNU/Linux)
>> >> >> >> >>>> Comment: Using GnuPG with Mozilla -
>> http://enigmail.mozdev.org
>> >> >> >> >>>>
>> >> >> >> >>>>
>> iD8DBQFFxwpWgyzZYflJelERAkoWAJ4j501tattk5doYiOviWlaBsNiWAACeMB3W
>> >> >> >> >>>> swSfE4bvTtoao1m8FmPNjPI=
>> >> >> >> >>>> =gX9U
>> >> >> >> >>>> -----END PGP SIGNATURE-----
>> >> >> >> >>>>
>> >> >> >> >>>>
>> >> >> >> >>>
>> >> >> >> >>
>> >> >> >> >>
>> >> >> >> >
>> >> >> >> >
>> >> >> >>
>> >> >> >> --
>> >> >> >> View this message in context:
>> >> >> >>
>> >> >>
>> http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9090813
>> >> >> >> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
>> >> >> >>
>> >> >> >>
>> >> >> >
>> >> >> >
>> >> >>
>> >> >> --
>> >> >> View this message in context:
>> >> >>
>> http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9102008
>> >> >> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >>
>> >> --
>> >> View this message in context:
>> http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9104370
>> >> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
>> >>
>> >>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9184852
Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.


Re: Re[2]: Need some clarificatoins

Posted by Kevin Irmscher <ke...@gmail.com>.
Hi,

I was actually referring to the gadgetID Bharath had mentioned before.
I'm not familiar with gadgets but I guess they are similar to
portlets.

Regards, Kevin

On 2/27/07, Sandy Pérez González <sp...@yahoo.es> wrote:
> Hello,
>
> > As far as I know there are no standard methods to get the portlet id
> > or the portlet's location on the portal page.
>
> When you say "portlet id", are you referring to Pluto portlet id?
> Because this is specific of Pluto implementation, but this is not
> standard, then, only using pluto's libraries we will be able to access
> to Pluto portlet id and only if the used portlet container is Pluto.
> AFAIK the standard only considers the portlet-name and portlet-window,
> and these can be access using portlet API. I hope be useful :)
>
> --
> Regards,
>  Sandy
>
> > Hi Bharath,
>
> > JSR168 provides some methods to retrieve information about the portal.
> > Take a look at the methods of PortalContext and PortletContext. You
> > can get the user and other related information name by adding
> > according 'user-attribute' elements to the portlet.xml. As far as I
> > know there are no standard methods to get the portlet id or the
> > portlet's location on the portal page.
>
> > Regards,
> > Kevin
>
>
>
> > On 2/22/07, Bharath Kumar N <bh...@gmail.com> wrote:
> >>
> >> Kevin,
> >>           I agree JSR168 portlets addresses the write once and deploy on
> >> different portals.
> >>
> >>    In our case we plan to write a common page which will retrieve all the
> >> portal specific properties
> >>    and send them as hidden parameters to the rest of the portlets we have.
> >>
> >>    Is there an API provided by JSR168 which allows us to get these portal
> >> specific properties,without checking for
> >>    the portal type  ?
> >>
> >>    If there is no common API,we will have to do the same logic as explained
> >> in my pervious mail.
> >>    Check the portal type and do things   accordingly.
> >>       If(portalType="PLumtree") {
> >>            //use plumtree specific API to get the username,gadgetId etc...
> >>       }
> >>       else If(portalType="Weblogic") {
> >>            //use web logic poratl specific API to get the username,gadgetId
> >> etc...
> >>       }
> >>
> >>
> >> Thanks for the clarifications
> >> Bharath
> >>
> >> Kevin Irmscher wrote:
> >> >
> >> > Hi Bharath,
> >> >
> >> > I missed the fact that your portlets are not JSR168 compliant. I was
> >> > actually talking about user attributes that are passed from the
> >> > consumer to the producer. However, I'm still not sure if I got you
> >> > right. You are correct that WSRP supports portal interoperability, but
> >> > in the sense that you deploy a portlet in one portal which is the WSRP
> >> > producer. Then you are able to consume this portlet in other portals
> >> > which contain a WSRP consumer implementation.
> >> >
> >> > I think you are talking more about portlet interoperability, i.e.
> >> > develope a portlet once and deploy it in several portals without
> >> > changing the code. This, however, is addressed by the JSR168 portlet
> >> > standard.
> >> >
> >> > Regards,
> >> > Kevin
> >> >
> >> >
> >> > On 2/22/07, Bharath Kumar N <bh...@gmail.com> wrote:
> >> >>
> >> >> Hi Kevin,
> >> >>            Thanks for the quick reply.Portlets we have are not JSR168
> >> >> compliant portlets.
> >> >> So there are no portlet.xml files for our portlets.
> >> >>       As per my understanding you are talking about the user-defined
> >> >> attributes which are passed from the
> >> >> producer to the consumer.
> >> >>      But,I wanted to see if WSRP provides a way( i mean common API ) to
> >> >> retrieve portal specific properties
> >> >> like username,gadgetId etc.
> >> >>      We deploy our portlets in plumtree portal.And plumtree provides API
> >> >> to
> >> >> get the portal properties.
> >> >> Example :
> >> >> /**************************************************************************/
> >> >>         ptGadgetID =
> >> >> gsServices.getGatewaySpecificConfig().getProperty("PT-Gadget-ID");
> >> >>         ptUserName =
> >> >> gsServices.getGatewaySpecificConfig().getProperty("PT-User-Name");
> >> >>
> >> >> /**************************************************************************/
> >> >>           Since WSRP supports portal interoperability (ie same code can
> >> >> be
> >> >> deployed in other portals without any change ), I thought WSRP provides
> >> >> common API which is implemented by all the portal vendors( plumtree,web
> >> >> logic portal,liferay etc...) for the portal properties.?
> >> >>
> >> >>      If it does not then we have to check the portal type and do things
> >> >> accordingly.
> >> >>      If(portalType="PLumtree") {
> >> >>           //use plumtree specific API to get the username,gadgetId etc...
> >> >>      }
> >> >>      else If(portalType="Weblogic") {
> >> >>           //use web logic poratl specific API to get the
> >> >> username,gadgetId
> >> >> etc...
> >> >>      }
> >> >>      else If(portalType="Liferay") {
> >> >>           //use web logic poratl specific API to get the
> >> >> username,gadgetId
> >> >> etc...
> >> >>      }
> >> >>
> >> >> Thanks
> >> >> Bharath
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >> Kevin Irmscher wrote:
> >> >> >
> >> >> > Hi Barath,
> >> >> >
> >> >> > JSR168 and WSRP provide a mechanism for portlets to use end-user
> >> >> > information. First of all you declare the user attributes which the
> >> >> > portlet wants to access in the portlet.xml of your portlet
> >> >> > application.
> >> >> >
> >> >> > This looks like this:
> >> >> >
> >> >> > <user-attribute>
> >> >> >     <name>user.name.given</name>
> >> >> > </user-attribute>
> >> >> > <user-attribute>
> >> >> >     <name>user.name.family</name>
> >> >> > </user-attribute>
> >> >> > <user-attribute>
> >> >> >     <name>user.bdate</name>
> >> >> > </user-attribute>
> >> >> > <user-attribute>
> >> >> >     <name>user.gender</name>
> >> >> > </user-attribute>
> >> >> >
> >> >> > You can find a list of all user-attribute elements in the appendix of
> >> >> > the JSR168 document. Here is how to access these attributes in your
> >> >> > portlet:
> >> >> >
> >> >> > Map userInfo = (Map) request.getAttribute(PortletRequest.USER_INFO);
> >> >> >                       if (userInfo != null) {
> >> >> >                               Set keys = userInfo.keySet();
> >> >> >                               for (Object k : keys) {
> >> >> >                                       out.println(k + ": " +
> >> >> userInfo.get(k)
> >> >> >                                                                  +
> >> >> "<br/>");
> >> >> >                               }
> >> >> >                       }
> >> >> >
> >> >> > For which attributes the portlet will actually get a value depends on
> >> >> > the portal. It may provide values for name and birth date but not for
> >> >> > gender.
> >> >> >
> >> >> > Now WSRP comes into play. What kind of user information you can access
> >> >> > depends on both, the consumer and the producer. In order to get user
> >> >> > specific behavior, the remote portlet needs user information which may
> >> >> > be supplied to the producer when the consumer invokes certain
> >> >> > operations, such as getMarkup(). During registration the consumer may
> >> >> > also send custom profile attributes. The remote portlet itself also
> >> >> > needs to declare the user attributes it wants to access in its
> >> >> > portlet.xml, as I explained above.
> >> >> >
> >> >> > To actual use all this stuff you need, on the one hand a consumer
> >> >> > which sends user information to the producer. On the other hand, the
> >> >> > producer has to map this information to the specific user attributes
> >> >> > declared in the portlet.xml so the portlet is able to access them. I
> >> >> > tested this with the WSRP4J producer but unfortunately the portlet
> >> >> > couldn't get the user information that was sent by the consumer
> >> >> > (Liferay portal).
> >> >> >
> >> >> > Regards,
> >> >> > Kevin
> >> >> >
> >> >> >
> >> >> > On 2/21/07, Bharath Kumar N <bh...@gmail.com> wrote:
> >> >> >>
> >> >> >> Diego,
> >> >> >>       I have a another question regarding WSRP.This time its specific
> >> >> to
> >> >> >> WSRP API.
> >> >> >>
> >> >> >> Every portal has certain properties like portalUserName,stylesheet,
> >> >> >> portletID,portletCommunityID
> >> >> >> and so forth.Since WSRP is a specification for interoperability
> >> >> between
> >> >> >> portals,I believe there should
> >> >> >> be an common API for getting the portal specific properties.
> >> >> >>
> >> >> >>     Does WSRP specification provide the APIS to retrieve the portal
> >> >> >> specific
> >> >> >> properties
> >> >> >> like userName,portletID,portletCommunityID ? If yes can you please
> >> >> guide
> >> >> >> me
> >> >> >> through it.
> >> >> >> Any examples or links will be of use?
> >> >> >>
> >> >> >>
> >> >> >> Thanks
> >> >> >> Bharath
> >> >> >>
> >> >> >>
> >> >> >> Bharath Kumar N wrote:
> >> >> >> >
> >> >> >> > Diego,
> >> >> >> >      Thank you very much. I was able to get WSRP working on our
> >> >> >> > portlets.Appreciate all your explanations from day one.
> >> >> >> >
> >> >> >> > Thanks again!!!
> >> >> >> >
> >> >> >> >
> >> >> >> >
> >> >> >> > Diego Louzán-3 wrote:
> >> >> >> >>
> >> >> >> >> See inline response.
> >> >> >> >>
> >> >> >> >> Bharath Kumar N escribió:
> >> >> >> >>> Diego,
> >> >> >> >>>          Thanks a ton for the explanations.It really helped me to
> >> >> >> move
> >> >> >> >>> forward.
> >> >> >> >>>  But,as always i have a few more questions. :)
> >> >> >> >>>
> >> >> >> >>> 1) How do we expose the WSRP producer as a web service.?
> >> >> >> >>
> >> >> >> >> The WSRP producer is already a web service. The endpoints specified
> >> >> by
> >> >> >> >> Axis already implement the required interfaces.
> >> >> >> >>
> >> >> >> >>> 2) A basic question is How and where in the framework is the WSRP
> >> >> >> >>> Producer
> >> >> >> >>> exposed as a webservice ?
> >> >> >> >>>     As per my understanding here is the workflow,
> >> >> >> >>>     i) AxisServlet is the contact point for the Producer.
> >> >> >> >>>     ii) AxisServlet uses the file server-deploy.wsdd to specify
> >> >> which
> >> >> >> >>> classes implement which endpoints.
> >> >> >> >>>        Then it delegates the processing to the class specified on
> >> >> >> >>> server-deploy.wsdd.
> >> >> >> >>>     iii) In producer,each of these classes delegate their
> >> >> processing
> >> >> >> to
> >> >> >> >>> WSRPEngine
> >> >> >> >>>
> >> >> >> >>>    Now where is the webservice coming into picture in this
> >> >> workflow?
> >> >> >> >>> What is
> >> >> >> >>> the web-service endpoint url to access the producer?
> >> >> >> >>
> >> >> >> >> The endpoint urls specified by Axis and accesible through your app
> >> >> >> >> server (in this case, tomcat).
> >> >> >> >>
> >> >> >> >>> iii) We will not be using the proxyportlet because the portlets
> >> >> which
> >> >> >> we
> >> >> >> >>> have are not JSR168 complaint.So we will just register the  wsrp
> >> >> >> >>> producer
> >> >> >> >>> web-service endpoint url  in the plumtree portal.So,thats the
> >> >> reason
> >> >> >> for
> >> >> >> >>> me
> >> >> >> >>> asking the way to expose the producer as a web service.
> >> >> >> >>
> >> >> >> >> If your portlets aren't jsr168, then WSRP4J Producer won't be able
> >> >> to
> >> >> >> >> access them, you'll have to provide your own provider interface for
> >> >> >> >> dealing with your local portlets.
> >> >> >> >>
> >> >> >> >>>
> >> >> >> >>> Thanks
> >> >> >> >>> Bharath
> >> >> >> >>>
> >> >> >> >>>
> >> >> >> >>>
> >> >> >> >>>
> >> >> >> >>>
> >> >> >> >>>
> >> >> >> >>> dlouzan wrote:
> >> >> >> >>>> -----BEGIN PGP SIGNED MESSAGE-----
> >> >> >> >>>> Hash: SHA1
> >> >> >> >>>>
> >> >> >> >>>> See inline response.
> >> >> >> >>>>
> >> >> >> >>>> Bharath Kumar N escribió:
> >> >> >> >>>>> Diego,
> >> >> >> >>>>>         I need some help from u'r side to tie a few loose ends
> >> >> in
> >> >> >> my
> >> >> >> >>>>> understanding of implementation WSRP.
> >> >> >> >>>>>
> >> >> >> >>>>> We are not using Pluto as the provider.We have implemented our
> >> >> own
> >> >> >> >>>>> provider
> >> >> >> >>>>> factory and I have made the change in the
> >> >> >> >>>>> ..\producer\WEB-INF\classes\WSRPServices.properties
> >> >> >> >>>>> ** provider.factory=
> >> >> >> >>>>> com.slb.sis.dp.wsrp.producer.driver.ProviderFactoryImpl.
> >> >> >> >>>>> ** consumer.registry.factory =
> >> >> >> >>>>> org.apache.wsrp4j.producer.driver.ConsumerRegistryFactoryImpl
> >> >> >> {remains
> >> >> >> >>>>> the
> >> >> >> >>>>> same}.
> >> >> >> >>>>> So,my 1st goal  is to test the producer workflow.And next,Debug
> >> >> the
> >> >> >> >>>>> code
> >> >> >> >>>>> and
> >> >> >> >>>>> understand the workflow
> >> >> >> >>>>> between
> >> >> >> >>>>>
> >> >> >> >>>>> *The Consumer and the Axis Engine( AxisServlet)
> >> >> >> >>>>> *Axis Engine and the WSRPEngine
> >> >> >> >>>>> *WSRPEngine and the Provider (implemented by us)
> >> >> >> >>>>>
> >> >> >> >>>>> 1) We will be using the plumtree portal.And my understanding is
> >> >> >> that
> >> >> >> >>>>> Plumtree portal will be the consumer.So,My belief is that
> >> >> consumer
> >> >> >> >>>>> need
> >> >> >> >>>>> not be implemented.Am I right?
> >> >> >> >>>> ProxyPortlet is a generic JSR-168 portlet that can act as a WSRP
> >> >> >> >>>> consumer. As long as your portal accepts JSR-168 portlets (or
> >> >> your
> >> >> >> >>>> portal provides its own WSRP consumer component) you won't have
> >> >> to
> >> >> >> >>>> implement any consumer.
> >> >> >> >>>>
> >> >> >> >>>>> 2)    The consumer calls the producer through the Urls
> >> >> >> >>>>> *http://localhost:8080/usland_wsrp_producer/WSRPBaseService
> >> >> >> {provider
> >> >> >> >>>>> implemented methods are working}
> >> >> >> >>>>>
> >> >> >>
> >> >> *http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService{provider
> >> >> >> >>>>> implemented methods are working}
> >> >> >> >>>>>   which will be registerd while registering the portlet.
> >> >> >> >>>>> Is my understanding right? how do I simulate it without actual
> >> >> >> portal?
> >> >> >> >>>> You can use SwingConsumer as a test for your producer. It's a
> >> >> Swing
> >> >> >> >>>> standalone application that acts as a WSRP consumer. Keep in mind
> >> >> >> that
> >> >> >> >>>> its functionality is very limited and its serves only the purpose
> >> >> of
> >> >> >> >>>> easy testing.
> >> >> >> >>>>
> >> >> >> >>>>> I tried testing the functionality by calling
> >> >> >> >>>>>
> >> >> >>
> >> >> http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService?method=getServiceDescription
> >> >> >> >>>>>
> >> >> >> >>>>> and expected the output to xml format of
> >> >> >> >>>>> getServiceDescriptionResponse.But
> >> >> >> >>>>> it threw a
> >> >> >> >>>>> fault NoTraget service WSRPServiceDescriptionService found.
> >> >> >> >>>>> So how do I register the 4 interfaces service with the
> >> >> AxisServlet?
> >> >> >> >>>> If I'm understanding it correctly, you are using the old WSRP4J
> >> >> >> repos.
> >> >> >> >>>> Check the new producer in the SVN repos that is fully functional
> >> >> and
> >> >> >> >>>> it's easier to understand.
> >> >> >> >>>>     AxisServlet uses the file server-deploy.wsdd to specify which
> >> >> >> >>>> classes implement which endpoints. For instance:
> >> >> >> >>>>
> >> >> >> >>>> <service name="WSRPBaseService" ...>
> >> >> >> >>>> ...
> >> >> >> >>>>   <parameter name="className"
> >> >> >> >>>>
> >> >> >>
> >> >> value="org.apache.wsrp4j.commons.producer.binding.WSRPMarkupBindingImpl"/>
> >> >> >> >>>> ...
> >> >> >> >>>> </service>
> >> >> >> >>>>
> >> >> >> >>>> That declaration links the Markup interface to the class
> >> >> specified
> >> >> >> by
> >> >> >> >>>> the parameter tag. Then, these classes delegate their processing
> >> >> to
> >> >> >> >>>> WSRPEngine singleton. Check the example configuration for more
> >> >> >> details.
> >> >> >> >>>>
> >> >> >> >>>>> 3) What is the first thing which will be called by the Consumer
> >> >> ?
> >> >> >> >>>>>    Is it the AxisServlet which will be the contact point ?
> >> >> >> >>>>>    If not then ,when will the AxisServlet exactly be used in the
> >> >> >> whole
> >> >> >> >>>>> workflow?
> >> >> >> >>>> Yes, the AxisServlet is the contact point. Then it delegates the
> >> >> >> >>>> processing to the class specified on server-deploy.wsdd. In
> >> >> >> producer,
> >> >> >> >>>> each of these classes delegate their processing to WSRPEngine.
> >> >> >> >>>>
> >> >> >> >>>>> 4)When will the WSRPEngine be called.Is it the AxisServlet which
> >> >> >> calls
> >> >> >> >>>>> it
> >> >> >> >>>>> ?
> >> >> >> >>>> Already answered.
> >> >> >> >>>>
> >> >> >> >>>>> Thanks again for the help.Appreciate your patience.
> >> >> >> >>>>>
> >> >> >> >>>>> Regards
> >> >> >> >>>>> Bharath
> >> >> >> >>>> Hope that helps. Regards.
> >> >> >> >>>> Diego.
> >> >> >> >>>>
> >> >> >> >>>>>
> >> >> >> >>>>>
> >> >> >> >>>>>
> >> >> >> >>>>>
> >> >> >> >>>>>
> >> >> >> >>>>>
> >> >> >> >>>>>
> >> >> >> >>>>>
> >> >> >> >>>>> dlouzan wrote:
> >> >> >> >>>>> Bharath Kumar N escribió:
> >> >> >> >>>>>>>> Hi Diego,
> >> >> >> >>>>>>>>     Thanks for the quick reply and the options too. I have
> >> >> gone
> >> >> >> >>>>>>>> through
> >> >> >> >>>>>>>> the
> >> >> >> >>>>>>>> WSRP Primer and surely it is
> >> >> >> >>>>>>>> a good document to understand WSRP conceptually.
> >> >> >> >>>>>>>>    I am trying to understand the working of WSRP4J.The best
> >> >> way
> >> >> >> to
> >> >> >> >>>>>>>> understand would be via an example.
> >> >> >> >>>>>>>> Say,Using the WSRP4J Producer "wsrp4j-producer" and the WSRP
> >> >> >> >>>>>>>> Consumer
> >> >> >> >>>>>>>> "wsrp4j-proxyportlet"
> >> >> >> >>>>>>>> I am trying to configure a simple JSR 168 portlet HelloWorld.
> >> >> >> >>>>>>>>
> >> >> >> >>>>>>>>    I appreciate your comments and feedback on the following
> >> >> >> points.
> >> >> >> >>>>>>>>
> >> >> >> >>>>>>>> Have divided the WSRP interaction between the portlet
> >> >> Producer
> >> >> >> and
> >> >> >> >>>>>>>> the
> >> >> >> >>>>>>>> Consumer into :
> >> >> >> >>>>>>>>
> >> >> >> >>>>>>>> i) Interaction between Producer and the Portlet :
> >> >> >> >>>>>>>>      Which are the configuration files {xml or .properties
> >> >> files
> >> >> >> >>>>>>>> }in
> >> >> >> >>>>>>>> which
> >> >> >> >>>>>>>> the
> >> >> >> >>>>>>>>      changes have to be made to configure the portlet as a
> >> >> >> Producer
> >> >> >> >>>>>>>>
> >> >> >> >>>>>>>> ii) Communication between the Producer and the Consumer :
> >> >> >> >>>>>>>>      The communication is via SOAP messages.Again Which are
> >> >> the
> >> >> >> >>>>>>>> configuration files {xml or .properties fiels }in which the
> >> >> >> changes
> >> >> >> >>>>>>>> have
> >> >> >> >>>>>>>> to
> >> >> >> >>>>>>>> be made for the interaction between the Consumer and
> >> >> Producer.
> >> >> >> >>>>>>>>
> >> >> >> >>>>>>>> iii) Communication between the Consumer and the portal(in my
> >> >> >> case
> >> >> >> >>>>>>>> the
> >> >> >> >>>>>>>> portal
> >> >> >> >>>>>>>> is Plumtree):
> >> >> >> >>>>>>>>
> >> >> >> >>>>>>>>    This I assume is all to do with the registration of the
> >> >> >> Consumer
> >> >> >> >>>>>>>> in
> >> >> >> >>>>>>>> the
> >> >> >> >>>>>>>> Plumtree portal,instead of
> >> >> >> >>>>>>>>    the registration of HelloWorld portlet.
> >> >> >> >>>>>>>>
> >> >> >> >>>>>>>>
> >> >> >> >>>>>>>> Thanks
> >> >> >> >>>>>>>> Bharath
> >> >> >> >>>>>>>>
> >> >> >> >>>>>>>>
> >> >> >> >>>>>>>>
> >> >> >> >>>>>>>> dlouzan wrote:
> >> >> >> >>>>>>>> Bharath Kumar N escribió:
> >> >> >> >>>>>>>>>>> Hi,
> >> >> >> >>>>>>>>>>>
> >> >> >> >>>>>>>>>>>   I'm doing some research on porting existing Portlets to
> >> >> >> >>>>>>>>>>> WSRP.The
> >> >> >> >>>>>>>>>>> portlets
> >> >> >> >>>>>>>>>>> are not JSR-168 complaint. We are using the Plumtree
> >> >> portal
> >> >> >> >>>>>>>>>>> which
> >> >> >> >>>>>>>>>>> supports
> >> >> >> >>>>>>>>>>> WSRP.
> >> >> >> >>>>>>>>>>>  I'm having difficulty finding much information on   the
> >> >> >> >>>>>>>>>>> technical
> >> >> >> >>>>>>>>>>> aspects
> >> >> >> >>>>>>>>>>> of developing a WSRP Portlet, let alone porting   an
> >> >> existing
> >> >> >> >>>>>>>>>>> JSR-168
> >> >> >> >>>>>>>>>>> Portlet to WSRP.
> >> >> >> >>>>>>>>>>>
> >> >> >> >>>>>>>>>>>  I have download WSRP4J source code and built the
> >> >> same.Still
> >> >> >> >>>>>>>>>>> trying
> >> >> >> >>>>>>>>>>> to
> >> >> >> >>>>>>>>>>> understand how it works.
> >> >> >> >>>>>>>>>>>
> >> >> >> >>>>>>>>>>> Are there any resources that  you may know of that can
> >> >> help
> >> >> >> us
> >> >> >> >>>>>>>>>>> to
> >> >> >> >>>>>>>>>>> implement
> >> >> >> >>>>>>>>>>> the same ?  Appreciate any advice on the same
> >> >> >> >>>>>>>>>>>
> >> >> >> >>>>>>>>>>>  Thanks
> >> >> >> >>>>>>>>>>>  Bharath
> >> >> >> >>>>>>>> Well, by your comments I understand that your two main
> >> >> problems
> >> >> >> are
> >> >> >> >>>>>>>> (1)
> >> >> >> >>>>>>>> understanding how WSRP really works and (2) how to expose
> >> >> that
> >> >> >> >>>>>>>> functionality in a non-JSR-168 environment.
> >> >> >> >>>>>>>>
> >> >> >> >>>>>>>> About the first point there aren't many options around. The
> >> >> WSRP
> >> >> >> >>>>>>>> specification is the best of them although very hard to read.
> >> >> If
> >> >> >> >>>>>>>> you
> >> >> >> >>>>>>>> haven't read it already, try the WSRPv1 Primer
> >> >> >> >>>>>>>>
> >> >> >>
> >> >> (http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html).
> >> >> >> >>>>>>>> It shows some of the communication involved in a very clear
> >> >> >> manner.
> >> >> >> >>>>>>>>
> >> >> >> >>>>>>>> On the second point, my experience has always been in a
> >> >> JSR-168
> >> >> >> >>>>>>>> environment. But WSRP4J source code is a nice example on how
> >> >> to
> >> >> >> >>>>>>>> implement WSRP functionality besides JSR-168. In fact, you
> >> >> can
> >> >> >> >>>>>>>> reuse
> >> >> >> >>>>>>>> the
> >> >> >> >>>>>>>> three commons packages and the two persistence ones on any
> >> >> other
> >> >> >> >>>>>>>> project
> >> >> >> >>>>>>>> (they don't have any strong dependencies on JSR-168 besides
> >> >> some
> >> >> >> >>>>>>>> utilities, they are completely reusable componentes for any
> >> >> >> >>>>>>>> producer
> >> >> >> >>>>>>>> or
> >> >> >> >>>>>>>> consumer implementation).
> >> >> >> >>>>>>>>
> >> >> >> >>>>>>>> Hope that helps.
> >> >> >> >>>>>>>>
> >> >> >> >>>>>>>> Regards.
> >> >> >> >>>>>>>> Diego.
> >> >> >> >>>>> Hello Bharath, I'm sorry for the late response but I've been
> >> >> very
> >> >> >> busy
> >> >> >> >>>>> and didn't have time to monitor the list. About your questions:
> >> >> >> >>>>>
> >> >> >> >>>>> i)
> >> >> >> >>>>>     If you're using wsrp4j-producer, you don't have to make any
> >> >> >> >>>>> changes
> >> >> >> >>>>> to your JSR-168 portlets. Just take your .war file containing
> >> >> the
> >> >> >> >>>>> portlets you want to expose and just use the deployer included
> >> >> (see
> >> >> >> >>>>> README.txt for details). Your portlets will be automagically
> >> >> >> exposed
> >> >> >> >>>>> as
> >> >> >> >>>>> WSRP.
> >> >> >> >>>>>     That utility modifies the configuration files exposed by
> >> >> >> >>>>> PlutoPortal
> >> >> >> >>>>> (mainly the ones under WEB-INF/data). It also modifies the
> >> >> >> portlet.xml
> >> >> >> >>>>> file included on your portletapp so all the portlets delegate
> >> >> their
> >> >> >> >>>>> processing to the servlet included in Pluto.
> >> >> >> >>>>>
> >> >> >> >>>>> ii)
> >> >> >> >>>>>     The communication between consumer and producer is
> >> >> standardized
> >> >> >> by
> >> >> >> >>>>> the WSRP specification. The README.txt specifies some extension
> >> >> >> points
> >> >> >> >>>>> you can configure (like Producer URL Writing support), but the
> >> >> >> >>>>> communication will work without that.
> >> >> >> >>>>>
> >> >> >> >>>>> iii)
> >> >> >> >>>>>     You have to register proxyportlet into your portal. Each
> >> >> portal
> >> >> >> >>>>> includes its way to add JSR-168 portlets, so you'll have to read
> >> >> >> the
> >> >> >> >>>>> documentation. Once you have deployed proxyportlet, you have to
> >> >> >> >>>>> configure the remote portlets using the two configuration
> >> >> portlets
> >> >> >> >>>>> included in proxyportlet (there are some limitations, I'll try
> >> >> to
> >> >> >> >>>>> specify them in the README.txt this afternoon).
> >> >> >> >>>>>
> >> >> >> >>>>> Regards.
> >> >> >> >>>>> Diego.
> >> >> >> >>>>>>
> >> >> >> >>>> -----BEGIN PGP SIGNATURE-----
> >> >> >> >>>> Version: GnuPG v1.4.3 (GNU/Linux)
> >> >> >> >>>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> >> >> >> >>>>
> >> >> >> >>>> iD8DBQFFxwpWgyzZYflJelERAkoWAJ4j501tattk5doYiOviWlaBsNiWAACeMB3W
> >> >> >> >>>> swSfE4bvTtoao1m8FmPNjPI=
> >> >> >> >>>> =gX9U
> >> >> >> >>>> -----END PGP SIGNATURE-----
> >> >> >> >>>>
> >> >> >> >>>>
> >> >> >> >>>
> >> >> >> >>
> >> >> >> >>
> >> >> >> >
> >> >> >> >
> >> >> >>
> >> >> >> --
> >> >> >> View this message in context:
> >> >> >>
> >> >> http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9090813
> >> >> >> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
> >> >> >>
> >> >> >>
> >> >> >
> >> >> >
> >> >>
> >> >> --
> >> >> View this message in context:
> >> >> http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9102008
> >> >> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
> >> >>
> >> >>
> >> >
> >> >
> >>
> >> --
> >> View this message in context: http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9104370
> >> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
> >>
> >>
>

Re[2]: Need some clarificatoins

Posted by Sandy Pérez González <sp...@yahoo.es>.
Hello,

> As far as I know there are no standard methods to get the portlet id
> or the portlet's location on the portal page.

When you say “portlet id”, are you referring to Pluto portlet id?
Because this is specific of Pluto implementation, but this is not
standard, then, only using pluto’s libraries we will be able to access
to Pluto portlet id and only if the used portlet container is Pluto.
AFAIK the standard only considers the portlet-name and portlet-window,
and these can be access using portlet API. I hope be useful :)

-- 
Regards,
 Sandy

> Hi Bharath,

> JSR168 provides some methods to retrieve information about the portal.
> Take a look at the methods of PortalContext and PortletContext. You
> can get the user and other related information name by adding
> according 'user-attribute' elements to the portlet.xml. As far as I
> know there are no standard methods to get the portlet id or the
> portlet's location on the portal page.

> Regards,
> Kevin



> On 2/22/07, Bharath Kumar N <bh...@gmail.com> wrote:
>>
>> Kevin,
>>           I agree JSR168 portlets addresses the write once and deploy on
>> different portals.
>>
>>    In our case we plan to write a common page which will retrieve all the
>> portal specific properties
>>    and send them as hidden parameters to the rest of the portlets we have.
>>
>>    Is there an API provided by JSR168 which allows us to get these portal
>> specific properties,without checking for
>>    the portal type  ?
>>
>>    If there is no common API,we will have to do the same logic as explained
>> in my pervious mail.
>>    Check the portal type and do things   accordingly.
>>       If(portalType="PLumtree") {
>>            //use plumtree specific API to get the username,gadgetId etc...
>>       }
>>       else If(portalType="Weblogic") {
>>            //use web logic poratl specific API to get the username,gadgetId
>> etc...
>>       }
>>
>>
>> Thanks for the clarifications
>> Bharath
>>
>> Kevin Irmscher wrote:
>> >
>> > Hi Bharath,
>> >
>> > I missed the fact that your portlets are not JSR168 compliant. I was
>> > actually talking about user attributes that are passed from the
>> > consumer to the producer. However, I'm still not sure if I got you
>> > right. You are correct that WSRP supports portal interoperability, but
>> > in the sense that you deploy a portlet in one portal which is the WSRP
>> > producer. Then you are able to consume this portlet in other portals
>> > which contain a WSRP consumer implementation.
>> >
>> > I think you are talking more about portlet interoperability, i.e.
>> > develope a portlet once and deploy it in several portals without
>> > changing the code. This, however, is addressed by the JSR168 portlet
>> > standard.
>> >
>> > Regards,
>> > Kevin
>> >
>> >
>> > On 2/22/07, Bharath Kumar N <bh...@gmail.com> wrote:
>> >>
>> >> Hi Kevin,
>> >>            Thanks for the quick reply.Portlets we have are not JSR168
>> >> compliant portlets.
>> >> So there are no portlet.xml files for our portlets.
>> >>       As per my understanding you are talking about the user-defined
>> >> attributes which are passed from the
>> >> producer to the consumer.
>> >>      But,I wanted to see if WSRP provides a way( i mean common API ) to
>> >> retrieve portal specific properties
>> >> like username,gadgetId etc.
>> >>      We deploy our portlets in plumtree portal.And plumtree provides API
>> >> to
>> >> get the portal properties.
>> >> Example :
>> >> /**************************************************************************/
>> >>         ptGadgetID =
>> >> gsServices.getGatewaySpecificConfig().getProperty("PT-Gadget-ID");
>> >>         ptUserName =
>> >> gsServices.getGatewaySpecificConfig().getProperty("PT-User-Name");
>> >>
>> >> /**************************************************************************/
>> >>           Since WSRP supports portal interoperability (ie same code can
>> >> be
>> >> deployed in other portals without any change ), I thought WSRP provides
>> >> common API which is implemented by all the portal vendors( plumtree,web
>> >> logic portal,liferay etc...) for the portal properties.?
>> >>
>> >>      If it does not then we have to check the portal type and do things
>> >> accordingly.
>> >>      If(portalType="PLumtree") {
>> >>           //use plumtree specific API to get the username,gadgetId etc...
>> >>      }
>> >>      else If(portalType="Weblogic") {
>> >>           //use web logic poratl specific API to get the
>> >> username,gadgetId
>> >> etc...
>> >>      }
>> >>      else If(portalType="Liferay") {
>> >>           //use web logic poratl specific API to get the
>> >> username,gadgetId
>> >> etc...
>> >>      }
>> >>
>> >> Thanks
>> >> Bharath
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> Kevin Irmscher wrote:
>> >> >
>> >> > Hi Barath,
>> >> >
>> >> > JSR168 and WSRP provide a mechanism for portlets to use end-user
>> >> > information. First of all you declare the user attributes which the
>> >> > portlet wants to access in the portlet.xml of your portlet
>> >> > application.
>> >> >
>> >> > This looks like this:
>> >> >
>> >> > <user-attribute>
>> >> >     <name>user.name.given</name>
>> >> > </user-attribute>
>> >> > <user-attribute>
>> >> >     <name>user.name.family</name>
>> >> > </user-attribute>
>> >> > <user-attribute>
>> >> >     <name>user.bdate</name>
>> >> > </user-attribute>
>> >> > <user-attribute>
>> >> >     <name>user.gender</name>
>> >> > </user-attribute>
>> >> >
>> >> > You can find a list of all user-attribute elements in the appendix of
>> >> > the JSR168 document. Here is how to access these attributes in your
>> >> > portlet:
>> >> >
>> >> > Map userInfo = (Map) request.getAttribute(PortletRequest.USER_INFO);
>> >> >                       if (userInfo != null) {
>> >> >                               Set keys = userInfo.keySet();
>> >> >                               for (Object k : keys) {
>> >> >                                       out.println(k + ": " +
>> >> userInfo.get(k)
>> >> >                                                                  +
>> >> "<br/>");
>> >> >                               }
>> >> >                       }
>> >> >
>> >> > For which attributes the portlet will actually get a value depends on
>> >> > the portal. It may provide values for name and birth date but not for
>> >> > gender.
>> >> >
>> >> > Now WSRP comes into play. What kind of user information you can access
>> >> > depends on both, the consumer and the producer. In order to get user
>> >> > specific behavior, the remote portlet needs user information which may
>> >> > be supplied to the producer when the consumer invokes certain
>> >> > operations, such as getMarkup(). During registration the consumer may
>> >> > also send custom profile attributes. The remote portlet itself also
>> >> > needs to declare the user attributes it wants to access in its
>> >> > portlet.xml, as I explained above.
>> >> >
>> >> > To actual use all this stuff you need, on the one hand a consumer
>> >> > which sends user information to the producer. On the other hand, the
>> >> > producer has to map this information to the specific user attributes
>> >> > declared in the portlet.xml so the portlet is able to access them. I
>> >> > tested this with the WSRP4J producer but unfortunately the portlet
>> >> > couldn't get the user information that was sent by the consumer
>> >> > (Liferay portal).
>> >> >
>> >> > Regards,
>> >> > Kevin
>> >> >
>> >> >
>> >> > On 2/21/07, Bharath Kumar N <bh...@gmail.com> wrote:
>> >> >>
>> >> >> Diego,
>> >> >>       I have a another question regarding WSRP.This time its specific
>> >> to
>> >> >> WSRP API.
>> >> >>
>> >> >> Every portal has certain properties like portalUserName,stylesheet,
>> >> >> portletID,portletCommunityID
>> >> >> and so forth.Since WSRP is a specification for interoperability
>> >> between
>> >> >> portals,I believe there should
>> >> >> be an common API for getting the portal specific properties.
>> >> >>
>> >> >>     Does WSRP specification provide the APIS to retrieve the portal
>> >> >> specific
>> >> >> properties
>> >> >> like userName,portletID,portletCommunityID ? If yes can you please
>> >> guide
>> >> >> me
>> >> >> through it.
>> >> >> Any examples or links will be of use?
>> >> >>
>> >> >>
>> >> >> Thanks
>> >> >> Bharath
>> >> >>
>> >> >>
>> >> >> Bharath Kumar N wrote:
>> >> >> >
>> >> >> > Diego,
>> >> >> >      Thank you very much. I was able to get WSRP working on our
>> >> >> > portlets.Appreciate all your explanations from day one.
>> >> >> >
>> >> >> > Thanks again!!!
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > Diego Louzán-3 wrote:
>> >> >> >>
>> >> >> >> See inline response.
>> >> >> >>
>> >> >> >> Bharath Kumar N escribió:
>> >> >> >>> Diego,
>> >> >> >>>          Thanks a ton for the explanations.It really helped me to
>> >> >> move
>> >> >> >>> forward.
>> >> >> >>>  But,as always i have a few more questions. :)
>> >> >> >>>
>> >> >> >>> 1) How do we expose the WSRP producer as a web service.?
>> >> >> >>
>> >> >> >> The WSRP producer is already a web service. The endpoints specified
>> >> by
>> >> >> >> Axis already implement the required interfaces.
>> >> >> >>
>> >> >> >>> 2) A basic question is How and where in the framework is the WSRP
>> >> >> >>> Producer
>> >> >> >>> exposed as a webservice ?
>> >> >> >>>     As per my understanding here is the workflow,
>> >> >> >>>     i) AxisServlet is the contact point for the Producer.
>> >> >> >>>     ii) AxisServlet uses the file server-deploy.wsdd to specify
>> >> which
>> >> >> >>> classes implement which endpoints.
>> >> >> >>>        Then it delegates the processing to the class specified on
>> >> >> >>> server-deploy.wsdd.
>> >> >> >>>     iii) In producer,each of these classes delegate their
>> >> processing
>> >> >> to
>> >> >> >>> WSRPEngine
>> >> >> >>>
>> >> >> >>>    Now where is the webservice coming into picture in this
>> >> workflow?
>> >> >> >>> What is
>> >> >> >>> the web-service endpoint url to access the producer?
>> >> >> >>
>> >> >> >> The endpoint urls specified by Axis and accesible through your app
>> >> >> >> server (in this case, tomcat).
>> >> >> >>
>> >> >> >>> iii) We will not be using the proxyportlet because the portlets
>> >> which
>> >> >> we
>> >> >> >>> have are not JSR168 complaint.So we will just register the  wsrp
>> >> >> >>> producer
>> >> >> >>> web-service endpoint url  in the plumtree portal.So,thats the
>> >> reason
>> >> >> for
>> >> >> >>> me
>> >> >> >>> asking the way to expose the producer as a web service.
>> >> >> >>
>> >> >> >> If your portlets aren't jsr168, then WSRP4J Producer won't be able
>> >> to
>> >> >> >> access them, you'll have to provide your own provider interface for
>> >> >> >> dealing with your local portlets.
>> >> >> >>
>> >> >> >>>
>> >> >> >>> Thanks
>> >> >> >>> Bharath
>> >> >> >>>
>> >> >> >>>
>> >> >> >>>
>> >> >> >>>
>> >> >> >>>
>> >> >> >>>
>> >> >> >>> dlouzan wrote:
>> >> >> >>>> -----BEGIN PGP SIGNED MESSAGE-----
>> >> >> >>>> Hash: SHA1
>> >> >> >>>>
>> >> >> >>>> See inline response.
>> >> >> >>>>
>> >> >> >>>> Bharath Kumar N escribió:
>> >> >> >>>>> Diego,
>> >> >> >>>>>         I need some help from u'r side to tie a few loose ends
>> >> in
>> >> >> my
>> >> >> >>>>> understanding of implementation WSRP.
>> >> >> >>>>>
>> >> >> >>>>> We are not using Pluto as the provider.We have implemented our
>> >> own
>> >> >> >>>>> provider
>> >> >> >>>>> factory and I have made the change in the
>> >> >> >>>>> ..\producer\WEB-INF\classes\WSRPServices.properties
>> >> >> >>>>> ** provider.factory=
>> >> >> >>>>> com.slb.sis.dp.wsrp.producer.driver.ProviderFactoryImpl.
>> >> >> >>>>> ** consumer.registry.factory =
>> >> >> >>>>> org.apache.wsrp4j.producer.driver.ConsumerRegistryFactoryImpl
>> >> >> {remains
>> >> >> >>>>> the
>> >> >> >>>>> same}.
>> >> >> >>>>> So,my 1st goal  is to test the producer workflow.And next,Debug
>> >> the
>> >> >> >>>>> code
>> >> >> >>>>> and
>> >> >> >>>>> understand the workflow
>> >> >> >>>>> between
>> >> >> >>>>>
>> >> >> >>>>> *The Consumer and the Axis Engine( AxisServlet)
>> >> >> >>>>> *Axis Engine and the WSRPEngine
>> >> >> >>>>> *WSRPEngine and the Provider (implemented by us)
>> >> >> >>>>>
>> >> >> >>>>> 1) We will be using the plumtree portal.And my understanding is
>> >> >> that
>> >> >> >>>>> Plumtree portal will be the consumer.So,My belief is that
>> >> consumer
>> >> >> >>>>> need
>> >> >> >>>>> not be implemented.Am I right?
>> >> >> >>>> ProxyPortlet is a generic JSR-168 portlet that can act as a WSRP
>> >> >> >>>> consumer. As long as your portal accepts JSR-168 portlets (or
>> >> your
>> >> >> >>>> portal provides its own WSRP consumer component) you won't have
>> >> to
>> >> >> >>>> implement any consumer.
>> >> >> >>>>
>> >> >> >>>>> 2)    The consumer calls the producer through the Urls
>> >> >> >>>>> *http://localhost:8080/usland_wsrp_producer/WSRPBaseService
>> >> >> {provider
>> >> >> >>>>> implemented methods are working}
>> >> >> >>>>>
>> >> >>
>> >> *http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService{provider
>> >> >> >>>>> implemented methods are working}
>> >> >> >>>>>   which will be registerd while registering the portlet.
>> >> >> >>>>> Is my understanding right? how do I simulate it without actual
>> >> >> portal?
>> >> >> >>>> You can use SwingConsumer as a test for your producer. It's a
>> >> Swing
>> >> >> >>>> standalone application that acts as a WSRP consumer. Keep in mind
>> >> >> that
>> >> >> >>>> its functionality is very limited and its serves only the purpose
>> >> of
>> >> >> >>>> easy testing.
>> >> >> >>>>
>> >> >> >>>>> I tried testing the functionality by calling
>> >> >> >>>>>
>> >> >>
>> >> http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService?method=getServiceDescription
>> >> >> >>>>>
>> >> >> >>>>> and expected the output to xml format of
>> >> >> >>>>> getServiceDescriptionResponse.But
>> >> >> >>>>> it threw a
>> >> >> >>>>> fault NoTraget service WSRPServiceDescriptionService found.
>> >> >> >>>>> So how do I register the 4 interfaces service with the
>> >> AxisServlet?
>> >> >> >>>> If I'm understanding it correctly, you are using the old WSRP4J
>> >> >> repos.
>> >> >> >>>> Check the new producer in the SVN repos that is fully functional
>> >> and
>> >> >> >>>> it's easier to understand.
>> >> >> >>>>     AxisServlet uses the file server-deploy.wsdd to specify which
>> >> >> >>>> classes implement which endpoints. For instance:
>> >> >> >>>>
>> >> >> >>>> <service name="WSRPBaseService" ...>
>> >> >> >>>> ...
>> >> >> >>>>   <parameter name="className"
>> >> >> >>>>
>> >> >>
>> >> value="org.apache.wsrp4j.commons.producer.binding.WSRPMarkupBindingImpl"/>
>> >> >> >>>> ...
>> >> >> >>>> </service>
>> >> >> >>>>
>> >> >> >>>> That declaration links the Markup interface to the class
>> >> specified
>> >> >> by
>> >> >> >>>> the parameter tag. Then, these classes delegate their processing
>> >> to
>> >> >> >>>> WSRPEngine singleton. Check the example configuration for more
>> >> >> details.
>> >> >> >>>>
>> >> >> >>>>> 3) What is the first thing which will be called by the Consumer
>> >> ?
>> >> >> >>>>>    Is it the AxisServlet which will be the contact point ?
>> >> >> >>>>>    If not then ,when will the AxisServlet exactly be used in the
>> >> >> whole
>> >> >> >>>>> workflow?
>> >> >> >>>> Yes, the AxisServlet is the contact point. Then it delegates the
>> >> >> >>>> processing to the class specified on server-deploy.wsdd. In
>> >> >> producer,
>> >> >> >>>> each of these classes delegate their processing to WSRPEngine.
>> >> >> >>>>
>> >> >> >>>>> 4)When will the WSRPEngine be called.Is it the AxisServlet which
>> >> >> calls
>> >> >> >>>>> it
>> >> >> >>>>> ?
>> >> >> >>>> Already answered.
>> >> >> >>>>
>> >> >> >>>>> Thanks again for the help.Appreciate your patience.
>> >> >> >>>>>
>> >> >> >>>>> Regards
>> >> >> >>>>> Bharath
>> >> >> >>>> Hope that helps. Regards.
>> >> >> >>>> Diego.
>> >> >> >>>>
>> >> >> >>>>>
>> >> >> >>>>>
>> >> >> >>>>>
>> >> >> >>>>>
>> >> >> >>>>>
>> >> >> >>>>>
>> >> >> >>>>>
>> >> >> >>>>>
>> >> >> >>>>> dlouzan wrote:
>> >> >> >>>>> Bharath Kumar N escribió:
>> >> >> >>>>>>>> Hi Diego,
>> >> >> >>>>>>>>     Thanks for the quick reply and the options too. I have
>> >> gone
>> >> >> >>>>>>>> through
>> >> >> >>>>>>>> the
>> >> >> >>>>>>>> WSRP Primer and surely it is
>> >> >> >>>>>>>> a good document to understand WSRP conceptually.
>> >> >> >>>>>>>>    I am trying to understand the working of WSRP4J.The best
>> >> way
>> >> >> to
>> >> >> >>>>>>>> understand would be via an example.
>> >> >> >>>>>>>> Say,Using the WSRP4J Producer "wsrp4j-producer" and the WSRP
>> >> >> >>>>>>>> Consumer
>> >> >> >>>>>>>> "wsrp4j-proxyportlet"
>> >> >> >>>>>>>> I am trying to configure a simple JSR 168 portlet HelloWorld.
>> >> >> >>>>>>>>
>> >> >> >>>>>>>>    I appreciate your comments and feedback on the following
>> >> >> points.
>> >> >> >>>>>>>>
>> >> >> >>>>>>>> Have divided the WSRP interaction between the portlet
>> >> Producer
>> >> >> and
>> >> >> >>>>>>>> the
>> >> >> >>>>>>>> Consumer into :
>> >> >> >>>>>>>>
>> >> >> >>>>>>>> i) Interaction between Producer and the Portlet :
>> >> >> >>>>>>>>      Which are the configuration files {xml or .properties
>> >> files
>> >> >> >>>>>>>> }in
>> >> >> >>>>>>>> which
>> >> >> >>>>>>>> the
>> >> >> >>>>>>>>      changes have to be made to configure the portlet as a
>> >> >> Producer
>> >> >> >>>>>>>>
>> >> >> >>>>>>>> ii) Communication between the Producer and the Consumer :
>> >> >> >>>>>>>>      The communication is via SOAP messages.Again Which are
>> >> the
>> >> >> >>>>>>>> configuration files {xml or .properties fiels }in which the
>> >> >> changes
>> >> >> >>>>>>>> have
>> >> >> >>>>>>>> to
>> >> >> >>>>>>>> be made for the interaction between the Consumer and
>> >> Producer.
>> >> >> >>>>>>>>
>> >> >> >>>>>>>> iii) Communication between the Consumer and the portal(in my
>> >> >> case
>> >> >> >>>>>>>> the
>> >> >> >>>>>>>> portal
>> >> >> >>>>>>>> is Plumtree):
>> >> >> >>>>>>>>
>> >> >> >>>>>>>>    This I assume is all to do with the registration of the
>> >> >> Consumer
>> >> >> >>>>>>>> in
>> >> >> >>>>>>>> the
>> >> >> >>>>>>>> Plumtree portal,instead of
>> >> >> >>>>>>>>    the registration of HelloWorld portlet.
>> >> >> >>>>>>>>
>> >> >> >>>>>>>>
>> >> >> >>>>>>>> Thanks
>> >> >> >>>>>>>> Bharath
>> >> >> >>>>>>>>
>> >> >> >>>>>>>>
>> >> >> >>>>>>>>
>> >> >> >>>>>>>> dlouzan wrote:
>> >> >> >>>>>>>> Bharath Kumar N escribió:
>> >> >> >>>>>>>>>>> Hi,
>> >> >> >>>>>>>>>>>
>> >> >> >>>>>>>>>>>   I'm doing some research on porting existing Portlets to
>> >> >> >>>>>>>>>>> WSRP.The
>> >> >> >>>>>>>>>>> portlets
>> >> >> >>>>>>>>>>> are not JSR-168 complaint. We are using the Plumtree
>> >> portal
>> >> >> >>>>>>>>>>> which
>> >> >> >>>>>>>>>>> supports
>> >> >> >>>>>>>>>>> WSRP.
>> >> >> >>>>>>>>>>>  I'm having difficulty finding much information on   the
>> >> >> >>>>>>>>>>> technical
>> >> >> >>>>>>>>>>> aspects
>> >> >> >>>>>>>>>>> of developing a WSRP Portlet, let alone porting   an
>> >> existing
>> >> >> >>>>>>>>>>> JSR-168
>> >> >> >>>>>>>>>>> Portlet to WSRP.
>> >> >> >>>>>>>>>>>
>> >> >> >>>>>>>>>>>  I have download WSRP4J source code and built the
>> >> same.Still
>> >> >> >>>>>>>>>>> trying
>> >> >> >>>>>>>>>>> to
>> >> >> >>>>>>>>>>> understand how it works.
>> >> >> >>>>>>>>>>>
>> >> >> >>>>>>>>>>> Are there any resources that  you may know of that can
>> >> help
>> >> >> us
>> >> >> >>>>>>>>>>> to
>> >> >> >>>>>>>>>>> implement
>> >> >> >>>>>>>>>>> the same ?  Appreciate any advice on the same
>> >> >> >>>>>>>>>>>
>> >> >> >>>>>>>>>>>  Thanks
>> >> >> >>>>>>>>>>>  Bharath
>> >> >> >>>>>>>> Well, by your comments I understand that your two main
>> >> problems
>> >> >> are
>> >> >> >>>>>>>> (1)
>> >> >> >>>>>>>> understanding how WSRP really works and (2) how to expose
>> >> that
>> >> >> >>>>>>>> functionality in a non-JSR-168 environment.
>> >> >> >>>>>>>>
>> >> >> >>>>>>>> About the first point there aren't many options around. The
>> >> WSRP
>> >> >> >>>>>>>> specification is the best of them although very hard to read.
>> >> If
>> >> >> >>>>>>>> you
>> >> >> >>>>>>>> haven't read it already, try the WSRPv1 Primer
>> >> >> >>>>>>>>
>> >> >>
>> >> (http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html).
>> >> >> >>>>>>>> It shows some of the communication involved in a very clear
>> >> >> manner.
>> >> >> >>>>>>>>
>> >> >> >>>>>>>> On the second point, my experience has always been in a
>> >> JSR-168
>> >> >> >>>>>>>> environment. But WSRP4J source code is a nice example on how
>> >> to
>> >> >> >>>>>>>> implement WSRP functionality besides JSR-168. In fact, you
>> >> can
>> >> >> >>>>>>>> reuse
>> >> >> >>>>>>>> the
>> >> >> >>>>>>>> three commons packages and the two persistence ones on any
>> >> other
>> >> >> >>>>>>>> project
>> >> >> >>>>>>>> (they don't have any strong dependencies on JSR-168 besides
>> >> some
>> >> >> >>>>>>>> utilities, they are completely reusable componentes for any
>> >> >> >>>>>>>> producer
>> >> >> >>>>>>>> or
>> >> >> >>>>>>>> consumer implementation).
>> >> >> >>>>>>>>
>> >> >> >>>>>>>> Hope that helps.
>> >> >> >>>>>>>>
>> >> >> >>>>>>>> Regards.
>> >> >> >>>>>>>> Diego.
>> >> >> >>>>> Hello Bharath, I'm sorry for the late response but I've been
>> >> very
>> >> >> busy
>> >> >> >>>>> and didn't have time to monitor the list. About your questions:
>> >> >> >>>>>
>> >> >> >>>>> i)
>> >> >> >>>>>     If you're using wsrp4j-producer, you don't have to make any
>> >> >> >>>>> changes
>> >> >> >>>>> to your JSR-168 portlets. Just take your .war file containing
>> >> the
>> >> >> >>>>> portlets you want to expose and just use the deployer included
>> >> (see
>> >> >> >>>>> README.txt for details). Your portlets will be automagically
>> >> >> exposed
>> >> >> >>>>> as
>> >> >> >>>>> WSRP.
>> >> >> >>>>>     That utility modifies the configuration files exposed by
>> >> >> >>>>> PlutoPortal
>> >> >> >>>>> (mainly the ones under WEB-INF/data). It also modifies the
>> >> >> portlet.xml
>> >> >> >>>>> file included on your portletapp so all the portlets delegate
>> >> their
>> >> >> >>>>> processing to the servlet included in Pluto.
>> >> >> >>>>>
>> >> >> >>>>> ii)
>> >> >> >>>>>     The communication between consumer and producer is
>> >> standardized
>> >> >> by
>> >> >> >>>>> the WSRP specification. The README.txt specifies some extension
>> >> >> points
>> >> >> >>>>> you can configure (like Producer URL Writing support), but the
>> >> >> >>>>> communication will work without that.
>> >> >> >>>>>
>> >> >> >>>>> iii)
>> >> >> >>>>>     You have to register proxyportlet into your portal. Each
>> >> portal
>> >> >> >>>>> includes its way to add JSR-168 portlets, so you'll have to read
>> >> >> the
>> >> >> >>>>> documentation. Once you have deployed proxyportlet, you have to
>> >> >> >>>>> configure the remote portlets using the two configuration
>> >> portlets
>> >> >> >>>>> included in proxyportlet (there are some limitations, I'll try
>> >> to
>> >> >> >>>>> specify them in the README.txt this afternoon).
>> >> >> >>>>>
>> >> >> >>>>> Regards.
>> >> >> >>>>> Diego.
>> >> >> >>>>>>
>> >> >> >>>> -----BEGIN PGP SIGNATURE-----
>> >> >> >>>> Version: GnuPG v1.4.3 (GNU/Linux)
>> >> >> >>>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>> >> >> >>>>
>> >> >> >>>> iD8DBQFFxwpWgyzZYflJelERAkoWAJ4j501tattk5doYiOviWlaBsNiWAACeMB3W
>> >> >> >>>> swSfE4bvTtoao1m8FmPNjPI=
>> >> >> >>>> =gX9U
>> >> >> >>>> -----END PGP SIGNATURE-----
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>
>> >> >> >>
>> >> >> >>
>> >> >> >
>> >> >> >
>> >> >>
>> >> >> --
>> >> >> View this message in context:
>> >> >>
>> >> http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9090813
>> >> >> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >>
>> >> --
>> >> View this message in context:
>> >> http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9102008
>> >> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
>> >>
>> >>
>> >
>> >
>>
>> --
>> View this message in context: http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9104370
>> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
>>
>>

Re: Need some clarificatoins

Posted by Kevin Irmscher <ke...@gmail.com>.
Hi Bharath,

JSR168 provides some methods to retrieve information about the portal.
Take a look at the methods of PortalContext and PortletContext. You
can get the user and other related information name by adding
according 'user-attribute' elements to the portlet.xml. As far as I
know there are no standard methods to get the portlet id or the
portlet's location on the portal page.

Regards,
Kevin



On 2/22/07, Bharath Kumar N <bh...@gmail.com> wrote:
>
> Kevin,
>           I agree JSR168 portlets addresses the write once and deploy on
> different portals.
>
>    In our case we plan to write a common page which will retrieve all the
> portal specific properties
>    and send them as hidden parameters to the rest of the portlets we have.
>
>    Is there an API provided by JSR168 which allows us to get these portal
> specific properties,without checking for
>    the portal type  ?
>
>    If there is no common API,we will have to do the same logic as explained
> in my pervious mail.
>    Check the portal type and do things   accordingly.
>       If(portalType="PLumtree") {
>            //use plumtree specific API to get the username,gadgetId etc...
>       }
>       else If(portalType="Weblogic") {
>            //use web logic poratl specific API to get the username,gadgetId
> etc...
>       }
>
>
> Thanks for the clarifications
> Bharath
>
> Kevin Irmscher wrote:
> >
> > Hi Bharath,
> >
> > I missed the fact that your portlets are not JSR168 compliant. I was
> > actually talking about user attributes that are passed from the
> > consumer to the producer. However, I'm still not sure if I got you
> > right. You are correct that WSRP supports portal interoperability, but
> > in the sense that you deploy a portlet in one portal which is the WSRP
> > producer. Then you are able to consume this portlet in other portals
> > which contain a WSRP consumer implementation.
> >
> > I think you are talking more about portlet interoperability, i.e.
> > develope a portlet once and deploy it in several portals without
> > changing the code. This, however, is addressed by the JSR168 portlet
> > standard.
> >
> > Regards,
> > Kevin
> >
> >
> > On 2/22/07, Bharath Kumar N <bh...@gmail.com> wrote:
> >>
> >> Hi Kevin,
> >>            Thanks for the quick reply.Portlets we have are not JSR168
> >> compliant portlets.
> >> So there are no portlet.xml files for our portlets.
> >>       As per my understanding you are talking about the user-defined
> >> attributes which are passed from the
> >> producer to the consumer.
> >>      But,I wanted to see if WSRP provides a way( i mean common API ) to
> >> retrieve portal specific properties
> >> like username,gadgetId etc.
> >>      We deploy our portlets in plumtree portal.And plumtree provides API
> >> to
> >> get the portal properties.
> >> Example :
> >> /**************************************************************************/
> >>         ptGadgetID =
> >> gsServices.getGatewaySpecificConfig().getProperty("PT-Gadget-ID");
> >>         ptUserName =
> >> gsServices.getGatewaySpecificConfig().getProperty("PT-User-Name");
> >>
> >> /**************************************************************************/
> >>           Since WSRP supports portal interoperability (ie same code can
> >> be
> >> deployed in other portals without any change ), I thought WSRP provides
> >> common API which is implemented by all the portal vendors( plumtree,web
> >> logic portal,liferay etc...) for the portal properties.?
> >>
> >>      If it does not then we have to check the portal type and do things
> >> accordingly.
> >>      If(portalType="PLumtree") {
> >>           //use plumtree specific API to get the username,gadgetId etc...
> >>      }
> >>      else If(portalType="Weblogic") {
> >>           //use web logic poratl specific API to get the
> >> username,gadgetId
> >> etc...
> >>      }
> >>      else If(portalType="Liferay") {
> >>           //use web logic poratl specific API to get the
> >> username,gadgetId
> >> etc...
> >>      }
> >>
> >> Thanks
> >> Bharath
> >>
> >>
> >>
> >>
> >>
> >> Kevin Irmscher wrote:
> >> >
> >> > Hi Barath,
> >> >
> >> > JSR168 and WSRP provide a mechanism for portlets to use end-user
> >> > information. First of all you declare the user attributes which the
> >> > portlet wants to access in the portlet.xml of your portlet
> >> > application.
> >> >
> >> > This looks like this:
> >> >
> >> > <user-attribute>
> >> >     <name>user.name.given</name>
> >> > </user-attribute>
> >> > <user-attribute>
> >> >     <name>user.name.family</name>
> >> > </user-attribute>
> >> > <user-attribute>
> >> >     <name>user.bdate</name>
> >> > </user-attribute>
> >> > <user-attribute>
> >> >     <name>user.gender</name>
> >> > </user-attribute>
> >> >
> >> > You can find a list of all user-attribute elements in the appendix of
> >> > the JSR168 document. Here is how to access these attributes in your
> >> > portlet:
> >> >
> >> > Map userInfo = (Map) request.getAttribute(PortletRequest.USER_INFO);
> >> >                       if (userInfo != null) {
> >> >                               Set keys = userInfo.keySet();
> >> >                               for (Object k : keys) {
> >> >                                       out.println(k + ": " +
> >> userInfo.get(k)
> >> >                                                                  +
> >> "<br/>");
> >> >                               }
> >> >                       }
> >> >
> >> > For which attributes the portlet will actually get a value depends on
> >> > the portal. It may provide values for name and birth date but not for
> >> > gender.
> >> >
> >> > Now WSRP comes into play. What kind of user information you can access
> >> > depends on both, the consumer and the producer. In order to get user
> >> > specific behavior, the remote portlet needs user information which may
> >> > be supplied to the producer when the consumer invokes certain
> >> > operations, such as getMarkup(). During registration the consumer may
> >> > also send custom profile attributes. The remote portlet itself also
> >> > needs to declare the user attributes it wants to access in its
> >> > portlet.xml, as I explained above.
> >> >
> >> > To actual use all this stuff you need, on the one hand a consumer
> >> > which sends user information to the producer. On the other hand, the
> >> > producer has to map this information to the specific user attributes
> >> > declared in the portlet.xml so the portlet is able to access them. I
> >> > tested this with the WSRP4J producer but unfortunately the portlet
> >> > couldn't get the user information that was sent by the consumer
> >> > (Liferay portal).
> >> >
> >> > Regards,
> >> > Kevin
> >> >
> >> >
> >> > On 2/21/07, Bharath Kumar N <bh...@gmail.com> wrote:
> >> >>
> >> >> Diego,
> >> >>       I have a another question regarding WSRP.This time its specific
> >> to
> >> >> WSRP API.
> >> >>
> >> >> Every portal has certain properties like portalUserName,stylesheet,
> >> >> portletID,portletCommunityID
> >> >> and so forth.Since WSRP is a specification for interoperability
> >> between
> >> >> portals,I believe there should
> >> >> be an common API for getting the portal specific properties.
> >> >>
> >> >>     Does WSRP specification provide the APIS to retrieve the portal
> >> >> specific
> >> >> properties
> >> >> like userName,portletID,portletCommunityID ? If yes can you please
> >> guide
> >> >> me
> >> >> through it.
> >> >> Any examples or links will be of use?
> >> >>
> >> >>
> >> >> Thanks
> >> >> Bharath
> >> >>
> >> >>
> >> >> Bharath Kumar N wrote:
> >> >> >
> >> >> > Diego,
> >> >> >      Thank you very much. I was able to get WSRP working on our
> >> >> > portlets.Appreciate all your explanations from day one.
> >> >> >
> >> >> > Thanks again!!!
> >> >> >
> >> >> >
> >> >> >
> >> >> > Diego Louzán-3 wrote:
> >> >> >>
> >> >> >> See inline response.
> >> >> >>
> >> >> >> Bharath Kumar N escribió:
> >> >> >>> Diego,
> >> >> >>>          Thanks a ton for the explanations.It really helped me to
> >> >> move
> >> >> >>> forward.
> >> >> >>>  But,as always i have a few more questions. :)
> >> >> >>>
> >> >> >>> 1) How do we expose the WSRP producer as a web service.?
> >> >> >>
> >> >> >> The WSRP producer is already a web service. The endpoints specified
> >> by
> >> >> >> Axis already implement the required interfaces.
> >> >> >>
> >> >> >>> 2) A basic question is How and where in the framework is the WSRP
> >> >> >>> Producer
> >> >> >>> exposed as a webservice ?
> >> >> >>>     As per my understanding here is the workflow,
> >> >> >>>     i) AxisServlet is the contact point for the Producer.
> >> >> >>>     ii) AxisServlet uses the file server-deploy.wsdd to specify
> >> which
> >> >> >>> classes implement which endpoints.
> >> >> >>>        Then it delegates the processing to the class specified on
> >> >> >>> server-deploy.wsdd.
> >> >> >>>     iii) In producer,each of these classes delegate their
> >> processing
> >> >> to
> >> >> >>> WSRPEngine
> >> >> >>>
> >> >> >>>    Now where is the webservice coming into picture in this
> >> workflow?
> >> >> >>> What is
> >> >> >>> the web-service endpoint url to access the producer?
> >> >> >>
> >> >> >> The endpoint urls specified by Axis and accesible through your app
> >> >> >> server (in this case, tomcat).
> >> >> >>
> >> >> >>> iii) We will not be using the proxyportlet because the portlets
> >> which
> >> >> we
> >> >> >>> have are not JSR168 complaint.So we will just register the  wsrp
> >> >> >>> producer
> >> >> >>> web-service endpoint url  in the plumtree portal.So,thats the
> >> reason
> >> >> for
> >> >> >>> me
> >> >> >>> asking the way to expose the producer as a web service.
> >> >> >>
> >> >> >> If your portlets aren't jsr168, then WSRP4J Producer won't be able
> >> to
> >> >> >> access them, you'll have to provide your own provider interface for
> >> >> >> dealing with your local portlets.
> >> >> >>
> >> >> >>>
> >> >> >>> Thanks
> >> >> >>> Bharath
> >> >> >>>
> >> >> >>>
> >> >> >>>
> >> >> >>>
> >> >> >>>
> >> >> >>>
> >> >> >>> dlouzan wrote:
> >> >> >>>> -----BEGIN PGP SIGNED MESSAGE-----
> >> >> >>>> Hash: SHA1
> >> >> >>>>
> >> >> >>>> See inline response.
> >> >> >>>>
> >> >> >>>> Bharath Kumar N escribió:
> >> >> >>>>> Diego,
> >> >> >>>>>         I need some help from u'r side to tie a few loose ends
> >> in
> >> >> my
> >> >> >>>>> understanding of implementation WSRP.
> >> >> >>>>>
> >> >> >>>>> We are not using Pluto as the provider.We have implemented our
> >> own
> >> >> >>>>> provider
> >> >> >>>>> factory and I have made the change in the
> >> >> >>>>> ..\producer\WEB-INF\classes\WSRPServices.properties
> >> >> >>>>> ** provider.factory=
> >> >> >>>>> com.slb.sis.dp.wsrp.producer.driver.ProviderFactoryImpl.
> >> >> >>>>> ** consumer.registry.factory =
> >> >> >>>>> org.apache.wsrp4j.producer.driver.ConsumerRegistryFactoryImpl
> >> >> {remains
> >> >> >>>>> the
> >> >> >>>>> same}.
> >> >> >>>>> So,my 1st goal  is to test the producer workflow.And next,Debug
> >> the
> >> >> >>>>> code
> >> >> >>>>> and
> >> >> >>>>> understand the workflow
> >> >> >>>>> between
> >> >> >>>>>
> >> >> >>>>> *The Consumer and the Axis Engine( AxisServlet)
> >> >> >>>>> *Axis Engine and the WSRPEngine
> >> >> >>>>> *WSRPEngine and the Provider (implemented by us)
> >> >> >>>>>
> >> >> >>>>> 1) We will be using the plumtree portal.And my understanding is
> >> >> that
> >> >> >>>>> Plumtree portal will be the consumer.So,My belief is that
> >> consumer
> >> >> >>>>> need
> >> >> >>>>> not be implemented.Am I right?
> >> >> >>>> ProxyPortlet is a generic JSR-168 portlet that can act as a WSRP
> >> >> >>>> consumer. As long as your portal accepts JSR-168 portlets (or
> >> your
> >> >> >>>> portal provides its own WSRP consumer component) you won't have
> >> to
> >> >> >>>> implement any consumer.
> >> >> >>>>
> >> >> >>>>> 2)    The consumer calls the producer through the Urls
> >> >> >>>>> *http://localhost:8080/usland_wsrp_producer/WSRPBaseService
> >> >> {provider
> >> >> >>>>> implemented methods are working}
> >> >> >>>>>
> >> >>
> >> *http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService{provider
> >> >> >>>>> implemented methods are working}
> >> >> >>>>>   which will be registerd while registering the portlet.
> >> >> >>>>> Is my understanding right? how do I simulate it without actual
> >> >> portal?
> >> >> >>>> You can use SwingConsumer as a test for your producer. It's a
> >> Swing
> >> >> >>>> standalone application that acts as a WSRP consumer. Keep in mind
> >> >> that
> >> >> >>>> its functionality is very limited and its serves only the purpose
> >> of
> >> >> >>>> easy testing.
> >> >> >>>>
> >> >> >>>>> I tried testing the functionality by calling
> >> >> >>>>>
> >> >>
> >> http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService?method=getServiceDescription
> >> >> >>>>>
> >> >> >>>>> and expected the output to xml format of
> >> >> >>>>> getServiceDescriptionResponse.But
> >> >> >>>>> it threw a
> >> >> >>>>> fault NoTraget service WSRPServiceDescriptionService found.
> >> >> >>>>> So how do I register the 4 interfaces service with the
> >> AxisServlet?
> >> >> >>>> If I'm understanding it correctly, you are using the old WSRP4J
> >> >> repos.
> >> >> >>>> Check the new producer in the SVN repos that is fully functional
> >> and
> >> >> >>>> it's easier to understand.
> >> >> >>>>     AxisServlet uses the file server-deploy.wsdd to specify which
> >> >> >>>> classes implement which endpoints. For instance:
> >> >> >>>>
> >> >> >>>> <service name="WSRPBaseService" ...>
> >> >> >>>> ...
> >> >> >>>>   <parameter name="className"
> >> >> >>>>
> >> >>
> >> value="org.apache.wsrp4j.commons.producer.binding.WSRPMarkupBindingImpl"/>
> >> >> >>>> ...
> >> >> >>>> </service>
> >> >> >>>>
> >> >> >>>> That declaration links the Markup interface to the class
> >> specified
> >> >> by
> >> >> >>>> the parameter tag. Then, these classes delegate their processing
> >> to
> >> >> >>>> WSRPEngine singleton. Check the example configuration for more
> >> >> details.
> >> >> >>>>
> >> >> >>>>> 3) What is the first thing which will be called by the Consumer
> >> ?
> >> >> >>>>>    Is it the AxisServlet which will be the contact point ?
> >> >> >>>>>    If not then ,when will the AxisServlet exactly be used in the
> >> >> whole
> >> >> >>>>> workflow?
> >> >> >>>> Yes, the AxisServlet is the contact point. Then it delegates the
> >> >> >>>> processing to the class specified on server-deploy.wsdd. In
> >> >> producer,
> >> >> >>>> each of these classes delegate their processing to WSRPEngine.
> >> >> >>>>
> >> >> >>>>> 4)When will the WSRPEngine be called.Is it the AxisServlet which
> >> >> calls
> >> >> >>>>> it
> >> >> >>>>> ?
> >> >> >>>> Already answered.
> >> >> >>>>
> >> >> >>>>> Thanks again for the help.Appreciate your patience.
> >> >> >>>>>
> >> >> >>>>> Regards
> >> >> >>>>> Bharath
> >> >> >>>> Hope that helps. Regards.
> >> >> >>>> Diego.
> >> >> >>>>
> >> >> >>>>>
> >> >> >>>>>
> >> >> >>>>>
> >> >> >>>>>
> >> >> >>>>>
> >> >> >>>>>
> >> >> >>>>>
> >> >> >>>>>
> >> >> >>>>> dlouzan wrote:
> >> >> >>>>> Bharath Kumar N escribió:
> >> >> >>>>>>>> Hi Diego,
> >> >> >>>>>>>>     Thanks for the quick reply and the options too. I have
> >> gone
> >> >> >>>>>>>> through
> >> >> >>>>>>>> the
> >> >> >>>>>>>> WSRP Primer and surely it is
> >> >> >>>>>>>> a good document to understand WSRP conceptually.
> >> >> >>>>>>>>    I am trying to understand the working of WSRP4J.The best
> >> way
> >> >> to
> >> >> >>>>>>>> understand would be via an example.
> >> >> >>>>>>>> Say,Using the WSRP4J Producer "wsrp4j-producer" and the WSRP
> >> >> >>>>>>>> Consumer
> >> >> >>>>>>>> "wsrp4j-proxyportlet"
> >> >> >>>>>>>> I am trying to configure a simple JSR 168 portlet HelloWorld.
> >> >> >>>>>>>>
> >> >> >>>>>>>>    I appreciate your comments and feedback on the following
> >> >> points.
> >> >> >>>>>>>>
> >> >> >>>>>>>> Have divided the WSRP interaction between the portlet
> >> Producer
> >> >> and
> >> >> >>>>>>>> the
> >> >> >>>>>>>> Consumer into :
> >> >> >>>>>>>>
> >> >> >>>>>>>> i) Interaction between Producer and the Portlet :
> >> >> >>>>>>>>      Which are the configuration files {xml or .properties
> >> files
> >> >> >>>>>>>> }in
> >> >> >>>>>>>> which
> >> >> >>>>>>>> the
> >> >> >>>>>>>>      changes have to be made to configure the portlet as a
> >> >> Producer
> >> >> >>>>>>>>
> >> >> >>>>>>>> ii) Communication between the Producer and the Consumer :
> >> >> >>>>>>>>      The communication is via SOAP messages.Again Which are
> >> the
> >> >> >>>>>>>> configuration files {xml or .properties fiels }in which the
> >> >> changes
> >> >> >>>>>>>> have
> >> >> >>>>>>>> to
> >> >> >>>>>>>> be made for the interaction between the Consumer and
> >> Producer.
> >> >> >>>>>>>>
> >> >> >>>>>>>> iii) Communication between the Consumer and the portal(in my
> >> >> case
> >> >> >>>>>>>> the
> >> >> >>>>>>>> portal
> >> >> >>>>>>>> is Plumtree):
> >> >> >>>>>>>>
> >> >> >>>>>>>>    This I assume is all to do with the registration of the
> >> >> Consumer
> >> >> >>>>>>>> in
> >> >> >>>>>>>> the
> >> >> >>>>>>>> Plumtree portal,instead of
> >> >> >>>>>>>>    the registration of HelloWorld portlet.
> >> >> >>>>>>>>
> >> >> >>>>>>>>
> >> >> >>>>>>>> Thanks
> >> >> >>>>>>>> Bharath
> >> >> >>>>>>>>
> >> >> >>>>>>>>
> >> >> >>>>>>>>
> >> >> >>>>>>>> dlouzan wrote:
> >> >> >>>>>>>> Bharath Kumar N escribió:
> >> >> >>>>>>>>>>> Hi,
> >> >> >>>>>>>>>>>
> >> >> >>>>>>>>>>>   I'm doing some research on porting existing Portlets to
> >> >> >>>>>>>>>>> WSRP.The
> >> >> >>>>>>>>>>> portlets
> >> >> >>>>>>>>>>> are not JSR-168 complaint. We are using the Plumtree
> >> portal
> >> >> >>>>>>>>>>> which
> >> >> >>>>>>>>>>> supports
> >> >> >>>>>>>>>>> WSRP.
> >> >> >>>>>>>>>>>  I'm having difficulty finding much information on   the
> >> >> >>>>>>>>>>> technical
> >> >> >>>>>>>>>>> aspects
> >> >> >>>>>>>>>>> of developing a WSRP Portlet, let alone porting   an
> >> existing
> >> >> >>>>>>>>>>> JSR-168
> >> >> >>>>>>>>>>> Portlet to WSRP.
> >> >> >>>>>>>>>>>
> >> >> >>>>>>>>>>>  I have download WSRP4J source code and built the
> >> same.Still
> >> >> >>>>>>>>>>> trying
> >> >> >>>>>>>>>>> to
> >> >> >>>>>>>>>>> understand how it works.
> >> >> >>>>>>>>>>>
> >> >> >>>>>>>>>>> Are there any resources that  you may know of that can
> >> help
> >> >> us
> >> >> >>>>>>>>>>> to
> >> >> >>>>>>>>>>> implement
> >> >> >>>>>>>>>>> the same ?  Appreciate any advice on the same
> >> >> >>>>>>>>>>>
> >> >> >>>>>>>>>>>  Thanks
> >> >> >>>>>>>>>>>  Bharath
> >> >> >>>>>>>> Well, by your comments I understand that your two main
> >> problems
> >> >> are
> >> >> >>>>>>>> (1)
> >> >> >>>>>>>> understanding how WSRP really works and (2) how to expose
> >> that
> >> >> >>>>>>>> functionality in a non-JSR-168 environment.
> >> >> >>>>>>>>
> >> >> >>>>>>>> About the first point there aren't many options around. The
> >> WSRP
> >> >> >>>>>>>> specification is the best of them although very hard to read.
> >> If
> >> >> >>>>>>>> you
> >> >> >>>>>>>> haven't read it already, try the WSRPv1 Primer
> >> >> >>>>>>>>
> >> >>
> >> (http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html).
> >> >> >>>>>>>> It shows some of the communication involved in a very clear
> >> >> manner.
> >> >> >>>>>>>>
> >> >> >>>>>>>> On the second point, my experience has always been in a
> >> JSR-168
> >> >> >>>>>>>> environment. But WSRP4J source code is a nice example on how
> >> to
> >> >> >>>>>>>> implement WSRP functionality besides JSR-168. In fact, you
> >> can
> >> >> >>>>>>>> reuse
> >> >> >>>>>>>> the
> >> >> >>>>>>>> three commons packages and the two persistence ones on any
> >> other
> >> >> >>>>>>>> project
> >> >> >>>>>>>> (they don't have any strong dependencies on JSR-168 besides
> >> some
> >> >> >>>>>>>> utilities, they are completely reusable componentes for any
> >> >> >>>>>>>> producer
> >> >> >>>>>>>> or
> >> >> >>>>>>>> consumer implementation).
> >> >> >>>>>>>>
> >> >> >>>>>>>> Hope that helps.
> >> >> >>>>>>>>
> >> >> >>>>>>>> Regards.
> >> >> >>>>>>>> Diego.
> >> >> >>>>> Hello Bharath, I'm sorry for the late response but I've been
> >> very
> >> >> busy
> >> >> >>>>> and didn't have time to monitor the list. About your questions:
> >> >> >>>>>
> >> >> >>>>> i)
> >> >> >>>>>     If you're using wsrp4j-producer, you don't have to make any
> >> >> >>>>> changes
> >> >> >>>>> to your JSR-168 portlets. Just take your .war file containing
> >> the
> >> >> >>>>> portlets you want to expose and just use the deployer included
> >> (see
> >> >> >>>>> README.txt for details). Your portlets will be automagically
> >> >> exposed
> >> >> >>>>> as
> >> >> >>>>> WSRP.
> >> >> >>>>>     That utility modifies the configuration files exposed by
> >> >> >>>>> PlutoPortal
> >> >> >>>>> (mainly the ones under WEB-INF/data). It also modifies the
> >> >> portlet.xml
> >> >> >>>>> file included on your portletapp so all the portlets delegate
> >> their
> >> >> >>>>> processing to the servlet included in Pluto.
> >> >> >>>>>
> >> >> >>>>> ii)
> >> >> >>>>>     The communication between consumer and producer is
> >> standardized
> >> >> by
> >> >> >>>>> the WSRP specification. The README.txt specifies some extension
> >> >> points
> >> >> >>>>> you can configure (like Producer URL Writing support), but the
> >> >> >>>>> communication will work without that.
> >> >> >>>>>
> >> >> >>>>> iii)
> >> >> >>>>>     You have to register proxyportlet into your portal. Each
> >> portal
> >> >> >>>>> includes its way to add JSR-168 portlets, so you'll have to read
> >> >> the
> >> >> >>>>> documentation. Once you have deployed proxyportlet, you have to
> >> >> >>>>> configure the remote portlets using the two configuration
> >> portlets
> >> >> >>>>> included in proxyportlet (there are some limitations, I'll try
> >> to
> >> >> >>>>> specify them in the README.txt this afternoon).
> >> >> >>>>>
> >> >> >>>>> Regards.
> >> >> >>>>> Diego.
> >> >> >>>>>>
> >> >> >>>> -----BEGIN PGP SIGNATURE-----
> >> >> >>>> Version: GnuPG v1.4.3 (GNU/Linux)
> >> >> >>>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> >> >> >>>>
> >> >> >>>> iD8DBQFFxwpWgyzZYflJelERAkoWAJ4j501tattk5doYiOviWlaBsNiWAACeMB3W
> >> >> >>>> swSfE4bvTtoao1m8FmPNjPI=
> >> >> >>>> =gX9U
> >> >> >>>> -----END PGP SIGNATURE-----
> >> >> >>>>
> >> >> >>>>
> >> >> >>>
> >> >> >>
> >> >> >>
> >> >> >
> >> >> >
> >> >>
> >> >> --
> >> >> View this message in context:
> >> >>
> >> http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9090813
> >> >> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
> >> >>
> >> >>
> >> >
> >> >
> >>
> >> --
> >> View this message in context:
> >> http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9102008
> >> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
> >>
> >>
> >
> >
>
> --
> View this message in context: http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9104370
> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
>
>

Re: Need some clarificatoins

Posted by Bharath Kumar N <bh...@gmail.com>.
Kevin,
          I agree JSR168 portlets addresses the write once and deploy on
different portals.

   In our case we plan to write a common page which will retrieve all the
portal specific properties 
   and send them as hidden parameters to the rest of the portlets we have.

   Is there an API provided by JSR168 which allows us to get these portal
specific properties,without checking for 
   the portal type  ?

   If there is no common API,we will have to do the same logic as explained
in my pervious mail.
   Check the portal type and do things   accordingly.
      If(portalType="PLumtree") {
           //use plumtree specific API to get the username,gadgetId etc...
      }
      else If(portalType="Weblogic") {
           //use web logic poratl specific API to get the username,gadgetId
etc...
      }


Thanks for the clarifications
Bharath

Kevin Irmscher wrote:
> 
> Hi Bharath,
> 
> I missed the fact that your portlets are not JSR168 compliant. I was
> actually talking about user attributes that are passed from the
> consumer to the producer. However, I'm still not sure if I got you
> right. You are correct that WSRP supports portal interoperability, but
> in the sense that you deploy a portlet in one portal which is the WSRP
> producer. Then you are able to consume this portlet in other portals
> which contain a WSRP consumer implementation.
> 
> I think you are talking more about portlet interoperability, i.e.
> develope a portlet once and deploy it in several portals without
> changing the code. This, however, is addressed by the JSR168 portlet
> standard.
> 
> Regards,
> Kevin
> 
> 
> On 2/22/07, Bharath Kumar N <bh...@gmail.com> wrote:
>>
>> Hi Kevin,
>>            Thanks for the quick reply.Portlets we have are not JSR168
>> compliant portlets.
>> So there are no portlet.xml files for our portlets.
>>       As per my understanding you are talking about the user-defined
>> attributes which are passed from the
>> producer to the consumer.
>>      But,I wanted to see if WSRP provides a way( i mean common API ) to
>> retrieve portal specific properties
>> like username,gadgetId etc.
>>      We deploy our portlets in plumtree portal.And plumtree provides API
>> to
>> get the portal properties.
>> Example :
>> /**************************************************************************/
>>         ptGadgetID =
>> gsServices.getGatewaySpecificConfig().getProperty("PT-Gadget-ID");
>>         ptUserName =
>> gsServices.getGatewaySpecificConfig().getProperty("PT-User-Name");
>>
>> /**************************************************************************/
>>           Since WSRP supports portal interoperability (ie same code can
>> be
>> deployed in other portals without any change ), I thought WSRP provides
>> common API which is implemented by all the portal vendors( plumtree,web
>> logic portal,liferay etc...) for the portal properties.?
>>
>>      If it does not then we have to check the portal type and do things
>> accordingly.
>>      If(portalType="PLumtree") {
>>           //use plumtree specific API to get the username,gadgetId etc...
>>      }
>>      else If(portalType="Weblogic") {
>>           //use web logic poratl specific API to get the
>> username,gadgetId
>> etc...
>>      }
>>      else If(portalType="Liferay") {
>>           //use web logic poratl specific API to get the
>> username,gadgetId
>> etc...
>>      }
>>
>> Thanks
>> Bharath
>>
>>
>>
>>
>>
>> Kevin Irmscher wrote:
>> >
>> > Hi Barath,
>> >
>> > JSR168 and WSRP provide a mechanism for portlets to use end-user
>> > information. First of all you declare the user attributes which the
>> > portlet wants to access in the portlet.xml of your portlet
>> > application.
>> >
>> > This looks like this:
>> >
>> > <user-attribute>
>> >     <name>user.name.given</name>
>> > </user-attribute>
>> > <user-attribute>
>> >     <name>user.name.family</name>
>> > </user-attribute>
>> > <user-attribute>
>> >     <name>user.bdate</name>
>> > </user-attribute>
>> > <user-attribute>
>> >     <name>user.gender</name>
>> > </user-attribute>
>> >
>> > You can find a list of all user-attribute elements in the appendix of
>> > the JSR168 document. Here is how to access these attributes in your
>> > portlet:
>> >
>> > Map userInfo = (Map) request.getAttribute(PortletRequest.USER_INFO);
>> >                       if (userInfo != null) {
>> >                               Set keys = userInfo.keySet();
>> >                               for (Object k : keys) {
>> >                                       out.println(k + ": " +
>> userInfo.get(k)
>> >                                                                  +
>> "<br/>");
>> >                               }
>> >                       }
>> >
>> > For which attributes the portlet will actually get a value depends on
>> > the portal. It may provide values for name and birth date but not for
>> > gender.
>> >
>> > Now WSRP comes into play. What kind of user information you can access
>> > depends on both, the consumer and the producer. In order to get user
>> > specific behavior, the remote portlet needs user information which may
>> > be supplied to the producer when the consumer invokes certain
>> > operations, such as getMarkup(). During registration the consumer may
>> > also send custom profile attributes. The remote portlet itself also
>> > needs to declare the user attributes it wants to access in its
>> > portlet.xml, as I explained above.
>> >
>> > To actual use all this stuff you need, on the one hand a consumer
>> > which sends user information to the producer. On the other hand, the
>> > producer has to map this information to the specific user attributes
>> > declared in the portlet.xml so the portlet is able to access them. I
>> > tested this with the WSRP4J producer but unfortunately the portlet
>> > couldn't get the user information that was sent by the consumer
>> > (Liferay portal).
>> >
>> > Regards,
>> > Kevin
>> >
>> >
>> > On 2/21/07, Bharath Kumar N <bh...@gmail.com> wrote:
>> >>
>> >> Diego,
>> >>       I have a another question regarding WSRP.This time its specific
>> to
>> >> WSRP API.
>> >>
>> >> Every portal has certain properties like portalUserName,stylesheet,
>> >> portletID,portletCommunityID
>> >> and so forth.Since WSRP is a specification for interoperability
>> between
>> >> portals,I believe there should
>> >> be an common API for getting the portal specific properties.
>> >>
>> >>     Does WSRP specification provide the APIS to retrieve the portal
>> >> specific
>> >> properties
>> >> like userName,portletID,portletCommunityID ? If yes can you please
>> guide
>> >> me
>> >> through it.
>> >> Any examples or links will be of use?
>> >>
>> >>
>> >> Thanks
>> >> Bharath
>> >>
>> >>
>> >> Bharath Kumar N wrote:
>> >> >
>> >> > Diego,
>> >> >      Thank you very much. I was able to get WSRP working on our
>> >> > portlets.Appreciate all your explanations from day one.
>> >> >
>> >> > Thanks again!!!
>> >> >
>> >> >
>> >> >
>> >> > Diego Louzán-3 wrote:
>> >> >>
>> >> >> See inline response.
>> >> >>
>> >> >> Bharath Kumar N escribió:
>> >> >>> Diego,
>> >> >>>          Thanks a ton for the explanations.It really helped me to
>> >> move
>> >> >>> forward.
>> >> >>>  But,as always i have a few more questions. :)
>> >> >>>
>> >> >>> 1) How do we expose the WSRP producer as a web service.?
>> >> >>
>> >> >> The WSRP producer is already a web service. The endpoints specified
>> by
>> >> >> Axis already implement the required interfaces.
>> >> >>
>> >> >>> 2) A basic question is How and where in the framework is the WSRP
>> >> >>> Producer
>> >> >>> exposed as a webservice ?
>> >> >>>     As per my understanding here is the workflow,
>> >> >>>     i) AxisServlet is the contact point for the Producer.
>> >> >>>     ii) AxisServlet uses the file server-deploy.wsdd to specify
>> which
>> >> >>> classes implement which endpoints.
>> >> >>>        Then it delegates the processing to the class specified on
>> >> >>> server-deploy.wsdd.
>> >> >>>     iii) In producer,each of these classes delegate their
>> processing
>> >> to
>> >> >>> WSRPEngine
>> >> >>>
>> >> >>>    Now where is the webservice coming into picture in this
>> workflow?
>> >> >>> What is
>> >> >>> the web-service endpoint url to access the producer?
>> >> >>
>> >> >> The endpoint urls specified by Axis and accesible through your app
>> >> >> server (in this case, tomcat).
>> >> >>
>> >> >>> iii) We will not be using the proxyportlet because the portlets
>> which
>> >> we
>> >> >>> have are not JSR168 complaint.So we will just register the  wsrp
>> >> >>> producer
>> >> >>> web-service endpoint url  in the plumtree portal.So,thats the
>> reason
>> >> for
>> >> >>> me
>> >> >>> asking the way to expose the producer as a web service.
>> >> >>
>> >> >> If your portlets aren't jsr168, then WSRP4J Producer won't be able
>> to
>> >> >> access them, you'll have to provide your own provider interface for
>> >> >> dealing with your local portlets.
>> >> >>
>> >> >>>
>> >> >>> Thanks
>> >> >>> Bharath
>> >> >>>
>> >> >>>
>> >> >>>
>> >> >>>
>> >> >>>
>> >> >>>
>> >> >>> dlouzan wrote:
>> >> >>>> -----BEGIN PGP SIGNED MESSAGE-----
>> >> >>>> Hash: SHA1
>> >> >>>>
>> >> >>>> See inline response.
>> >> >>>>
>> >> >>>> Bharath Kumar N escribió:
>> >> >>>>> Diego,
>> >> >>>>>         I need some help from u'r side to tie a few loose ends
>> in
>> >> my
>> >> >>>>> understanding of implementation WSRP.
>> >> >>>>>
>> >> >>>>> We are not using Pluto as the provider.We have implemented our
>> own
>> >> >>>>> provider
>> >> >>>>> factory and I have made the change in the
>> >> >>>>> ..\producer\WEB-INF\classes\WSRPServices.properties
>> >> >>>>> ** provider.factory=
>> >> >>>>> com.slb.sis.dp.wsrp.producer.driver.ProviderFactoryImpl.
>> >> >>>>> ** consumer.registry.factory =
>> >> >>>>> org.apache.wsrp4j.producer.driver.ConsumerRegistryFactoryImpl
>> >> {remains
>> >> >>>>> the
>> >> >>>>> same}.
>> >> >>>>> So,my 1st goal  is to test the producer workflow.And next,Debug
>> the
>> >> >>>>> code
>> >> >>>>> and
>> >> >>>>> understand the workflow
>> >> >>>>> between
>> >> >>>>>
>> >> >>>>> *The Consumer and the Axis Engine( AxisServlet)
>> >> >>>>> *Axis Engine and the WSRPEngine
>> >> >>>>> *WSRPEngine and the Provider (implemented by us)
>> >> >>>>>
>> >> >>>>> 1) We will be using the plumtree portal.And my understanding is
>> >> that
>> >> >>>>> Plumtree portal will be the consumer.So,My belief is that
>> consumer
>> >> >>>>> need
>> >> >>>>> not be implemented.Am I right?
>> >> >>>> ProxyPortlet is a generic JSR-168 portlet that can act as a WSRP
>> >> >>>> consumer. As long as your portal accepts JSR-168 portlets (or
>> your
>> >> >>>> portal provides its own WSRP consumer component) you won't have
>> to
>> >> >>>> implement any consumer.
>> >> >>>>
>> >> >>>>> 2)    The consumer calls the producer through the Urls
>> >> >>>>> *http://localhost:8080/usland_wsrp_producer/WSRPBaseService
>> >> {provider
>> >> >>>>> implemented methods are working}
>> >> >>>>>
>> >>
>> *http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService{provider
>> >> >>>>> implemented methods are working}
>> >> >>>>>   which will be registerd while registering the portlet.
>> >> >>>>> Is my understanding right? how do I simulate it without actual
>> >> portal?
>> >> >>>> You can use SwingConsumer as a test for your producer. It's a
>> Swing
>> >> >>>> standalone application that acts as a WSRP consumer. Keep in mind
>> >> that
>> >> >>>> its functionality is very limited and its serves only the purpose
>> of
>> >> >>>> easy testing.
>> >> >>>>
>> >> >>>>> I tried testing the functionality by calling
>> >> >>>>>
>> >>
>> http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService?method=getServiceDescription
>> >> >>>>>
>> >> >>>>> and expected the output to xml format of
>> >> >>>>> getServiceDescriptionResponse.But
>> >> >>>>> it threw a
>> >> >>>>> fault NoTraget service WSRPServiceDescriptionService found.
>> >> >>>>> So how do I register the 4 interfaces service with the
>> AxisServlet?
>> >> >>>> If I'm understanding it correctly, you are using the old WSRP4J
>> >> repos.
>> >> >>>> Check the new producer in the SVN repos that is fully functional
>> and
>> >> >>>> it's easier to understand.
>> >> >>>>     AxisServlet uses the file server-deploy.wsdd to specify which
>> >> >>>> classes implement which endpoints. For instance:
>> >> >>>>
>> >> >>>> <service name="WSRPBaseService" ...>
>> >> >>>> ...
>> >> >>>>   <parameter name="className"
>> >> >>>>
>> >>
>> value="org.apache.wsrp4j.commons.producer.binding.WSRPMarkupBindingImpl"/>
>> >> >>>> ...
>> >> >>>> </service>
>> >> >>>>
>> >> >>>> That declaration links the Markup interface to the class
>> specified
>> >> by
>> >> >>>> the parameter tag. Then, these classes delegate their processing
>> to
>> >> >>>> WSRPEngine singleton. Check the example configuration for more
>> >> details.
>> >> >>>>
>> >> >>>>> 3) What is the first thing which will be called by the Consumer
>> ?
>> >> >>>>>    Is it the AxisServlet which will be the contact point ?
>> >> >>>>>    If not then ,when will the AxisServlet exactly be used in the
>> >> whole
>> >> >>>>> workflow?
>> >> >>>> Yes, the AxisServlet is the contact point. Then it delegates the
>> >> >>>> processing to the class specified on server-deploy.wsdd. In
>> >> producer,
>> >> >>>> each of these classes delegate their processing to WSRPEngine.
>> >> >>>>
>> >> >>>>> 4)When will the WSRPEngine be called.Is it the AxisServlet which
>> >> calls
>> >> >>>>> it
>> >> >>>>> ?
>> >> >>>> Already answered.
>> >> >>>>
>> >> >>>>> Thanks again for the help.Appreciate your patience.
>> >> >>>>>
>> >> >>>>> Regards
>> >> >>>>> Bharath
>> >> >>>> Hope that helps. Regards.
>> >> >>>> Diego.
>> >> >>>>
>> >> >>>>>
>> >> >>>>>
>> >> >>>>>
>> >> >>>>>
>> >> >>>>>
>> >> >>>>>
>> >> >>>>>
>> >> >>>>>
>> >> >>>>> dlouzan wrote:
>> >> >>>>> Bharath Kumar N escribió:
>> >> >>>>>>>> Hi Diego,
>> >> >>>>>>>>     Thanks for the quick reply and the options too. I have
>> gone
>> >> >>>>>>>> through
>> >> >>>>>>>> the
>> >> >>>>>>>> WSRP Primer and surely it is
>> >> >>>>>>>> a good document to understand WSRP conceptually.
>> >> >>>>>>>>    I am trying to understand the working of WSRP4J.The best
>> way
>> >> to
>> >> >>>>>>>> understand would be via an example.
>> >> >>>>>>>> Say,Using the WSRP4J Producer "wsrp4j-producer" and the WSRP
>> >> >>>>>>>> Consumer
>> >> >>>>>>>> "wsrp4j-proxyportlet"
>> >> >>>>>>>> I am trying to configure a simple JSR 168 portlet HelloWorld.
>> >> >>>>>>>>
>> >> >>>>>>>>    I appreciate your comments and feedback on the following
>> >> points.
>> >> >>>>>>>>
>> >> >>>>>>>> Have divided the WSRP interaction between the portlet
>> Producer
>> >> and
>> >> >>>>>>>> the
>> >> >>>>>>>> Consumer into :
>> >> >>>>>>>>
>> >> >>>>>>>> i) Interaction between Producer and the Portlet :
>> >> >>>>>>>>      Which are the configuration files {xml or .properties
>> files
>> >> >>>>>>>> }in
>> >> >>>>>>>> which
>> >> >>>>>>>> the
>> >> >>>>>>>>      changes have to be made to configure the portlet as a
>> >> Producer
>> >> >>>>>>>>
>> >> >>>>>>>> ii) Communication between the Producer and the Consumer :
>> >> >>>>>>>>      The communication is via SOAP messages.Again Which are
>> the
>> >> >>>>>>>> configuration files {xml or .properties fiels }in which the
>> >> changes
>> >> >>>>>>>> have
>> >> >>>>>>>> to
>> >> >>>>>>>> be made for the interaction between the Consumer and
>> Producer.
>> >> >>>>>>>>
>> >> >>>>>>>> iii) Communication between the Consumer and the portal(in my
>> >> case
>> >> >>>>>>>> the
>> >> >>>>>>>> portal
>> >> >>>>>>>> is Plumtree):
>> >> >>>>>>>>
>> >> >>>>>>>>    This I assume is all to do with the registration of the
>> >> Consumer
>> >> >>>>>>>> in
>> >> >>>>>>>> the
>> >> >>>>>>>> Plumtree portal,instead of
>> >> >>>>>>>>    the registration of HelloWorld portlet.
>> >> >>>>>>>>
>> >> >>>>>>>>
>> >> >>>>>>>> Thanks
>> >> >>>>>>>> Bharath
>> >> >>>>>>>>
>> >> >>>>>>>>
>> >> >>>>>>>>
>> >> >>>>>>>> dlouzan wrote:
>> >> >>>>>>>> Bharath Kumar N escribió:
>> >> >>>>>>>>>>> Hi,
>> >> >>>>>>>>>>>
>> >> >>>>>>>>>>>   I'm doing some research on porting existing Portlets to
>> >> >>>>>>>>>>> WSRP.The
>> >> >>>>>>>>>>> portlets
>> >> >>>>>>>>>>> are not JSR-168 complaint. We are using the Plumtree
>> portal
>> >> >>>>>>>>>>> which
>> >> >>>>>>>>>>> supports
>> >> >>>>>>>>>>> WSRP.
>> >> >>>>>>>>>>>  I'm having difficulty finding much information on   the
>> >> >>>>>>>>>>> technical
>> >> >>>>>>>>>>> aspects
>> >> >>>>>>>>>>> of developing a WSRP Portlet, let alone porting   an
>> existing
>> >> >>>>>>>>>>> JSR-168
>> >> >>>>>>>>>>> Portlet to WSRP.
>> >> >>>>>>>>>>>
>> >> >>>>>>>>>>>  I have download WSRP4J source code and built the
>> same.Still
>> >> >>>>>>>>>>> trying
>> >> >>>>>>>>>>> to
>> >> >>>>>>>>>>> understand how it works.
>> >> >>>>>>>>>>>
>> >> >>>>>>>>>>> Are there any resources that  you may know of that can
>> help
>> >> us
>> >> >>>>>>>>>>> to
>> >> >>>>>>>>>>> implement
>> >> >>>>>>>>>>> the same ?  Appreciate any advice on the same
>> >> >>>>>>>>>>>
>> >> >>>>>>>>>>>  Thanks
>> >> >>>>>>>>>>>  Bharath
>> >> >>>>>>>> Well, by your comments I understand that your two main
>> problems
>> >> are
>> >> >>>>>>>> (1)
>> >> >>>>>>>> understanding how WSRP really works and (2) how to expose
>> that
>> >> >>>>>>>> functionality in a non-JSR-168 environment.
>> >> >>>>>>>>
>> >> >>>>>>>> About the first point there aren't many options around. The
>> WSRP
>> >> >>>>>>>> specification is the best of them although very hard to read.
>> If
>> >> >>>>>>>> you
>> >> >>>>>>>> haven't read it already, try the WSRPv1 Primer
>> >> >>>>>>>>
>> >>
>> (http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html).
>> >> >>>>>>>> It shows some of the communication involved in a very clear
>> >> manner.
>> >> >>>>>>>>
>> >> >>>>>>>> On the second point, my experience has always been in a
>> JSR-168
>> >> >>>>>>>> environment. But WSRP4J source code is a nice example on how
>> to
>> >> >>>>>>>> implement WSRP functionality besides JSR-168. In fact, you
>> can
>> >> >>>>>>>> reuse
>> >> >>>>>>>> the
>> >> >>>>>>>> three commons packages and the two persistence ones on any
>> other
>> >> >>>>>>>> project
>> >> >>>>>>>> (they don't have any strong dependencies on JSR-168 besides
>> some
>> >> >>>>>>>> utilities, they are completely reusable componentes for any
>> >> >>>>>>>> producer
>> >> >>>>>>>> or
>> >> >>>>>>>> consumer implementation).
>> >> >>>>>>>>
>> >> >>>>>>>> Hope that helps.
>> >> >>>>>>>>
>> >> >>>>>>>> Regards.
>> >> >>>>>>>> Diego.
>> >> >>>>> Hello Bharath, I'm sorry for the late response but I've been
>> very
>> >> busy
>> >> >>>>> and didn't have time to monitor the list. About your questions:
>> >> >>>>>
>> >> >>>>> i)
>> >> >>>>>     If you're using wsrp4j-producer, you don't have to make any
>> >> >>>>> changes
>> >> >>>>> to your JSR-168 portlets. Just take your .war file containing
>> the
>> >> >>>>> portlets you want to expose and just use the deployer included
>> (see
>> >> >>>>> README.txt for details). Your portlets will be automagically
>> >> exposed
>> >> >>>>> as
>> >> >>>>> WSRP.
>> >> >>>>>     That utility modifies the configuration files exposed by
>> >> >>>>> PlutoPortal
>> >> >>>>> (mainly the ones under WEB-INF/data). It also modifies the
>> >> portlet.xml
>> >> >>>>> file included on your portletapp so all the portlets delegate
>> their
>> >> >>>>> processing to the servlet included in Pluto.
>> >> >>>>>
>> >> >>>>> ii)
>> >> >>>>>     The communication between consumer and producer is
>> standardized
>> >> by
>> >> >>>>> the WSRP specification. The README.txt specifies some extension
>> >> points
>> >> >>>>> you can configure (like Producer URL Writing support), but the
>> >> >>>>> communication will work without that.
>> >> >>>>>
>> >> >>>>> iii)
>> >> >>>>>     You have to register proxyportlet into your portal. Each
>> portal
>> >> >>>>> includes its way to add JSR-168 portlets, so you'll have to read
>> >> the
>> >> >>>>> documentation. Once you have deployed proxyportlet, you have to
>> >> >>>>> configure the remote portlets using the two configuration
>> portlets
>> >> >>>>> included in proxyportlet (there are some limitations, I'll try
>> to
>> >> >>>>> specify them in the README.txt this afternoon).
>> >> >>>>>
>> >> >>>>> Regards.
>> >> >>>>> Diego.
>> >> >>>>>>
>> >> >>>> -----BEGIN PGP SIGNATURE-----
>> >> >>>> Version: GnuPG v1.4.3 (GNU/Linux)
>> >> >>>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>> >> >>>>
>> >> >>>> iD8DBQFFxwpWgyzZYflJelERAkoWAJ4j501tattk5doYiOviWlaBsNiWAACeMB3W
>> >> >>>> swSfE4bvTtoao1m8FmPNjPI=
>> >> >>>> =gX9U
>> >> >>>> -----END PGP SIGNATURE-----
>> >> >>>>
>> >> >>>>
>> >> >>>
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >>
>> >> --
>> >> View this message in context:
>> >>
>> http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9090813
>> >> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
>> >>
>> >>
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9102008
>> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9104370
Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.


Re: Need some clarificatoins

Posted by Kevin Irmscher <ke...@gmail.com>.
Hi Bharath,

I missed the fact that your portlets are not JSR168 compliant. I was
actually talking about user attributes that are passed from the
consumer to the producer. However, I'm still not sure if I got you
right. You are correct that WSRP supports portal interoperability, but
in the sense that you deploy a portlet in one portal which is the WSRP
producer. Then you are able to consume this portlet in other portals
which contain a WSRP consumer implementation.

I think you are talking more about portlet interoperability, i.e.
develope a portlet once and deploy it in several portals without
changing the code. This, however, is addressed by the JSR168 portlet
standard.

Regards,
Kevin


On 2/22/07, Bharath Kumar N <bh...@gmail.com> wrote:
>
> Hi Kevin,
>            Thanks for the quick reply.Portlets we have are not JSR168
> compliant portlets.
> So there are no portlet.xml files for our portlets.
>       As per my understanding you are talking about the user-defined
> attributes which are passed from the
> producer to the consumer.
>      But,I wanted to see if WSRP provides a way( i mean common API ) to
> retrieve portal specific properties
> like username,gadgetId etc.
>      We deploy our portlets in plumtree portal.And plumtree provides API to
> get the portal properties.
> Example :
> /**************************************************************************/
>         ptGadgetID =
> gsServices.getGatewaySpecificConfig().getProperty("PT-Gadget-ID");
>         ptUserName =
> gsServices.getGatewaySpecificConfig().getProperty("PT-User-Name");
>
> /**************************************************************************/
>           Since WSRP supports portal interoperability (ie same code can be
> deployed in other portals without any change ), I thought WSRP provides
> common API which is implemented by all the portal vendors( plumtree,web
> logic portal,liferay etc...) for the portal properties.?
>
>      If it does not then we have to check the portal type and do things
> accordingly.
>      If(portalType="PLumtree") {
>           //use plumtree specific API to get the username,gadgetId etc...
>      }
>      else If(portalType="Weblogic") {
>           //use web logic poratl specific API to get the username,gadgetId
> etc...
>      }
>      else If(portalType="Liferay") {
>           //use web logic poratl specific API to get the username,gadgetId
> etc...
>      }
>
> Thanks
> Bharath
>
>
>
>
>
> Kevin Irmscher wrote:
> >
> > Hi Barath,
> >
> > JSR168 and WSRP provide a mechanism for portlets to use end-user
> > information. First of all you declare the user attributes which the
> > portlet wants to access in the portlet.xml of your portlet
> > application.
> >
> > This looks like this:
> >
> > <user-attribute>
> >     <name>user.name.given</name>
> > </user-attribute>
> > <user-attribute>
> >     <name>user.name.family</name>
> > </user-attribute>
> > <user-attribute>
> >     <name>user.bdate</name>
> > </user-attribute>
> > <user-attribute>
> >     <name>user.gender</name>
> > </user-attribute>
> >
> > You can find a list of all user-attribute elements in the appendix of
> > the JSR168 document. Here is how to access these attributes in your
> > portlet:
> >
> > Map userInfo = (Map) request.getAttribute(PortletRequest.USER_INFO);
> >                       if (userInfo != null) {
> >                               Set keys = userInfo.keySet();
> >                               for (Object k : keys) {
> >                                       out.println(k + ": " + userInfo.get(k)
> >                                                                  + "<br/>");
> >                               }
> >                       }
> >
> > For which attributes the portlet will actually get a value depends on
> > the portal. It may provide values for name and birth date but not for
> > gender.
> >
> > Now WSRP comes into play. What kind of user information you can access
> > depends on both, the consumer and the producer. In order to get user
> > specific behavior, the remote portlet needs user information which may
> > be supplied to the producer when the consumer invokes certain
> > operations, such as getMarkup(). During registration the consumer may
> > also send custom profile attributes. The remote portlet itself also
> > needs to declare the user attributes it wants to access in its
> > portlet.xml, as I explained above.
> >
> > To actual use all this stuff you need, on the one hand a consumer
> > which sends user information to the producer. On the other hand, the
> > producer has to map this information to the specific user attributes
> > declared in the portlet.xml so the portlet is able to access them. I
> > tested this with the WSRP4J producer but unfortunately the portlet
> > couldn't get the user information that was sent by the consumer
> > (Liferay portal).
> >
> > Regards,
> > Kevin
> >
> >
> > On 2/21/07, Bharath Kumar N <bh...@gmail.com> wrote:
> >>
> >> Diego,
> >>       I have a another question regarding WSRP.This time its specific to
> >> WSRP API.
> >>
> >> Every portal has certain properties like portalUserName,stylesheet,
> >> portletID,portletCommunityID
> >> and so forth.Since WSRP is a specification for interoperability between
> >> portals,I believe there should
> >> be an common API for getting the portal specific properties.
> >>
> >>     Does WSRP specification provide the APIS to retrieve the portal
> >> specific
> >> properties
> >> like userName,portletID,portletCommunityID ? If yes can you please guide
> >> me
> >> through it.
> >> Any examples or links will be of use?
> >>
> >>
> >> Thanks
> >> Bharath
> >>
> >>
> >> Bharath Kumar N wrote:
> >> >
> >> > Diego,
> >> >      Thank you very much. I was able to get WSRP working on our
> >> > portlets.Appreciate all your explanations from day one.
> >> >
> >> > Thanks again!!!
> >> >
> >> >
> >> >
> >> > Diego Louzán-3 wrote:
> >> >>
> >> >> See inline response.
> >> >>
> >> >> Bharath Kumar N escribió:
> >> >>> Diego,
> >> >>>          Thanks a ton for the explanations.It really helped me to
> >> move
> >> >>> forward.
> >> >>>  But,as always i have a few more questions. :)
> >> >>>
> >> >>> 1) How do we expose the WSRP producer as a web service.?
> >> >>
> >> >> The WSRP producer is already a web service. The endpoints specified by
> >> >> Axis already implement the required interfaces.
> >> >>
> >> >>> 2) A basic question is How and where in the framework is the WSRP
> >> >>> Producer
> >> >>> exposed as a webservice ?
> >> >>>     As per my understanding here is the workflow,
> >> >>>     i) AxisServlet is the contact point for the Producer.
> >> >>>     ii) AxisServlet uses the file server-deploy.wsdd to specify which
> >> >>> classes implement which endpoints.
> >> >>>        Then it delegates the processing to the class specified on
> >> >>> server-deploy.wsdd.
> >> >>>     iii) In producer,each of these classes delegate their processing
> >> to
> >> >>> WSRPEngine
> >> >>>
> >> >>>    Now where is the webservice coming into picture in this workflow?
> >> >>> What is
> >> >>> the web-service endpoint url to access the producer?
> >> >>
> >> >> The endpoint urls specified by Axis and accesible through your app
> >> >> server (in this case, tomcat).
> >> >>
> >> >>> iii) We will not be using the proxyportlet because the portlets which
> >> we
> >> >>> have are not JSR168 complaint.So we will just register the  wsrp
> >> >>> producer
> >> >>> web-service endpoint url  in the plumtree portal.So,thats the reason
> >> for
> >> >>> me
> >> >>> asking the way to expose the producer as a web service.
> >> >>
> >> >> If your portlets aren't jsr168, then WSRP4J Producer won't be able to
> >> >> access them, you'll have to provide your own provider interface for
> >> >> dealing with your local portlets.
> >> >>
> >> >>>
> >> >>> Thanks
> >> >>> Bharath
> >> >>>
> >> >>>
> >> >>>
> >> >>>
> >> >>>
> >> >>>
> >> >>> dlouzan wrote:
> >> >>>> -----BEGIN PGP SIGNED MESSAGE-----
> >> >>>> Hash: SHA1
> >> >>>>
> >> >>>> See inline response.
> >> >>>>
> >> >>>> Bharath Kumar N escribió:
> >> >>>>> Diego,
> >> >>>>>         I need some help from u'r side to tie a few loose ends in
> >> my
> >> >>>>> understanding of implementation WSRP.
> >> >>>>>
> >> >>>>> We are not using Pluto as the provider.We have implemented our own
> >> >>>>> provider
> >> >>>>> factory and I have made the change in the
> >> >>>>> ..\producer\WEB-INF\classes\WSRPServices.properties
> >> >>>>> ** provider.factory=
> >> >>>>> com.slb.sis.dp.wsrp.producer.driver.ProviderFactoryImpl.
> >> >>>>> ** consumer.registry.factory =
> >> >>>>> org.apache.wsrp4j.producer.driver.ConsumerRegistryFactoryImpl
> >> {remains
> >> >>>>> the
> >> >>>>> same}.
> >> >>>>> So,my 1st goal  is to test the producer workflow.And next,Debug the
> >> >>>>> code
> >> >>>>> and
> >> >>>>> understand the workflow
> >> >>>>> between
> >> >>>>>
> >> >>>>> *The Consumer and the Axis Engine( AxisServlet)
> >> >>>>> *Axis Engine and the WSRPEngine
> >> >>>>> *WSRPEngine and the Provider (implemented by us)
> >> >>>>>
> >> >>>>> 1) We will be using the plumtree portal.And my understanding is
> >> that
> >> >>>>> Plumtree portal will be the consumer.So,My belief is that consumer
> >> >>>>> need
> >> >>>>> not be implemented.Am I right?
> >> >>>> ProxyPortlet is a generic JSR-168 portlet that can act as a WSRP
> >> >>>> consumer. As long as your portal accepts JSR-168 portlets (or your
> >> >>>> portal provides its own WSRP consumer component) you won't have to
> >> >>>> implement any consumer.
> >> >>>>
> >> >>>>> 2)    The consumer calls the producer through the Urls
> >> >>>>> *http://localhost:8080/usland_wsrp_producer/WSRPBaseService
> >> {provider
> >> >>>>> implemented methods are working}
> >> >>>>>
> >> *http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService{provider
> >> >>>>> implemented methods are working}
> >> >>>>>   which will be registerd while registering the portlet.
> >> >>>>> Is my understanding right? how do I simulate it without actual
> >> portal?
> >> >>>> You can use SwingConsumer as a test for your producer. It's a Swing
> >> >>>> standalone application that acts as a WSRP consumer. Keep in mind
> >> that
> >> >>>> its functionality is very limited and its serves only the purpose of
> >> >>>> easy testing.
> >> >>>>
> >> >>>>> I tried testing the functionality by calling
> >> >>>>>
> >> http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService?method=getServiceDescription
> >> >>>>>
> >> >>>>> and expected the output to xml format of
> >> >>>>> getServiceDescriptionResponse.But
> >> >>>>> it threw a
> >> >>>>> fault NoTraget service WSRPServiceDescriptionService found.
> >> >>>>> So how do I register the 4 interfaces service with the AxisServlet?
> >> >>>> If I'm understanding it correctly, you are using the old WSRP4J
> >> repos.
> >> >>>> Check the new producer in the SVN repos that is fully functional and
> >> >>>> it's easier to understand.
> >> >>>>     AxisServlet uses the file server-deploy.wsdd to specify which
> >> >>>> classes implement which endpoints. For instance:
> >> >>>>
> >> >>>> <service name="WSRPBaseService" ...>
> >> >>>> ...
> >> >>>>   <parameter name="className"
> >> >>>>
> >> value="org.apache.wsrp4j.commons.producer.binding.WSRPMarkupBindingImpl"/>
> >> >>>> ...
> >> >>>> </service>
> >> >>>>
> >> >>>> That declaration links the Markup interface to the class specified
> >> by
> >> >>>> the parameter tag. Then, these classes delegate their processing to
> >> >>>> WSRPEngine singleton. Check the example configuration for more
> >> details.
> >> >>>>
> >> >>>>> 3) What is the first thing which will be called by the Consumer ?
> >> >>>>>    Is it the AxisServlet which will be the contact point ?
> >> >>>>>    If not then ,when will the AxisServlet exactly be used in the
> >> whole
> >> >>>>> workflow?
> >> >>>> Yes, the AxisServlet is the contact point. Then it delegates the
> >> >>>> processing to the class specified on server-deploy.wsdd. In
> >> producer,
> >> >>>> each of these classes delegate their processing to WSRPEngine.
> >> >>>>
> >> >>>>> 4)When will the WSRPEngine be called.Is it the AxisServlet which
> >> calls
> >> >>>>> it
> >> >>>>> ?
> >> >>>> Already answered.
> >> >>>>
> >> >>>>> Thanks again for the help.Appreciate your patience.
> >> >>>>>
> >> >>>>> Regards
> >> >>>>> Bharath
> >> >>>> Hope that helps. Regards.
> >> >>>> Diego.
> >> >>>>
> >> >>>>>
> >> >>>>>
> >> >>>>>
> >> >>>>>
> >> >>>>>
> >> >>>>>
> >> >>>>>
> >> >>>>>
> >> >>>>> dlouzan wrote:
> >> >>>>> Bharath Kumar N escribió:
> >> >>>>>>>> Hi Diego,
> >> >>>>>>>>     Thanks for the quick reply and the options too. I have gone
> >> >>>>>>>> through
> >> >>>>>>>> the
> >> >>>>>>>> WSRP Primer and surely it is
> >> >>>>>>>> a good document to understand WSRP conceptually.
> >> >>>>>>>>    I am trying to understand the working of WSRP4J.The best way
> >> to
> >> >>>>>>>> understand would be via an example.
> >> >>>>>>>> Say,Using the WSRP4J Producer "wsrp4j-producer" and the WSRP
> >> >>>>>>>> Consumer
> >> >>>>>>>> "wsrp4j-proxyportlet"
> >> >>>>>>>> I am trying to configure a simple JSR 168 portlet HelloWorld.
> >> >>>>>>>>
> >> >>>>>>>>    I appreciate your comments and feedback on the following
> >> points.
> >> >>>>>>>>
> >> >>>>>>>> Have divided the WSRP interaction between the portlet Producer
> >> and
> >> >>>>>>>> the
> >> >>>>>>>> Consumer into :
> >> >>>>>>>>
> >> >>>>>>>> i) Interaction between Producer and the Portlet :
> >> >>>>>>>>      Which are the configuration files {xml or .properties files
> >> >>>>>>>> }in
> >> >>>>>>>> which
> >> >>>>>>>> the
> >> >>>>>>>>      changes have to be made to configure the portlet as a
> >> Producer
> >> >>>>>>>>
> >> >>>>>>>> ii) Communication between the Producer and the Consumer :
> >> >>>>>>>>      The communication is via SOAP messages.Again Which are the
> >> >>>>>>>> configuration files {xml or .properties fiels }in which the
> >> changes
> >> >>>>>>>> have
> >> >>>>>>>> to
> >> >>>>>>>> be made for the interaction between the Consumer and Producer.
> >> >>>>>>>>
> >> >>>>>>>> iii) Communication between the Consumer and the portal(in my
> >> case
> >> >>>>>>>> the
> >> >>>>>>>> portal
> >> >>>>>>>> is Plumtree):
> >> >>>>>>>>
> >> >>>>>>>>    This I assume is all to do with the registration of the
> >> Consumer
> >> >>>>>>>> in
> >> >>>>>>>> the
> >> >>>>>>>> Plumtree portal,instead of
> >> >>>>>>>>    the registration of HelloWorld portlet.
> >> >>>>>>>>
> >> >>>>>>>>
> >> >>>>>>>> Thanks
> >> >>>>>>>> Bharath
> >> >>>>>>>>
> >> >>>>>>>>
> >> >>>>>>>>
> >> >>>>>>>> dlouzan wrote:
> >> >>>>>>>> Bharath Kumar N escribió:
> >> >>>>>>>>>>> Hi,
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>   I'm doing some research on porting existing Portlets to
> >> >>>>>>>>>>> WSRP.The
> >> >>>>>>>>>>> portlets
> >> >>>>>>>>>>> are not JSR-168 complaint. We are using the Plumtree portal
> >> >>>>>>>>>>> which
> >> >>>>>>>>>>> supports
> >> >>>>>>>>>>> WSRP.
> >> >>>>>>>>>>>  I'm having difficulty finding much information on   the
> >> >>>>>>>>>>> technical
> >> >>>>>>>>>>> aspects
> >> >>>>>>>>>>> of developing a WSRP Portlet, let alone porting   an existing
> >> >>>>>>>>>>> JSR-168
> >> >>>>>>>>>>> Portlet to WSRP.
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>  I have download WSRP4J source code and built the same.Still
> >> >>>>>>>>>>> trying
> >> >>>>>>>>>>> to
> >> >>>>>>>>>>> understand how it works.
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> Are there any resources that  you may know of that can help
> >> us
> >> >>>>>>>>>>> to
> >> >>>>>>>>>>> implement
> >> >>>>>>>>>>> the same ?  Appreciate any advice on the same
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>  Thanks
> >> >>>>>>>>>>>  Bharath
> >> >>>>>>>> Well, by your comments I understand that your two main problems
> >> are
> >> >>>>>>>> (1)
> >> >>>>>>>> understanding how WSRP really works and (2) how to expose that
> >> >>>>>>>> functionality in a non-JSR-168 environment.
> >> >>>>>>>>
> >> >>>>>>>> About the first point there aren't many options around. The WSRP
> >> >>>>>>>> specification is the best of them although very hard to read. If
> >> >>>>>>>> you
> >> >>>>>>>> haven't read it already, try the WSRPv1 Primer
> >> >>>>>>>>
> >> (http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html).
> >> >>>>>>>> It shows some of the communication involved in a very clear
> >> manner.
> >> >>>>>>>>
> >> >>>>>>>> On the second point, my experience has always been in a JSR-168
> >> >>>>>>>> environment. But WSRP4J source code is a nice example on how to
> >> >>>>>>>> implement WSRP functionality besides JSR-168. In fact, you can
> >> >>>>>>>> reuse
> >> >>>>>>>> the
> >> >>>>>>>> three commons packages and the two persistence ones on any other
> >> >>>>>>>> project
> >> >>>>>>>> (they don't have any strong dependencies on JSR-168 besides some
> >> >>>>>>>> utilities, they are completely reusable componentes for any
> >> >>>>>>>> producer
> >> >>>>>>>> or
> >> >>>>>>>> consumer implementation).
> >> >>>>>>>>
> >> >>>>>>>> Hope that helps.
> >> >>>>>>>>
> >> >>>>>>>> Regards.
> >> >>>>>>>> Diego.
> >> >>>>> Hello Bharath, I'm sorry for the late response but I've been very
> >> busy
> >> >>>>> and didn't have time to monitor the list. About your questions:
> >> >>>>>
> >> >>>>> i)
> >> >>>>>     If you're using wsrp4j-producer, you don't have to make any
> >> >>>>> changes
> >> >>>>> to your JSR-168 portlets. Just take your .war file containing the
> >> >>>>> portlets you want to expose and just use the deployer included (see
> >> >>>>> README.txt for details). Your portlets will be automagically
> >> exposed
> >> >>>>> as
> >> >>>>> WSRP.
> >> >>>>>     That utility modifies the configuration files exposed by
> >> >>>>> PlutoPortal
> >> >>>>> (mainly the ones under WEB-INF/data). It also modifies the
> >> portlet.xml
> >> >>>>> file included on your portletapp so all the portlets delegate their
> >> >>>>> processing to the servlet included in Pluto.
> >> >>>>>
> >> >>>>> ii)
> >> >>>>>     The communication between consumer and producer is standardized
> >> by
> >> >>>>> the WSRP specification. The README.txt specifies some extension
> >> points
> >> >>>>> you can configure (like Producer URL Writing support), but the
> >> >>>>> communication will work without that.
> >> >>>>>
> >> >>>>> iii)
> >> >>>>>     You have to register proxyportlet into your portal. Each portal
> >> >>>>> includes its way to add JSR-168 portlets, so you'll have to read
> >> the
> >> >>>>> documentation. Once you have deployed proxyportlet, you have to
> >> >>>>> configure the remote portlets using the two configuration portlets
> >> >>>>> included in proxyportlet (there are some limitations, I'll try to
> >> >>>>> specify them in the README.txt this afternoon).
> >> >>>>>
> >> >>>>> Regards.
> >> >>>>> Diego.
> >> >>>>>>
> >> >>>> -----BEGIN PGP SIGNATURE-----
> >> >>>> Version: GnuPG v1.4.3 (GNU/Linux)
> >> >>>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> >> >>>>
> >> >>>> iD8DBQFFxwpWgyzZYflJelERAkoWAJ4j501tattk5doYiOviWlaBsNiWAACeMB3W
> >> >>>> swSfE4bvTtoao1m8FmPNjPI=
> >> >>>> =gX9U
> >> >>>> -----END PGP SIGNATURE-----
> >> >>>>
> >> >>>>
> >> >>>
> >> >>
> >> >>
> >> >
> >> >
> >>
> >> --
> >> View this message in context:
> >> http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9090813
> >> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
> >>
> >>
> >
> >
>
> --
> View this message in context: http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9102008
> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
>
>

Re: Need some clarificatoins

Posted by Bharath Kumar N <bh...@gmail.com>.
Hi Kevin,
           Thanks for the quick reply.Portlets we have are not JSR168
compliant portlets.
So there are no portlet.xml files for our portlets.
      As per my understanding you are talking about the user-defined
attributes which are passed from the 
producer to the consumer.
     But,I wanted to see if WSRP provides a way( i mean common API ) to 
retrieve portal specific properties 
like username,gadgetId etc.
     We deploy our portlets in plumtree portal.And plumtree provides API to
get the portal properties.
Example :
/**************************************************************************/
        ptGadgetID =
gsServices.getGatewaySpecificConfig().getProperty("PT-Gadget-ID");
        ptUserName =
gsServices.getGatewaySpecificConfig().getProperty("PT-User-Name");

/**************************************************************************/
          Since WSRP supports portal interoperability (ie same code can be
deployed in other portals without any change ), I thought WSRP provides
common API which is implemented by all the portal vendors( plumtree,web
logic portal,liferay etc...) for the portal properties.?
   
     If it does not then we have to check the portal type and do things
accordingly.
     If(portalType="PLumtree") {
          //use plumtree specific API to get the username,gadgetId etc...
     }
     else If(portalType="Weblogic") {
          //use web logic poratl specific API to get the username,gadgetId
etc...
     } 
     else If(portalType="Liferay") {
          //use web logic poratl specific API to get the username,gadgetId
etc...
     }
            
Thanks
Bharath





Kevin Irmscher wrote:
> 
> Hi Barath,
> 
> JSR168 and WSRP provide a mechanism for portlets to use end-user
> information. First of all you declare the user attributes which the
> portlet wants to access in the portlet.xml of your portlet
> application.
> 
> This looks like this:
> 
> <user-attribute>
>     <name>user.name.given</name>
> </user-attribute>	
> <user-attribute>
>     <name>user.name.family</name>
> </user-attribute>
> <user-attribute>
>     <name>user.bdate</name>
> </user-attribute>
> <user-attribute>
>     <name>user.gender</name>
> </user-attribute>
> 
> You can find a list of all user-attribute elements in the appendix of
> the JSR168 document. Here is how to access these attributes in your
> portlet:
> 
> Map userInfo = (Map) request.getAttribute(PortletRequest.USER_INFO);
> 			if (userInfo != null) {
> 				Set keys = userInfo.keySet();
> 				for (Object k : keys) {
> 					out.println(k + ": " + userInfo.get(k)
> 								   + "<br/>");
> 				}
> 			}
> 
> For which attributes the portlet will actually get a value depends on
> the portal. It may provide values for name and birth date but not for
> gender.
> 
> Now WSRP comes into play. What kind of user information you can access
> depends on both, the consumer and the producer. In order to get user
> specific behavior, the remote portlet needs user information which may
> be supplied to the producer when the consumer invokes certain
> operations, such as getMarkup(). During registration the consumer may
> also send custom profile attributes. The remote portlet itself also
> needs to declare the user attributes it wants to access in its
> portlet.xml, as I explained above.
> 
> To actual use all this stuff you need, on the one hand a consumer
> which sends user information to the producer. On the other hand, the
> producer has to map this information to the specific user attributes
> declared in the portlet.xml so the portlet is able to access them. I
> tested this with the WSRP4J producer but unfortunately the portlet
> couldn't get the user information that was sent by the consumer
> (Liferay portal).
> 
> Regards,
> Kevin
> 
> 
> On 2/21/07, Bharath Kumar N <bh...@gmail.com> wrote:
>>
>> Diego,
>>       I have a another question regarding WSRP.This time its specific to
>> WSRP API.
>>
>> Every portal has certain properties like portalUserName,stylesheet,
>> portletID,portletCommunityID
>> and so forth.Since WSRP is a specification for interoperability between
>> portals,I believe there should
>> be an common API for getting the portal specific properties.
>>
>>     Does WSRP specification provide the APIS to retrieve the portal
>> specific
>> properties
>> like userName,portletID,portletCommunityID ? If yes can you please guide
>> me
>> through it.
>> Any examples or links will be of use?
>>
>>
>> Thanks
>> Bharath
>>
>>
>> Bharath Kumar N wrote:
>> >
>> > Diego,
>> >      Thank you very much. I was able to get WSRP working on our
>> > portlets.Appreciate all your explanations from day one.
>> >
>> > Thanks again!!!
>> >
>> >
>> >
>> > Diego Louzán-3 wrote:
>> >>
>> >> See inline response.
>> >>
>> >> Bharath Kumar N escribió:
>> >>> Diego,
>> >>>          Thanks a ton for the explanations.It really helped me to
>> move
>> >>> forward.
>> >>>  But,as always i have a few more questions. :)
>> >>>
>> >>> 1) How do we expose the WSRP producer as a web service.?
>> >>
>> >> The WSRP producer is already a web service. The endpoints specified by
>> >> Axis already implement the required interfaces.
>> >>
>> >>> 2) A basic question is How and where in the framework is the WSRP
>> >>> Producer
>> >>> exposed as a webservice ?
>> >>>     As per my understanding here is the workflow,
>> >>>     i) AxisServlet is the contact point for the Producer.
>> >>>     ii) AxisServlet uses the file server-deploy.wsdd to specify which
>> >>> classes implement which endpoints.
>> >>>        Then it delegates the processing to the class specified on
>> >>> server-deploy.wsdd.
>> >>>     iii) In producer,each of these classes delegate their processing
>> to
>> >>> WSRPEngine
>> >>>
>> >>>    Now where is the webservice coming into picture in this workflow?
>> >>> What is
>> >>> the web-service endpoint url to access the producer?
>> >>
>> >> The endpoint urls specified by Axis and accesible through your app
>> >> server (in this case, tomcat).
>> >>
>> >>> iii) We will not be using the proxyportlet because the portlets which
>> we
>> >>> have are not JSR168 complaint.So we will just register the  wsrp
>> >>> producer
>> >>> web-service endpoint url  in the plumtree portal.So,thats the reason
>> for
>> >>> me
>> >>> asking the way to expose the producer as a web service.
>> >>
>> >> If your portlets aren't jsr168, then WSRP4J Producer won't be able to
>> >> access them, you'll have to provide your own provider interface for
>> >> dealing with your local portlets.
>> >>
>> >>>
>> >>> Thanks
>> >>> Bharath
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> dlouzan wrote:
>> >>>> -----BEGIN PGP SIGNED MESSAGE-----
>> >>>> Hash: SHA1
>> >>>>
>> >>>> See inline response.
>> >>>>
>> >>>> Bharath Kumar N escribió:
>> >>>>> Diego,
>> >>>>>         I need some help from u'r side to tie a few loose ends in
>> my
>> >>>>> understanding of implementation WSRP.
>> >>>>>
>> >>>>> We are not using Pluto as the provider.We have implemented our own
>> >>>>> provider
>> >>>>> factory and I have made the change in the
>> >>>>> ..\producer\WEB-INF\classes\WSRPServices.properties
>> >>>>> ** provider.factory=
>> >>>>> com.slb.sis.dp.wsrp.producer.driver.ProviderFactoryImpl.
>> >>>>> ** consumer.registry.factory =
>> >>>>> org.apache.wsrp4j.producer.driver.ConsumerRegistryFactoryImpl
>> {remains
>> >>>>> the
>> >>>>> same}.
>> >>>>> So,my 1st goal  is to test the producer workflow.And next,Debug the
>> >>>>> code
>> >>>>> and
>> >>>>> understand the workflow
>> >>>>> between
>> >>>>>
>> >>>>> *The Consumer and the Axis Engine( AxisServlet)
>> >>>>> *Axis Engine and the WSRPEngine
>> >>>>> *WSRPEngine and the Provider (implemented by us)
>> >>>>>
>> >>>>> 1) We will be using the plumtree portal.And my understanding is
>> that
>> >>>>> Plumtree portal will be the consumer.So,My belief is that consumer
>> >>>>> need
>> >>>>> not be implemented.Am I right?
>> >>>> ProxyPortlet is a generic JSR-168 portlet that can act as a WSRP
>> >>>> consumer. As long as your portal accepts JSR-168 portlets (or your
>> >>>> portal provides its own WSRP consumer component) you won't have to
>> >>>> implement any consumer.
>> >>>>
>> >>>>> 2)    The consumer calls the producer through the Urls
>> >>>>> *http://localhost:8080/usland_wsrp_producer/WSRPBaseService
>> {provider
>> >>>>> implemented methods are working}
>> >>>>>
>> *http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService{provider
>> >>>>> implemented methods are working}
>> >>>>>   which will be registerd while registering the portlet.
>> >>>>> Is my understanding right? how do I simulate it without actual
>> portal?
>> >>>> You can use SwingConsumer as a test for your producer. It's a Swing
>> >>>> standalone application that acts as a WSRP consumer. Keep in mind
>> that
>> >>>> its functionality is very limited and its serves only the purpose of
>> >>>> easy testing.
>> >>>>
>> >>>>> I tried testing the functionality by calling
>> >>>>>
>> http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService?method=getServiceDescription
>> >>>>>
>> >>>>> and expected the output to xml format of
>> >>>>> getServiceDescriptionResponse.But
>> >>>>> it threw a
>> >>>>> fault NoTraget service WSRPServiceDescriptionService found.
>> >>>>> So how do I register the 4 interfaces service with the AxisServlet?
>> >>>> If I'm understanding it correctly, you are using the old WSRP4J
>> repos.
>> >>>> Check the new producer in the SVN repos that is fully functional and
>> >>>> it's easier to understand.
>> >>>>     AxisServlet uses the file server-deploy.wsdd to specify which
>> >>>> classes implement which endpoints. For instance:
>> >>>>
>> >>>> <service name="WSRPBaseService" ...>
>> >>>> ...
>> >>>>   <parameter name="className"
>> >>>>
>> value="org.apache.wsrp4j.commons.producer.binding.WSRPMarkupBindingImpl"/>
>> >>>> ...
>> >>>> </service>
>> >>>>
>> >>>> That declaration links the Markup interface to the class specified
>> by
>> >>>> the parameter tag. Then, these classes delegate their processing to
>> >>>> WSRPEngine singleton. Check the example configuration for more
>> details.
>> >>>>
>> >>>>> 3) What is the first thing which will be called by the Consumer ?
>> >>>>>    Is it the AxisServlet which will be the contact point ?
>> >>>>>    If not then ,when will the AxisServlet exactly be used in the
>> whole
>> >>>>> workflow?
>> >>>> Yes, the AxisServlet is the contact point. Then it delegates the
>> >>>> processing to the class specified on server-deploy.wsdd. In
>> producer,
>> >>>> each of these classes delegate their processing to WSRPEngine.
>> >>>>
>> >>>>> 4)When will the WSRPEngine be called.Is it the AxisServlet which
>> calls
>> >>>>> it
>> >>>>> ?
>> >>>> Already answered.
>> >>>>
>> >>>>> Thanks again for the help.Appreciate your patience.
>> >>>>>
>> >>>>> Regards
>> >>>>> Bharath
>> >>>> Hope that helps. Regards.
>> >>>> Diego.
>> >>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> dlouzan wrote:
>> >>>>> Bharath Kumar N escribió:
>> >>>>>>>> Hi Diego,
>> >>>>>>>>     Thanks for the quick reply and the options too. I have gone
>> >>>>>>>> through
>> >>>>>>>> the
>> >>>>>>>> WSRP Primer and surely it is
>> >>>>>>>> a good document to understand WSRP conceptually.
>> >>>>>>>>    I am trying to understand the working of WSRP4J.The best way
>> to
>> >>>>>>>> understand would be via an example.
>> >>>>>>>> Say,Using the WSRP4J Producer "wsrp4j-producer" and the WSRP
>> >>>>>>>> Consumer
>> >>>>>>>> "wsrp4j-proxyportlet"
>> >>>>>>>> I am trying to configure a simple JSR 168 portlet HelloWorld.
>> >>>>>>>>
>> >>>>>>>>    I appreciate your comments and feedback on the following
>> points.
>> >>>>>>>>
>> >>>>>>>> Have divided the WSRP interaction between the portlet Producer
>> and
>> >>>>>>>> the
>> >>>>>>>> Consumer into :
>> >>>>>>>>
>> >>>>>>>> i) Interaction between Producer and the Portlet :
>> >>>>>>>>      Which are the configuration files {xml or .properties files
>> >>>>>>>> }in
>> >>>>>>>> which
>> >>>>>>>> the
>> >>>>>>>>      changes have to be made to configure the portlet as a
>> Producer
>> >>>>>>>>
>> >>>>>>>> ii) Communication between the Producer and the Consumer :
>> >>>>>>>>      The communication is via SOAP messages.Again Which are the
>> >>>>>>>> configuration files {xml or .properties fiels }in which the
>> changes
>> >>>>>>>> have
>> >>>>>>>> to
>> >>>>>>>> be made for the interaction between the Consumer and Producer.
>> >>>>>>>>
>> >>>>>>>> iii) Communication between the Consumer and the portal(in my
>> case
>> >>>>>>>> the
>> >>>>>>>> portal
>> >>>>>>>> is Plumtree):
>> >>>>>>>>
>> >>>>>>>>    This I assume is all to do with the registration of the
>> Consumer
>> >>>>>>>> in
>> >>>>>>>> the
>> >>>>>>>> Plumtree portal,instead of
>> >>>>>>>>    the registration of HelloWorld portlet.
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>> Thanks
>> >>>>>>>> Bharath
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>> dlouzan wrote:
>> >>>>>>>> Bharath Kumar N escribió:
>> >>>>>>>>>>> Hi,
>> >>>>>>>>>>>
>> >>>>>>>>>>>   I'm doing some research on porting existing Portlets to
>> >>>>>>>>>>> WSRP.The
>> >>>>>>>>>>> portlets
>> >>>>>>>>>>> are not JSR-168 complaint. We are using the Plumtree portal
>> >>>>>>>>>>> which
>> >>>>>>>>>>> supports
>> >>>>>>>>>>> WSRP.
>> >>>>>>>>>>>  I'm having difficulty finding much information on   the
>> >>>>>>>>>>> technical
>> >>>>>>>>>>> aspects
>> >>>>>>>>>>> of developing a WSRP Portlet, let alone porting   an existing
>> >>>>>>>>>>> JSR-168
>> >>>>>>>>>>> Portlet to WSRP.
>> >>>>>>>>>>>
>> >>>>>>>>>>>  I have download WSRP4J source code and built the same.Still
>> >>>>>>>>>>> trying
>> >>>>>>>>>>> to
>> >>>>>>>>>>> understand how it works.
>> >>>>>>>>>>>
>> >>>>>>>>>>> Are there any resources that  you may know of that can help
>> us
>> >>>>>>>>>>> to
>> >>>>>>>>>>> implement
>> >>>>>>>>>>> the same ?  Appreciate any advice on the same
>> >>>>>>>>>>>
>> >>>>>>>>>>>  Thanks
>> >>>>>>>>>>>  Bharath
>> >>>>>>>> Well, by your comments I understand that your two main problems
>> are
>> >>>>>>>> (1)
>> >>>>>>>> understanding how WSRP really works and (2) how to expose that
>> >>>>>>>> functionality in a non-JSR-168 environment.
>> >>>>>>>>
>> >>>>>>>> About the first point there aren't many options around. The WSRP
>> >>>>>>>> specification is the best of them although very hard to read. If
>> >>>>>>>> you
>> >>>>>>>> haven't read it already, try the WSRPv1 Primer
>> >>>>>>>>
>> (http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html).
>> >>>>>>>> It shows some of the communication involved in a very clear
>> manner.
>> >>>>>>>>
>> >>>>>>>> On the second point, my experience has always been in a JSR-168
>> >>>>>>>> environment. But WSRP4J source code is a nice example on how to
>> >>>>>>>> implement WSRP functionality besides JSR-168. In fact, you can
>> >>>>>>>> reuse
>> >>>>>>>> the
>> >>>>>>>> three commons packages and the two persistence ones on any other
>> >>>>>>>> project
>> >>>>>>>> (they don't have any strong dependencies on JSR-168 besides some
>> >>>>>>>> utilities, they are completely reusable componentes for any
>> >>>>>>>> producer
>> >>>>>>>> or
>> >>>>>>>> consumer implementation).
>> >>>>>>>>
>> >>>>>>>> Hope that helps.
>> >>>>>>>>
>> >>>>>>>> Regards.
>> >>>>>>>> Diego.
>> >>>>> Hello Bharath, I'm sorry for the late response but I've been very
>> busy
>> >>>>> and didn't have time to monitor the list. About your questions:
>> >>>>>
>> >>>>> i)
>> >>>>>     If you're using wsrp4j-producer, you don't have to make any
>> >>>>> changes
>> >>>>> to your JSR-168 portlets. Just take your .war file containing the
>> >>>>> portlets you want to expose and just use the deployer included (see
>> >>>>> README.txt for details). Your portlets will be automagically
>> exposed
>> >>>>> as
>> >>>>> WSRP.
>> >>>>>     That utility modifies the configuration files exposed by
>> >>>>> PlutoPortal
>> >>>>> (mainly the ones under WEB-INF/data). It also modifies the
>> portlet.xml
>> >>>>> file included on your portletapp so all the portlets delegate their
>> >>>>> processing to the servlet included in Pluto.
>> >>>>>
>> >>>>> ii)
>> >>>>>     The communication between consumer and producer is standardized
>> by
>> >>>>> the WSRP specification. The README.txt specifies some extension
>> points
>> >>>>> you can configure (like Producer URL Writing support), but the
>> >>>>> communication will work without that.
>> >>>>>
>> >>>>> iii)
>> >>>>>     You have to register proxyportlet into your portal. Each portal
>> >>>>> includes its way to add JSR-168 portlets, so you'll have to read
>> the
>> >>>>> documentation. Once you have deployed proxyportlet, you have to
>> >>>>> configure the remote portlets using the two configuration portlets
>> >>>>> included in proxyportlet (there are some limitations, I'll try to
>> >>>>> specify them in the README.txt this afternoon).
>> >>>>>
>> >>>>> Regards.
>> >>>>> Diego.
>> >>>>>>
>> >>>> -----BEGIN PGP SIGNATURE-----
>> >>>> Version: GnuPG v1.4.3 (GNU/Linux)
>> >>>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>> >>>>
>> >>>> iD8DBQFFxwpWgyzZYflJelERAkoWAJ4j501tattk5doYiOviWlaBsNiWAACeMB3W
>> >>>> swSfE4bvTtoao1m8FmPNjPI=
>> >>>> =gX9U
>> >>>> -----END PGP SIGNATURE-----
>> >>>>
>> >>>>
>> >>>
>> >>
>> >>
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9090813
>> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9102008
Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.


Re: Need some clarificatoins

Posted by Kevin Irmscher <ke...@gmail.com>.
Hi Barath,

JSR168 and WSRP provide a mechanism for portlets to use end-user
information. First of all you declare the user attributes which the
portlet wants to access in the portlet.xml of your portlet
application.

This looks like this:

<user-attribute>
    <name>user.name.given</name>
</user-attribute>	
<user-attribute>
    <name>user.name.family</name>
</user-attribute>
<user-attribute>
    <name>user.bdate</name>
</user-attribute>
<user-attribute>
    <name>user.gender</name>
</user-attribute>

You can find a list of all user-attribute elements in the appendix of
the JSR168 document. Here is how to access these attributes in your
portlet:

Map userInfo = (Map) request.getAttribute(PortletRequest.USER_INFO);
			if (userInfo != null) {
				Set keys = userInfo.keySet();
				for (Object k : keys) {
					out.println(k + ": " + userInfo.get(k)
								   + "<br/>");
				}
			}

For which attributes the portlet will actually get a value depends on
the portal. It may provide values for name and birth date but not for
gender.

Now WSRP comes into play. What kind of user information you can access
depends on both, the consumer and the producer. In order to get user
specific behavior, the remote portlet needs user information which may
be supplied to the producer when the consumer invokes certain
operations, such as getMarkup(). During registration the consumer may
also send custom profile attributes. The remote portlet itself also
needs to declare the user attributes it wants to access in its
portlet.xml, as I explained above.

To actual use all this stuff you need, on the one hand a consumer
which sends user information to the producer. On the other hand, the
producer has to map this information to the specific user attributes
declared in the portlet.xml so the portlet is able to access them. I
tested this with the WSRP4J producer but unfortunately the portlet
couldn't get the user information that was sent by the consumer
(Liferay portal).

Regards,
Kevin


On 2/21/07, Bharath Kumar N <bh...@gmail.com> wrote:
>
> Diego,
>       I have a another question regarding WSRP.This time its specific to
> WSRP API.
>
> Every portal has certain properties like portalUserName,stylesheet,
> portletID,portletCommunityID
> and so forth.Since WSRP is a specification for interoperability between
> portals,I believe there should
> be an common API for getting the portal specific properties.
>
>     Does WSRP specification provide the APIS to retrieve the portal specific
> properties
> like userName,portletID,portletCommunityID ? If yes can you please guide me
> through it.
> Any examples or links will be of use?
>
>
> Thanks
> Bharath
>
>
> Bharath Kumar N wrote:
> >
> > Diego,
> >      Thank you very much. I was able to get WSRP working on our
> > portlets.Appreciate all your explanations from day one.
> >
> > Thanks again!!!
> >
> >
> >
> > Diego Louzán-3 wrote:
> >>
> >> See inline response.
> >>
> >> Bharath Kumar N escribió:
> >>> Diego,
> >>>          Thanks a ton for the explanations.It really helped me to move
> >>> forward.
> >>>  But,as always i have a few more questions. :)
> >>>
> >>> 1) How do we expose the WSRP producer as a web service.?
> >>
> >> The WSRP producer is already a web service. The endpoints specified by
> >> Axis already implement the required interfaces.
> >>
> >>> 2) A basic question is How and where in the framework is the WSRP
> >>> Producer
> >>> exposed as a webservice ?
> >>>     As per my understanding here is the workflow,
> >>>     i) AxisServlet is the contact point for the Producer.
> >>>     ii) AxisServlet uses the file server-deploy.wsdd to specify which
> >>> classes implement which endpoints.
> >>>        Then it delegates the processing to the class specified on
> >>> server-deploy.wsdd.
> >>>     iii) In producer,each of these classes delegate their processing to
> >>> WSRPEngine
> >>>
> >>>    Now where is the webservice coming into picture in this workflow?
> >>> What is
> >>> the web-service endpoint url to access the producer?
> >>
> >> The endpoint urls specified by Axis and accesible through your app
> >> server (in this case, tomcat).
> >>
> >>> iii) We will not be using the proxyportlet because the portlets which we
> >>> have are not JSR168 complaint.So we will just register the  wsrp
> >>> producer
> >>> web-service endpoint url  in the plumtree portal.So,thats the reason for
> >>> me
> >>> asking the way to expose the producer as a web service.
> >>
> >> If your portlets aren't jsr168, then WSRP4J Producer won't be able to
> >> access them, you'll have to provide your own provider interface for
> >> dealing with your local portlets.
> >>
> >>>
> >>> Thanks
> >>> Bharath
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> dlouzan wrote:
> >>>> -----BEGIN PGP SIGNED MESSAGE-----
> >>>> Hash: SHA1
> >>>>
> >>>> See inline response.
> >>>>
> >>>> Bharath Kumar N escribió:
> >>>>> Diego,
> >>>>>         I need some help from u'r side to tie a few loose ends in my
> >>>>> understanding of implementation WSRP.
> >>>>>
> >>>>> We are not using Pluto as the provider.We have implemented our own
> >>>>> provider
> >>>>> factory and I have made the change in the
> >>>>> ..\producer\WEB-INF\classes\WSRPServices.properties
> >>>>> ** provider.factory=
> >>>>> com.slb.sis.dp.wsrp.producer.driver.ProviderFactoryImpl.
> >>>>> ** consumer.registry.factory =
> >>>>> org.apache.wsrp4j.producer.driver.ConsumerRegistryFactoryImpl {remains
> >>>>> the
> >>>>> same}.
> >>>>> So,my 1st goal  is to test the producer workflow.And next,Debug the
> >>>>> code
> >>>>> and
> >>>>> understand the workflow
> >>>>> between
> >>>>>
> >>>>> *The Consumer and the Axis Engine( AxisServlet)
> >>>>> *Axis Engine and the WSRPEngine
> >>>>> *WSRPEngine and the Provider (implemented by us)
> >>>>>
> >>>>> 1) We will be using the plumtree portal.And my understanding is that
> >>>>> Plumtree portal will be the consumer.So,My belief is that consumer
> >>>>> need
> >>>>> not be implemented.Am I right?
> >>>> ProxyPortlet is a generic JSR-168 portlet that can act as a WSRP
> >>>> consumer. As long as your portal accepts JSR-168 portlets (or your
> >>>> portal provides its own WSRP consumer component) you won't have to
> >>>> implement any consumer.
> >>>>
> >>>>> 2)    The consumer calls the producer through the Urls
> >>>>> *http://localhost:8080/usland_wsrp_producer/WSRPBaseService {provider
> >>>>> implemented methods are working}
> >>>>> *http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService{provider
> >>>>> implemented methods are working}
> >>>>>   which will be registerd while registering the portlet.
> >>>>> Is my understanding right? how do I simulate it without actual portal?
> >>>> You can use SwingConsumer as a test for your producer. It's a Swing
> >>>> standalone application that acts as a WSRP consumer. Keep in mind that
> >>>> its functionality is very limited and its serves only the purpose of
> >>>> easy testing.
> >>>>
> >>>>> I tried testing the functionality by calling
> >>>>> http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService?method=getServiceDescription
> >>>>>
> >>>>> and expected the output to xml format of
> >>>>> getServiceDescriptionResponse.But
> >>>>> it threw a
> >>>>> fault NoTraget service WSRPServiceDescriptionService found.
> >>>>> So how do I register the 4 interfaces service with the AxisServlet?
> >>>> If I'm understanding it correctly, you are using the old WSRP4J repos.
> >>>> Check the new producer in the SVN repos that is fully functional and
> >>>> it's easier to understand.
> >>>>     AxisServlet uses the file server-deploy.wsdd to specify which
> >>>> classes implement which endpoints. For instance:
> >>>>
> >>>> <service name="WSRPBaseService" ...>
> >>>> ...
> >>>>   <parameter name="className"
> >>>> value="org.apache.wsrp4j.commons.producer.binding.WSRPMarkupBindingImpl"/>
> >>>> ...
> >>>> </service>
> >>>>
> >>>> That declaration links the Markup interface to the class specified by
> >>>> the parameter tag. Then, these classes delegate their processing to
> >>>> WSRPEngine singleton. Check the example configuration for more details.
> >>>>
> >>>>> 3) What is the first thing which will be called by the Consumer ?
> >>>>>    Is it the AxisServlet which will be the contact point ?
> >>>>>    If not then ,when will the AxisServlet exactly be used in the whole
> >>>>> workflow?
> >>>> Yes, the AxisServlet is the contact point. Then it delegates the
> >>>> processing to the class specified on server-deploy.wsdd. In producer,
> >>>> each of these classes delegate their processing to WSRPEngine.
> >>>>
> >>>>> 4)When will the WSRPEngine be called.Is it the AxisServlet which calls
> >>>>> it
> >>>>> ?
> >>>> Already answered.
> >>>>
> >>>>> Thanks again for the help.Appreciate your patience.
> >>>>>
> >>>>> Regards
> >>>>> Bharath
> >>>> Hope that helps. Regards.
> >>>> Diego.
> >>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> dlouzan wrote:
> >>>>> Bharath Kumar N escribió:
> >>>>>>>> Hi Diego,
> >>>>>>>>     Thanks for the quick reply and the options too. I have gone
> >>>>>>>> through
> >>>>>>>> the
> >>>>>>>> WSRP Primer and surely it is
> >>>>>>>> a good document to understand WSRP conceptually.
> >>>>>>>>    I am trying to understand the working of WSRP4J.The best way to
> >>>>>>>> understand would be via an example.
> >>>>>>>> Say,Using the WSRP4J Producer "wsrp4j-producer" and the WSRP
> >>>>>>>> Consumer
> >>>>>>>> "wsrp4j-proxyportlet"
> >>>>>>>> I am trying to configure a simple JSR 168 portlet HelloWorld.
> >>>>>>>>
> >>>>>>>>    I appreciate your comments and feedback on the following points.
> >>>>>>>>
> >>>>>>>> Have divided the WSRP interaction between the portlet Producer and
> >>>>>>>> the
> >>>>>>>> Consumer into :
> >>>>>>>>
> >>>>>>>> i) Interaction between Producer and the Portlet :
> >>>>>>>>      Which are the configuration files {xml or .properties files
> >>>>>>>> }in
> >>>>>>>> which
> >>>>>>>> the
> >>>>>>>>      changes have to be made to configure the portlet as a Producer
> >>>>>>>>
> >>>>>>>> ii) Communication between the Producer and the Consumer :
> >>>>>>>>      The communication is via SOAP messages.Again Which are the
> >>>>>>>> configuration files {xml or .properties fiels }in which the changes
> >>>>>>>> have
> >>>>>>>> to
> >>>>>>>> be made for the interaction between the Consumer and Producer.
> >>>>>>>>
> >>>>>>>> iii) Communication between the Consumer and the portal(in my case
> >>>>>>>> the
> >>>>>>>> portal
> >>>>>>>> is Plumtree):
> >>>>>>>>
> >>>>>>>>    This I assume is all to do with the registration of the Consumer
> >>>>>>>> in
> >>>>>>>> the
> >>>>>>>> Plumtree portal,instead of
> >>>>>>>>    the registration of HelloWorld portlet.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Thanks
> >>>>>>>> Bharath
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> dlouzan wrote:
> >>>>>>>> Bharath Kumar N escribió:
> >>>>>>>>>>> Hi,
> >>>>>>>>>>>
> >>>>>>>>>>>   I'm doing some research on porting existing Portlets to
> >>>>>>>>>>> WSRP.The
> >>>>>>>>>>> portlets
> >>>>>>>>>>> are not JSR-168 complaint. We are using the Plumtree portal
> >>>>>>>>>>> which
> >>>>>>>>>>> supports
> >>>>>>>>>>> WSRP.
> >>>>>>>>>>>  I'm having difficulty finding much information on   the
> >>>>>>>>>>> technical
> >>>>>>>>>>> aspects
> >>>>>>>>>>> of developing a WSRP Portlet, let alone porting   an existing
> >>>>>>>>>>> JSR-168
> >>>>>>>>>>> Portlet to WSRP.
> >>>>>>>>>>>
> >>>>>>>>>>>  I have download WSRP4J source code and built the same.Still
> >>>>>>>>>>> trying
> >>>>>>>>>>> to
> >>>>>>>>>>> understand how it works.
> >>>>>>>>>>>
> >>>>>>>>>>> Are there any resources that  you may know of that can help us
> >>>>>>>>>>> to
> >>>>>>>>>>> implement
> >>>>>>>>>>> the same ?  Appreciate any advice on the same
> >>>>>>>>>>>
> >>>>>>>>>>>  Thanks
> >>>>>>>>>>>  Bharath
> >>>>>>>> Well, by your comments I understand that your two main problems are
> >>>>>>>> (1)
> >>>>>>>> understanding how WSRP really works and (2) how to expose that
> >>>>>>>> functionality in a non-JSR-168 environment.
> >>>>>>>>
> >>>>>>>> About the first point there aren't many options around. The WSRP
> >>>>>>>> specification is the best of them although very hard to read. If
> >>>>>>>> you
> >>>>>>>> haven't read it already, try the WSRPv1 Primer
> >>>>>>>> (http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html).
> >>>>>>>> It shows some of the communication involved in a very clear manner.
> >>>>>>>>
> >>>>>>>> On the second point, my experience has always been in a JSR-168
> >>>>>>>> environment. But WSRP4J source code is a nice example on how to
> >>>>>>>> implement WSRP functionality besides JSR-168. In fact, you can
> >>>>>>>> reuse
> >>>>>>>> the
> >>>>>>>> three commons packages and the two persistence ones on any other
> >>>>>>>> project
> >>>>>>>> (they don't have any strong dependencies on JSR-168 besides some
> >>>>>>>> utilities, they are completely reusable componentes for any
> >>>>>>>> producer
> >>>>>>>> or
> >>>>>>>> consumer implementation).
> >>>>>>>>
> >>>>>>>> Hope that helps.
> >>>>>>>>
> >>>>>>>> Regards.
> >>>>>>>> Diego.
> >>>>> Hello Bharath, I'm sorry for the late response but I've been very busy
> >>>>> and didn't have time to monitor the list. About your questions:
> >>>>>
> >>>>> i)
> >>>>>     If you're using wsrp4j-producer, you don't have to make any
> >>>>> changes
> >>>>> to your JSR-168 portlets. Just take your .war file containing the
> >>>>> portlets you want to expose and just use the deployer included (see
> >>>>> README.txt for details). Your portlets will be automagically exposed
> >>>>> as
> >>>>> WSRP.
> >>>>>     That utility modifies the configuration files exposed by
> >>>>> PlutoPortal
> >>>>> (mainly the ones under WEB-INF/data). It also modifies the portlet.xml
> >>>>> file included on your portletapp so all the portlets delegate their
> >>>>> processing to the servlet included in Pluto.
> >>>>>
> >>>>> ii)
> >>>>>     The communication between consumer and producer is standardized by
> >>>>> the WSRP specification. The README.txt specifies some extension points
> >>>>> you can configure (like Producer URL Writing support), but the
> >>>>> communication will work without that.
> >>>>>
> >>>>> iii)
> >>>>>     You have to register proxyportlet into your portal. Each portal
> >>>>> includes its way to add JSR-168 portlets, so you'll have to read the
> >>>>> documentation. Once you have deployed proxyportlet, you have to
> >>>>> configure the remote portlets using the two configuration portlets
> >>>>> included in proxyportlet (there are some limitations, I'll try to
> >>>>> specify them in the README.txt this afternoon).
> >>>>>
> >>>>> Regards.
> >>>>> Diego.
> >>>>>>
> >>>> -----BEGIN PGP SIGNATURE-----
> >>>> Version: GnuPG v1.4.3 (GNU/Linux)
> >>>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> >>>>
> >>>> iD8DBQFFxwpWgyzZYflJelERAkoWAJ4j501tattk5doYiOviWlaBsNiWAACeMB3W
> >>>> swSfE4bvTtoao1m8FmPNjPI=
> >>>> =gX9U
> >>>> -----END PGP SIGNATURE-----
> >>>>
> >>>>
> >>>
> >>
> >>
> >
> >
>
> --
> View this message in context: http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9090813
> Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.
>
>

Re: Need some clarificatoins

Posted by Bharath Kumar N <bh...@gmail.com>.
Diego,
      I have a another question regarding WSRP.This time its specific to
WSRP API.

Every portal has certain properties like portalUserName,stylesheet,
portletID,portletCommunityID
and so forth.Since WSRP is a specification for interoperability between
portals,I believe there should 
be an common API for getting the portal specific properties.

    Does WSRP specification provide the APIS to retrieve the portal specific
properties
like userName,portletID,portletCommunityID ? If yes can you please guide me
through it.
Any examples or links will be of use?


Thanks
Bharath  


Bharath Kumar N wrote:
> 
> Diego,
>      Thank you very much. I was able to get WSRP working on our
> portlets.Appreciate all your explanations from day one.
> 
> Thanks again!!!
> 
> 
> 
> Diego Louzán-3 wrote:
>> 
>> See inline response.
>> 
>> Bharath Kumar N escribió:
>>> Diego,
>>>          Thanks a ton for the explanations.It really helped me to move
>>> forward.
>>>  But,as always i have a few more questions. :)
>>> 
>>> 1) How do we expose the WSRP producer as a web service.?
>> 
>> The WSRP producer is already a web service. The endpoints specified by 
>> Axis already implement the required interfaces.
>> 
>>> 2) A basic question is How and where in the framework is the WSRP
>>> Producer
>>> exposed as a webservice ?
>>>     As per my understanding here is the workflow,
>>>     i) AxisServlet is the contact point for the Producer.
>>>     ii) AxisServlet uses the file server-deploy.wsdd to specify which
>>> classes implement which endpoints.
>>>        Then it delegates the processing to the class specified on
>>> server-deploy.wsdd.
>>>     iii) In producer,each of these classes delegate their processing to
>>> WSRPEngine
>>> 
>>>    Now where is the webservice coming into picture in this workflow?
>>> What is
>>> the web-service endpoint url to access the producer?
>> 
>> The endpoint urls specified by Axis and accesible through your app 
>> server (in this case, tomcat).
>> 
>>> iii) We will not be using the proxyportlet because the portlets which we
>>> have are not JSR168 complaint.So we will just register the  wsrp
>>> producer
>>> web-service endpoint url  in the plumtree portal.So,thats the reason for
>>> me
>>> asking the way to expose the producer as a web service.
>> 
>> If your portlets aren't jsr168, then WSRP4J Producer won't be able to 
>> access them, you'll have to provide your own provider interface for 
>> dealing with your local portlets.
>> 
>>> 
>>> Thanks
>>> Bharath
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> dlouzan wrote:
>>>> -----BEGIN PGP SIGNED MESSAGE-----
>>>> Hash: SHA1
>>>>
>>>> See inline response.
>>>>
>>>> Bharath Kumar N escribió:
>>>>> Diego,
>>>>>         I need some help from u'r side to tie a few loose ends in my
>>>>> understanding of implementation WSRP.
>>>>>
>>>>> We are not using Pluto as the provider.We have implemented our own
>>>>> provider
>>>>> factory and I have made the change in the
>>>>> ..\producer\WEB-INF\classes\WSRPServices.properties
>>>>> ** provider.factory=
>>>>> com.slb.sis.dp.wsrp.producer.driver.ProviderFactoryImpl.
>>>>> ** consumer.registry.factory =
>>>>> org.apache.wsrp4j.producer.driver.ConsumerRegistryFactoryImpl {remains
>>>>> the
>>>>> same}.
>>>>> So,my 1st goal  is to test the producer workflow.And next,Debug the
>>>>> code
>>>>> and
>>>>> understand the workflow 
>>>>> between 
>>>>>
>>>>> *The Consumer and the Axis Engine( AxisServlet)
>>>>> *Axis Engine and the WSRPEngine
>>>>> *WSRPEngine and the Provider (implemented by us)
>>>>>   
>>>>> 1) We will be using the plumtree portal.And my understanding is that 
>>>>> Plumtree portal will be the consumer.So,My belief is that consumer
>>>>> need 
>>>>> not be implemented.Am I right?
>>>> ProxyPortlet is a generic JSR-168 portlet that can act as a WSRP
>>>> consumer. As long as your portal accepts JSR-168 portlets (or your
>>>> portal provides its own WSRP consumer component) you won't have to
>>>> implement any consumer.
>>>>
>>>>> 2)    The consumer calls the producer through the Urls
>>>>> *http://localhost:8080/usland_wsrp_producer/WSRPBaseService {provider
>>>>> implemented methods are working}
>>>>> *http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService{provider
>>>>> implemented methods are working}
>>>>>   which will be registerd while registering the portlet.
>>>>> Is my understanding right? how do I simulate it without actual portal? 
>>>> You can use SwingConsumer as a test for your producer. It's a Swing
>>>> standalone application that acts as a WSRP consumer. Keep in mind that
>>>> its functionality is very limited and its serves only the purpose of
>>>> easy testing.
>>>>
>>>>> I tried testing the functionality by calling 
>>>>> http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService?method=getServiceDescription
>>>>>
>>>>> and expected the output to xml format of
>>>>> getServiceDescriptionResponse.But
>>>>> it threw a 
>>>>> fault NoTraget service WSRPServiceDescriptionService found. 
>>>>> So how do I register the 4 interfaces service with the AxisServlet?
>>>> If I'm understanding it correctly, you are using the old WSRP4J repos.
>>>> Check the new producer in the SVN repos that is fully functional and
>>>> it's easier to understand.
>>>>     AxisServlet uses the file server-deploy.wsdd to specify which
>>>> classes implement which endpoints. For instance:
>>>>
>>>> <service name="WSRPBaseService" ...>
>>>> ...
>>>>   <parameter name="className"
>>>> value="org.apache.wsrp4j.commons.producer.binding.WSRPMarkupBindingImpl"/>
>>>> ...
>>>> </service>
>>>>
>>>> That declaration links the Markup interface to the class specified by
>>>> the parameter tag. Then, these classes delegate their processing to
>>>> WSRPEngine singleton. Check the example configuration for more details.
>>>>
>>>>> 3) What is the first thing which will be called by the Consumer ? 
>>>>>    Is it the AxisServlet which will be the contact point ? 
>>>>>    If not then ,when will the AxisServlet exactly be used in the whole
>>>>> workflow?
>>>> Yes, the AxisServlet is the contact point. Then it delegates the
>>>> processing to the class specified on server-deploy.wsdd. In producer,
>>>> each of these classes delegate their processing to WSRPEngine.
>>>>
>>>>> 4)When will the WSRPEngine be called.Is it the AxisServlet which calls
>>>>> it
>>>>> ?
>>>> Already answered.
>>>>
>>>>> Thanks again for the help.Appreciate your patience.
>>>>>
>>>>> Regards
>>>>> Bharath
>>>> Hope that helps. Regards.
>>>> Diego.
>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> dlouzan wrote:
>>>>> Bharath Kumar N escribió:
>>>>>>>> Hi Diego,
>>>>>>>>     Thanks for the quick reply and the options too. I have gone
>>>>>>>> through
>>>>>>>> the
>>>>>>>> WSRP Primer and surely it is 
>>>>>>>> a good document to understand WSRP conceptually.
>>>>>>>>    I am trying to understand the working of WSRP4J.The best way to
>>>>>>>> understand would be via an example.
>>>>>>>> Say,Using the WSRP4J Producer "wsrp4j-producer" and the WSRP
>>>>>>>> Consumer
>>>>>>>> "wsrp4j-proxyportlet"
>>>>>>>> I am trying to configure a simple JSR 168 portlet HelloWorld.
>>>>>>>>
>>>>>>>>    I appreciate your comments and feedback on the following points. 
>>>>>>>>
>>>>>>>> Have divided the WSRP interaction between the portlet Producer and
>>>>>>>> the
>>>>>>>> Consumer into :
>>>>>>>>
>>>>>>>> i) Interaction between Producer and the Portlet :
>>>>>>>>      Which are the configuration files {xml or .properties files
>>>>>>>> }in
>>>>>>>> which
>>>>>>>> the 
>>>>>>>>      changes have to be made to configure the portlet as a Producer
>>>>>>>>
>>>>>>>> ii) Communication between the Producer and the Consumer :
>>>>>>>>      The communication is via SOAP messages.Again Which are the
>>>>>>>> configuration files {xml or .properties fiels }in which the changes
>>>>>>>> have
>>>>>>>> to
>>>>>>>> be made for the interaction between the Consumer and Producer.
>>>>>>>>
>>>>>>>> iii) Communication between the Consumer and the portal(in my case
>>>>>>>> the
>>>>>>>> portal
>>>>>>>> is Plumtree):
>>>>>>>>
>>>>>>>>    This I assume is all to do with the registration of the Consumer
>>>>>>>> in
>>>>>>>> the
>>>>>>>> Plumtree portal,instead of
>>>>>>>>    the registration of HelloWorld portlet.
>>>>>>>>    
>>>>>>>>    
>>>>>>>> Thanks
>>>>>>>> Bharath
>>>>>>>>                     
>>>>>>>>
>>>>>>>>
>>>>>>>> dlouzan wrote:
>>>>>>>> Bharath Kumar N escribió:
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>>   I'm doing some research on porting existing Portlets to 
>>>>>>>>>>> WSRP.The
>>>>>>>>>>> portlets
>>>>>>>>>>> are not JSR-168 complaint. We are using the Plumtree portal
>>>>>>>>>>> which
>>>>>>>>>>> supports
>>>>>>>>>>> WSRP.
>>>>>>>>>>>  I'm having difficulty finding much information on   the
>>>>>>>>>>> technical
>>>>>>>>>>> aspects
>>>>>>>>>>> of developing a WSRP Portlet, let alone porting   an existing
>>>>>>>>>>> JSR-168
>>>>>>>>>>> Portlet to WSRP.
>>>>>>>>>>>
>>>>>>>>>>>  I have download WSRP4J source code and built the same.Still
>>>>>>>>>>> trying
>>>>>>>>>>> to
>>>>>>>>>>> understand how it works.
>>>>>>>>>>>
>>>>>>>>>>> Are there any resources that  you may know of that can help us
>>>>>>>>>>> to
>>>>>>>>>>> implement
>>>>>>>>>>> the same ?  Appreciate any advice on the same
>>>>>>>>>>>
>>>>>>>>>>>  Thanks
>>>>>>>>>>>  Bharath
>>>>>>>> Well, by your comments I understand that your two main problems are
>>>>>>>> (1)
>>>>>>>> understanding how WSRP really works and (2) how to expose that
>>>>>>>> functionality in a non-JSR-168 environment.
>>>>>>>>
>>>>>>>> About the first point there aren't many options around. The WSRP
>>>>>>>> specification is the best of them although very hard to read. If
>>>>>>>> you
>>>>>>>> haven't read it already, try the WSRPv1 Primer
>>>>>>>> (http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html).
>>>>>>>> It shows some of the communication involved in a very clear manner.
>>>>>>>>
>>>>>>>> On the second point, my experience has always been in a JSR-168
>>>>>>>> environment. But WSRP4J source code is a nice example on how to
>>>>>>>> implement WSRP functionality besides JSR-168. In fact, you can
>>>>>>>> reuse
>>>>>>>> the
>>>>>>>> three commons packages and the two persistence ones on any other
>>>>>>>> project
>>>>>>>> (they don't have any strong dependencies on JSR-168 besides some
>>>>>>>> utilities, they are completely reusable componentes for any
>>>>>>>> producer
>>>>>>>> or
>>>>>>>> consumer implementation).
>>>>>>>>
>>>>>>>> Hope that helps.
>>>>>>>>
>>>>>>>> Regards.
>>>>>>>> Diego.
>>>>> Hello Bharath, I'm sorry for the late response but I've been very busy
>>>>> and didn't have time to monitor the list. About your questions:
>>>>>
>>>>> i)
>>>>>     If you're using wsrp4j-producer, you don't have to make any
>>>>> changes
>>>>> to your JSR-168 portlets. Just take your .war file containing the
>>>>> portlets you want to expose and just use the deployer included (see
>>>>> README.txt for details). Your portlets will be automagically exposed
>>>>> as
>>>>> WSRP.
>>>>>     That utility modifies the configuration files exposed by
>>>>> PlutoPortal
>>>>> (mainly the ones under WEB-INF/data). It also modifies the portlet.xml
>>>>> file included on your portletapp so all the portlets delegate their
>>>>> processing to the servlet included in Pluto.
>>>>>
>>>>> ii)
>>>>>     The communication between consumer and producer is standardized by
>>>>> the WSRP specification. The README.txt specifies some extension points
>>>>> you can configure (like Producer URL Writing support), but the
>>>>> communication will work without that.
>>>>>
>>>>> iii)
>>>>>     You have to register proxyportlet into your portal. Each portal
>>>>> includes its way to add JSR-168 portlets, so you'll have to read the
>>>>> documentation. Once you have deployed proxyportlet, you have to
>>>>> configure the remote portlets using the two configuration portlets
>>>>> included in proxyportlet (there are some limitations, I'll try to
>>>>> specify them in the README.txt this afternoon).
>>>>>
>>>>> Regards.
>>>>> Diego.
>>>>>>
>>>> -----BEGIN PGP SIGNATURE-----
>>>> Version: GnuPG v1.4.3 (GNU/Linux)
>>>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>>>>
>>>> iD8DBQFFxwpWgyzZYflJelERAkoWAJ4j501tattk5doYiOviWlaBsNiWAACeMB3W
>>>> swSfE4bvTtoao1m8FmPNjPI=
>>>> =gX9U
>>>> -----END PGP SIGNATURE-----
>>>>
>>>>
>>> 
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a9090813
Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.


Re: Need some clarificatoins

Posted by Bharath Kumar N <bh...@gmail.com>.
Diego,
     Thank you very much. I was able to get WSRP working on our
portlets.Appreciate all your explanations from day one.

Thanks again!!!



Diego Louzán-3 wrote:
> 
> See inline response.
> 
> Bharath Kumar N escribió:
>> Diego,
>>          Thanks a ton for the explanations.It really helped me to move
>> forward.
>>  But,as always i have a few more questions. :)
>> 
>> 1) How do we expose the WSRP producer as a web service.?
> 
> The WSRP producer is already a web service. The endpoints specified by 
> Axis already implement the required interfaces.
> 
>> 2) A basic question is How and where in the framework is the WSRP
>> Producer
>> exposed as a webservice ?
>>     As per my understanding here is the workflow,
>>     i) AxisServlet is the contact point for the Producer.
>>     ii) AxisServlet uses the file server-deploy.wsdd to specify which
>> classes implement which endpoints.
>>        Then it delegates the processing to the class specified on
>> server-deploy.wsdd.
>>     iii) In producer,each of these classes delegate their processing to
>> WSRPEngine
>> 
>>    Now where is the webservice coming into picture in this workflow? What
>> is
>> the web-service endpoint url to access the producer?
> 
> The endpoint urls specified by Axis and accesible through your app 
> server (in this case, tomcat).
> 
>> iii) We will not be using the proxyportlet because the portlets which we
>> have are not JSR168 complaint.So we will just register the  wsrp producer
>> web-service endpoint url  in the plumtree portal.So,thats the reason for
>> me
>> asking the way to expose the producer as a web service.
> 
> If your portlets aren't jsr168, then WSRP4J Producer won't be able to 
> access them, you'll have to provide your own provider interface for 
> dealing with your local portlets.
> 
>> 
>> Thanks
>> Bharath
>> 
>> 
>> 
>> 
>> 
>> 
>> dlouzan wrote:
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>>
>>> See inline response.
>>>
>>> Bharath Kumar N escribió:
>>>> Diego,
>>>>         I need some help from u'r side to tie a few loose ends in my
>>>> understanding of implementation WSRP.
>>>>
>>>> We are not using Pluto as the provider.We have implemented our own
>>>> provider
>>>> factory and I have made the change in the
>>>> ..\producer\WEB-INF\classes\WSRPServices.properties
>>>> ** provider.factory=
>>>> com.slb.sis.dp.wsrp.producer.driver.ProviderFactoryImpl.
>>>> ** consumer.registry.factory =
>>>> org.apache.wsrp4j.producer.driver.ConsumerRegistryFactoryImpl {remains
>>>> the
>>>> same}.
>>>> So,my 1st goal  is to test the producer workflow.And next,Debug the
>>>> code
>>>> and
>>>> understand the workflow 
>>>> between 
>>>>
>>>> *The Consumer and the Axis Engine( AxisServlet)
>>>> *Axis Engine and the WSRPEngine
>>>> *WSRPEngine and the Provider (implemented by us)
>>>>   
>>>> 1) We will be using the plumtree portal.And my understanding is that 
>>>> Plumtree portal will be the consumer.So,My belief is that consumer need 
>>>> not be implemented.Am I right?
>>> ProxyPortlet is a generic JSR-168 portlet that can act as a WSRP
>>> consumer. As long as your portal accepts JSR-168 portlets (or your
>>> portal provides its own WSRP consumer component) you won't have to
>>> implement any consumer.
>>>
>>>> 2)    The consumer calls the producer through the Urls
>>>> *http://localhost:8080/usland_wsrp_producer/WSRPBaseService {provider
>>>> implemented methods are working}
>>>> *http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService{provider
>>>> implemented methods are working}
>>>>   which will be registerd while registering the portlet.
>>>> Is my understanding right? how do I simulate it without actual portal? 
>>> You can use SwingConsumer as a test for your producer. It's a Swing
>>> standalone application that acts as a WSRP consumer. Keep in mind that
>>> its functionality is very limited and its serves only the purpose of
>>> easy testing.
>>>
>>>> I tried testing the functionality by calling 
>>>> http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService?method=getServiceDescription
>>>>
>>>> and expected the output to xml format of
>>>> getServiceDescriptionResponse.But
>>>> it threw a 
>>>> fault NoTraget service WSRPServiceDescriptionService found. 
>>>> So how do I register the 4 interfaces service with the AxisServlet?
>>> If I'm understanding it correctly, you are using the old WSRP4J repos.
>>> Check the new producer in the SVN repos that is fully functional and
>>> it's easier to understand.
>>>     AxisServlet uses the file server-deploy.wsdd to specify which
>>> classes implement which endpoints. For instance:
>>>
>>> <service name="WSRPBaseService" ...>
>>> ...
>>>   <parameter name="className"
>>> value="org.apache.wsrp4j.commons.producer.binding.WSRPMarkupBindingImpl"/>
>>> ...
>>> </service>
>>>
>>> That declaration links the Markup interface to the class specified by
>>> the parameter tag. Then, these classes delegate their processing to
>>> WSRPEngine singleton. Check the example configuration for more details.
>>>
>>>> 3) What is the first thing which will be called by the Consumer ? 
>>>>    Is it the AxisServlet which will be the contact point ? 
>>>>    If not then ,when will the AxisServlet exactly be used in the whole
>>>> workflow?
>>> Yes, the AxisServlet is the contact point. Then it delegates the
>>> processing to the class specified on server-deploy.wsdd. In producer,
>>> each of these classes delegate their processing to WSRPEngine.
>>>
>>>> 4)When will the WSRPEngine be called.Is it the AxisServlet which calls
>>>> it
>>>> ?
>>> Already answered.
>>>
>>>> Thanks again for the help.Appreciate your patience.
>>>>
>>>> Regards
>>>> Bharath
>>> Hope that helps. Regards.
>>> Diego.
>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> dlouzan wrote:
>>>> Bharath Kumar N escribió:
>>>>>>> Hi Diego,
>>>>>>>     Thanks for the quick reply and the options too. I have gone
>>>>>>> through
>>>>>>> the
>>>>>>> WSRP Primer and surely it is 
>>>>>>> a good document to understand WSRP conceptually.
>>>>>>>    I am trying to understand the working of WSRP4J.The best way to
>>>>>>> understand would be via an example.
>>>>>>> Say,Using the WSRP4J Producer "wsrp4j-producer" and the WSRP
>>>>>>> Consumer
>>>>>>> "wsrp4j-proxyportlet"
>>>>>>> I am trying to configure a simple JSR 168 portlet HelloWorld.
>>>>>>>
>>>>>>>    I appreciate your comments and feedback on the following points. 
>>>>>>>
>>>>>>> Have divided the WSRP interaction between the portlet Producer and
>>>>>>> the
>>>>>>> Consumer into :
>>>>>>>
>>>>>>> i) Interaction between Producer and the Portlet :
>>>>>>>      Which are the configuration files {xml or .properties files }in
>>>>>>> which
>>>>>>> the 
>>>>>>>      changes have to be made to configure the portlet as a Producer
>>>>>>>
>>>>>>> ii) Communication between the Producer and the Consumer :
>>>>>>>      The communication is via SOAP messages.Again Which are the
>>>>>>> configuration files {xml or .properties fiels }in which the changes
>>>>>>> have
>>>>>>> to
>>>>>>> be made for the interaction between the Consumer and Producer.
>>>>>>>
>>>>>>> iii) Communication between the Consumer and the portal(in my case
>>>>>>> the
>>>>>>> portal
>>>>>>> is Plumtree):
>>>>>>>
>>>>>>>    This I assume is all to do with the registration of the Consumer
>>>>>>> in
>>>>>>> the
>>>>>>> Plumtree portal,instead of
>>>>>>>    the registration of HelloWorld portlet.
>>>>>>>    
>>>>>>>    
>>>>>>> Thanks
>>>>>>> Bharath
>>>>>>>                     
>>>>>>>
>>>>>>>
>>>>>>> dlouzan wrote:
>>>>>>> Bharath Kumar N escribió:
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>>   I'm doing some research on porting existing Portlets to 
>>>>>>>>>> WSRP.The
>>>>>>>>>> portlets
>>>>>>>>>> are not JSR-168 complaint. We are using the Plumtree portal which
>>>>>>>>>> supports
>>>>>>>>>> WSRP.
>>>>>>>>>>  I'm having difficulty finding much information on   the
>>>>>>>>>> technical
>>>>>>>>>> aspects
>>>>>>>>>> of developing a WSRP Portlet, let alone porting   an existing
>>>>>>>>>> JSR-168
>>>>>>>>>> Portlet to WSRP.
>>>>>>>>>>
>>>>>>>>>>  I have download WSRP4J source code and built the same.Still
>>>>>>>>>> trying
>>>>>>>>>> to
>>>>>>>>>> understand how it works.
>>>>>>>>>>
>>>>>>>>>> Are there any resources that  you may know of that can help us to
>>>>>>>>>> implement
>>>>>>>>>> the same ?  Appreciate any advice on the same
>>>>>>>>>>
>>>>>>>>>>  Thanks
>>>>>>>>>>  Bharath
>>>>>>> Well, by your comments I understand that your two main problems are
>>>>>>> (1)
>>>>>>> understanding how WSRP really works and (2) how to expose that
>>>>>>> functionality in a non-JSR-168 environment.
>>>>>>>
>>>>>>> About the first point there aren't many options around. The WSRP
>>>>>>> specification is the best of them although very hard to read. If you
>>>>>>> haven't read it already, try the WSRPv1 Primer
>>>>>>> (http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html).
>>>>>>> It shows some of the communication involved in a very clear manner.
>>>>>>>
>>>>>>> On the second point, my experience has always been in a JSR-168
>>>>>>> environment. But WSRP4J source code is a nice example on how to
>>>>>>> implement WSRP functionality besides JSR-168. In fact, you can reuse
>>>>>>> the
>>>>>>> three commons packages and the two persistence ones on any other
>>>>>>> project
>>>>>>> (they don't have any strong dependencies on JSR-168 besides some
>>>>>>> utilities, they are completely reusable componentes for any producer
>>>>>>> or
>>>>>>> consumer implementation).
>>>>>>>
>>>>>>> Hope that helps.
>>>>>>>
>>>>>>> Regards.
>>>>>>> Diego.
>>>> Hello Bharath, I'm sorry for the late response but I've been very busy
>>>> and didn't have time to monitor the list. About your questions:
>>>>
>>>> i)
>>>>     If you're using wsrp4j-producer, you don't have to make any changes
>>>> to your JSR-168 portlets. Just take your .war file containing the
>>>> portlets you want to expose and just use the deployer included (see
>>>> README.txt for details). Your portlets will be automagically exposed as
>>>> WSRP.
>>>>     That utility modifies the configuration files exposed by
>>>> PlutoPortal
>>>> (mainly the ones under WEB-INF/data). It also modifies the portlet.xml
>>>> file included on your portletapp so all the portlets delegate their
>>>> processing to the servlet included in Pluto.
>>>>
>>>> ii)
>>>>     The communication between consumer and producer is standardized by
>>>> the WSRP specification. The README.txt specifies some extension points
>>>> you can configure (like Producer URL Writing support), but the
>>>> communication will work without that.
>>>>
>>>> iii)
>>>>     You have to register proxyportlet into your portal. Each portal
>>>> includes its way to add JSR-168 portlets, so you'll have to read the
>>>> documentation. Once you have deployed proxyportlet, you have to
>>>> configure the remote portlets using the two configuration portlets
>>>> included in proxyportlet (there are some limitations, I'll try to
>>>> specify them in the README.txt this afternoon).
>>>>
>>>> Regards.
>>>> Diego.
>>>>>
>>> -----BEGIN PGP SIGNATURE-----
>>> Version: GnuPG v1.4.3 (GNU/Linux)
>>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>>>
>>> iD8DBQFFxwpWgyzZYflJelERAkoWAJ4j501tattk5doYiOviWlaBsNiWAACeMB3W
>>> swSfE4bvTtoao1m8FmPNjPI=
>>> =gX9U
>>> -----END PGP SIGNATURE-----
>>>
>>>
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a8932750
Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.


Re: Need some clarificatoins

Posted by Diego Louzán <di...@fastmail.fm>.
See inline response.

Bharath Kumar N escribió:
> Diego,
>          Thanks a ton for the explanations.It really helped me to move
> forward.
>  But,as always i have a few more questions. :)
> 
> 1) How do we expose the WSRP producer as a web service.?

The WSRP producer is already a web service. The endpoints specified by 
Axis already implement the required interfaces.

> 2) A basic question is How and where in the framework is the WSRP Producer
> exposed as a webservice ?
>     As per my understanding here is the workflow,
>     i) AxisServlet is the contact point for the Producer.
>     ii) AxisServlet uses the file server-deploy.wsdd to specify which
> classes implement which endpoints.
>        Then it delegates the processing to the class specified on
> server-deploy.wsdd.
>     iii) In producer,each of these classes delegate their processing to
> WSRPEngine
> 
>    Now where is the webservice coming into picture in this workflow? What is
> the web-service endpoint url to access the producer?

The endpoint urls specified by Axis and accesible through your app 
server (in this case, tomcat).

> iii) We will not be using the proxyportlet because the portlets which we
> have are not JSR168 complaint.So we will just register the  wsrp producer
> web-service endpoint url  in the plumtree portal.So,thats the reason for me
> asking the way to expose the producer as a web service.

If your portlets aren't jsr168, then WSRP4J Producer won't be able to 
access them, you'll have to provide your own provider interface for 
dealing with your local portlets.

> 
> Thanks
> Bharath
> 
> 
> 
> 
> 
> 
> dlouzan wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> See inline response.
>>
>> Bharath Kumar N escribió:
>>> Diego,
>>>         I need some help from u'r side to tie a few loose ends in my
>>> understanding of implementation WSRP.
>>>
>>> We are not using Pluto as the provider.We have implemented our own
>>> provider
>>> factory and I have made the change in the
>>> ..\producer\WEB-INF\classes\WSRPServices.properties
>>> ** provider.factory=
>>> com.slb.sis.dp.wsrp.producer.driver.ProviderFactoryImpl.
>>> ** consumer.registry.factory =
>>> org.apache.wsrp4j.producer.driver.ConsumerRegistryFactoryImpl {remains
>>> the
>>> same}.
>>> So,my 1st goal  is to test the producer workflow.And next,Debug the code
>>> and
>>> understand the workflow 
>>> between 
>>>
>>> *The Consumer and the Axis Engine( AxisServlet)
>>> *Axis Engine and the WSRPEngine
>>> *WSRPEngine and the Provider (implemented by us)
>>>   
>>> 1) We will be using the plumtree portal.And my understanding is that 
>>> Plumtree portal will be the consumer.So,My belief is that consumer need 
>>> not be implemented.Am I right?
>> ProxyPortlet is a generic JSR-168 portlet that can act as a WSRP
>> consumer. As long as your portal accepts JSR-168 portlets (or your
>> portal provides its own WSRP consumer component) you won't have to
>> implement any consumer.
>>
>>> 2)    The consumer calls the producer through the Urls
>>> *http://localhost:8080/usland_wsrp_producer/WSRPBaseService {provider
>>> implemented methods are working}
>>> *http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService{provider
>>> implemented methods are working}
>>>   which will be registerd while registering the portlet.
>>> Is my understanding right? how do I simulate it without actual portal? 
>> You can use SwingConsumer as a test for your producer. It's a Swing
>> standalone application that acts as a WSRP consumer. Keep in mind that
>> its functionality is very limited and its serves only the purpose of
>> easy testing.
>>
>>> I tried testing the functionality by calling 
>>> http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService?method=getServiceDescription
>>>
>>> and expected the output to xml format of
>>> getServiceDescriptionResponse.But
>>> it threw a 
>>> fault NoTraget service WSRPServiceDescriptionService found. 
>>> So how do I register the 4 interfaces service with the AxisServlet?
>> If I'm understanding it correctly, you are using the old WSRP4J repos.
>> Check the new producer in the SVN repos that is fully functional and
>> it's easier to understand.
>>     AxisServlet uses the file server-deploy.wsdd to specify which
>> classes implement which endpoints. For instance:
>>
>> <service name="WSRPBaseService" ...>
>> ...
>>   <parameter name="className"
>> value="org.apache.wsrp4j.commons.producer.binding.WSRPMarkupBindingImpl"/>
>> ...
>> </service>
>>
>> That declaration links the Markup interface to the class specified by
>> the parameter tag. Then, these classes delegate their processing to
>> WSRPEngine singleton. Check the example configuration for more details.
>>
>>> 3) What is the first thing which will be called by the Consumer ? 
>>>    Is it the AxisServlet which will be the contact point ? 
>>>    If not then ,when will the AxisServlet exactly be used in the whole
>>> workflow?
>> Yes, the AxisServlet is the contact point. Then it delegates the
>> processing to the class specified on server-deploy.wsdd. In producer,
>> each of these classes delegate their processing to WSRPEngine.
>>
>>> 4)When will the WSRPEngine be called.Is it the AxisServlet which calls it
>>> ?
>> Already answered.
>>
>>> Thanks again for the help.Appreciate your patience.
>>>
>>> Regards
>>> Bharath
>> Hope that helps. Regards.
>> Diego.
>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> dlouzan wrote:
>>> Bharath Kumar N escribió:
>>>>>> Hi Diego,
>>>>>>     Thanks for the quick reply and the options too. I have gone
>>>>>> through
>>>>>> the
>>>>>> WSRP Primer and surely it is 
>>>>>> a good document to understand WSRP conceptually.
>>>>>>    I am trying to understand the working of WSRP4J.The best way to
>>>>>> understand would be via an example.
>>>>>> Say,Using the WSRP4J Producer "wsrp4j-producer" and the WSRP Consumer
>>>>>> "wsrp4j-proxyportlet"
>>>>>> I am trying to configure a simple JSR 168 portlet HelloWorld.
>>>>>>
>>>>>>    I appreciate your comments and feedback on the following points. 
>>>>>>
>>>>>> Have divided the WSRP interaction between the portlet Producer and the
>>>>>> Consumer into :
>>>>>>
>>>>>> i) Interaction between Producer and the Portlet :
>>>>>>      Which are the configuration files {xml or .properties files }in
>>>>>> which
>>>>>> the 
>>>>>>      changes have to be made to configure the portlet as a Producer
>>>>>>
>>>>>> ii) Communication between the Producer and the Consumer :
>>>>>>      The communication is via SOAP messages.Again Which are the
>>>>>> configuration files {xml or .properties fiels }in which the changes
>>>>>> have
>>>>>> to
>>>>>> be made for the interaction between the Consumer and Producer.
>>>>>>
>>>>>> iii) Communication between the Consumer and the portal(in my case the
>>>>>> portal
>>>>>> is Plumtree):
>>>>>>
>>>>>>    This I assume is all to do with the registration of the Consumer in
>>>>>> the
>>>>>> Plumtree portal,instead of
>>>>>>    the registration of HelloWorld portlet.
>>>>>>    
>>>>>>    
>>>>>> Thanks
>>>>>> Bharath
>>>>>>                     
>>>>>>
>>>>>>
>>>>>> dlouzan wrote:
>>>>>> Bharath Kumar N escribió:
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>>   I'm doing some research on porting existing Portlets to  WSRP.The
>>>>>>>>> portlets
>>>>>>>>> are not JSR-168 complaint. We are using the Plumtree portal which
>>>>>>>>> supports
>>>>>>>>> WSRP.
>>>>>>>>>  I'm having difficulty finding much information on   the technical
>>>>>>>>> aspects
>>>>>>>>> of developing a WSRP Portlet, let alone porting   an existing
>>>>>>>>> JSR-168
>>>>>>>>> Portlet to WSRP.
>>>>>>>>>
>>>>>>>>>  I have download WSRP4J source code and built the same.Still trying
>>>>>>>>> to
>>>>>>>>> understand how it works.
>>>>>>>>>
>>>>>>>>> Are there any resources that  you may know of that can help us to
>>>>>>>>> implement
>>>>>>>>> the same ?  Appreciate any advice on the same
>>>>>>>>>
>>>>>>>>>  Thanks
>>>>>>>>>  Bharath
>>>>>> Well, by your comments I understand that your two main problems are
>>>>>> (1)
>>>>>> understanding how WSRP really works and (2) how to expose that
>>>>>> functionality in a non-JSR-168 environment.
>>>>>>
>>>>>> About the first point there aren't many options around. The WSRP
>>>>>> specification is the best of them although very hard to read. If you
>>>>>> haven't read it already, try the WSRPv1 Primer
>>>>>> (http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html).
>>>>>> It shows some of the communication involved in a very clear manner.
>>>>>>
>>>>>> On the second point, my experience has always been in a JSR-168
>>>>>> environment. But WSRP4J source code is a nice example on how to
>>>>>> implement WSRP functionality besides JSR-168. In fact, you can reuse
>>>>>> the
>>>>>> three commons packages and the two persistence ones on any other
>>>>>> project
>>>>>> (they don't have any strong dependencies on JSR-168 besides some
>>>>>> utilities, they are completely reusable componentes for any producer
>>>>>> or
>>>>>> consumer implementation).
>>>>>>
>>>>>> Hope that helps.
>>>>>>
>>>>>> Regards.
>>>>>> Diego.
>>> Hello Bharath, I'm sorry for the late response but I've been very busy
>>> and didn't have time to monitor the list. About your questions:
>>>
>>> i)
>>>     If you're using wsrp4j-producer, you don't have to make any changes
>>> to your JSR-168 portlets. Just take your .war file containing the
>>> portlets you want to expose and just use the deployer included (see
>>> README.txt for details). Your portlets will be automagically exposed as
>>> WSRP.
>>>     That utility modifies the configuration files exposed by PlutoPortal
>>> (mainly the ones under WEB-INF/data). It also modifies the portlet.xml
>>> file included on your portletapp so all the portlets delegate their
>>> processing to the servlet included in Pluto.
>>>
>>> ii)
>>>     The communication between consumer and producer is standardized by
>>> the WSRP specification. The README.txt specifies some extension points
>>> you can configure (like Producer URL Writing support), but the
>>> communication will work without that.
>>>
>>> iii)
>>>     You have to register proxyportlet into your portal. Each portal
>>> includes its way to add JSR-168 portlets, so you'll have to read the
>>> documentation. Once you have deployed proxyportlet, you have to
>>> configure the remote portlets using the two configuration portlets
>>> included in proxyportlet (there are some limitations, I'll try to
>>> specify them in the README.txt this afternoon).
>>>
>>> Regards.
>>> Diego.
>>>>
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.3 (GNU/Linux)
>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>>
>> iD8DBQFFxwpWgyzZYflJelERAkoWAJ4j501tattk5doYiOviWlaBsNiWAACeMB3W
>> swSfE4bvTtoao1m8FmPNjPI=
>> =gX9U
>> -----END PGP SIGNATURE-----
>>
>>
> 

Re: Need some clarificatoins

Posted by Bharath Kumar N <bh...@gmail.com>.
Diego,
         Thanks a ton for the explanations.It really helped me to move
forward.
 But,as always i have a few more questions. :)

1) How do we expose the WSRP producer as a web service.?

2) A basic question is How and where in the framework is the WSRP Producer
exposed as a webservice ?
    As per my understanding here is the workflow,
    i) AxisServlet is the contact point for the Producer.
    ii) AxisServlet uses the file server-deploy.wsdd to specify which
classes implement which endpoints.
       Then it delegates the processing to the class specified on
server-deploy.wsdd.
    iii) In producer,each of these classes delegate their processing to
WSRPEngine

   Now where is the webservice coming into picture in this workflow? What is
the web-service endpoint url to access the producer?

iii) We will not be using the proxyportlet because the portlets which we
have are not JSR168 complaint.So we will just register the  wsrp producer
web-service endpoint url  in the plumtree portal.So,thats the reason for me
asking the way to expose the producer as a web service.


Thanks
Bharath






dlouzan wrote:
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> See inline response.
> 
> Bharath Kumar N escribió:
>> Diego,
>>         I need some help from u'r side to tie a few loose ends in my
>> understanding of implementation WSRP.
>> 
>> We are not using Pluto as the provider.We have implemented our own
>> provider
>> factory and I have made the change in the
>> ..\producer\WEB-INF\classes\WSRPServices.properties
>> ** provider.factory=
>> com.slb.sis.dp.wsrp.producer.driver.ProviderFactoryImpl.
>> ** consumer.registry.factory =
>> org.apache.wsrp4j.producer.driver.ConsumerRegistryFactoryImpl {remains
>> the
>> same}.
>> So,my 1st goal  is to test the producer workflow.And next,Debug the code
>> and
>> understand the workflow 
>> between 
>> 
>> *The Consumer and the Axis Engine( AxisServlet)
>> *Axis Engine and the WSRPEngine
>> *WSRPEngine and the Provider (implemented by us)
>>   
>> 1) We will be using the plumtree portal.And my understanding is that 
>> Plumtree portal will be the consumer.So,My belief is that consumer need 
>> not be implemented.Am I right?
> 
> ProxyPortlet is a generic JSR-168 portlet that can act as a WSRP
> consumer. As long as your portal accepts JSR-168 portlets (or your
> portal provides its own WSRP consumer component) you won't have to
> implement any consumer.
> 
>> 2)    The consumer calls the producer through the Urls
>> *http://localhost:8080/usland_wsrp_producer/WSRPBaseService {provider
>> implemented methods are working}
>> *http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService{provider
>> implemented methods are working}
>>   which will be registerd while registering the portlet.
>> Is my understanding right? how do I simulate it without actual portal? 
> 
> You can use SwingConsumer as a test for your producer. It's a Swing
> standalone application that acts as a WSRP consumer. Keep in mind that
> its functionality is very limited and its serves only the purpose of
> easy testing.
> 
>> I tried testing the functionality by calling 
>> http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService?method=getServiceDescription
>> 
>> and expected the output to xml format of
>> getServiceDescriptionResponse.But
>> it threw a 
>> fault NoTraget service WSRPServiceDescriptionService found. 
>> So how do I register the 4 interfaces service with the AxisServlet?
> 
> If I'm understanding it correctly, you are using the old WSRP4J repos.
> Check the new producer in the SVN repos that is fully functional and
> it's easier to understand.
>     AxisServlet uses the file server-deploy.wsdd to specify which
> classes implement which endpoints. For instance:
> 
> <service name="WSRPBaseService" ...>
> ...
>   <parameter name="className"
> value="org.apache.wsrp4j.commons.producer.binding.WSRPMarkupBindingImpl"/>
> ...
> </service>
> 
> That declaration links the Markup interface to the class specified by
> the parameter tag. Then, these classes delegate their processing to
> WSRPEngine singleton. Check the example configuration for more details.
> 
>> 3) What is the first thing which will be called by the Consumer ? 
>>    Is it the AxisServlet which will be the contact point ? 
>>    If not then ,when will the AxisServlet exactly be used in the whole
>> workflow?
> 
> Yes, the AxisServlet is the contact point. Then it delegates the
> processing to the class specified on server-deploy.wsdd. In producer,
> each of these classes delegate their processing to WSRPEngine.
> 
>> 4)When will the WSRPEngine be called.Is it the AxisServlet which calls it
>> ?
> 
> Already answered.
> 
>> 
>> Thanks again for the help.Appreciate your patience.
>> 
>> Regards
>> Bharath
> 
> Hope that helps. Regards.
> Diego.
> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> dlouzan wrote:
>> Bharath Kumar N escribió:
>>>>> Hi Diego,
>>>>>     Thanks for the quick reply and the options too. I have gone
>>>>> through
>>>>> the
>>>>> WSRP Primer and surely it is 
>>>>> a good document to understand WSRP conceptually.
>>>>>    I am trying to understand the working of WSRP4J.The best way to
>>>>> understand would be via an example.
>>>>> Say,Using the WSRP4J Producer "wsrp4j-producer" and the WSRP Consumer
>>>>> "wsrp4j-proxyportlet"
>>>>> I am trying to configure a simple JSR 168 portlet HelloWorld.
>>>>>
>>>>>    I appreciate your comments and feedback on the following points. 
>>>>>
>>>>> Have divided the WSRP interaction between the portlet Producer and the
>>>>> Consumer into :
>>>>>
>>>>> i) Interaction between Producer and the Portlet :
>>>>>      Which are the configuration files {xml or .properties files }in
>>>>> which
>>>>> the 
>>>>>      changes have to be made to configure the portlet as a Producer
>>>>>
>>>>> ii) Communication between the Producer and the Consumer :
>>>>>      The communication is via SOAP messages.Again Which are the
>>>>> configuration files {xml or .properties fiels }in which the changes
>>>>> have
>>>>> to
>>>>> be made for the interaction between the Consumer and Producer.
>>>>>
>>>>> iii) Communication between the Consumer and the portal(in my case the
>>>>> portal
>>>>> is Plumtree):
>>>>>
>>>>>    This I assume is all to do with the registration of the Consumer in
>>>>> the
>>>>> Plumtree portal,instead of
>>>>>    the registration of HelloWorld portlet.
>>>>>    
>>>>>    
>>>>> Thanks
>>>>> Bharath
>>>>>                     
>>>>>
>>>>>
>>>>> dlouzan wrote:
>>>>> Bharath Kumar N escribió:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>>   I'm doing some research on porting existing Portlets to  WSRP.The
>>>>>>>> portlets
>>>>>>>> are not JSR-168 complaint. We are using the Plumtree portal which
>>>>>>>> supports
>>>>>>>> WSRP.
>>>>>>>>  I'm having difficulty finding much information on   the technical
>>>>>>>> aspects
>>>>>>>> of developing a WSRP Portlet, let alone porting   an existing
>>>>>>>> JSR-168
>>>>>>>> Portlet to WSRP.
>>>>>>>>
>>>>>>>>  I have download WSRP4J source code and built the same.Still trying
>>>>>>>> to
>>>>>>>> understand how it works.
>>>>>>>>
>>>>>>>> Are there any resources that  you may know of that can help us to
>>>>>>>> implement
>>>>>>>> the same ?  Appreciate any advice on the same
>>>>>>>>
>>>>>>>>  Thanks
>>>>>>>>  Bharath
>>>>> Well, by your comments I understand that your two main problems are
>>>>> (1)
>>>>> understanding how WSRP really works and (2) how to expose that
>>>>> functionality in a non-JSR-168 environment.
>>>>>
>>>>> About the first point there aren't many options around. The WSRP
>>>>> specification is the best of them although very hard to read. If you
>>>>> haven't read it already, try the WSRPv1 Primer
>>>>> (http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html).
>>>>> It shows some of the communication involved in a very clear manner.
>>>>>
>>>>> On the second point, my experience has always been in a JSR-168
>>>>> environment. But WSRP4J source code is a nice example on how to
>>>>> implement WSRP functionality besides JSR-168. In fact, you can reuse
>>>>> the
>>>>> three commons packages and the two persistence ones on any other
>>>>> project
>>>>> (they don't have any strong dependencies on JSR-168 besides some
>>>>> utilities, they are completely reusable componentes for any producer
>>>>> or
>>>>> consumer implementation).
>>>>>
>>>>> Hope that helps.
>>>>>
>>>>> Regards.
>>>>> Diego.
>>>>>>
>> Hello Bharath, I'm sorry for the late response but I've been very busy
>> and didn't have time to monitor the list. About your questions:
>> 
>> i)
>>     If you're using wsrp4j-producer, you don't have to make any changes
>> to your JSR-168 portlets. Just take your .war file containing the
>> portlets you want to expose and just use the deployer included (see
>> README.txt for details). Your portlets will be automagically exposed as
>> WSRP.
>>     That utility modifies the configuration files exposed by PlutoPortal
>> (mainly the ones under WEB-INF/data). It also modifies the portlet.xml
>> file included on your portletapp so all the portlets delegate their
>> processing to the servlet included in Pluto.
>> 
>> ii)
>>     The communication between consumer and producer is standardized by
>> the WSRP specification. The README.txt specifies some extension points
>> you can configure (like Producer URL Writing support), but the
>> communication will work without that.
>> 
>> iii)
>>     You have to register proxyportlet into your portal. Each portal
>> includes its way to add JSR-168 portlets, so you'll have to read the
>> documentation. Once you have deployed proxyportlet, you have to
>> configure the remote portlets using the two configuration portlets
>> included in proxyportlet (there are some limitations, I'll try to
>> specify them in the README.txt this afternoon).
>> 
>> Regards.
>> Diego.
>>>
>>>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.3 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> 
> iD8DBQFFxwpWgyzZYflJelERAkoWAJ4j501tattk5doYiOviWlaBsNiWAACeMB3W
> swSfE4bvTtoao1m8FmPNjPI=
> =gX9U
> -----END PGP SIGNATURE-----
> 
> 

-- 
View this message in context: http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a8850609
Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.


Re: Need some clarificatoins

Posted by Diego Louzán <dl...@apache.org>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

See inline response.

Bharath Kumar N escribió:
> Diego,
>         I need some help from u'r side to tie a few loose ends in my
> understanding of implementation WSRP.
> 
> We are not using Pluto as the provider.We have implemented our own provider
> factory and I have made the change in the
> ..\producer\WEB-INF\classes\WSRPServices.properties
> ** provider.factory=
> com.slb.sis.dp.wsrp.producer.driver.ProviderFactoryImpl.
> ** consumer.registry.factory =
> org.apache.wsrp4j.producer.driver.ConsumerRegistryFactoryImpl {remains the
> same}.
> So,my 1st goal  is to test the producer workflow.And next,Debug the code and
> understand the workflow 
> between 
> 
> *The Consumer and the Axis Engine( AxisServlet)
> *Axis Engine and the WSRPEngine
> *WSRPEngine and the Provider (implemented by us)
>   
> 1) We will be using the plumtree portal.And my understanding is that 
> Plumtree portal will be the consumer.So,My belief is that consumer need 
> not be implemented.Am I right?

ProxyPortlet is a generic JSR-168 portlet that can act as a WSRP
consumer. As long as your portal accepts JSR-168 portlets (or your
portal provides its own WSRP consumer component) you won't have to
implement any consumer.

> 2)    The consumer calls the producer through the Urls
> *http://localhost:8080/usland_wsrp_producer/WSRPBaseService {provider
> implemented methods are working}
> *http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService{provider
> implemented methods are working}
>   which will be registerd while registering the portlet.
> Is my understanding right? how do I simulate it without actual portal? 

You can use SwingConsumer as a test for your producer. It's a Swing
standalone application that acts as a WSRP consumer. Keep in mind that
its functionality is very limited and its serves only the purpose of
easy testing.

> I tried testing the functionality by calling 
> http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService?method=getServiceDescription
> 
> and expected the output to xml format of getServiceDescriptionResponse.But
> it threw a 
> fault NoTraget service WSRPServiceDescriptionService found. 
> So how do I register the 4 interfaces service with the AxisServlet?

If I'm understanding it correctly, you are using the old WSRP4J repos.
Check the new producer in the SVN repos that is fully functional and
it's easier to understand.
    AxisServlet uses the file server-deploy.wsdd to specify which
classes implement which endpoints. For instance:

<service name="WSRPBaseService" ...>
...
  <parameter name="className"
value="org.apache.wsrp4j.commons.producer.binding.WSRPMarkupBindingImpl"/>
...
</service>

That declaration links the Markup interface to the class specified by
the parameter tag. Then, these classes delegate their processing to
WSRPEngine singleton. Check the example configuration for more details.

> 3) What is the first thing which will be called by the Consumer ? 
>    Is it the AxisServlet which will be the contact point ? 
>    If not then ,when will the AxisServlet exactly be used in the whole
> workflow?

Yes, the AxisServlet is the contact point. Then it delegates the
processing to the class specified on server-deploy.wsdd. In producer,
each of these classes delegate their processing to WSRPEngine.

> 4)When will the WSRPEngine be called.Is it the AxisServlet which calls it ?

Already answered.

> 
> Thanks again for the help.Appreciate your patience.
> 
> Regards
> Bharath

Hope that helps. Regards.
Diego.

> 
> 
> 
> 
> 
> 
> 
> 
> 
> dlouzan wrote:
> Bharath Kumar N escribió:
>>>> Hi Diego,
>>>>     Thanks for the quick reply and the options too. I have gone through
>>>> the
>>>> WSRP Primer and surely it is 
>>>> a good document to understand WSRP conceptually.
>>>>    I am trying to understand the working of WSRP4J.The best way to
>>>> understand would be via an example.
>>>> Say,Using the WSRP4J Producer "wsrp4j-producer" and the WSRP Consumer
>>>> "wsrp4j-proxyportlet"
>>>> I am trying to configure a simple JSR 168 portlet HelloWorld.
>>>>
>>>>    I appreciate your comments and feedback on the following points. 
>>>>
>>>> Have divided the WSRP interaction between the portlet Producer and the
>>>> Consumer into :
>>>>
>>>> i) Interaction between Producer and the Portlet :
>>>>      Which are the configuration files {xml or .properties files }in
>>>> which
>>>> the 
>>>>      changes have to be made to configure the portlet as a Producer
>>>>
>>>> ii) Communication between the Producer and the Consumer :
>>>>      The communication is via SOAP messages.Again Which are the
>>>> configuration files {xml or .properties fiels }in which the changes have
>>>> to
>>>> be made for the interaction between the Consumer and Producer.
>>>>
>>>> iii) Communication between the Consumer and the portal(in my case the
>>>> portal
>>>> is Plumtree):
>>>>
>>>>    This I assume is all to do with the registration of the Consumer in
>>>> the
>>>> Plumtree portal,instead of
>>>>    the registration of HelloWorld portlet.
>>>>    
>>>>    
>>>> Thanks
>>>> Bharath
>>>>                     
>>>>
>>>>
>>>> dlouzan wrote:
>>>> Bharath Kumar N escribió:
>>>>>>> Hi,
>>>>>>>
>>>>>>>   I'm doing some research on porting existing Portlets to  WSRP.The
>>>>>>> portlets
>>>>>>> are not JSR-168 complaint. We are using the Plumtree portal which
>>>>>>> supports
>>>>>>> WSRP.
>>>>>>>  I'm having difficulty finding much information on   the technical
>>>>>>> aspects
>>>>>>> of developing a WSRP Portlet, let alone porting   an existing JSR-168
>>>>>>> Portlet to WSRP.
>>>>>>>
>>>>>>>  I have download WSRP4J source code and built the same.Still trying to
>>>>>>> understand how it works.
>>>>>>>
>>>>>>> Are there any resources that  you may know of that can help us to
>>>>>>> implement
>>>>>>> the same ?  Appreciate any advice on the same
>>>>>>>
>>>>>>>  Thanks
>>>>>>>  Bharath
>>>> Well, by your comments I understand that your two main problems are (1)
>>>> understanding how WSRP really works and (2) how to expose that
>>>> functionality in a non-JSR-168 environment.
>>>>
>>>> About the first point there aren't many options around. The WSRP
>>>> specification is the best of them although very hard to read. If you
>>>> haven't read it already, try the WSRPv1 Primer
>>>> (http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html).
>>>> It shows some of the communication involved in a very clear manner.
>>>>
>>>> On the second point, my experience has always been in a JSR-168
>>>> environment. But WSRP4J source code is a nice example on how to
>>>> implement WSRP functionality besides JSR-168. In fact, you can reuse the
>>>> three commons packages and the two persistence ones on any other project
>>>> (they don't have any strong dependencies on JSR-168 besides some
>>>> utilities, they are completely reusable componentes for any producer or
>>>> consumer implementation).
>>>>
>>>> Hope that helps.
>>>>
>>>> Regards.
>>>> Diego.
>>>>>
> Hello Bharath, I'm sorry for the late response but I've been very busy
> and didn't have time to monitor the list. About your questions:
> 
> i)
>     If you're using wsrp4j-producer, you don't have to make any changes
> to your JSR-168 portlets. Just take your .war file containing the
> portlets you want to expose and just use the deployer included (see
> README.txt for details). Your portlets will be automagically exposed as
> WSRP.
>     That utility modifies the configuration files exposed by PlutoPortal
> (mainly the ones under WEB-INF/data). It also modifies the portlet.xml
> file included on your portletapp so all the portlets delegate their
> processing to the servlet included in Pluto.
> 
> ii)
>     The communication between consumer and producer is standardized by
> the WSRP specification. The README.txt specifies some extension points
> you can configure (like Producer URL Writing support), but the
> communication will work without that.
> 
> iii)
>     You have to register proxyportlet into your portal. Each portal
> includes its way to add JSR-168 portlets, so you'll have to read the
> documentation. Once you have deployed proxyportlet, you have to
> configure the remote portlets using the two configuration portlets
> included in proxyportlet (there are some limitations, I'll try to
> specify them in the README.txt this afternoon).
> 
> Regards.
> Diego.
>>
>>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFxwpWgyzZYflJelERAkoWAJ4j501tattk5doYiOviWlaBsNiWAACeMB3W
swSfE4bvTtoao1m8FmPNjPI=
=gX9U
-----END PGP SIGNATURE-----

Need some clarificatoins

Posted by Bharath Kumar N <bh...@gmail.com>.
Diego,
        I need some help from u'r side to tie a few loose ends in my
understanding of implementation WSRP.

We are not using Pluto as the provider.We have implemented our own provider
factory and I have made the change in the
..\producer\WEB-INF\classes\WSRPServices.properties
** provider.factory=
com.slb.sis.dp.wsrp.producer.driver.ProviderFactoryImpl.
** consumer.registry.factory =
org.apache.wsrp4j.producer.driver.ConsumerRegistryFactoryImpl {remains the
same}.
So,my 1st goal  is to test the producer workflow.And next,Debug the code and
understand the workflow 
between 

*The Consumer and the Axis Engine( AxisServlet)
*Axis Engine and the WSRPEngine
*WSRPEngine and the Provider (implemented by us)
  
1) We will be using the plumtree portal.And my understanding is that 
Plumtree portal will be the consumer.So,My belief is that consumer need 
not be implemented.Am I right?

2)    The consumer calls the producer through the Urls
*http://localhost:8080/usland_wsrp_producer/WSRPBaseService {provider
implemented methods are working}
*http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService{provider
implemented methods are working}
  which will be registerd while registering the portlet.
Is my understanding right? how do I simulate it without actual portal? 

I tried testing the functionality by calling 
http://localhost:8080/usland_wsrp_producer/WSRPServiceDescriptionService?method=getServiceDescription

and expected the output to xml format of getServiceDescriptionResponse.But
it threw a 
fault NoTraget service WSRPServiceDescriptionService found. 
So how do I register the 4 interfaces service with the AxisServlet?


3) What is the first thing which will be called by the Consumer ? 
   Is it the AxisServlet which will be the contact point ? 
   If not then ,when will the AxisServlet exactly be used in the whole
workflow?

4)When will the WSRPEngine be called.Is it the AxisServlet which calls it ?



Thanks again for the help.Appreciate your patience.

Regards
Bharath










dlouzan wrote:
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Bharath Kumar N escribió:
>> Hi Diego,
>>     Thanks for the quick reply and the options too. I have gone through
>> the
>> WSRP Primer and surely it is 
>> a good document to understand WSRP conceptually.
>>    I am trying to understand the working of WSRP4J.The best way to
>> understand would be via an example.
>> Say,Using the WSRP4J Producer "wsrp4j-producer" and the WSRP Consumer
>> "wsrp4j-proxyportlet"
>> I am trying to configure a simple JSR 168 portlet HelloWorld.
>> 
>>    I appreciate your comments and feedback on the following points. 
>> 
>> Have divided the WSRP interaction between the portlet Producer and the
>> Consumer into :
>> 
>> i) Interaction between Producer and the Portlet :
>>      Which are the configuration files {xml or .properties files }in
>> which
>> the 
>>      changes have to be made to configure the portlet as a Producer
>> 
>> ii) Communication between the Producer and the Consumer :
>>      The communication is via SOAP messages.Again Which are the
>> configuration files {xml or .properties fiels }in which the changes have
>> to
>> be made for the interaction between the Consumer and Producer.
>> 
>> iii) Communication between the Consumer and the portal(in my case the
>> portal
>> is Plumtree):
>> 
>>    This I assume is all to do with the registration of the Consumer in
>> the
>> Plumtree portal,instead of
>>    the registration of HelloWorld portlet.
>>    
>>    
>> Thanks
>> Bharath
>>                     
>> 
>> 
>> dlouzan wrote:
>> Bharath Kumar N escribió:
>>>>> Hi,
>>>>>
>>>>>   I'm doing some research on porting existing Portlets to  WSRP.The
>>>>> portlets
>>>>> are not JSR-168 complaint. We are using the Plumtree portal which
>>>>> supports
>>>>> WSRP.
>>>>>  I'm having difficulty finding much information on   the technical
>>>>> aspects
>>>>> of developing a WSRP Portlet, let alone porting   an existing JSR-168
>>>>> Portlet to WSRP.
>>>>>
>>>>>  I have download WSRP4J source code and built the same.Still trying to
>>>>> understand how it works.
>>>>>
>>>>> Are there any resources that  you may know of that can help us to
>>>>> implement
>>>>> the same ?  Appreciate any advice on the same
>>>>>
>>>>>  Thanks
>>>>>  Bharath
>> Well, by your comments I understand that your two main problems are (1)
>> understanding how WSRP really works and (2) how to expose that
>> functionality in a non-JSR-168 environment.
>> 
>> About the first point there aren't many options around. The WSRP
>> specification is the best of them although very hard to read. If you
>> haven't read it already, try the WSRPv1 Primer
>> (http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html).
>> It shows some of the communication involved in a very clear manner.
>> 
>> On the second point, my experience has always been in a JSR-168
>> environment. But WSRP4J source code is a nice example on how to
>> implement WSRP functionality besides JSR-168. In fact, you can reuse the
>> three commons packages and the two persistence ones on any other project
>> (they don't have any strong dependencies on JSR-168 besides some
>> utilities, they are completely reusable componentes for any producer or
>> consumer implementation).
>> 
>> Hope that helps.
>> 
>> Regards.
>> Diego.
>>>
>>>
> 
> Hello Bharath, I'm sorry for the late response but I've been very busy
> and didn't have time to monitor the list. About your questions:
> 
> i)
>     If you're using wsrp4j-producer, you don't have to make any changes
> to your JSR-168 portlets. Just take your .war file containing the
> portlets you want to expose and just use the deployer included (see
> README.txt for details). Your portlets will be automagically exposed as
> WSRP.
>     That utility modifies the configuration files exposed by PlutoPortal
> (mainly the ones under WEB-INF/data). It also modifies the portlet.xml
> file included on your portletapp so all the portlets delegate their
> processing to the servlet included in Pluto.
> 
> ii)
>     The communication between consumer and producer is standardized by
> the WSRP specification. The README.txt specifies some extension points
> you can configure (like Producer URL Writing support), but the
> communication will work without that.
> 
> iii)
>     You have to register proxyportlet into your portal. Each portal
> includes its way to add JSR-168 portlets, so you'll have to read the
> documentation. Once you have deployed proxyportlet, you have to
> configure the remote portlets using the two configuration portlets
> included in proxyportlet (there are some limitations, I'll try to
> specify them in the README.txt this afternoon).
> 
> Regards.
> Diego.
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.3 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> 
> iD8DBQFFuHnygyzZYflJelERAnlSAJ9BgFHxtLRppS0S64h9KDhwEnfgjQCeO7lj
> ILd2hggVsXDaANJvGALIeio=
> =x9Zf
> -----END PGP SIGNATURE-----
> 
> 

-- 
View this message in context: http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a8762321
Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.


Re: Help : Migrate Portlets to WSRP

Posted by Diego Louzán <dl...@apache.org>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Bharath Kumar N escribió:
> Hi Diego,
>     Thanks for the quick reply and the options too. I have gone through the
> WSRP Primer and surely it is 
> a good document to understand WSRP conceptually.
>    I am trying to understand the working of WSRP4J.The best way to
> understand would be via an example.
> Say,Using the WSRP4J Producer "wsrp4j-producer" and the WSRP Consumer
> "wsrp4j-proxyportlet"
> I am trying to configure a simple JSR 168 portlet HelloWorld.
> 
>    I appreciate your comments and feedback on the following points. 
> 
> Have divided the WSRP interaction between the portlet Producer and the
> Consumer into :
> 
> i) Interaction between Producer and the Portlet :
>      Which are the configuration files {xml or .properties files }in which
> the 
>      changes have to be made to configure the portlet as a Producer
> 
> ii) Communication between the Producer and the Consumer :
>      The communication is via SOAP messages.Again Which are the
> configuration files {xml or .properties fiels }in which the changes have to
> be made for the interaction between the Consumer and Producer.
> 
> iii) Communication between the Consumer and the portal(in my case the portal
> is Plumtree):
> 
>    This I assume is all to do with the registration of the Consumer in the
> Plumtree portal,instead of
>    the registration of HelloWorld portlet.
>    
>    
> Thanks
> Bharath
>                     
> 
> 
> dlouzan wrote:
> Bharath Kumar N escribió:
>>>> Hi,
>>>>
>>>>   I'm doing some research on porting existing Portlets to  WSRP.The
>>>> portlets
>>>> are not JSR-168 complaint. We are using the Plumtree portal which
>>>> supports
>>>> WSRP.
>>>>  I'm having difficulty finding much information on   the technical
>>>> aspects
>>>> of developing a WSRP Portlet, let alone porting   an existing JSR-168
>>>> Portlet to WSRP.
>>>>
>>>>  I have download WSRP4J source code and built the same.Still trying to
>>>> understand how it works.
>>>>
>>>> Are there any resources that  you may know of that can help us to
>>>> implement
>>>> the same ?  Appreciate any advice on the same
>>>>
>>>>  Thanks
>>>>  Bharath
> Well, by your comments I understand that your two main problems are (1)
> understanding how WSRP really works and (2) how to expose that
> functionality in a non-JSR-168 environment.
> 
> About the first point there aren't many options around. The WSRP
> specification is the best of them although very hard to read. If you
> haven't read it already, try the WSRPv1 Primer
> (http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html).
> It shows some of the communication involved in a very clear manner.
> 
> On the second point, my experience has always been in a JSR-168
> environment. But WSRP4J source code is a nice example on how to
> implement WSRP functionality besides JSR-168. In fact, you can reuse the
> three commons packages and the two persistence ones on any other project
> (they don't have any strong dependencies on JSR-168 besides some
> utilities, they are completely reusable componentes for any producer or
> consumer implementation).
> 
> Hope that helps.
> 
> Regards.
> Diego.
>>
>>

Hello Bharath, I'm sorry for the late response but I've been very busy
and didn't have time to monitor the list. About your questions:

i)
    If you're using wsrp4j-producer, you don't have to make any changes
to your JSR-168 portlets. Just take your .war file containing the
portlets you want to expose and just use the deployer included (see
README.txt for details). Your portlets will be automagically exposed as
WSRP.
    That utility modifies the configuration files exposed by PlutoPortal
(mainly the ones under WEB-INF/data). It also modifies the portlet.xml
file included on your portletapp so all the portlets delegate their
processing to the servlet included in Pluto.

ii)
    The communication between consumer and producer is standardized by
the WSRP specification. The README.txt specifies some extension points
you can configure (like Producer URL Writing support), but the
communication will work without that.

iii)
    You have to register proxyportlet into your portal. Each portal
includes its way to add JSR-168 portlets, so you'll have to read the
documentation. Once you have deployed proxyportlet, you have to
configure the remote portlets using the two configuration portlets
included in proxyportlet (there are some limitations, I'll try to
specify them in the README.txt this afternoon).

Regards.
Diego.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFuHnygyzZYflJelERAnlSAJ9BgFHxtLRppS0S64h9KDhwEnfgjQCeO7lj
ILd2hggVsXDaANJvGALIeio=
=x9Zf
-----END PGP SIGNATURE-----

Re: Help : Migrate Portlets to WSRP

Posted by Bharath Kumar N <bh...@gmail.com>.
Hi Diego,
    Thanks for the quick reply and the options too. I have gone through the
WSRP Primer and surely it is 
a good document to understand WSRP conceptually.
   I am trying to understand the working of WSRP4J.The best way to
understand would be via an example.
Say,Using the WSRP4J Producer "wsrp4j-producer" and the WSRP Consumer
"wsrp4j-proxyportlet"
I am trying to configure a simple JSR 168 portlet HelloWorld.

   I appreciate your comments and feedback on the following points. 

Have divided the WSRP interaction between the portlet Producer and the
Consumer into :

i) Interaction between Producer and the Portlet :
     Which are the configuration files {xml or .properties files }in which
the 
     changes have to be made to configure the portlet as a Producer

ii) Communication between the Producer and the Consumer :
     The communication is via SOAP messages.Again Which are the
configuration files {xml or .properties fiels }in which the changes have to
be made for the interaction between the Consumer and Producer.

iii) Communication between the Consumer and the portal(in my case the portal
is Plumtree):

   This I assume is all to do with the registration of the Consumer in the
Plumtree portal,instead of
   the registration of HelloWorld portlet.
   
   
Thanks
Bharath
                    


dlouzan wrote:
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Bharath Kumar N escribió:
>> Hi,
>> 
>>   I'm doing some research on porting existing Portlets to  WSRP.The
>> portlets
>> are not JSR-168 complaint. We are using the Plumtree portal which
>> supports
>> WSRP.
>>  I'm having difficulty finding much information on   the technical
>> aspects
>> of developing a WSRP Portlet, let alone porting   an existing JSR-168
>> Portlet to WSRP.
>> 
>>  I have download WSRP4J source code and built the same.Still trying to
>> understand how it works.
>> 
>> Are there any resources that  you may know of that can help us to
>> implement
>> the same ?  Appreciate any advice on the same
>> 
>>  Thanks
>>  Bharath
> 
> Well, by your comments I understand that your two main problems are (1)
> understanding how WSRP really works and (2) how to expose that
> functionality in a non-JSR-168 environment.
> 
> About the first point there aren't many options around. The WSRP
> specification is the best of them although very hard to read. If you
> haven't read it already, try the WSRPv1 Primer
> (http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html).
> It shows some of the communication involved in a very clear manner.
> 
> On the second point, my experience has always been in a JSR-168
> environment. But WSRP4J source code is a nice example on how to
> implement WSRP functionality besides JSR-168. In fact, you can reuse the
> three commons packages and the two persistence ones on any other project
> (they don't have any strong dependencies on JSR-168 besides some
> utilities, they are completely reusable componentes for any producer or
> consumer implementation).
> 
> Hope that helps.
> 
> Regards.
> Diego.
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.3 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> 
> iD8DBQFFrTmWgyzZYflJelERAgxmAJ994GBvgm1Ak56+jKvxj8LsewqcpgCePoR0
> Ik3TvMmhXM8WVm8kpBAONMg=
> =dFM6
> -----END PGP SIGNATURE-----
> 
> 

-- 
View this message in context: http://www.nabble.com/Help-%3A-Migrate-Portlets-to-WSRP-tf3023311.html#a8399141
Sent from the Wsrp4J - Dev mailing list archive at Nabble.com.


Re: Help : Migrate Portlets to WSRP

Posted by Diego Louzán <dl...@apache.org>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Bharath Kumar N escribió:
> Hi,
> 
>   I'm doing some research on porting existing Portlets to  WSRP.The portlets
> are not JSR-168 complaint. We are using the Plumtree portal which supports
> WSRP.
>  I'm having difficulty finding much information on   the technical aspects
> of developing a WSRP Portlet, let alone porting   an existing JSR-168
> Portlet to WSRP.
> 
>  I have download WSRP4J source code and built the same.Still trying to
> understand how it works.
> 
> Are there any resources that  you may know of that can help us to implement
> the same ?  Appreciate any advice on the same
> 
>  Thanks
>  Bharath

Well, by your comments I understand that your two main problems are (1)
understanding how WSRP really works and (2) how to expose that
functionality in a non-JSR-168 environment.

About the first point there aren't many options around. The WSRP
specification is the best of them although very hard to read. If you
haven't read it already, try the WSRPv1 Primer
(http://www.oasis-open.org/committees/download.php/10539/wsrp-primer-1.0.html).
It shows some of the communication involved in a very clear manner.

On the second point, my experience has always been in a JSR-168
environment. But WSRP4J source code is a nice example on how to
implement WSRP functionality besides JSR-168. In fact, you can reuse the
three commons packages and the two persistence ones on any other project
(they don't have any strong dependencies on JSR-168 besides some
utilities, they are completely reusable componentes for any producer or
consumer implementation).

Hope that helps.

Regards.
Diego.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFrTmWgyzZYflJelERAgxmAJ994GBvgm1Ak56+jKvxj8LsewqcpgCePoR0
Ik3TvMmhXM8WVm8kpBAONMg=
=dFM6
-----END PGP SIGNATURE-----