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
>>> >
>>> >
>>> >
>>>
>>>
>>>
>>>
>>>
>>
>