Hi Shiva,

How about we go ahead and commit all your patches, making the provider 
optional?  I didn't see in any of your patches 
wink-common/src/main/resources/META-INF/core/wink-providers being modified 
(let me know if I missed it) which would have made the provider a system 
provider.  If we commit the provider but don't update the wink-providers 
file, we avoid introducing the issue you raise by default but still make 
the provider available to someone who may want to use it.

-- Jesse





From:
Shiva Kumar H R <[email protected]>
To:
[email protected]
Date:
04/14/2010 09:55 AM
Subject:
Re: Map RSS to Syndication Object Model



I again need some help here. I have added 4 patches for WINK-149 (
https://issues.apache.org/jira/browse/WINK-149) :

1. WINK-149-new-part1.patch : adds the mapping from RSS to Syndication
Object Model and vice-versa.
2. WINK-149-new-part2.patch : adds a new JAX-RS provider (which is where I
see a problem as explained below).
3. WINK-149-new-part3.patch : adds a Junit testcase to test RSS to 
SyndFeed
mapping and vice versa.
4. WINK-149-new-part4.patch : adds a new client example in
\wink-examples\client\ReadRSS-client that demonstrates the RSS mapping 
into
Syndication Object Model.

In WINK-149-new-part2.patch, I have added a new JAX-RS Provider which 
takes
an incoming text/xml or application/xml and converts it into SyndFeed. I 
am
wondering if we really need this. The problem that I see is: RSS doesn't
have a special content-type header the way ATOM has 
(application/atom+xml).
So all RSS docs will be served under the general content-type of
application/xml or text/xml. And sometimes even Atom docs could be served
under this same content type.

So can't we request our Wink users to explicitly map the RssFeed into
SyndFeed, the way I have done in WINK-149-new-part4.patch which is as 
below:

            // perform a GET on the resource. The resource will be 
returned
as an Rss object
            RssFeed rssFeed =
feedResource.accept(MediaType.APPLICATION_XML).get(RssFeed.class);

            // Map RSS into SyndFeed
            SyndFeed syndFeed = new SyndFeed();
            syndFeed = rssFeed.toSynd(syndFeed);

            // Now access RSS using SyndFeed APIs

The only advantage that I see when the new JAX-RS provider in
WINK-149-new-part2.patch is committed, is that the client code will look 
as
below:
            // perform a GET on the resource. The resource will be 
returned
as an SyndFeed object
            SyndFeed syndFeed =
feedResource.accept(MediaType.APPLICATION_XML).get(SyndFeed.class);
            // Now access RSS using SyndFeed APIs

Please suggest which approach we should follow (i.e. whether we must 
commit
WINK-149-new-part2.patch or not).

Thanks,
Shiva Kumar H R

On Mon, Apr 12, 2010 at 7:22 PM, Shiva Kumar H R <[email protected]> 
wrote:

> I have uploaded new patches onto WINK-149 (
> https://issues.apache.org/jira/browse/WINK-149) based on the initial 
code
> developed by Jesse.
>
> The mapping is documented in
> 
http://cwiki.apache.org/confluence/display/WINK/Mapping+RSS+into+Syndication+Object+Model(the
 
wiki seems to be down now).
>
> Please commit the new patches.
>
>
> Thanks,
> Shiva Kumar H R
>
> On Tue, Mar 30, 2010 at 5:32 PM, Shiva Kumar H R 
<[email protected]>wrote:
>
>> Hi Jesse,
>> I have created the following (temporary) wiki page for capturing this
>> mapping:
>>
>> 
http://cwiki.apache.org/confluence/display/WINK/Mapping+RSS+into+Syndication+Object+Model

>>
>> And I am sorry, I haven't yet looked into the code. Will do that soon.
>>
>>
>> Thanks,
>> Shiva Kumar H R
>>
>> On Tue, Mar 23, 2010 at 9:10 PM, Jesse A Ramos <[email protected]> 
wrote:
>>
>>> I've uploaded a patch with my changes to JIRA WINK-149 (
>>> https://issues.apache.org/jira/browse/WINK-149).
>>>
>>> I wanted to give folks an opportunity to review this before I 
committed
>>> as
>>> I wasn't sure if I did the mappings 100% correctly. In addition to the
>>> question below, there were a few other areas that I wasn't sure about.
>>>
>>> Here is how I mapped things from the syndication Object model to the 
RSS
>>> model:
>>>
>>> SyndFeed --> RssFeed/RssChannel (Mapping a SyndFeed to an RssFeed 
results
>>> in an RssFeed with version 2.0. The attribute mapping is done in
>>> RssChannel)
>>> ------------------------------------------------------
>>> SyndFeed.base --> RssChannel.link
>>> SyndFeed.generator --> RssChannel.generator
>>> SyndFeed.icon --> RssChannel.image
>>> SyndFeed.lang --> RssChannel.language
>>> SyndFeed.rights --> RssChannel.copyright
>>> SyndFeed.title --> RssChannel.title
>>> SyndFeed.entries/SyndFeed.links --> RssChannel.items
>>>
>>> SyndEntry --> RssItem
>>> ---------------------------------
>>> SyndEntry.authors (first item) --> RssItem.author
>>> SyndEntry.base --> RssItem.link
>>> SyndEntry.published --> RssItem.pubDate
>>> SyndEntry.title --> RssItem.title
>>> SyndEntry.summary --> RssItem.description
>>> SyndEntry.id --> RssItem.guid
>>>
>>> SyndLink --> RssItem
>>> --------------------------------
>>> SyndLink.title --> RssItem.title
>>> SyndLink.base --> RssItem.link
>>>
>>> SyndCategory --> RssCategory
>>> -----------------------------------------------
>>> SyndCategory.term --> RssCategory.domain
>>> SyndCategory.label --> RssCategory.content
>>>
>>> Anything not listed here was not mapped. Any feedback/corrections are
>>> greatly appreciated.
>>>
>>>
>>>
>>> From:
>>> Jesse A Ramos/Austin/i...@ibmus
>>> To:
>>> [email protected]
>>> Date:
>>> 03/22/2010 11:08 AM
>>> Subject:
>>> Re: Map RSS to Syndication Object Model
>>>
>>>
>>>
>>> I went ahead and starting working on this.
>>>
>>> I have a question regarding the mapping of links in a SyndFeed.  Would
>>> these map to RssItems?  Currently I'm mapping SyndEnty's to RssItems 
but
>>> wasn't sure if I should do the same for links.
>>>
>>> Thanks for the clarification.  I'll post what I've mapped on the
>>> syndication side to the RSS side as there are other items I'm not 100%
>>> sure about when I'm done just to make sure that it's correct.
>>>
>>> -- Jesse
>>>
>>>
>>>
>>>
>>> From:
>>> Shiva Kumar H R <[email protected]>
>>> To:
>>> [email protected]
>>> Date:
>>> 03/18/2010 08:18 PM
>>> Subject:
>>> Re: Map RSS to Syndication Object Model
>>>
>>>
>>>
>>> Many thanks Jesse. I will look further into this.
>>>
>>> Thanks,
>>> Shiva Kumar H R
>>>
>>> On Thu, Mar 18, 2010 at 8:02 PM, Jesse A Ramos <[email protected]>
>>> wrote:
>>>
>>> > Hi Shiva,
>>> >
>>> > I took a look at this yesterday to see if I could figure out what
>>> needed
>>> > to be done.  This is what I found.
>>> >
>>> > In org.apache.wink.common.model.atom the ATOM Object model classes 
have
>>> > constructors that accept the Objects from
>>> > org.apache.wink.common.model.synd (ex: the constructor
>>> AtomFeed(SyndFeed))
>>> > which allow the syndication Objects to be converted to ATOM Objects.
>>> > Similarly, there are adapter classes under
>>> > org.apache.wink.server.internal.entity.html that allow a conversion 
to
>>> > html.
>>> >
>>> > Additionally, there are provides (AtomFeedSyndFeedProvider,
>>> > AtomEntrySyndEntryProvider, HtmlSyndFeedProvider, and
>>> > HtmlSyndEntryProvider) which allow syndication Objects to be 
serialized
>>> to
>>> > those other formats and which make use of the adapters.
>>> >
>>> > I believe that the JIRA was created to add similar support to the 
RSS
>>> > Object model.
>>> >
>>> > -- Jesse
>>> >
>>> > >I need some help in resolving JIRA
>>> > >https://issues.apache.org/jira/browse/WINK-149 "Map RSS to
>>> Syndication
>>> > >Object Model". I had opened this JIRA after a suggestion on dev 
list.
>>> > >However I must acknowledge that I never understood the 
need/importance
>>> of
>>> > >this.
>>> > >
>>> > >Can someone help me by throwing some light on this? What is 
expected
>>> and
>>> > how
>>> > >would that be useful?
>>> > >
>>> > >Thanks,
>>> > >Shiva Kumar H R
>>> >
>>> >
>>> >
>>>
>>>
>>>
>>>
>>>
>>
>


Reply via email to