rome/WhatSWrongWithOtherExistingRSSParsingLibraries.html

130 lines
8.1 KiB
HTML
Raw Normal View History

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia Site Renderer 1.4 at 2013-10-04 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>ROME - What's wrong with other existing RSS parsing libraries?</title>
<style type="text/css" media="all">
@import url("./css/maven-base.css");
@import url("./css/maven-theme.css");
@import url("./css/site.css");
</style>
<link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
<meta name="author" content="mkurz" />
<meta name="Date-Creation-yyyymmdd" content="20110814" />
<meta name="Date-Revision-yyyymmdd" content="20131004" />
<meta http-equiv="Content-Language" content="en" />
</head>
<body class="composite">
<div id="banner">
<a href="http://github.com/rometools/" id="bannerLeft">
<img src="images/romelogo.png" alt="ROME" />
</a>
<div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xright">
<span id="publishDate">Last Published: 2013-10-04</span>
&nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn">
<div id="navcolumn">
<h5>Rome</h5>
<ul>
<li class="none">
<a href="index.html" title="Overview">Overview</a>
</li>
<li class="collapsed">
<a href="HowRomeWorks/index.html" title="How Rome Works">How Rome Works</a>
</li>
<li class="none">
<a href="RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/index.html" title="Tutorials And Articles">Tutorials And Articles</a>
</li>
<li class="collapsed">
<a href="ROMEReleases/index.html" title="Releases">Releases</a>
</li>
<li class="none">
<a href="ROMEDevelopmentProposals/index.html" title="ROME Development Proposals">ROME Development Proposals</a>
</li>
</ul>
<h5>Project Documentation</h5>
<ul>
<li class="collapsed">
<a href="project-info.html" title="Project Information">Project Information</a>
</li>
<li class="collapsed">
<a href="project-reports.html" title="Project Reports">Project Reports</a>
</li>
</ul>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
<img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
</a>
</div>
</div>
<div id="bodyColumn">
<div id="contentBox">
<div class="section">
<h2>What's wrong with other existing RSS parsing libraries?<a name="Whats_wrong_with_other_existing_RSS_parsing_libraries"></a></h2>
<p>Before we started with Rome we've evaluated other Java syndication management libraries to see if they'd fit our criteria. Feel free to update this evaluation if we forgot or mischaracterized your favorite library: this is a wiki after all:-)</p>
<div class="section">
<h3>Informa<a name="Informa"></a></h3>
<p>The <a class="externalLink" href="http://informa.sourceforge.net/">Informa: RSS Library for Java</a> which exists since 2002 is too complicated to grasp and use. As of this writing it has <a class="externalLink" href="http://informa.sourceforge.net/apidocs/de/nava/informa/core/package-summary.html">19 interfaces and 12 marker interfaces</a>. It supports all RSS flavors in input, and only 1.0 and 0.91 in output.</p>
<p>No RSS 2.0 output.</p>
<p>No support for Atom at all.</p>
<p>They have some interesting features such as Hibernate and Castor based database serialization, and JSP taglibs, which are useful paraphernalia for server side application development. This seems to be their main focus of development today.</p>
<p>But we prefer to focus on our ESCAPE design criteria, so that our library does one thing really well: syndication parsing, abstract representation and conversion from/to all formats.</p>
<p>Thus our library will be useful for both client and server side developers.</p>
<p>We will develop the server side add-on later when the basics will be well oiled.</p>
<div class="section">
<h4>RSS4J<a name="RSS4J"></a></h4>
<p><a class="externalLink" href="http://www.churchillobjects.com/c/13005.html">RSS4J</a> was released in version 0.92 in april 2002. It did not evolve since then.</p>
<p>The web site explains:</p>
<p><i>This toolkit supports the three most commonly used RSS standards - 0.90 (the original), 0.91 and 1.0. RSS 0.92 and 0.93 are not supported due to the dramatic changes it makes to the format and the fact that 1.0 is already finalized.</i></p>
<p>No need to say more: it seems to be a dead project and doesn't even start to address our requirements.</p></div>
<div class="section">
<h4>RSS Utilities<a name="RSS_Utilities"></a></h4>
<p><a class="externalLink" href="http://java.sun.com/developer/technicalArticles/javaserverpages/rss_utilities/">RSS Utilities</a> seems like a one-shot project from Rodrigo Oliveira, released in august 2003. It is a taglib to display RSS in JSPs, and includes a small parser for RSS 0.91, 0.92 and 2.0.</p>
<p>It does not seem to be maintained, does not address RSS 1.0 and Atom.</p>
<p>I would encourage Rodrigo to rewrite his taglibs using Rome as the parser, and eventually to contribute them to Rome.</p></div>
<div class="section">
<h4>RSSLibJ<a name="RSSLibJ"></a></h4>
<p><a class="externalLink" href="http://enigmastation.com/rsslibj">RSSLibJ</a> is a full-Java RSS generation and consumption library, primarily centering on generating RSS feeds but able to consume them as well. It's maintained, but undergoing a refactoring to change a rather undesirable dependency.</p>
<p>(This isn't a review - this was added by one of RSSLibJ 's authors.)</p></div>
<div class="section">
<h4>Sandler<a name="Sandler"></a></h4>
<p>Sandler is yet another parser except that it only supports Atom feeds. I can't say more than that because I haven't used it. And now I won't have to.</p></div>
<div class="section">
<h4>Conclusion<a name="Conclusion"></a></h4>
<p>These are the only RSS or Syndication management libraries we found in Java when we reviewed what was available and wether it was worth starting a new project. Feel free to add to it if we forgot something.</p></div></div></div>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">
Copyright &#169; 2004-2013
<a href="http://www.rometools.org">ROME Project</a>.
All Rights Reserved.
</div>
<div class="clear">
<hr/>
</div>
</div>
</body>
</html>