rome/WhatSWrongWithOtherExistingRSSParsingLibraries.html
2016-04-24 20:59:50 +02:00

221 lines
10 KiB
HTML

<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia at 2016-04-24
| Rendered using Apache Maven Fluido Skin 1.3.0
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="author" content="mkurz" />
<meta name="Date-Creation-yyyymmdd" content="20110814" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - What's wrong with other existing RSS parsing libraries?</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
<link rel="stylesheet" href="./css/site.css" />
<link rel="stylesheet" href="./css/print.css" media="print" />
<script type="text/javascript" src="./js/apache-maven-fluido-1.3.0.min.js"></script>
</head>
<body class="topBarDisabled">
<a href="http://github.com/rometools/rome">
<img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"
alt="Fork me on GitHub">
</a>
<div class="container-fluid">
<div id="banner">
<div class="pull-left">
<a href="index.html" id="bannerLeft">
<img src="images/romelogo.png" alt="ROME"/>
</a>
</div>
<div class="pull-right"> </div>
<div class="clear"><hr/></div>
</div>
<div id="breadcrumbs">
<ul class="breadcrumb">
<li id="publishDate" class="pull-right">Last Published: 2016-04-24</li> <li class="divider pull-right">|</li>
<li id="projectVersion" class="pull-right">Version: 1.7.0-SNAPSHOT</li>
</ul>
</div>
<div class="row-fluid">
<div id="leftColumn" class="span3">
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">Rome</li>
<li>
<a href="index.html" title="Overview">
<i class="none"></i>
Overview</a>
</li>
<li>
<a href="HowRomeWorks/index.html" title="How Rome Works">
<i class="icon-chevron-right"></i>
How Rome Works</a>
</li>
<li>
<a href="RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/index.html" title="Tutorials And Articles">
<i class="none"></i>
Tutorials And Articles</a>
</li>
<li>
<a href="ROMEReleases/index.html" title="Releases">
<i class="icon-chevron-right"></i>
Releases</a>
</li>
<li>
<a href="ROMEDevelopmentProposals/index.html" title="ROME Development Proposals">
<i class="none"></i>
ROME Development Proposals</a>
</li>
<li>
<a href="Modules/index.html" title="Modules">
<i class="icon-chevron-right"></i>
Modules</a>
</li>
<li>
<a href="Fetcher/index.html" title="Fetcher">
<i class="icon-chevron-right"></i>
Fetcher</a>
</li>
<li>
<a href="Opml/index.html" title="OPML">
<i class="none"></i>
OPML</a>
</li>
<li>
<a href="Propono/index.html" title="Propono">
<i class="none"></i>
Propono</a>
</li>
<li>
<a href="Certiorem/index.html" title="Certiorem">
<i class="icon-chevron-right"></i>
Certiorem</a>
</li>
<li class="nav-header">Project Documentation</li>
<li>
<a href="project-info.html" title="Project Information">
<i class="icon-chevron-right"></i>
Project Information</a>
</li>
</ul>
<hr class="divider" />
<div id="poweredBy">
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
<img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
</a>
</div>
</div>
</div>
<div id="bodyColumn" class="span9" >
<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>
<hr/>
<footer>
<div class="container-fluid">
<div class="row span12">Copyright &copy; 2016.
All Rights Reserved.
</div>
</div>
</footer>
</body>
</html>