Compare commits

...

No commits in common. "gh-pages" and "master" have entirely different histories.

1270 changed files with 126565 additions and 36328 deletions

2
.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
# Set the default behavior, in case people don't have core.autocrlf set. See http://git-scm.com/docs/gitattributes
* text=auto

7
.gitignore vendored Normal file
View file

@ -0,0 +1,7 @@
target
.checkstyle
.project
.settings
.classpath
.idea
*.iml

5
.travis.yml Normal file
View file

@ -0,0 +1,5 @@
language: java
jdk:
- oraclejdk8
- oraclejdk7
script: mvn verify

View file

@ -1,282 +0,0 @@
<!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="kebernet" />
<meta name="Date-Creation-yyyymmdd" content="20111206" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Certiorem Tutorial</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-down"></i>
Certiorem</a>
<ul class="nav nav-list">
<li class="active">
<a href="#"><i class="none"></i>Tutorial</a>
</li>
</ul>
</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>Certiorem Tutorial<a name="Certiorem_Tutorial"></a></h2>
<p>Certiorem is a PubSubHubub (PSH) implementation for ROME. It isn't an application, but an API for building each of the three components (Publisher, Subscriber and Hub) into your web apps.</p>
<p>You can see an <a class="externalLink" href="https://github.com/rometools/rome-incubator/tree/master/pubsubhubub/webapp">example webapp here</a>.</p></div>
<div class="section">
<h2>Creating a Hub<a name="Creating_a_Hub"></a></h2>
<p>Hubs take notifications, or &quot;Pings&quot; that tell it the content of a feed has been updated, fetch the feed, then notify each of the subscribers of the change. As you will begin to see, Certiorem is very much about &quot;Composition&quot; of classes. The Hub class is a prime example of this.</p>
<p>Looking at the example webapp we see:</p>
<div class="source">
<pre>@Provides
@Singleton
public Hub buildHub() {
FeedFetcher fetcher = new HttpURLFeedFetcher(new DeltaFeedInfoCache());
&#xa0; &#xa0; Hub hub = new Hub(new InMemoryHubDAO(), new UnthreadedVerifier(), new UnthreadedNotifier(), fetcher);
&#xa0; &#xa0; return hub;
}</pre></div>
<p>First we construct an instance of FeedFetcher, from the Fetcher subproject. This will be used to fetch feeds from remote hosts. There are a number of implementations for FeedFetcher and FeedInfoCache in the Fetcher project. Please look there for info on what is what.</p>
<p>Next we need a HubDAO implementation. This is a DAO for managing Subscriber and SubscriptionSummary classes. Here we are using an in-memory DAO, which like the HashMapFeedInfoCache will evaporate if we restart our web application. A JPA implementation for persistence is also available, but incomplete at time of writing.</p>
<p>Next we need two implementations of network client interfaces: a Verifier, and a Notifier. The Verifier calls back to the Subscribers and verifies their subscribe/unsubscribe operations. A Notifier is used to send updates to to the clients. There are two basic implementations of these provided: A ThreadPool* and Unthreaded* version of each. The thread pool version uses a ThreadPoolExecutor to run queues of outbound calls. The Unthreaded version of each, makes the network calls in-line with the request to the hub. These are suitable for environments like Google App Engine where spawning threads from servlets is absolutely verboten.</p>
<p>There are other constructors that contain lists of restrictions for what the hub will support: acceptable topic feeds, ports, protocols, etc.</p>
<p>The hub here is just a business logic class. In order to have a functioning hub, we need a servlet exposing the Hub. In the &quot;web&quot; package, there is an abstract servlet you can use to do just this. In the Guice wired example, we simply create a servlet with an injected Hub implementation.</p>
<div class="source">
<pre>@Singleton
public class HubServlet extends AbstractHubServlet {
@Inject
public HubServlet(final Hub hub){
super(hub);
}
}
//... in the ServerModule...
serve(&quot;/hub*&quot;).with(HubServlet.class);</pre></div>
<p>We can now include a &lt;link rel=&quot;hub&quot;&gt; value in our feeds and publish notifications of changes.&#xa0;</p></div>
<div class="section">
<h2>Publishing Ping Notifications<a name="Publishing_Ping_Notifications"></a></h2>
<p>This is perhaps the easiest thing to do. The Publisher class will take various combinations of URLs and SyndFeeds and send the appropriate notification. If your SyndFeed contains a &lt;link rel='sel' /&gt; and &lt;link rel='hub' /&gt; you can just pass the SyndFeed object. Otherwise, you can use the URL strings where appropriate.</p>
<p>The example couldn't be simpler:</p>
<div class="source">
<pre>Publisher pub = new Publisher();
try {
pub.sendUpdateNotification(&quot;http://localhost/webapp/hub&quot;, &quot;http://localhost/webapp/research-atom.xml&quot;);
} catch (NotificationException ex) {
Logger.getLogger(NotifyTest.class.getName()).log(Level.SEVERE, null, ex);
throw new ServletException(ex);
}</pre></div>
<p>Once this notification is sent, the hub will make a request to the feed and notify the clients of new entries.</p></div>
<div class="section">
<h2>Subscribing to Feeds<a name="Subscribing_to_Feeds"></a></h2>
<p>To set up a feed subscriber, you need to go through a process very much like setting up a Hub. First, create the Subscriptions class by composition:</p>
<div class="source">
<pre>@Provides
@Singleton
public Subscriptions buildSubs(){
&#xa0; &#xa0; Subscriptions subs = new Subscriptions(new HashMapFeedInfoCache(), new AsyncRequester(),
&#xa0; &#xa0; &#xa0; &#xa0; &#xa0; &#xa0; &quot;http://localhost/webapp/subscriptions/&quot;, new InMemorySubDAO());
&#xa0; &#xa0; return subs;
}</pre></div>
<p>First we need a FeedInfoCache implementation. This will be updated as notifications come in, so in your web app, you want to make sure this is shared with the FeedFetcher implementation you are using to read feeds. Next you need a Requester, this is a network class that makes subscription requests to remote hubs. Next, a URL prefix for where the callbacks will live. This really means the URL to the SubServlet that is resolvable externally. Finally, a DAO for storing and retrieving Subscription objects.</p>
<p>As in the Hub, we need a wrapper servlet to call into the Subscriptions class</p>
<div class="source">
<pre>@Singleton
public class SubServlet extends AbstractSubServlet {
@Inject
public SubServlet(final Subscriptions subscriptions){
super(subscriptions);
}
}
// In the ServerModule...
serve(&quot;/subscriptions/*&quot;).with(SubServlet.class)</pre></div>
<p>Now if we want to subscribe to a feed, we get a reference to the Subscriptions object, and pass in either the SyndFeed (with appropriate rel=&quot;hub&quot; and rel=&quot;self&quot; links) or simply a couple of URLs:</p>
<div class="source">
<pre>&#xa0;subs.subscribe(&quot;http://localhost/webapp/hub&quot;, &quot;http://localhost/webapp/research-atom.xml&quot;, true, -1, null, new SubscriptionCallback(){
public void onFailure(Exception e) {
e.printStackTrace();
}
public void onSubscribe(Subscription subscribed) {
System.out.println(&quot;Subscribed &quot;+subscribed.getId() +&quot; &quot;+subscribed.getSourceUrl());
}
});</pre></div>
<p>Here we pass in the URL of the Hub, the URL of the feed, a boolean indicating we want to make the subscription request synchronously, the lease seconds we want to keep the subscription for, a null cryptographic secret, and a Callback invoked when the subscribe request completes.</p></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>

View file

@ -1,221 +0,0 @@
<!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="kebernet" />
<meta name="Date-Creation-yyyymmdd" content="20110319" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - certiorem</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 class="active">
<a href="#"><i class="icon-chevron-down"></i>Certiorem</a>
<ul class="nav nav-list">
<li>
<a href="../Certiorem/CertioremTutorial.html" title="Tutorial">
<i class="none"></i>
Tutorial</a>
</li>
</ul>
</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>Certiorem<a name="Certiorem"></a></h2>
<p>Certiorem is an implementation of the <a class="externalLink" href="http://pubsubhubbub.googlecode.com/svn/trunk/pubsubhubbub-core-0.3.html">PubSubHubub </a>protocol for ROME.</p>
<p>It is dependent on ROME and ROME-Fetcher for the base implementations, and will provide standard plugins for Propono to allow for publish eventing, where applicable.</p>
<div class="section">
<h3>Primary Components<a name="Primary_Components"></a></h3></div>
<div class="section">
<h3>Hub Implementation and Scaffolding (Done)<a name="Hub_Implementation_and_Scaffolding_Done"></a></h3>
<p>The first part of Certiorem is a basic set of scaffolding classes that can be used to create a PSH notification hub. Initially, this will include a non-guaranteed delivery hub, with standard implementations suitable for deployment on most JavaEE application servers or Google App Engine. It is intended that there should be at least one simple, drop in WAR file, utilizing JavaEE classes that can work in a default configuration for various standard web containers. Subsequently, &#xa0;each of the classes in the PSH implementation up through the primary Controller class use constructor-time composition/configuration so that the user/developer can easily construct a custom configuration of the Hub.</p>
<div class="section">
<h4>Client Implementation Integrated with ROME-Fetcher (Done)<a name="Client_Implementation_Integrated_with_ROME-Fetcher_Done"></a></h4>
<p>For web-based applications that use ROME-Fetcher, an extended push-notified store wrapper that will update based on callbacks from a Hub of change notifications. This will include a highly configurable callback servlet to write into the Fetcher cache as changes are made. Additionally, the system should support (semi-)real time notifications of changes in the form of a listener that exectutes in a TBD thread state relative to the callback servlet. This should be packaged as a simple JAR with no more deps than fetcher that defines the callback servlet, and automagically does subscribes where link=rel appropriate.</p></div>
<div class="section">
<h4>Notification Implementation for Propono based and JAX-RS based Servers (In Progress)<a name="Notification_Implementation_for_Propono_based_and_JAX-RS_based_Servers_In_Progress"></a></h4>
<p>This should be a simple API call to notify a Hub of changes to topics. Again, this should provide real-time notifications either synchronously or asynchronously. Importantly for&#xa0;Asynchronous&#xa0;notifications, they should block subsequent change notifications pending a notification to the Hub.</p>
<p>References:&#xa0;</p>
<p><a class="externalLink" href="https://github.com/nlothian/RTUpdates/blob/master/src/com/nicklothian/pubsubhub/PubSubHubSubscriptionServlet.java">https://github.com/nlothian/RTUpdates/blob/master/src/com/nicklothian/pubsubhub/PubSubHubSubscriptionServlet.java</a></p>
<p><a class="externalLink" href="http://grack.com/blog/2009/09/09/parsing-the-pubsubhubbub-notifications/">http://grack.com/blog/2009/09/09/parsing-the-pubsubhubbub-notifications/</a></p></div></div></div>
<div class="section">
<h2>Notes on the Code<a name="Notes_on_the_Code"></a></h2>
<p>It is still mostly a rough sketch, but the big outlines are there:</p>
<p>There are three main packages: pub, sub and hub.</p>
<p>The pub package is basically just a single utility class for pushing notifications to a hub.</p>
<p>The hub package contains the Hub class. This is a general business controller that is intended to allow you to build a servlet around it with a very, very thin veneer, but you could also use it to drive an XMPP or JMS version too. It is basically built by composition of a number of classes, for which there are some default implementations: A Verifier, which makes the callback to verify new subscriptions, the HubDAO which stores the current subscriptions and subscriber statistics, and a Notifier which actually sends notifications to the subscribers. There are a couple of implementations of each of these (though the JPA HubDAO is still in process). Mostly the implementations for the Verifier and Notifier support threadpooling or no-threads (for App Engine use).</p>
<p>I have just started sketching out the sub package, but it basically has a &quot;Subscriptions&quot; class that will take in notifications (using the same &quot;thin veneer&quot; pattern that the Hub class uses). It is also constructed with some impls: A SubscriptionDAO that stores you current subscription information, a FeedFetcherCache that holds the received data, and a Requester that makes the subscription requests to hubs.</p>
<p>I am hoping to have a basic end to end example working sometime in the next week or so, but if anyone wants to look over what is there, feel free.</p></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>

View file

@ -1,485 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Change Log</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>Change Log<a name="Change_Log"></a></h2>
<div class="section">
<h3>Changes made since v1.0<a name="Changes_made_since_v1.0"></a></h3>
<ol style="list-style-type: decimal">
<li><a class="externalLink" href="http://java.net/jira/browse/ROME-127">Issue 127</a>: Rome 1.0 not JDK 1.4 compatible</li></ol></div>
<div class="section">
<h3>Changes made since v1.0RC2<a name="Changes_made_since_v1.0RC2"></a></h3>
<ol style="list-style-type: decimal">
<li><a class="externalLink" href="http://java.net/jira/browse/ROME-121">Issue 121</a>: RSS item category iteration should try to reflect document order</li>
<li>New property preserveWireFeed available on SyndFeedInput<br />WireFeeds will be preserved if the property preserveWireFeed is set on the SyndFeedInput object it is built from. Atom/RSS Entry/Item objects are also available from SyndEntry objects if the WireFeed is preserved using the new getWireEntry() method. See <a href="./PreservingWireFeeds.html">Preserving WireFeeds (rome)</a> for details.</li></ol></div>
<div class="section">
<h3>Changes made since v1.0RC1<a name="Changes_made_since_v1.0RC1"></a></h3>
<ol style="list-style-type: decimal">
<li>Fix. Date parsing for Atom10 entry and additional W3C masks<br />Item date elements were being parsed with the W3C parser instead the lenient one (RFC822 + W3C + custom masks).<br />The following masks were added to W3C masks to handle RFC822 timezone (ie '-800'):
<div class="source">
<pre>
yyyy-MM-dd'T'HH:mm:ssZ yyyy-MM-dd't'HH:mm:sszZ
</pre></div></li>
<li>Fix. Contributors properties in SyndEntry were not implementing the semantics of list properties.<br />They were returning NULL instead, now they return an empty list if not values are set.</li>
<li>Fix. Contributors properties in SyndEntry and SyndFeed were not being converted to/from WireFeed</li>
<li>Fix. Syndication Module Generator was failing if some of its values were null.<br />Checks for nulll have been added it to the generator to prevent NullPointerExceptions</li>
<li>New. Added new constructor to XmlReader
<div class="source">
<pre>
public XmlReader(InputStream is, boolean lenient, String defaultEncoding)
</pre></div></li>
<li>New. Support atom person construct extensions, using the Extendable interface on SyndPerson:<br />Patch from James Roper. See <a class="externalLink" href="http://java.net/jira/browse/ROME-110">Issue 1101</a> for details</li>
<li>New. Maven 2 build for main project<br />ROME can now be built with Maven 2</li>
<li>New. OSGi support<br />OSGi headers to MANIFEST.MF so that rome.jar can also be used in an OSGi environment. See <a class="externalLink" href="http://java.net/jira/browse/ROME-117">Issue 117</a> for details.</li>
<li>New. Allow pretty printing to be turned on and off<br />see <a class="externalLink" href="http://java.net/jira/browse/ROME-114">Issue 114</a> for details. Thanks to Martin Kurz for the patch.</li>
<li>Configurable classloading behavior for OSGi compatibility.<br />We have received a report of some issues with plugin loading in an OSGi environment (<a class="externalLink" href="http://java.net/jira/browse/ROME-118">Issue 118</a>). The fix appears to be to change Class.forName to classLoader.loadClass, but the semantics for this are subtly different, so we have made this new behavior user selectable. Set the &quot;rome.pluginmanager.useloadclass&quot; system property to &quot;true&quot; to enable it.</li>
<li>More lenient number parsing<br />There were a number of problems with feeds providing blank or invalid values in fields which would be numbers. ROME will now handles these better. See issues <a class="externalLink" href="http://java.net/jira/browse/ROME-104">104</a>, <a class="externalLink" href="http://java.net/jira/browse/ROME-107">107</a> and <a class="externalLink" href="http://java.net/jira/browse/ROME-108">108</a> for details.</li></ol></div>
<div class="section">
<h3>Changes made from v0.9 to v1.0RC1<a name="Changes_made_from_v0.9_to_v1.0RC1"></a></h3>
<ol style="list-style-type: decimal">
<li>New. XmlReader support for default encoding<br />The XmlReader can be set with an alternate default encoding in case no encoding has been detected from the transport (HTTP), the stream or the XML prolog. if no value is set the default fallback rules based on the content-type will be used. The alternate default encoding can be set/viewed via a static methods, <b>setDefaultEncoding()</b> and <b>getDefaultEncoding()</b>.</li>
<li>Fix. Atom 1.0 links were generated without title and length attributes.<br />The Atom 1.0 Generator was not generating title and length attributes when values are present.</li>
<li>Fix. XmlReader, multi-line prolog encoding detection.<br />XmlReader handles properly xml-prolog detection when prolog goes over multiple lies (such as G groups feeds).</li>
<li>Fix. Base64 decoding was failing under certain padding conditions.</li>
<li>Fix. XmlReader fixes<br />Fixed bug that if BOM is UTF8 was not being set to UTF8. Changed logic to use Buffered stream instead pushback stream for all encoding detection. Changed logic of xml prolog detection to avoid having a buffer with half of a unicode character (instead filling up the buffer looking up to first '&gt;' which means it a valid buffer).</li>
<li>New. XmlReader supports default encoding at instance level.<br />Via a new constructor is possible to indicate a default encoding different than the default encoding at class level.</li>
<li>Fix. Making the EqualsBean to follow equals contract.<br />For X.equals(null) it was throwing a NullPointerException, now it returns FALSE.</li>
<li>Fix. Render Atom icon and logo attributes.<br />AtomGenerator now adds icon and logo elements to xml tree</li>
<li>Fix. Updated AtomPub namespace to its permenent home.<br />AtomService namespace updated to <a class="externalLink" href="http://www.w3.org/2007/app">http://www.w3.org/2007/app</a></li>
<li>New. Added support for configuration per classloader level.<br />The PluginManager (handles Parsers and Generators) now is singleton at classloader level allowing different configurations in different classloaders.</li>
<li>Atom parser: better relative URI handling<br />Instead of simply resolving each relative URI at runtime and saving only the resolved one, we now save both the relative URI and the resolve one. We introduced the following new methods to provide access to the resolved URI.
<ul>
<li>Link.getLinkResolved()</li>
<li>Link.setLinkResolved()</li>
<li>Category.getSchemeResolved()</li>
<li>Category.setSchemeResolved()</li>
<li>Person.getUriResolved()</li>
<li>Person.setUriResolved()</li></ul></li>
<li>Utility methods useful in working with Atom protocol feeds<br />Added a couple of methods to make it easier to deal with Atompub feeds.
<ul>
<li>Entry.isMediaEntry()</li>
<li>Atom10Parser.parseEntry()</li>
<li>Atom10Generator.serializeEntry()</li></ul></li>
<li>Bugs fixed<br />Fixed the following bugs:
<ul>
<li>49 Better content/summary mapping</li>
<li>53 Content.setType not working with subtitles atom 1.0</li>
<li>56 fix of bug #39 leads to invalid atom feeds</li>
<li>63 Missing link attribute when generating Atom 1.0</li>
<li>64 ROME's Atom parser doesn't pick up multiple alt links</li>
<li>65 Atom feeds not including logo image</li>
<li>71 encoding problem in XmlReader.getXmlProlog()</li>
<li>79 Feed.setIcon()/setLogo() ignored by Atom10Generator</li>
<li>81 SyndFeedImpl.equals() does not obey equals contract</li></ul></li>
<li>Fix. Parsers where ignoring namespaced prefixed Attributes.<br />If an XML feed uses a prefix for the Atom elements and the attributes of Atom elements use the prefix the parser was not picking up those attributes.<br />The fix makes the parser to look for prefixed and non-prefixed attributes.</li>
<li>Fix. Atom Feed and Entry beans author and category property getters<br />They were returning NULL when there were not authors or categories, they must return an empty list.</li>
<li>New. Switch to enable/disable relative URI resolution in Atom 1.0 Parser.<br />The Atom10Parser class has a static method, setResolveURIs(boolean) that enables/disables relative URI resolution.</li>
<li>New. XmlReader handling content-type charset values has been relaxed.<br />XmlReader handles content-type charset encoding value within single quotes and double quotes.</li>
<li>Fix. Links, authors and contributors properties in SyndFeed were not implementing the semantics of list properties.<br />They were returning NULL instead, now they return an empty list if not values are set.</li>
<li>Fix. RSS conversion of a SyndFeed was losing the link of the feed if the links property was used instead the link property.<br />Over time the SyndFeed has been modified to support more Atom specific properties and their cardinality, conversion to RSS of these properties was not always taken care.<br />The RSS converter has been changed so the link from SyndFeed is taken as channel link and if not set the first value of the links property is taken.</li>
<li>Fix. WireFeedInput throws IllegalArgumentException if the feed type is not recognized.<br />Previously the IllegalArgumentException was wrapped by a ParsingFeedException (Reported by <a class="externalLink" href="http://java.net/jira/browse/ROME-91">Issue 91</a>).</li>
<li>Fix. SyndFeedImpl.equals(other) checks for instance of other before casting.<br />The underlying ObjectBean does this check, but in this method a cast is done before to obtain the foreign markup, no the instance check is peformed before to avoid a class cast exception.</li>
<li>Fix. Atom content based elements related fixes
<ul>
<li>Atom 0.3 Parser/Generator
<ul>
<li>Changed title to be treated as a Content construct. (<a class="externalLink" href="http://www.mnot.net/drafts/draft-nottingham-atom-format-02.html#rfc.section.4.3">http://www.mnot.net/drafts/draft-nottingham-atom-format-02.html#rfc.section.4.3</a>)</li></ul></li>
<li>Atom 1.0 Generator:
<ul>
<li>changed feed title/subtitle and entry title to be treated as Content constructs. (Parser had this implemented already.)</li>
<li>added title attribute to links. (Parser had this implemented already.)</li>
<li>fixed content parsing for some XML content types. e.g. (application/xhtml+xml)</li></ul></li></ul></li>
<li>Fix. Atom link and enclosures handling
<ul>
<li>Atom 0.3 Converter
<ul>
<li>fixed link parsing code to parse all links (not just the first alternate link) and added enclosure support via link rel=&quot;enclosure&quot;.</li>
<li>changed title conversion to use Content instead of plain text.</li></ul></li>
<li>Atom 1.0 Converter
<ul>
<li>added SyndEnclosure to atom:link rel=enclosure conversion.</li></ul></li></ul></li>
<li>Fix. RSS 1.0 URI generation
<ul>
<li>RSS 1.0 Generator
<ul>
<li>channel/items/Seq/li/@resource now get's the item URI instead of the Link. (<a class="externalLink" href="http://web.resource.org/rss/1.0/spec#s5.3.5">http://web.resource.org/rss/1.0/spec#s5.3.5</a>)</li></ul></li></ul></li>
<li>Fix. Javadocs corrections.
<ul>
<li>Fixed some javadoc comments for SyndEntry.</li></ul></li>
<li>Fix. Atom content based elements were not parsed with XML mime types.<br />If the mime type was and XML mime type the content value was being lost on parsing.</li>
<li>Fix. duplication of content:encoded elements when reading/writing and RSS feed.<br />content:encoded elements are treated special, without a module, they have to be removed from the foreign markup to avoid duplication in case of read/write. Note that this fix will break if a content module is used.</li>
<li>New. XmlFixerReader converts '&amp;' into '&amp;' when there is no matching entity.<br />Feeds commonly use '&amp;' instead '&amp;' in their content, this change converts those orphant '&amp;'s into '&amp;'s.</li>
<li>Fix. RSS090Parser does not set the URI property.<br />The fix honors the documentation &quot;For RSS 0.91, RSS 0.92, RSS 0.93 &amp; RSS 1.0 ... the SyndEntry uri property will be set with the value of the link element...&quot;</li>
<li>New. Removal of all unused namespaces from generated feeds.<br />The generators now remove all unused namespaces from the XML document before generating it.</li></ol></div>
<div class="section">
<h3>Changes made from v0.8 to v0.9 <a name="Changes_made_from_v0.8_to_v0.9"></a></h3>
<ol style="list-style-type: decimal">
<li>Design changes
<ul>
<li>Support Atom feed.title, feed.subtitle and entry.title <a class="externalLink" href="http://java.net/jira/browse/ROME-48">Issue 48</a><br />#48 fixed via better support for Atom text constructs title and subtitle. Added get/setTitleEx() and get/setSubtitleEx(), which get get SyndContent objects. Title and subtitle still available from old getters/setters.</li>
<li>Support for mapping Atom summary/content to RSS description/content <a class="externalLink" href="https://rome.dev.java.net/servlets/ReadMsg?list=dev&amp;msgNo=1680">https://rome.dev.java.net/servlets/ReadMsg?list=dev&amp;msgNo=1680</a></li>
<li>Fixed by introduced Content object in RSS model. ROME now parses as RSS Content. That makes parsing easier and allows us to support a more logical summary/content mapping:
<ul>
<li>RSS to/from Atom</li>
<li>RSS to/from Atom</li></ul></li></ul></li>
<li>General parsing fixes
<ul>
<li>XmlReader xml prolog regular expression does not allow for single quotes <a class="externalLink" href="http://java.net/jira/browse/ROME-36">Issue 36</a><br />The XmlReader was only parsing prolog encodings within double quotes, the regular expression to detect the encoding has been change to detect single or double quotes.</li>
<li>Fix. XML prolog parsing now support whitespaces around '='<br />If the XML prolog contained spaces around the '=' between the encoding attribute name and the encoding attribute value the encoding was not being detected. The fix accepts all valid whitespace characters (as defined in the XML spec).</li>
<li>RSS parser does not recognize version=&quot;2.00&quot; <a class="externalLink" href="http://java.net/jira/browse/ROME-33">Issue 33</a></li>
<li>Atom 1.0 Text Types Not Set Correctly <a class="externalLink" href="http://java.net/jira/browse/ROME-39">Issue 39</a></li>
<li>Security issue <a class="externalLink" href="http://java.net/jira/browse/ROME-46">Issue 46</a></li>
<li>Fix for the potential problem outlined in <a class="externalLink" href="http://www.securiteam.com/securitynews/6D0100A5PU.html">http://www.securiteam.com/securitynews/6D0100A5PU.html</a>. Thanks to Nelson Minar for bringing this to our attention.</li>
<li>Fix. Wrong default description type for RSS 2.0 Fix for <a class="externalLink" href="http://java.net/jira/browse/ROME-26">Issue 26</a></li>
<li>Change default description type for RSS 2.0 from text/plain to text/html as per RSS 2.0 spec</li>
<li>Fix to add all HTML4 entities, according to <a class="externalLink" href="http://www.w3.org/TR/REC-html40/sgml/entities.html">http://www.w3.org/TR/REC-html40/sgml/entities.html</a> specially for the HTMLsymbol set (Mathematical, Greek and Symbolic characters for HTML) and the HTMLspecial set (Special characters for HTML).</li></ul></li>
<li>Date parsing fixes
<ul>
<li>Additional version and date leniency could extract more information <a class="externalLink" href="http://java.net/jira/browse/ROME-24">Issue 24</a></li>
<li>Non RFC822 Dates not processed in RSS pubDate field <a class="externalLink" href="http://java.net/jira/browse/ROME-27">Issue 27</a>
<ul>
<li>RSS feed parsers were were only parsing RFC822 dates because they were not using the proper date-time parsing function for the date-time elements.</li>
<li>If a W3C date-time element had no time component it was being parsed as local time instead of GMT, ROME DateParser class has been modified to use GMT in this situation.</li>
<li>Current JDKs do not handle 'UT' timezone indicator, ROME DateParser class has been modified to handle it.</li>
<li>Use Atom updated instead of published <a class="externalLink" href="http://java.net/jira/browse/ROME-41">Issue 41</a></li>
<li>Atom 1.0 Date (Updated or Published) Not Set <a class="externalLink" href="http://java.net/jira/browse/ROME-42">Issue 42</a></li>
<li>lastBuildDate does not populate publishedDate <a class="externalLink" href="http://java.net/jira/browse/ROME-43">Issue 43</a> Provides a feed date for RSS 0.91 feeds that specify lastBuildDate but not pubDate.</li></ul></li>
<li>Fix. Parsing some numeric elements was failing due to whitespaces The image.width and image.height of RSS091U, the frequency of SyModule and the cloud.port of RSS092 elements are now being trimmed before doing the integer parsing.</li></ul></li>
<li>Atom link and URI fixes
<ul>
<li>Improper relative link resolution in Atom10Parser <a class="externalLink" href="http://java.net/jira/browse/ROME-37">Issue 37</a></li>
<li>ATOM 1.0 Entry links parsing <a class="externalLink" href="http://java.net/jira/browse/ROME-38">Issue 38</a></li>
<li>ConverterForRSS10.java does not set URI for item <a class="externalLink" href="http://java.net/jira/browse/ROME-25">Issue 25</a></li>
<li>Valid IRI href attributes are stripped for atom:link <a class="externalLink" href="http://java.net/jira/browse/ROME-34">Issue 34</a></li></ul></li>
<li>Module fixes
<ul>
<li>iTunes Module has incorrect author and category support <a class="externalLink" href="http://java.net/jira/browse/ROME-35">Issue 35</a></li>
<li>mediarss.io.MediaModuleParser NumberFormatException <a class="externalLink" href="http://java.net/jira/browse/ROME-45">Issue 45</a></li>
<li>Slash module not serializable for FeedFetcher <a class="externalLink" href="http://java.net/jira/browse/ROME-44">Issue 44</a></li></ul></li></ol></div>
<div class="section">
<h3>Changes made from v0.7 to v0.8<a name="Changes_made_from_v0.7_to_v0.8"></a></h3>
<ol style="list-style-type: decimal">
<li>Change. Added enclosure support at Synd* level<br />A new bean for handling enclosures at Synd* level has been created (SyndEnclosure/SyndEnclosureImpl, interface/implementation).<br />The SyndEntry/SyndEntryImpl bean has a new 'enclosures' property which returns the list of enclosures for that item.<br />The Wire* to Synd* converters for RSS propagate enclosures in both directions.<br />This enables handling enclosures from RSS 0.92, 0.93, 0.94 and 2.0 at Synd* level<br />Test cases have been modified to cover enclosures at Synd* level.</li>
<li>Change/Fix. Synd* - Atom entry dates mapping
<ul>
<li>(Change) Atom entries have 3 dates, 'modified', 'issued' and 'created'. Synd entries have only 1 date property 'publishedDate'. When converting from Atom to Synd the first not null date in the order above will be the one set in the Synd entry bean.</li>
<li>(Fix) When converting from Synd to Atom the Synd entries 'publishedDate' property value is set in both 'modified' and 'issued' properties of the Atom entry.<br />This Change/Fix is to be aligned with the Atom 0.3 spec.</li></ul></li>
<li>Fix. Trim enclosure length attribute<br />Fix from Trey Drake: At least 1 podcast site (ESPN) occasionally leaves trailing spaces in the enclosure content length attribute. This causes a NumberFormatException.</li>
<li>Fix. Conversion to RSS 1.0 if Channel URI is not specified<br />Fix for problem converting to RSS 1.0 if not URI is specified at the channel level (it will now attempt to use the Link element)</li>
<li>Changes to support Atom 1.0
<ul>
<li>In com.sun.syndication.synd, added SyndLink and SyndPerson.</li>
<li>In SyndEntry added. In SyndEntry, added summary, updatedDate, links collection and support for multiple authors.</li>
<li>In com.sun.syndication.synd.impl, added Atom10Parser.java, Atom10Generator.java and ConverterForAtom10.java.</li></ul></li></ol></div>
<div class="section">
<h3>Changes made from v0.6 to v0.7<a name="Changes_made_from_v0.6_to_v0.7"></a></h3>
<ol style="list-style-type: decimal">
<li>Fix. RFC-882 dates parsing and generation were using localized names for day and month names<br />The date parser and generator were using the JVM default Locale instead forcing an English Locale to use day and month names in English as specified by RFC-822. Now US Locale is used.</li>
<li>Fix. The 'ttl' element of RSS0.94 and RSS2.0 feeds was not being parsed<br />The parsers now parse the 'ttl' element and it is available in the resulting Channel bean. Note that 'ttl' info is not available in the SyndFeed bean, thus it's lost when converting from WireFeed to SyndFeed.</li>
<li>Change. RSS enclosures with empty 'length' attributes are accepted<br />Parsing an RSS feed with an enclosure where the length attribute was an empty String were failing. Now they are parsed and the length is set to 0.</li>
<li>Change. RSS 1.0 feeds use URI/Link for unique ID (rdf:about).<br />RSS 1.0 specification recommends that the rdf:about attribute URI use the value of the item's link element, though this could be different if the user chooses to override it by specifying their own URI. RSS 1.0 feeds now use the URI if specified, otherwise the link for the item.</li>
<li>Fix. toString() was reporting NullPointerException with List properties<br />When a List (or Map) property had a NULL element the toString() logic was failing partially due to a NullPointerException.</li>
<li>Fix. DC creator elements were being lost when converting to SyndFeed<br />DC creator elements were being lost when converting to SyndFeed. This was happening with RSS versions that have native author elements (0.94 and 2.0) and for the managingEditor element at channel level (available in 0.91 Userland and onwards).</li>
<li>Change. Date and enumeration elements are trimmed during parsing<br />There are some feeds that add whitespaces or carriage return characters before or after the proper date or enumeration value. This was causing ROME to fail processing those elements. This is taken care now as all dates elements in all feed types and Modules and the 'channel.skipHours.hour' and 'channel.skipDays.day' (RSS0.91 - RSS2.0) are trimmed before parsing and setting their values in the beans.</li>
<li>Fix. SyndFeed description now maps to atom:tagline<br />Previously, atom:info was being mapped to the feed's description. According to the Atom03 spec atom:info should be ignored by parsers, and the more appropriate element is atom:tagline.</li>
<li>Fix. RSS cloud is now generated/parsed correctly<br />The 'path' attribute from the cloud was not being generated/parsed. The parser now process all cloud attributes and set the cloud to the channel.</li>
<li>Fix. RFC-822 2 digit years<br />Previously RFC-822 dates did not work correctly with 2 digit years. This is now fixed.</li>
<li>Fix. No alternate link causes IndexOutOfBoundsException<br />Fix bug where no alternate link causes IndexOutOfBoundsException in ConverterForAtom03 (Thanks to Joseph Van Valen).</li>
<li>Change. Date parsing attemps RFC822 on W3C parsing on all feeds<br />All feed parsers (RSS and Atom) now attemp both RFC822 and W3C parsing on date values.</li>
<li>Fix. XmlFixerReader removes character from stream when parsing an entity that contains an invalid character<br />Fix bug in XmlFixerReader where an invalid entity such as &quot;&amp;ent=&quot;, gets put back on the stream without the last character (in this example, &quot;&amp;ent=&quot; becomes &quot;&amp;ent&quot;). This was most visible when the XmlFixerReader encountered an URL with a query string that has more than one parameter (e.g. <a class="externalLink" href="http://www.url.com/index.html?qp1=1&amp;qp2=2">http://www.url.com/index.html?qp1=1&amp;qp2=2</a>) -- all &quot;=&quot; after the first one would disappear.</li>
<li>Change. DateParser can use additional custom datetime masks<br />Besides attempting to parse datetime values in W3C and RFC822 formats additional datetime masks can be specified in the /rome.properties files using the 'datetime.extra.masks' property. To indicate multiple masks the '|' character must be used, all other characters are considered part of the mask. As with parser/generators/converter plugins the masks are read from all /rome.properties file in the classpath.</li></ol></div>
<div class="section">
<h3>Changes made from v0.5 to v0.6<a name="Changes_made_from_v0.5_to_v0.6"></a></h3>
<ol style="list-style-type: decimal">
<li>Fix. W3C date-time parsing now handles date-time with 'Z' modifier<br />The W3C date-time parser was not parsing times using the UTC modifier 'Z'.</li>
<li>Fix. XML prolog encoding parsing was failing when other attributes where present in the prolog<br />If there was an attribute following the encoding attribute the value of the encoding attribute was misinterpreted. For example, for the XML prolog the detected encoding was <tt>UTF-8&quot; standalone=&quot;yes</tt> instead of <tt>UTF-8</tt>.</li>
<li>Change. XmlReader lenient behavior gives priority to XML prolog encoding over content-type charset<br />In ROME 0.5 the XmlReader first attempts to do a strict charset encoding detection. Only if the strict detection fails it attempts a lenient detection. When the HTTP Content-Type header is of type <tt>text/*xml</tt> and the header does not specify any charset, RFC 3023 mandates that the charset encoding must be <tt>US-ASCII</tt>. It's a common error for sites to use the <tt>text/*xml</tt> MIME type without charset information and indicate the charset encoding in the XML prolog of the document, being the charset encoding in the XML prolog different from <tt>US-ASCII</tt>. The XmlReader lenient behavior has been modified to give precedence to the XML prolog charset encoding, if present, over the HTTP Content-Type charset encoding.</li>
<li>Addition. XML Healer<br />ROME parsers, SyndFeedInput and WireFeedInput, have a new feature, XML healing.<br />The XML healing trims the beginning of the XML text document if there are whitespaces, enters or XML comments before the XML prolog or the root element. It also replaces all HTML literal entities occurrences with coded entities. These changes convert feeds technically invalid (from the XML specification perspective) into valid ones allowing the SAX XML parser to successfully parse the XML if there are not other errors in it.<br />This behavior is active by default. It can be turned on and off using the new 'xmlHealerOn' property in the SyndFeedInput and WireFeedInput classes.<br />The idea for this feature was taken from the FeedFilter from Jakarta's commons feedparser.</li>
<li>Addition. The XML prolog of generated feeds contains the feed encoding<br />ROME generators were creating feeds with the XML prolog encoding always set to 'UTF-8', if the given Writer had another charset encoding things would break for anybody consuming the feed (a mismatch between the char stream charset and what the XML doc says).<br />The SyndFeedOutput and WireFeedOutput generators now use the SyndFeed and WireFeed 'encoding' property to set the 'encoding' attribute in the XML prolog of the generated feeds. It is the responsibility of the developer to ensure that if the String is written to a character stream the stream charset is the same as the feed encoding property.</li>
<li>Change. SyndFeed to Atom convertion now uses 'escaped' mode for content elements<br />SyndFeed to Atom converter was using 'xml' mode for content elements. This was breaking feeds with content that was not propertly escaped as it was assumed to be XML fragments.</li>
<li>Change. RSS 2.0 parser and generator now handles DC Module<br />ROME configuration has been changed so RSS 2.0 parser and generator handle DC Module elements at channel level and item level.</li>
<li>Fix. RSS0.93, RSS0.94 and RSS2.0 'dc:date' element value was being lost under certain conditions<br />If a feed had 'dc:date' elements but not 'pubDate' elements, the 'dc:date' elements where lost when converting from Channel to SyndFeed.<br />This was happening for 'dc:date' elements at channel level and at item level.</li>
<li>Fix. RSS 1.0 'rdf:resource' and 'rdf:about' item linking attributes use a unique ID now<br />The value for the 'rdf:resource' and 'rdf:about' linking attributes was done using the value of the 'link' element. If there is more than one item with the same link the generated feed will be incorrect.<br />Instead using the link value now the index of the item is used for the linkage between 'rdf:resource' and 'rdf:about' for items.</li>
<li>Fix/Change. Parsing and setting of enumerated elements is case insentive now<br />Parsing and bean setting of enumerated values (such as RSS skipDay, Atom content mode, etc) are now case insentive, generation is strict (Postel Law).</li>
<li>Fix. Remove enumeration check on 'rel' attribute of Atom link elements<br />Because a misunderstanding of Atom 0.3 specification the Atom Link bean was checking the value of the 'rel' property against a set of valid values. The check has been removed.</li>
<li>Fix. DC subjects (in RSS versions with native categories) were being lost on conversion to SyndFeed<br />All RSS versions with native categories (at both channel and item level) now have the following behavior when converting to SyndFeed.<br />DC subjects are converted to SyndCategories. Native categories are converted to SyndCategories. They are both aggregated in a Set (to remove duplicates) then added to the SyndFeed.<br />When doing a SyndFeed to Channel conversion, if the RSS version has native categories and handles DC modules the categories will be duplicated as native and DC ones.</li>
<li>Fix/Change. RSS 1.0 rdf:about attribute in the channel.<br />RSS 1.0 uses the rdf:about attribute at the channel level as an identifier. This was not being parsed or generated (only supported at the item level). Support for this was added along with test cases.</li>
<li>Fix/Change/Addition. Multivalued Dublin Core element support.<br />Many feeds are using multiple DC elements to tag metadata, the interface for the DCModule has been changed to support Lists of elements, compatibility has been maintained with the existing interface though as the new methods are plural (creators vs. creator), the single value methods will remain as convenience methods. The implementation now uses the lists to represent all of the elements. The parser/generator modules for DC have been updated to reflect these changes along with a few other code cleanups in the DC* modules.</li>
<li>Fix. Removed length constraint checks from RSS1.0 generator<br />RSS1.0 specification does not require, only suggests, maximum length for some of the elements. ROME was enforcing those lenghts when generating RSS1.0 feeds. This enforcement has been removed becuase is not mandatory.</li></ol></div>
<div class="section">
<h3>Changes made from v0.4 to v0.5<a name="Changes_made_from_v0.4_to_v0.5"></a></h3>
<ol style="list-style-type: decimal">
<li>Change. Got rid of Enum class<br />All constants in the beans are Strings now, the corresponding property setters check that the value being set is one of the valid constants. Rome has not business defining an Enum class.</li>
<li>Change. Got rid of ToString interface<br />This is just an implementation convenience, it was polluting Rome API. Modified ToStringBean to work without requiring an interface and method to propagate the prefix to use with properties.</li>
<li>Change. ObjectBean, ToStringBean, EqualsBean are not part of the public API anymore<br />These are just an implementation convenience, they were polluting Rome API. Rome bean implementations don't extends ObjectBean anymore. Instead they use it in a delegation pattern. While these classes are not public anymore they are part of Rome implementation.</li>
<li>Change. CopyFrom interface moved to com.sun.syndication.feed package<br />The common package is gone now that the *Bean classes are not there anymore. No point keeping a package just for an interface.</li>
<li>Fix. PluginManager was not doing plugin lookup in the defined order<br />PluginManager (manages parsers, generators and convertors for feeds and modules) was not doing the lookup in order the plugins are defined in the rome.properties files. This is needed for parsers where the lookup involves detecting the feed type and the feed type detection goes needs to go from stronger to weaker.</li>
<li>Addition. Rome now recognizes RSS 2.0 feeds with 'http://backend.userland.com/rss2' namespace<br />These namespace was defined by an RSS 2.0 draft and later was dropped. There are feeds out there using this namespace and Rome was not parsing them.</li>
<li>Change. By default XmlReader does a lenient charset encoding detection.<br />If the charset encoding cannot be determined per HTTP MIME and XML specifications the following relaxed detection is performed: If the content type is 'text/html' it replaces it with 'text/xml' and tries the per specifications detection again. Else if the XML prolog had a charset encoding that encoding is used. Else if the content type had a charset encoding that encoding is used. Else 'UTF-8' is used.<br />There are 2 new constructors that take a lenient flag to allow strict charset encoding detection. If scrict charset encoding detection is performed and it fails an XmlReaderException is thrown by the constructor. The XmlReaderException contains all the charset encoding information gathered from the stream including the unconsumed stream.</li></ol></div>
<div class="section">
<h3>Changes made from v0.3 to v0.4<a name="Changes_made_from_v0.3_to_v0.4"></a></h3>
<ol style="list-style-type: decimal">
<li>Fix. Date elements on generated feeds use the right format now<br />There were some Date elements in Atom 0.3, DCModule, SyModule, RSS 0.91 and RSS 0.93 that were incorrectly formating the date [they were just doing a toString() ]. Now they use the RFC822 and W3C format as indicated in their specs.</li>
<li>Fix. SyndFeed and SyndEntry getModule(DCModule.URI) method always returns a DCModule, never null<br />This issue is related to Fix #19 in v0.3. The DCModule is 'special' for Synd*, it must always be there. If it is not, it is created implicitly when needed. This was not happening when asking explicitly for the DCModule through the Synd* interfaces.</li>
<li>Addition. Added ParseFeedException to the *Input classes<br />This new exception report the line and column number in the XML document where the parsing has failed.</li>
<li>Change. Renamed '*I' interfaces to just '*' and default implementations to '*Impl'<br />The Synd* and Module interfaces/classes were affected. For example the interface that used to be SyndFeedI is now SyndFeed and the class that used to be SyndFeed is now SyndFeedImpl.</li>
<li>Change. Ant 'build.xml' files have been improved<br />The build.xml were re-written instead just using the Maven generated ones.</li>
<li>Fix. DateParser now uses lenient parsing so as to work with JDK 1.5<br />DateParser currently setLenient to false. This does not work with JDK 1.5. Changing the DateParser to setLient to true.</li>
<li>Change. SyndCategoryListFacade is not a public class anymore<br />It's now a package private class (it should have been like that in the first place).</li>
<li>Addition. Added a protected constructor to the Synd*Impl classes<br />This constructor takes a Class parameter. It allows implementations extending SyndContentImpl to be able to use the ObjectBean functionality with extended interfaces (additional public properties). Use case: Hibernate beans that have an 'Id' Long property, a new interface HSynd* (extending Synd*) and a new implementation HSynd*Impl (extending Synd*Impl) where the clone(), equals(), hashCode() and toString() methods take the properties of the extension into account.</li>
<li>Project layout change. Moved samples project to subprojects dir<br />The 'samples' project was moved from 'rome/modules/samples' to 'rome/subprojects/samples'. The 'rome/modules' project is left for Module subprojects only.</li>
<li>Fix. Plugin manager bug didn't allow custom plugins to replace core plugins<br />All plugins are in a Map keyed off by its type (parsers, generators, converters) or URI (modules). There is also a helper List containing the plugins, this list is scanned when looking for a plugin (for example when selecting the right parser). Plugins were added to the List without checking if another element in the List was using the same key. Now the List is built using the Map values, thus the overwriting works fine.</li>
<li>Fix. RSS 2.0 Converter (Wire -&gt; Synd - Wire) was not processing modules<br />The RSS 2.0 Converter now processes feed and entry modules both ways.</li>
<li>Fix. New properties introspection mechanism in common classes<br />The java.beans.Introspector does not work as expected on interface properties (it doesn't scan properties of the super interfaces). Now, a private implementation of a properties introspector is used by the common bean classes.</li>
<li>Change. Refactored private CopyFrom helper class<br />It was com.sun.syndication.feed.synd.impl.SyndCopyFrom now it is com.sun.syndication.common.impl.CopyFromHelper.</li>
<li>Fix. RSS2.0 Wire-Synd converter handles propertly RSS and DC categories<br />If the RSS2.0 feed had DC Module categories (subjects) this would override the RSS native categories. Now they are aggregated.</li>
<li>Change/Fix. CloneableBean can take an ignore-properties set<br />This change is useful for bean that have convenience properties mapping to other properties. SyndFeed and SyndEntry that map some of its properties (ie publishedDate, author, categories) to DC Module properties. There is not point cloning the convenience ones as they are just facades.<br />This fixes a SyndFeedImpl cloning problem with the categories. There is a package private list for the categories to DC subject mapping. The problem was related to accesibility of this package private list implementation by the CloneableBean. The change enables the blacklisting of certain properties (in this categories) when cloning.</li>
<li>Change. Refactored Parsers/Generator classes<br />Introduced a base parser and base generator to handle modules. For the feed types that define modules support, the modules have to be defined the rome.properties file. For RSS 1.0 and Atom 0.3 Dublin Core and Syndication modules are defined, the first one at feed and entry level the second one at feed level. Note this was already done but hardwired in the specific feed type parsers and generators, now it is done in the base parser and base generator. Some code clean up and removal of duplicated code was also done.</li>
<li>Change. Defined and implemented precedence order for native and module elements in feeds<br />For feeds supporting modules, some of the module defines elements collide with the feed native elements (this depends on the feed type, and it may affect the data such as publish-date, author, copyright, categories). The SyndFeed and SyndEntry properties documented as convenience properties are (can be) affected. The convenience properties map into DC Module properties.<br />Rome now defines precedence of feed native elements over module elements when converting from WireFeed to SyndFeed. This is, in the situation of a clash, the native element data prevails and the the module element data is lost.<br />When converting from SyndFeed to WireFeed, if a SyndFeed convenience property has a native mapping in the target feed type it will be in both the native element and the DC Module element if the feed type defines support for the DC module. The data will appear twice in the feed, in the native elements and in the DC module elements.</li>
<li>Change. Module namespaces are defined at root element<br />Module namespaces are always defined in the root element. The ModuleGenerator interface has a new method that returns all the namespaces used by the module, the generators use the namespaces returned by this method to inject them in the feed root element.</li>
<li>Change/Fix. Test cases refactoring<br />Some refactoring in the test cases for the Synd* entities. Some minor bugs (typos in constants) were found and fixed in the parsers.<br />The Ops and Synd tests are 100% complete. Not that they test 100% of Rome functionality but 100% of what they suppose to test.</li>
<li>Fix. Atom 0.3 content elements with XML mode were not being parsed and converted properly<br />When mode is XML, free text was not being processed, only sub-elements were being processed.<br />The Parser when parsing content with XML mode skips Atom namespace in the output of the processed fragment.<br />The Converter when going down pushes content data using XML mode, which is Atom's default (it was ESCAPED before).</li>
<li>Addition. Constraints in data length and number of items are observed by RSS generators<br />As part of the generators refactoring the generators now verify the data in the Rome beans does not generate invalid feeds.</li>
<li>Addition. New XmlReader that detects charset encoding<br />The XmlReader class handles the charset encoding of XML documents in Files, raw streams and HTTP streams. It following the rules defined by HTTP, MIME types and XML specifications. All this is nicely explained by Mark Pilgrim in his blog, <a class="externalLink" href="http://diveintomark.org/archives/2004/02/13/xml-media-types">http://diveintomark.org/archives/2004/02/13/xml-media-types</a></li>
<li>Rome now uses JDOM 1.0<br />Dependencies have been updated to use JDOM 1.0. No code changes were needed because of this.</li>
<li>Change. The length property in the RSS Enclosure bean is now a long<br />It used to be an int, but as it is meant to specify arbitrary lengths (in could be in the order of several megabytes) it was changed to be a long.</li>
<li>Addition. SyndFeed and SyndEntry beans have a 'uri' property<br />It is used with RSS0.94 &amp; RSS2.0 guid elements and with Atom0.3 id elements. Refer to <a href="./RomeV0.4FeedAndEntryURIMapping.html">Feed and entry URI Mapping</a> for a full explanation.</li>
<li>Addition. New sample, FeedServlet<br />Added a new sample, FeedServlet. This servlet creates a feed and returns a feed.</li>
<li>Change. RSS0.91 Userland and RSS0.91 Netscape are handled as different feed types<br />Instead having a single set of parser/converter/generator implementations there is one set for each one of them. This allows to differenciate incoming RSS0.91 Userland feeds from RSS0.91 Netscape feeds as well as choosing which one to generate.</li></ol></div>
<div class="section">
<h3>Changes made from v0.2 to v0.3<a name="Changes_made_from_v0.2_to_v0.3"></a></h3>
<ol style="list-style-type: decimal">
<li>Changed loading mechanism for parsers, generators and converters<br />Previous mechanism was complicated and it wouldn't work in server environments where you cannot alter System properties at will.<br />Now there are no properties to set. Just including a rome.properties file in the root of a JAR file will make Rome to load any parser, generator or converter defined in the properties file and included in the JAR file (To be documented).</li>
<li>Added Modules support to RSS 2.0 parser and generator<br />We were only looking for modules in RSS 1.0 and Atom 0.3. Now we also look in RSS 2.0.</li>
<li>Modules parsers and generators are now per feed type<br />They were global, now each feed type parser and generator has it's own set of modules parsers and generators. They are configurable in the rome.properties file.</li>
<li>All parsers, generators and converters are loaded once per definition<br />There were some cases we were loading them on every WireFeedParser/WireFeedGenerator instantiation. As they are all thread-safe we just use one instance.</li>
<li>Changed some implementation (hidden) class names<br />Some typos corrections and adding consistency to the naming.</li>
<li>Added Fetcher module<br />Added a HTTP fetcher with conditional get and gzip support (See modules/fetcher)</li>
<li>Modified the samples module build to fix error<br />Previouly some people were having a maven error trying to run some of the samples. This should now be fixed</li>
<li>Removed methods with byte stream signatures from Rome IO classes<br />They have no way to know what the encoding is or has to be and they are using the platform default. That does not always work, for example when doing HTTP where the default is ISO-8859-1.<br />Leaving the char streams one and let the developer to do the right thing (Rome cannot do any magic here).</li>
<li>Added getModule(String uri) to SyndFeedI, Atom Feed and RSS Channel<br />There was not way to obtain a specific module using the module URI, you had to obtain the module list and iterate looking for the module. The getModule(string uri) is a convenience method in all the feed beans to do that.</li>
<li>New. Added 'encoding' property to WireFeed and SyndFeedI/SyndFeed<br />Impact: It affects RSS, Atom and SyndFeed syndication beans.<br />It's not being set or use by parsers and generators as they always deal with a char strean where the charset is already set.<br />The converters, going from Channel/Feed 2 SyndFeed and vice versa are wired to pass the encoding if set.</li>
<li>Fix. CloneableBean array cloning bug<br />Impact: It affects all Rome beans as they all extend ObjectBean that uses CloneableBean<br />Arrays were not being cloned but copy by reference. This was affecting all Rome beans as they all extend ObjectBean.</li>
<li>Change. CloneableBean, Basic (primitives &amp; string) types not cloned anymore<br />Impact: It affects all Rome beans as they all extend ObjectBean that uses CloneableBean<br />Basic types are inmutable, no need to clone them. As things are done using reflection there were unnecessary objects creation.</li>
<li>Change. CloneableBean, added Date to list of Basic types<br />Impact: It affects all Rome beans as they all extend ObjectBean that uses CloneableBean<br />Same reasoning as #12</li>
<li>Change/Fix. EqualsBeans, works on defined class<br />Impact: It affects all Rome beans as they all extend ObjectBean, which uses EqualsBean<br />EqualsBean checks for equality by comparing all properties. Until now it was doing this using all properties of the class implementing the bean. This behavior is not correct as implementations may have other properties than the defined in the public interface (and example is: a SyndFeedI implementation for Hibernate that has to have an ID field, and this would apply to all bean interfaces).<br />Because of this change, both EqualsBean and ObjectBean take a Class parameter in the constructor. Equals will limit the comparison for equality to the properties of that class. If there is not interface for the bean, just the bean implementation (this is the case of Channel and Feed), the implementation Class is passed</li>
<li>Change/Fix. ToStringBean, works on defined class<br />Same as #14 but on ToStringBean instead EqualsBean</li>
<li>New. Added copyFrom functionality to synd.* and module.* beans<br />Impact: It affect all synd.* and module.* beans and other classes that extend ObjectBean.<br />A new interface 'CopyFrom' has been added to commons.<br />synd.* and module.* bean interfaces implement this interface and their implementations implement the copyFrom functionality.<br />The copyFrom functionality allows copying a complete bean feed from one implementation to another. The obvious use case is from the default bean implementation to a persistent aware (ie Hibernate) implementation.<br />The implementation uses the same pattern used by EqualsBean, ConeableBean, it's in the synd.impl.* package, the supporting class is call SyndCopyFrom.<br />Note that SyndCategories does not support the copyFrom functionality as it's just a convenience way of accessing DCModule's subjects (where DCModule supports copyFrom). The short explanation is that categories still work and are there after a copyFrom.</li>
<li>Fix. WireFeed constructor was passing the WireFeed.class to ObjectBean<br />rss.Channel, atom.Feed &amp; WeatherChannel constructor implementations only, no change to their signatures.<br />The class is used for property scanning for toString, equals behavior of the ObjectBean. </li>
<li>Fix. copyFrom was failing with Enum properties<br />It was not possible to do a copyFrom on a feed with SyModule data as it had Enum properties.<br />Wrong comparison of classes when checking basic types, in the case of enumeration classes has to check it extends Enum not equality.</li>
<li>Fix. SyndFeed and SyndEntry where losing Modules<br />If they had modules other than DCModule they were being dropped when accessing convenience methods (getCategories, getLanguage, etc).<br />The Synd* convenience methods just map to the DCModule properties. If there is no DCModule a new one is created if needed. When this happened instead bean added to the list of current modules a new list with just the DCModule was being set.</li>
<li>New Sample and tutorial for creating a feed<br />A new sample and tutorial that creates and writes a feed has been added.</li>
<li>New Sample showing how to add a Module bean, parser and generator to Rome<br />This sample defines a dummy module for use with RSS 1.0 (it can work also with RSS 2.0 and Atom 0.3). Still have to write tutorial</li>
<li>Undoing change #13 as Date is not inmutable<br />The Date class is not inmutable, CloneableBean now clones Date properties.</li></ol></div>
<div class="section">
<h3>Changes made from v0.1 to v0.2<a name="Changes_made_from_v0.1_to_v0.2"></a></h3>
<ol style="list-style-type: decimal">
<li>FeedInput, added default constructor. Semantics is 'validation off'<br />We forgot to added it when it was added to SyndFeed.<br />NOTE that validation is not implemented yet. We need DTDs/XML-Schemas for the different feed syndication types.</li>
<li>FeedOutput and SyndOutput outputW3CDom() method typo correction<br />Fixed typo in outputW3CDom() method, it was ouptutW3CDom().</li>
<li>AbstractFeed, renamed to WireFeed<br />Never liked Abstract in the name. From Java inheritance it makes sense, but from the syndication feed perspective doesn't. It's the super class of the 2 wire feed beans Rome has, RSS Channel and Atom Feed.</li>
<li>Renamed SyndFeed createRealFeed(feedType) method to createWireFeed(feedType)<br />For consistency with change #3</li>
<li>SyndFeed, added feedType property<br />Read/write property. It indicates what was the feed type of the WireFeed the SyndFeed was created from. And the feed type a WireFeed created with createWireFeed() will have.</li>
<li>WireFeed, renamed type property to feedType<br />For consistency with #5. Also it's more clear what the type is about.</li>
<li>Overloaded SyndFeed createRealFeed() with a no parameter signature</li>
<li>FeedOutput, removed feed type from constructor<br />It now uses the WireFeed feedType property.</li>
<li>SyndOutput, removed feed type from constructor<br />It now uses the SyndFeed feedType property define in #5.</li>
<li>FeedOutput, removed getType() method<br />Now FeedOutput uses the WireFeed feedType property.</li>
<li>Removed dependency on Jakarta Commons Codec library<br />We were using the Codec component to do Base64 encoding/decoding. Based on feedback to reduce component depencies we've removed this one (yes, we implemented a Base64 encoder/decoder).</li>
<li>Removed dependency on Xerces library<br />This was an unnecessary dependency as Rome requeries JDK 1.4+ which includes JAXP implementation. JDOM can use that one.</li>
<li>Renamed syndication.io classes/interfaces<br />Renaming for naming consistency and to reflect on what type of feed they work on.
<div class="source">
<pre>
FeedInput --&gt; WireFeedInput
FeedOutput --&gt; WireFeedOutput
FeedParser --&gt; WireFeedParser
FeedGenerator --&gt; WireFeedGenerator
SyndInput --&gt; SyndFeedInput
SyndOutput --&gt; SyndFeedOutputt
</pre></div></li>
<li>Removed syndication.util package, PlugableClasses is now private<br />The PlugableClasses class has no business in Rome public API, it's implementation specific, it has been hidden (it should be replaced later with a micro-container).</li>
<li>Added samples to the Rome project directory structure<br />Rome samples are a sub-project located at rome/modules/sample.</li></ol></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>

View file

@ -1,191 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Building the Rome Fetcher</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>Building the Rome Fetcher<a name="Building_the_Rome_Fetcher"></a></h2>
<p>The Rome Fetcher can build using Maven 2.</p></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>

View file

@ -1,237 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Change Log</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>Change Log<a name="Change_Log"></a></h2>
<div class="section">
<h3>Prior to first release (on the way to v0.3)<a name="Prior_to_first_release_on_the_way_to_v0.3"></a></h3>
<ol style="list-style-type: decimal">
<li>Updated to handle removal of IO methods using byte streams<br />Byte Stream IO was removed from Rome itself. The Rome Fetcher is now updated to support this</li>
<li>Add FeedFetcherI interface and FeedFetcherFactory class<br />There is now a FeedFetcherI interface, which FeedFetcher implements. Use FeedFetcherFactory to create instances of FeedFetcher (as suggested by Joseph Ottinger) (FeedFetcherFactory was later removed)</li>
<li>Event Support Added to FeedFetcherI<br />The FeedFetcherI interface now supports feed polled, feed retrieved and feed unchanged events</li>
<li>Samples added<br />Samples are now included with the Rome Fetcher</li>
<li>Unit Tests Added<br />JUnit based tests which invoke the Rome Fetcher against an embedded Jetty webserver are now included</li>
<li>Bug fixes in the FeedFetcher event model<br />The JUnit test suite uncovered some bugs in the event model used by the FeedFetcher. These bugs are now fixed.</li>
<li>Refactored the SyndFeedInfo class<br />SyndFeedInfo now extends ObjectBean</li>
<li>Removed FeedFetcherFactory<br />The benefit of the FeedFetcherFactory was arguable. Now the client code will need to manage the creation of specific implementations of the FeedFetcher</li></ol></div>
<div class="section">
<h3>Prior to second release (on the way to v0.4)<a name="Prior_to_second_release_on_the_way_to_v0.4"></a></h3>
<ol style="list-style-type: decimal">
<li>Refectored to match Rome naming standards<br />FeedFetcherI renamed to FeedFetcher<br />#. New FeedFetcher Implementation<br />HttpClientFeedFetcher uses the Apache Commons HTTP Client</li>
<li>Abstract test classes excluded in project.xml<br />Tests now run correctly under Maven</li>
<li>Added GZip support to HttpClientFeedFetcher<br />HttpClientFeedFetcher now supports GZip compression. Tests have been added.</li></ol></div>
<div class="section">
<h3>Prior to third release (on the way to v0.5)<a name="Prior_to_third_release_on_the_way_to_v0.5"></a></h3>
<ol style="list-style-type: decimal">
<li>SyndFeedInfo implements Serializable<br />SyndFeedInfo implements Serializable to make it easier to store</li>
<li>Support for rfc3229 delta encoding<br />The Fetcher now supports rfc3229 delta encoding. See <a class="externalLink" href="http://www.ietf.org/rfc/rfc3229.txt">http://www.ietf.org/rfc/rfc3229.txt</a> and <a class="externalLink" href="http://bobwyman.pubsub.com/main/2004/09/using_rfc3229_w.html">http://bobwyman.pubsub.com/main/2004/09/using_rfc3229_w.html</a>. Note that this is support is experimental and disabled by default</li></ol></div>
<div class="section">
<h3>Prior to 0.6<a name="Prior_to_0.6"></a></h3>
<ol style="list-style-type: decimal">
<li>Feed passed to FetcherEvents<br />When a feed is retrieved it is now passed to the Fetcher Event. This makes it easier to code applications using an event oriented style.</li></ol></div>
<div class="section">
<h3>Prior to 0.7<a name="Prior_to_0.7"></a></h3>
<ol style="list-style-type: decimal">
<li>Fix for URL Connection leak<br />In some circumstances URLConnection objects were not closed. This could cause problems in long-running application.</li></ol></div>
<div class="section">
<h3>0.8 was never released<a name="a0.8_was_never_released"></a></h3></div>
<div class="section">
<h3>Prior to 0.9<a name="Prior_to_0.9"></a></h3>
<ol style="list-style-type: decimal">
<li>Fix for potential synchronization issue<br />There was the possibility of synchronization issues in the FeedFetcher. Fixed, thanks to suggestions from Javier Kohen.</li>
<li>New LinkedHashMapFeedInfoCache FeedFetcherCache implementation<br />The new LinkedHashMapFeedInfoCache has the advantage that it will not grow unbound</li></ol></div>
<div class="section">
<h3>Prior to 1.0RC2<a name="Prior_to_1.0RC2"></a></h3>
<ol style="list-style-type: decimal">
<li>BeanInfo class added for AbstractFeedFetcher<br />com.rometools.rome.fetcher.impl.AbstractFeedFetcherBeanInfo was created to allow introspection to correctly find the events</li>
<li>Callback to allow access to HttpClient HttpMethod object<br />Add a HttpClientMethodCallbackIntf to allow the calling code to modify the HttpClient HttpMethod used to make the request (eg, add additinal headers, etc.) Also fixes a reported bug where the user agent wasn't being set properly</li>
<li>Support for clearing cache<br />See <a class="externalLink" href="http://java.net/jira/browse/ROME-119">http://java.net/jira/browse/ROME-119</a> for details</li></ol></div>
<div class="section">
<h3>Prior to 1.0<a name="Prior_to_1.0"></a></h3>
<ol style="list-style-type: decimal">
<li>Support for preserving wire feed data.<br />The fetcher now has a setPreserveWireFeed() method which will setup ROME to preserve WireFeed data. See <a class="externalLink" href="http://rometools.github.io/rome/PreservingWireFeeds.html">PreservingWireFeeds</a> for further information.</li></ol></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>

View file

@ -1,191 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - HttpClientFeedFetcher</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>HttpClientFeedFetcher<a name="HttpClientFeedFetcher"></a></h2>
<p>An implementation of the <tt>FeedFetcher</tt> which uses the Jakarta HTTP Client. This HTTP client has many benefits over the standard Java implementation.</p></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>

View file

@ -1,217 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Dependencies</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-down"></i>
Fetcher</a>
<ul class="nav nav-list">
<li class="active">
<a href="#"><i class="none"></i>Dependencies</a>
</li>
<li>
<a href="../../Fetcher/Releases/index.html" title="Releases">
<i class="icon-chevron-right"></i>
Releases</a>
</li>
</ul>
</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>Dependencies<a name="Dependencies"></a></h2>
<p>The Rome Fetcher aims to introduce the absolute minimum number of extra dependencies. Currently (30-June-2004) no extra dependencies over those required by Rome are required to use the fetcher.</p>
<p>The current dependencies required to use the Rome Fetcher are:</p>
<ul>
<li>JDK 1.4+</li>
<li>Current version of Rome</li>
<li>JDom v 1.0</li></ul>
<p>To build the Rome Fetcher the <a class="externalLink" href="http://jakarta.apache.org/commons/httpclient/">Jakarta HTTP Client</a> is required.</p>
<p>If the <a href="./HttpClientFeedFetcher.html">HttpClientFeedFetcher (fetcher)</a> fetcher implementation is used then the Jakarta HTTP Client and Jakarta Commons Logging is required.</p>
<p>To build and run the unit tests for the Rome Fetcher the following additional dependencies are required:</p>
<ul>
<li>servletapi version 2.3</li>
<li>jetty 4.2.12</li></ul>
<p>Note that Maven will automatically download the correct versions of all dependancies.</p></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>

View file

@ -1,209 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Known Issues</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>Known Issues<a name="Known_Issues"></a></h2>
<div class="section">
<h3>Version 0.3<a name="Version_0.3"></a></h3>
<ul>
<li>The Maven build does not run the <tt>jetty</tt> tests because of a bug in Maven</li>
<li>Version 0.3 does not have <tt>Xerces</tt> included in the project.xml (it is required to run the samples). Either get the latest <tt>project.xml</tt> from CVS, or <a class="externalLink" href="https://rome.dev.java.net/source/browse/rome/subprojects/fetcher/project.xml?r1=1.1&amp;r2=1.2">patch it yourself</a></li>
<li>0.3 had a bug that caused it to overwite system properties.</li></ul></div>
<div class="section">
<h3>Version 0.4<a name="Version_0.4"></a></h3>
<ul>
<li>No known issues (yet!)</li></ul></div>
<div class="section">
<h3>Version 0.5<a name="Version_0.5"></a></h3>
<ul>
<li>When listening to feed events using <tt>FetcherListener</tt>, there is no way to get to the retrieved content, because it is set after firing the event. -- <a class="externalLink" href="http://wiki.java.net/twiki/bin/view/Javawsxml/Jawe">jawe</a></li>
<li>When listening to feed events using <tt>FetcherListener</tt>, the feed URLs returned by the <tt>FetcherEvent</tt> are prepended with &quot;sun.net.www.protocol.http.HttpURLConnection:&quot; -- <a class="externalLink" href="http://wiki.java.net/twiki/bin/view/Javawsxml/Jawe">jawe</a></li></ul></div>
<div class="section">
<h3>Version 0.7<a name="Version_0.7"></a></h3>
<ul>
<li><tt>HashMapFeedInfoCache</tt> doesn't work quite right because <tt>URL.hashCode()</tt> does hostname resolution and treats virtual hosts with the same IP as equal, so e.g. all RSS feeds from <tt>blogspot.com</tt> collide in the cache. Also, it's really slow. Fix is to use <tt>URL.toExternalForm()</tt> as the hash key instead of the URL itself.</li></ul></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>

View file

@ -1,287 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME Fetcher 0.6</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-down"></i>
Fetcher</a>
<ul class="nav nav-list">
<li>
<a href="../../Fetcher/Dependencies/index.html" title="Dependencies">
<i class="none"></i>
Dependencies</a>
</li>
<li>
<a href="../../Fetcher/Releases/index.html" title="Releases">
<i class="icon-chevron-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../../Fetcher/Releases/ROMEFetcher1.0.html" title="1.0">
<i class="none"></i>
1.0</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher1.0RC2.html" title="1.0RC2">
<i class="none"></i>
1.0RC2</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.9.html" title="0.9">
<i class="none"></i>
0.9</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.7.html" title="0.7">
<i class="none"></i>
0.7</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>0.6</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.5.html" title="0.5">
<i class="none"></i>
0.5</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.4.html" title="0.4">
<i class="none"></i>
0.4</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.3.html" title="0.3">
<i class="none"></i>
0.3</a>
</li>
</ul>
</li>
</ul>
</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>ROME Fetcher 0.6<a name="ROME_Fetcher_0.6"></a></h2>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-fetcher-0.6-src.zip">rome-fetcher-0.6-src.zip</a></li>
<li><a href="./rome-fetcher-0.6.tar.gz">rome-fetcher-0.6.tar.gz</a></li>
<li><a href="./rome-fetcher-0.6.zip">rome-fetcher-0.6.zip</a></li>
<li><a href="./rome-fetcher-0.6-src.tar.gz">rome-fetcher-0.6-src.tar.gz</a></li></ul></div>
<div class="section">
<h3>Tutorials<a name="Tutorials"></a></h3>
<ul>
<li><a href="../BuildingTheRomeFetcher.html">Building the Rome Fetcher (fetcher)</a></li>
<li><a href="../UsingTheRomeFetcherModuleToRetrieveFeeds.html">Using the Rome Fetcher module to retrieve feeds (fetcher)</a></li>
<li><a href="../SampleProgramsIncluded.html">Sample programs included (fetcher)</a></li></ul></div>
<div class="section">
<h3>Todo list<a name="Todo_list"></a></h3>
<ul>
<li><a href="../TodoList.html">Todo list (fetcher)</a></li></ul></div>
<div class="section">
<h3>Issues<a name="Issues"></a></h3>
<ul>
<li><a href="../KnownIssues.html">Known Issues (fetcher)</a></li></ul></div>
<div class="section">
<h3>Change Log<a name="Change_Log"></a></h3>
<ul>
<li><a href="../ChangeLog.html">Change Log (fetcher)</a></li></ul></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>

View file

@ -1,287 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME Fetcher 0.7</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-down"></i>
Fetcher</a>
<ul class="nav nav-list">
<li>
<a href="../../Fetcher/Dependencies/index.html" title="Dependencies">
<i class="none"></i>
Dependencies</a>
</li>
<li>
<a href="../../Fetcher/Releases/index.html" title="Releases">
<i class="icon-chevron-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../../Fetcher/Releases/ROMEFetcher1.0.html" title="1.0">
<i class="none"></i>
1.0</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher1.0RC2.html" title="1.0RC2">
<i class="none"></i>
1.0RC2</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.9.html" title="0.9">
<i class="none"></i>
0.9</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>0.7</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.6.html" title="0.6">
<i class="none"></i>
0.6</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.5.html" title="0.5">
<i class="none"></i>
0.5</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.4.html" title="0.4">
<i class="none"></i>
0.4</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.3.html" title="0.3">
<i class="none"></i>
0.3</a>
</li>
</ul>
</li>
</ul>
</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>ROME Fetcher 0.7<a name="ROME_Fetcher_0.7"></a></h2>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-fetcher-0.7-src.zip">rome-fetcher-0.7-src.zip</a></li>
<li><a href="./rome-fetcher-0.7.tar.gz">rome-fetcher-0.7.tar.gz</a></li>
<li><a href="./rome-fetcher-0.7.zip">rome-fetcher-0.7.zip</a></li>
<li><a href="./rome-fetcher-0.7-src.tar.gz">rome-fetcher-0.7-src.tar.gz</a></li></ul></div>
<div class="section">
<h3>Tutorials<a name="Tutorials"></a></h3>
<ul>
<li><a href="../BuildingTheRomeFetcher.html">Building the Rome Fetcher (fetcher)</a></li>
<li><a href="../UsingTheRomeFetcherModuleToRetrieveFeeds.html">Using the Rome Fetcher module to retrieve feeds (fetcher)</a></li>
<li><a href="../SampleProgramsIncluded.html">Sample programs included (fetcher)</a></li></ul></div>
<div class="section">
<h3>Todo list<a name="Todo_list"></a></h3>
<ul>
<li><a href="../TodoList.html">Todo list (fetcher)</a></li></ul></div>
<div class="section">
<h3>Issues<a name="Issues"></a></h3>
<ul>
<li><a href="../KnownIssues.html">Known Issues (fetcher)</a></li></ul></div>
<div class="section">
<h3>Change Log<a name="Change_Log"></a></h3>
<ul>
<li><a href="../ChangeLog.html">Change Log (fetcher)</a></li></ul></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>

View file

@ -1,288 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME Fetcher 0.9</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-down"></i>
Fetcher</a>
<ul class="nav nav-list">
<li>
<a href="../../Fetcher/Dependencies/index.html" title="Dependencies">
<i class="none"></i>
Dependencies</a>
</li>
<li>
<a href="../../Fetcher/Releases/index.html" title="Releases">
<i class="icon-chevron-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../../Fetcher/Releases/ROMEFetcher1.0.html" title="1.0">
<i class="none"></i>
1.0</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher1.0RC2.html" title="1.0RC2">
<i class="none"></i>
1.0RC2</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>0.9</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.7.html" title="0.7">
<i class="none"></i>
0.7</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.6.html" title="0.6">
<i class="none"></i>
0.6</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.5.html" title="0.5">
<i class="none"></i>
0.5</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.4.html" title="0.4">
<i class="none"></i>
0.4</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.3.html" title="0.3">
<i class="none"></i>
0.3</a>
</li>
</ul>
</li>
</ul>
</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>ROME Fetcher 0.9<a name="ROME_Fetcher_0.9"></a></h2>
<p>Note that there was no 0.8 Fetcher release</p>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-fetcher-0.9-src.zip">rome-fetcher-0.9-src.zip</a></li>
<li><a href="./rome-fetcher-0.9.tar.gz">rome-fetcher-0.9.tar.gz</a></li>
<li><a href="./rome-fetcher-0.9.zip">rome-fetcher-0.9.zip</a></li>
<li><a href="./rome-fetcher-0.9-src.tar.gz">rome-fetcher-0.9-src.tar.gz</a></li></ul></div>
<div class="section">
<h3>Tutorials<a name="Tutorials"></a></h3>
<ul>
<li><a href="../BuildingTheRomeFetcher.html">Building the Rome Fetcher (fetcher)</a></li>
<li><a href="../UsingTheRomeFetcherModuleToRetrieveFeeds.html">Using the Rome Fetcher module to retrieve feeds (fetcher)</a></li>
<li><a href="../SampleProgramsIncluded.html">Sample programs included (fetcher)</a></li></ul></div>
<div class="section">
<h3>Todo list<a name="Todo_list"></a></h3>
<ul>
<li><a href="../TodoList.html">Todo list (fetcher)</a></li></ul></div>
<div class="section">
<h3>Issues<a name="Issues"></a></h3>
<ul>
<li><a href="../KnownIssues.html">Known Issues (fetcher)</a></li></ul></div>
<div class="section">
<h3>Change Log<a name="Change_Log"></a></h3>
<ul>
<li><a href="../ChangeLog.html">Change Log (fetcher)</a></li></ul></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>

View file

@ -1,290 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME Fetcher 1.0</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-down"></i>
Fetcher</a>
<ul class="nav nav-list">
<li>
<a href="../../Fetcher/Dependencies/index.html" title="Dependencies">
<i class="none"></i>
Dependencies</a>
</li>
<li>
<a href="../../Fetcher/Releases/index.html" title="Releases">
<i class="icon-chevron-down"></i>
Releases</a>
<ul class="nav nav-list">
<li class="active">
<a href="#"><i class="none"></i>1.0</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher1.0RC2.html" title="1.0RC2">
<i class="none"></i>
1.0RC2</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.9.html" title="0.9">
<i class="none"></i>
0.9</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.7.html" title="0.7">
<i class="none"></i>
0.7</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.6.html" title="0.6">
<i class="none"></i>
0.6</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.5.html" title="0.5">
<i class="none"></i>
0.5</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.4.html" title="0.4">
<i class="none"></i>
0.4</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.3.html" title="0.3">
<i class="none"></i>
0.3</a>
</li>
</ul>
</li>
</ul>
</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>ROME Fetcher 1.0<a name="ROME_Fetcher_1.0"></a></h2>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-fetcher-1.0.jar">rome-fetcher-1.0.jar</a></li>
<li><a href="./rome-fetcher-1.0-javadoc.jar">rome-fetcher-1.0-javadoc.jar</a></li>
<li><a href="./rome-fetcher-1.0-sources.jar">rome-fetcher-1.0-sources.jar</a></li></ul></div>
<div class="section">
<h3>Tutorials<a name="Tutorials"></a></h3>
<ul>
<li><a href="../BuildingTheRomeFetcher.html">Building the Rome Fetcher (fetcher)</a></li>
<li><a href="../UsingTheRomeFetcherModuleToRetrieveFeeds.html">Using the Rome Fetcher module to retrieve feeds (fetcher)</a></li>
<li><a href="../SampleProgramsIncluded.html">Sample programs included (fetcher)</a></li></ul></div>
<div class="section">
<h3>API Docs<a name="API_Docs"></a></h3>
<ul>
<li><a href="./rome-fetcher-1.0-javadoc.jar">Fetcher API Docs</a></li></ul></div>
<div class="section">
<h3>Todo list<a name="Todo_list"></a></h3>
<ul>
<li><a href="../TodoList.html">Todo list (fetcher)</a></li></ul></div>
<div class="section">
<h3>Issues<a name="Issues"></a></h3>
<ul>
<li><a href="../KnownIssues.html">Known Issues (fetcher)</a></li></ul></div>
<div class="section">
<h3>Change Log<a name="Change_Log"></a></h3>
<ul>
<li><a href="../ChangeLog.html">Change Log (fetcher)</a></li></ul></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>

View file

@ -1,292 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME Fetcher 1.0 RC2</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-down"></i>
Fetcher</a>
<ul class="nav nav-list">
<li>
<a href="../../Fetcher/Dependencies/index.html" title="Dependencies">
<i class="none"></i>
Dependencies</a>
</li>
<li>
<a href="../../Fetcher/Releases/index.html" title="Releases">
<i class="icon-chevron-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../../Fetcher/Releases/ROMEFetcher1.0.html" title="1.0">
<i class="none"></i>
1.0</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>1.0RC2</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.9.html" title="0.9">
<i class="none"></i>
0.9</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.7.html" title="0.7">
<i class="none"></i>
0.7</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.6.html" title="0.6">
<i class="none"></i>
0.6</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.5.html" title="0.5">
<i class="none"></i>
0.5</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.4.html" title="0.4">
<i class="none"></i>
0.4</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.3.html" title="0.3">
<i class="none"></i>
0.3</a>
</li>
</ul>
</li>
</ul>
</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>ROME Fetcher 1.0 RC2<a name="ROME_Fetcher_1.0_RC2"></a></h2>
<p>Note that there was no 1.0 RC1 Fetcher release</p>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-fetcher-1.0RC2-src.zip">rome-fetcher-1.0RC2-src.zip</a></li>
<li><a href="./rome-fetcher-1.0RC2.jar">rome-fetcher-1.0RC2.jar</a></li>
<li><a href="./rome-fetcher-1.0RC2-javadoc.jar">rome-fetcher-1.0RC2-javadoc.jar</a></li>
<li><a href="./rome-fetcher-1.0RC2-sources.jar">rome-fetcher-1.0RC2-sources.jar</a></li></ul></div>
<div class="section">
<h3>Tutorials<a name="Tutorials"></a></h3>
<ul>
<li><a href="../BuildingTheRomeFetcher.html">Building the Rome Fetcher (fetcher)</a></li>
<li><a href="../UsingTheRomeFetcherModuleToRetrieveFeeds.html">Using the Rome Fetcher module to retrieve feeds (fetcher)</a></li>
<li><a href="../SampleProgramsIncluded.html">Sample programs included (fetcher)</a></li></ul></div>
<div class="section">
<h3>API Docs<a name="API_Docs"></a></h3>
<ul>
<li><a href="./rome-fetcher-1.0RC2-javadoc.jar">Fetcher API Docs</a></li></ul></div>
<div class="section">
<h3>Todo list<a name="Todo_list"></a></h3>
<ul>
<li><a href="../TodoList.html">Todo list (fetcher)</a></li></ul></div>
<div class="section">
<h3>Issues<a name="Issues"></a></h3>
<ul>
<li><a href="../KnownIssues.html">Known Issues (fetcher)</a></li></ul></div>
<div class="section">
<h3>Change Log<a name="Change_Log"></a></h3>
<ul>
<li><a href="../ChangeLog.html">Change Log (fetcher)</a></li></ul></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>

View file

@ -1,288 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome Fetcher 0.3</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-down"></i>
Fetcher</a>
<ul class="nav nav-list">
<li>
<a href="../../Fetcher/Dependencies/index.html" title="Dependencies">
<i class="none"></i>
Dependencies</a>
</li>
<li>
<a href="../../Fetcher/Releases/index.html" title="Releases">
<i class="icon-chevron-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../../Fetcher/Releases/ROMEFetcher1.0.html" title="1.0">
<i class="none"></i>
1.0</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher1.0RC2.html" title="1.0RC2">
<i class="none"></i>
1.0RC2</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.9.html" title="0.9">
<i class="none"></i>
0.9</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.7.html" title="0.7">
<i class="none"></i>
0.7</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.6.html" title="0.6">
<i class="none"></i>
0.6</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.5.html" title="0.5">
<i class="none"></i>
0.5</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.4.html" title="0.4">
<i class="none"></i>
0.4</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>0.3</a>
</li>
</ul>
</li>
</ul>
</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>Rome Fetcher 0.3<a name="Rome_Fetcher_0.3"></a></h2>
<p>Rome Fetcher version 0.3 is inital release of the Rome Fetcher. It is released as version 0.3 to synchronize with the version number of the core Rome project release.</p>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-fetcher-0.3-src.zip">rome-fetcher-0.3-src.zip</a></li>
<li><a href="./rome-fetcher-0.3.tar.gz">rome-fetcher-0.3.tar.gz</a></li>
<li><a href="./rome-fetcher-0.3.zip">rome-fetcher-0.3.zip</a></li>
<li><a href="./rome-fetcher-0.3-src.tar.gz">rome-fetcher-0.3-src.tar.gz</a></li></ul></div>
<div class="section">
<h3>Tutorials<a name="Tutorials"></a></h3>
<ul>
<li><a href="../BuildingTheRomeFetcher.html">Building the Rome Fetcher (fetcher)</a></li>
<li><a href="../UsingTheRomeFetcherModuleToRetrieveFeeds.html">Using the Rome Fetcher module to retrieve feeds (fetcher)</a></li>
<li><a href="../SampleProgramsIncluded.html">Sample programs included (fetcher)</a></li></ul></div>
<div class="section">
<h3>Todo list<a name="Todo_list"></a></h3>
<ul>
<li><a href="../TodoList.html">Todo list (fetcher)</a></li></ul></div>
<div class="section">
<h3>Issues<a name="Issues"></a></h3>
<ul>
<li><a href="../KnownIssues.html">Known Issues (fetcher)</a></li></ul></div>
<div class="section">
<h3>Change Log<a name="Change_Log"></a></h3>
<ul>
<li><a href="../ChangeLog.html">Change Log (fetcher)</a></li></ul></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>

View file

@ -1,287 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome Fetcher 0.4</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-down"></i>
Fetcher</a>
<ul class="nav nav-list">
<li>
<a href="../../Fetcher/Dependencies/index.html" title="Dependencies">
<i class="none"></i>
Dependencies</a>
</li>
<li>
<a href="../../Fetcher/Releases/index.html" title="Releases">
<i class="icon-chevron-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../../Fetcher/Releases/ROMEFetcher1.0.html" title="1.0">
<i class="none"></i>
1.0</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher1.0RC2.html" title="1.0RC2">
<i class="none"></i>
1.0RC2</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.9.html" title="0.9">
<i class="none"></i>
0.9</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.7.html" title="0.7">
<i class="none"></i>
0.7</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.6.html" title="0.6">
<i class="none"></i>
0.6</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.5.html" title="0.5">
<i class="none"></i>
0.5</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>0.4</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.3.html" title="0.3">
<i class="none"></i>
0.3</a>
</li>
</ul>
</li>
</ul>
</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>Rome Fetcher 0.4<a name="Rome_Fetcher_0.4"></a></h2>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-fetcher-0.4-src.zip">rome-fetcher-0.4-src.zip</a></li>
<li><a href="./rome-fetcher-0.4.tar.gz">rome-fetcher-0.4.tar.gz</a></li>
<li><a href="./rome-fetcher-0.4.zip">rome-fetcher-0.4.zip</a></li>
<li><a href="./rome-fetcher-0.4-src.tar.gz">rome-fetcher-0.4-src.tar.gz</a></li></ul></div>
<div class="section">
<h3>Tutorials<a name="Tutorials"></a></h3>
<ul>
<li><a href="../BuildingTheRomeFetcher.html">Building the Rome Fetcher (fetcher)</a></li>
<li><a href="../UsingTheRomeFetcherModuleToRetrieveFeeds.html">Using the Rome Fetcher module to retrieve feeds (fetcher)</a></li>
<li><a href="../SampleProgramsIncluded.html">Sample programs included (fetcher)</a></li></ul></div>
<div class="section">
<h3>Todo list<a name="Todo_list"></a></h3>
<ul>
<li><a href="../TodoList.html">Todo list (fetcher)</a></li></ul></div>
<div class="section">
<h3>Issues<a name="Issues"></a></h3>
<ul>
<li><a href="../KnownIssues.html">Known Issues (fetcher)</a></li></ul></div>
<div class="section">
<h3>Change Log<a name="Change_Log"></a></h3>
<ul>
<li><a href="../ChangeLog.html">Change Log (fetcher)</a></li></ul></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>

View file

@ -1,288 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome Fetcher 0.5</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-down"></i>
Fetcher</a>
<ul class="nav nav-list">
<li>
<a href="../../Fetcher/Dependencies/index.html" title="Dependencies">
<i class="none"></i>
Dependencies</a>
</li>
<li>
<a href="../../Fetcher/Releases/index.html" title="Releases">
<i class="icon-chevron-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../../Fetcher/Releases/ROMEFetcher1.0.html" title="1.0">
<i class="none"></i>
1.0</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher1.0RC2.html" title="1.0RC2">
<i class="none"></i>
1.0RC2</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.9.html" title="0.9">
<i class="none"></i>
0.9</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.7.html" title="0.7">
<i class="none"></i>
0.7</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.6.html" title="0.6">
<i class="none"></i>
0.6</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>0.5</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.4.html" title="0.4">
<i class="none"></i>
0.4</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.3.html" title="0.3">
<i class="none"></i>
0.3</a>
</li>
</ul>
</li>
</ul>
</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>Rome Fetcher 0.5<a name="Rome_Fetcher_0.5"></a></h2>
<p>The ROME Fetcher v 0.6 is now released. This page exists for historical purposes only.</p>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-fetcher-0.5-src.zip">rome-fetcher-0.5-src.zip</a></li>
<li><a href="./rome-fetcher-0.5.zip">rome-fetcher-0.5.zip</a></li>
<li><a href="./rome-fetcher-0.5.tar.gz">rome-fetcher-0.5.tar.gz</a></li>
<li><a href="./rome-fetcher-0.5-src.tar.gz">rome-fetcher-0.5-src.tar.gz</a></li></ul></div>
<div class="section">
<h3>Tutorials<a name="Tutorials"></a></h3>
<ul>
<li><a href="../BuildingTheRomeFetcher.html">Building the Rome Fetcher (fetcher)</a></li>
<li><a href="../UsingTheRomeFetcherModuleToRetrieveFeeds.html">Using the Rome Fetcher module to retrieve feeds (fetcher)</a></li>
<li><a href="../SampleProgramsIncluded.html">Sample programs included (fetcher)</a></li></ul></div>
<div class="section">
<h3>Todo list<a name="Todo_list"></a></h3>
<ul>
<li><a href="../TodoList.html">Todo list (fetcher)</a></li></ul></div>
<div class="section">
<h3>Issues<a name="Issues"></a></h3>
<ul>
<li><a href="../KnownIssues.html">Known Issues (fetcher)</a></li></ul></div>
<div class="section">
<h3>Change Log<a name="Change_Log"></a></h3>
<ul>
<li><a href="../ChangeLog.html">Change Log (fetcher)</a></li></ul></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>

View file

@ -1,262 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Releases</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-down"></i>
Fetcher</a>
<ul class="nav nav-list">
<li>
<a href="../../Fetcher/Dependencies/index.html" title="Dependencies">
<i class="none"></i>
Dependencies</a>
</li>
<li class="active">
<a href="#"><i class="icon-chevron-down"></i>Releases</a>
<ul class="nav nav-list">
<li>
<a href="../../Fetcher/Releases/ROMEFetcher1.0.html" title="1.0">
<i class="none"></i>
1.0</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher1.0RC2.html" title="1.0RC2">
<i class="none"></i>
1.0RC2</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.9.html" title="0.9">
<i class="none"></i>
0.9</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.7.html" title="0.7">
<i class="none"></i>
0.7</a>
</li>
<li>
<a href="../../Fetcher/Releases/ROMEFetcher0.6.html" title="0.6">
<i class="none"></i>
0.6</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.5.html" title="0.5">
<i class="none"></i>
0.5</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.4.html" title="0.4">
<i class="none"></i>
0.4</a>
</li>
<li>
<a href="../../Fetcher/Releases/RomeFetcher0.3.html" title="0.3">
<i class="none"></i>
0.3</a>
</li>
</ul>
</li>
</ul>
</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>Releases<a name="Releases"></a></h2></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>

View file

@ -1,193 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Sample programs included</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>Sample programs included<a name="Sample_programs_included"></a></h2>
<p>There are two sample programs included with Rome Fetcher.</p>
<p><a class="externalLink" href="https://github.com/rometools/rome-fetcher/tree/master/src/main/java/org/rometools/fetcher/samples/FeedReader.java">FeedReader</a> is a program which demonstrates the use of the Fetcher to retrieve a feed and then to use the conditional get support to retrieve it again only if it has changed. It also shows how to use the event API in the Fetcher. It can be run using the <tt>maven run-read</tt> target.</p>
<p><a class="externalLink" href="https://github.com/rometools/rome-fetcher/tree/master/src/main/java/org/rometools/fetcher/samples/FeedAggregator.java">FeedAggregator</a> is a program which aggregates a number of feeds together into a single feed. It can be run using the <tt>maven run-aggr</tt> target.</p></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>

View file

@ -1,198 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Todo list</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>Todo list<a name="Todo_list"></a></h2>
<p>Please discuss items here on the rome dev mailing list</p>
<ul>
<li>Automatically update the -<a class="externalLink" href="https://github.com/rometools/rome-fetcher/blob/master/src/java/org/rometools/fetcher/FeedFetcher.java">default User-Agent version number</a> via the build- Done: 23-June-2004</li>
<li>Listener Architecture (for URL changes via 3xx redirection etc) Done: 30-June-2004</li>
<li><a class="externalLink" href="http://radio.userland.com/userGuide/reference/howToRedirectRss">RSS Redirection</a></li>
<li>Unit Tests: smart unit tests along the lines of Mark Pilgrim's tests, in his -<a class="externalLink" href="http://diveintomark.org/projects/feed_parser/">Python Universal Feed Parser</a>. He instantiates a web server to a local directory where the samples live, and then fetches the feeds from the server, which allows him to test in depth the behavior of gzip compression and etags handling.- Done 30-June-2004</li>
<li>Better character encoding handling - See <a class="externalLink" href="http://diveintomark.org/archives/2004/02/13/xml-media-types">http://diveintomark.org/archives/2004/02/13/xml-media-types</a></li>
<li>A caching feed fetcher</li></ul></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>

View file

@ -1,203 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Using the Rome Fetcher module to retrieve feeds</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>Using the Rome Fetcher module to retrieve feeds<a name="Using_the_Rome_Fetcher_module_to_retrieve_feeds"></a></h2>
<p>The HttpURLFeedFetcher class does the actual HTTP request. It relies on the FeedInfoCacheI interface which stores information about each feed required for conditional gets. Currently there is a single implementation of FeedInfoCacheI supplied: <tt>HashMapFeedInfoCache</tt>.</p>
<p>The basic usage of FeedFetcher is as follows:</p>
<div class="source">
<pre>FeedFetcherCache feedInfoCache = HashMapFeedInfoCache.getInstance();
FeedFetcher feedFetcher = new HttpURLFeedFetcher(feedInfoCache);
SyndFeed feed = feedFetcher.retrieveFeed(new URL(&quot;http://blogs.sun.com/roller/rss/pat&quot;));
System.out.println(feed);</pre></div>
<p>Any subsequent fetches of <a class="externalLink" href="http://blogs.sun.com/roller/rss/pat">http://blogs.sun.com/roller/rss/pat</a> by any FeedFetcher using feedInfoCache will now only retrieve the feed if it has changed.</p>
<p>FeedFetcher can be used without a cache if required. Simply create it using the zero-parameter constructor:</p>
<div class="source">
<pre>FeedFetcher feedFetcher = new HttpURLFeedFetcher();</pre></div>
<p>A more complete sample (including the use of listener on Fetcher events) <a class="externalLink" href="https://github.com/rometools/rome-fetcher/blob/master/src/java/org/rometools/fetcher/samples/FeedReader.java">is included in the Rome Fetcher project</a></p>
<p>Note that there has been considerable discussion on the rome-dev list about the best way to manage the creation of the feed fetcher. Currently the client code needs to be responsible for creating specific implementations of the FeedFetcherI interface.</p></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>

View file

@ -1,194 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Wish list</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>Wish list<a name="Wish_list"></a></h2>
<ul>
<li><a class="externalLink" href="http://diveintomark.org/archives/2002/05/31">RSS Autodiscovery</a></li>
<li><a class="externalLink" href="http://www.intertwingly.net/wiki/pie/PaceAutoDisco">Atom Autodiscovery</a></li>
<li>Connection timeout and read settings.</li></ul></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>

View file

@ -1,239 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Home</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 class="active">
<a href="#"><i class="icon-chevron-down"></i>Fetcher</a>
<ul class="nav nav-list">
<li>
<a href="../Fetcher/Dependencies/index.html" title="Dependencies">
<i class="none"></i>
Dependencies</a>
</li>
<li>
<a href="../Fetcher/Releases/index.html" title="Releases">
<i class="icon-chevron-right"></i>
Releases</a>
</li>
</ul>
</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>Rome Fetcher<a name="Rome_Fetcher"></a></h2>
<p>The Rome Fetcher (see modules/fetcher) allows the retrieval of feeds via HTTP. It supports <a class="externalLink" href="http://fishbowl.pastiche.org/2002/10/21/http_conditional_get_for_rss_hackers">HTTP conditional gets</a> (ie: last modified and ETag handling) and GZip encoded feeds. It should enable user to write aggregators that follow the <a class="externalLink" href="http://diveintomark.org/archives/2003/07/21/atom_aggregator_behavior_http_level">Atom aggregator behaviour recommendations</a></p>
<p>As with the rest of Rome, the Fetcher subproject is ultra-lean - it requires <a href="./Dependencies/index.html">no new dependencies</a> over the requirements for Rome.</p></div>
<div class="section">
<h2>Tutorials<a name="Tutorials"></a></h2>
<ul>
<li><a href="./BuildingTheRomeFetcher.html">Building the Rome Fetcher (fetcher)</a></li>
<li><a href="./UsingTheRomeFetcherModuleToRetrieveFeeds.html">Using the Rome Fetcher module to retrieve feeds (fetcher)</a></li>
<li><a href="./SampleProgramsIncluded.html">Sample programs included (fetcher)</a></li></ul></div>
<div class="section">
<h2>Todo list<a name="Todo_list"></a></h2>
<ul>
<li><a href="./TodoList.html">Todo list (fetcher)</a></li></ul></div>
<div class="section">
<h2>Wish list<a name="Wish_list"></a></h2>
<ul>
<li><a href="./WishList.html">Wish list (fetcher)</a></li></ul></div>
<div class="section">
<h2>Issues<a name="Issues"></a></h2>
<ul>
<li><a href="./KnownIssues.html">Known Issues (fetcher)</a></li></ul></div>
<div class="section">
<h2>Releases<a name="Releases"></a></h2>
<ul>
<li><a href="./Releases/RomeFetcher0.3.html">Rome Fetcher 0.3 (fetcher)</a></li>
<li><a href="./Releases/RomeFetcher0.4.html">Rome Fetcher 0.4 (fetcher)</a></li>
<li><a href="./Releases/RomeFetcher0.5.html">Rome Fetcher 0.5 (fetcher)</a></li>
<li><a href="./Releases/ROMEFetcher0.6.html">ROME Fetcher 0.6 (fetcher)</a></li>
<li><a href="./Releases/ROMEFetcher0.7.html">ROME Fetcher 0.7 (fetcher)</a></li>
<li><a href="./Releases/ROMEFetcher0.9.html">ROME Fetcher 0.9 (fetcher)</a></li>
<li><a href="./Releases/ROMEFetcher1.0RC2.html">ROME Fetcher 1.0 RC2 (fetcher)</a></li>
<li><a href="./Releases/ROMEFetcher1.0.html">ROME Fetcher 1.0 (fetcher)</a></li></ul></div>
<div class="section">
<h2>Change Log<a name="Change_Log"></a></h2>
<ul>
<li><a href="./ChangeLog.html">Change Log (fetcher)</a></li></ul></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>

View file

@ -1,494 +0,0 @@
<!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 - Rome v0.4 Tutorial, Defining a Custom Module (bean, parser and generator)</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-down"></i>
How Rome Works</a>
<ul class="nav nav-list">
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToReadASyndicationFeed.html" title="Read a syndication feed">
<i class="none"></i>
Read a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToCreateAndWriteASyndicationFeed.html" title="Create and write a syndication feed">
<i class="none"></i>
Create and write a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToConvertASyndicationFeedFromOneTypeToAnother.html" title="Convert a syndication feed">
<i class="none"></i>
Convert a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToAggregateManySyndicationFeedsIntoASingleOne.html" title="Aggregate many syndication feeds">
<i class="none"></i>
Aggregate many syndication feeds</a>
</li>
<li>
<a href="../HowRomeWorks/UnderstandingTheRomeCommonClassesAndInterfaces.html" title="Common classes and interfaces">
<i class="none"></i>
Common classes and interfaces</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>Defining a Custom Module</a>
</li>
</ul>
</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>Defining a Custom Module (bean, parser and generator)<a name="Defining_a_Custom_Module_bean_parser_and_generator"></a></h2>
<p>This tutorial walks through the steps of creating a custom module for syndication feeds that support additional namespaces (such as RSS 1.0, RSS 2.0 and Atom 0.3).</p>
<p>To understand this tutorial you should be familiar the with Rome API and with the use of modules in syndication feeds.</p>
<p>Out of the box Rome parsers and generators support plug-ability of modules for RSS 1.0, RSS 2.0 and Atom 0.3 at both feed and item/entry levels. Also support for the Dublin Core and Syndication modules is provided.</p>
<p>The complete source for this tutorial is in the Rome samples bundle as well as in SVN.</p>
<div class="section">
<h3>What is the intended outcome of the tutorial? <a name="What_is_the_intended_outcome_of_the_tutorial"></a></h3>
<p>The goal is to add support for a hypothetical Sample Module by defining a module bean, module parser and module generator and the necessary configuration to wire the parser and generator to an RSS 1.0 parser and RSS 1.0 generator.</p>
<p>The sample module defines 3 elements, 'bar', 'foo' and 'date', where 'bar' and 'date' may occur at most once and the 'foo' element may occur several times. For example, a feed with the Sample Module data would look like:</p>
<div class="source">
<pre>
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;
xmlns=&quot;http://purl.org/rss/1.0/&quot;
xmlns:sample=&quot;http://rome.dev.java.net/module/sample/1.0&quot;&gt;
&lt;channel&gt;
&lt;title&gt;RSS 1.0 Feed with Sample Module&lt;/title&gt;
&lt;link&gt;http://rome.dev.java.net&lt;/link&gt;
&lt;description&gt;This is a feed showing how to use a custom module with Rome&lt;/description&gt;
&lt;items&gt;
&lt;rdf:Seq&gt;
&lt;rdf:li resource=&quot;item01&quot; /&gt;
&lt;rdf:li resource=&quot;item02&quot; /&gt;
&lt;/rdf:Seq&gt;
&lt;/items&gt;
&lt;sample:bar&gt;Channel bar&lt;/sample:bar&gt;
&lt;sample:foo&gt;Channel first foo&lt;/sample:foo&gt;
&lt;sample:foo&gt;Channel second foo&lt;/sample:foo&gt;
&lt;/channel&gt;
&lt;item rdf:about=&quot;item01&quot;&gt;
&lt;title&gt;Title of Item 01&lt;/title&gt;
&lt;link&gt;http://rome.dev.java.net/item01&lt;/link&gt;
&lt;description&gt;Item 01 does not have Sample module data&lt;/description&gt;
&lt;/item&gt;
&lt;item rdf:about=&quot;item02&quot;&gt;
&lt;title&gt;Title of Item 02&lt;/title&gt;
&lt;link&gt;http://rome.dev.java.net/item02&lt;/link&gt;
&lt;description&gt;Item 02 has Sample module data&lt;/description&gt;
&lt;sample:bar&gt;Item 02 bar&lt;/sample:bar&gt;
&lt;sample:foo&gt;Item 02 only foo&lt;/sample:foo&gt;
&lt;sample:date&gt;2004-07-27T00:00+00:00&lt;/sample:date&gt;
&lt;/item&gt;
&lt;/rdf:RDF&gt;
</pre></div></div>
<div class="section">
<h3>Sample Module Bean <a name="Sample_Module_Bean"></a></h3>
<p>First we must start with the bean interface, SampleModule. SampleModule must extend Module. The Module interface defines the getUri() method, which will return a URI identifying the module. The Module interface also extends the Cloneable, ToString and CopyFrom interfaces to ensure that the beans provide support for basic features as cloning, equality, toString, etc. (for more details on this check the <a class="externalLink" href="http://wiki.java.net/twiki/bin/view/Javawsxml/Rome04Common">Understanding the Rome common classes and interfaces</a> document).</p>
<p>The SampleModule's URI is defined as a constant, accessible via the getURI() instance method. This is for convenience and good practice only.</p>
<p>Then the module defines 3 properties: bar (String), foos (List) and date (Date). The elements of the foos property list must be strings (wishing for Java 5 generics already?).</p>
<div class="source">
<pre>
public interface SampleModule extends Module,CopyFrom {
public static final String URI = &quot;http://rome.dev.java.net/module/sample/1.0&quot;;
public String getBar();
public void setBar(String bar);
public List getFoos();
public void setFoos(List foos);
public Date getDate();
public void setDate(Date date);
}
</pre></div>
<p>Next we have to write the bean implementation, SampleModuleImpl.</p>
<p>SampleModuleImpl extends ModuleImpl. ModuleImpl is the default implementation of the ==Module interface. ModuleImpl extends ObjectBean which provides equals, hashCode, toString and clone support for the properties of the class given in the constructor (SampleModule). Also the URI of the Sample module is indicated; it will be used by the Module.getUri() method.</p>
<div class="source">
<pre>
public class SampleModuleImpl extends ModuleImpl implements SampleModule {
...
public SampleModule() {
super(SampleModule.class,SampleModule.URI);
}
public String getBar() {
return _bar;
}
...
</pre></div>
<p>The module properties are just Java Bean properties. The only catch is to follow Rome semantics for Collection properties: in the case of a null value for the collection, an empty collection must be returned.. Also, following Rome semantics, all properties are by reference, including mutable ones.</p>
<div class="source">
<pre>
public class SampleModuleImpl extends ModuleImpl implements SampleModule {
private String _bar;
private List _foos;
private Date _date;
...
public void setBar(String bar) {
_bar = bar;
}
public List getFoos() {
return (_foos==null) ? (_foos=new ArrayList()) : _foos;
}
public void setFoos(List foos) {
_foos = foos;
}
public Date getDate() {
return _date;
}
public void setDate(Date date) {
_date = date;
}
</pre></div>
<p>Now the weird part: the bits for the CopyFrom logic. The <a class="externalLink" href="http://wiki.java.net/twiki/bin/view/Javawsxml/Rome04Common">Understanding the Rome common classes and interfaces</a> document fully explains the CopyFrom logic in detail. In short, the CopyFrom interface is to support copying properties from one implementation of a bean (defined through an interface) to another implementation of the same bean.</p>
<p>The getInterface() method returns the bean interface of the implementation (this is necessary for collections containing sub-classes such as a list of modules).</p>
<p>The copyFrom() method copies all the properties from the parameter object (which must be a SampleModule implementation) into the caller bean properties. Note that the copyFrom must do a deep copy.</p>
<div class="source">
<pre>
public class SampleModuleImpl extends ModuleImpl implements SampleModule {
...
public Class getInterface() {
return SampleModuleI.class;
}
public void copyFrom(Object obj) {
SampleModule sm = (SampleModule) obj;
setBar(sm.getBar());
List foos = new ArrayList(sm.getFoos()); // this is enough for the copy because the list elements are inmutable (Strings)
setFoos(foos);
setDate((Date)sm.getDate().clone()); // because Date is not inmutable.
}
}
</pre></div></div>
<div class="section">
<h3>Sample Module Parser <a name="Sample_Module_Parser"></a></h3>
<p>The sample module parser must implement the ModuleParser interface. This interface defines 2 methods, getNamespaceUri() that returns the URI of the module and parse(Element) which extracts the module elements from the given Element.</p>
<p>The feed parsers will invoke the module parser with a feed element or with an item element. The module parser must look for module elements in the children of the given element. That is was the Sample parser is doing when looking for 'bar', 'foo' and 'date' children elements in the received element.</p>
<p>In the case of the 'foo' element it looks for all occurrences as the Sample module schema allows for more than one occurrence of the 'foo' element. A SampleModule bean is created and the found values are set into it. For the 'date' element it assumes its a date value in W3C datetime format.</p>
<p>If no Sample Module elements are found in the feed, the parse(Element) method returns null. This is to avoid having an empty instance of a module -not present in the feed- in the feed bean or in the item bean.</p>
<div class="source">
<pre>
public class SampleModuleParser implements ModuleParser {
private static final Namespace SAMPLE_NS = Namespace.getNamespace(&quot;sample&quot;, SampleModule.URI);
public String getNamespaceUri() {
return SampleModule.URI;
}
public Module parse(Element dcRoot) {
boolean foundSomething = false;
SampleModule fm = new SampleModuleImpl();
Element e = dcRoot.getChild(&quot;bar&quot;, SAMPLE_NS);
if (e != null) {
foundSomething = true;
fm.setBar(e.getText());
}
List eList = dcRoot.getChildren(&quot;foo&quot;, SAMPLE_NS);
if (eList.size() &gt; 0) {
foundSomething = true;
fm.setFoos(parseFoos(eList));
}
e = dcRoot.getChild(&quot;date&quot;, SAMPLE_NS);
if (e != null) {
foundSomething = true;
fm.setDate(DateParser.parseW3CDateTime(e.getText()));
}
return (foundSomething) ? fm : null;
}
private List parseFoos(List eList) {
List foos = new ArrayList();
for (int i = 0; i &lt; eList.size(); i++) {
Element e = (Element) eList.get(i);
foos.add(e.getText());
}
return foos;
}
}
</pre></div></div>
<div class="section">
<h3>Sample Module Generator <a name="Sample_Module_Generator"></a></h3>
<p>The sample module generator must implement the ModuleGenerator interface. This interface defines 2 methods, getNamespaceUri() that returns the URI of the module and generate(ModuleI,Element) which injects the module data into the given Element.</p>
<p>The feed generator will invoke the module generator with a feed element or with an item element. The module generator must inject the module properties into the given element (which is a feed or an item). This injection has to be done using the right namespace. The set of namespaces returned by the getNamespaces() method will be used to declare the namespaces used by the module in the feed root element.</p>
<p>If no Sample Module bean is in the feed bean the module generator is not invoked at all.</p>
<div class="source">
<pre>
public class SampleModuleGenerator implements ModuleGenerator {
private static final Namespace SAMPLE_NS = Namespace.getNamespace(&quot;sample&quot;, SampleModule.URI);
public String getNamespaceUri() {
return SampleModule.URI;
}
private static final Set NAMESPACES;
static {
Set nss = new HashSet();
nss.add(SAMPLE_NS);
NAMESPACES = Collections.unmodifiableSet(nss);
}
public Set getNamespaceUris() {
return NAMESPACES;
}
public void generate(Module module, Element element) {
// this is not necessary, it is done to avoid the namespace definition in every item.
Element root = element;
while (root.getParent()!=null &amp;&amp; root.getParent() instanceof Element) {
root = (Element) element.getParent();
}
root.addNamespaceDeclaration(SAMPLE_NS);
SampleModuleI fm = (SampleModule)module;
if (fm.getBar() != null) {
element.addContent(generateSimpleElement(&quot;bar&quot;, fm.getBar()));
}
List foos = fm.getFoos();
for (int i = 0; i &lt; foos.size(); i++) {
element.addContent(generateSimpleElement(&quot;foo&quot;,foos.get(i).toString()));
}
if (fm.getDate() != null) {
element.addContent(generateSimpleElement(&quot;date&quot;, DateParser.formatW3CDateTime(fm.getDate())));
}
}
protected Element generateSimpleElement(String name, String value) {
Element element = new Element(name, SAMPLE_NS);
element.addContent(value);
return element;
}
}
</pre></div></div>
<div class="section">
<h3>Configuration to make Rome process Sample Module in feeds <a name="Configuration_to_make_Rome_process_Sample_Module_in_feeds"></a></h3>
<p>The last step is to setup the configuration file to indicate to Rome how and when to use the Sample Module parser and generator.</p>
<p>The configuration is stored in a Properties file, 'rome.properties', that has to be in the root of the classpath or JAR where the Sample Module bean, parser and generator classes are.</p>
<p>You must indicate the syndication feed formats (ie RSS 1.0) that must be aware of the Sample Module. You must indicate if the Sample Module is available for feed or item elements, or for both. You must indicate both the parser and the generator classes.</p>
<p>Following is the 'rome.properties' file for the Sample Module, it's defined for RSS 1.0 only, for both feed and item elements.</p>
<div class="source">
<pre>
# Parsers for RSS 1.0 feed modules
#
rss_1.0.feed.ModuleParser.classes=com.rometools.rome.samples.module.SampleModuleParser
# Parsers for RSS 1.0 item modules
#
rss_1.0.item.ModuleParser.classes=com.rometools.rome.samples.module.SampleModuleParser
# Generators for RSS 1.0 feed modules
#
rss_1.0.feed.ModuleGenerator.classes=com.rometools.rome.samples.module.SampleModuleGenerator
# Generators for RSS_1.0 entry modules
#
rss_1.0.item.ModuleGenerator.classes=com.rometools.rome.samples.module.SampleModuleGenerator
</pre></div>
<p>If you are defining more than one module, indicate the parser and generator implementation classes separated by commas or spaces.</p></div>
<div class="section">
<h3>Using the Sample Module from the SyndFeed beans <a name="Using_the_Sample_Module_from_the_SyndFeed_beans"></a></h3>
<p>They will be there, just use them. You may get the SampleModule bean using the getModule(String Uri) method of the SyndFeed bean and the SyndEntry bean.</p>
<p>Adding or replacing a syndication feed parser, generator or converter goes along the same lines of what it has been explained in the tutorial for modules. This is explained in the <a class="externalLink" href="http://wiki.java.net/twiki/bin/view/Javawsxml/Rome04Plugins">Rome Plugins Mechanism</a> topic.</p></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>

View file

@ -1,335 +0,0 @@
<!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 - Rome v0.4 Tutorial, Using Rome to aggregate many syndication feeds into a single one</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-down"></i>
How Rome Works</a>
<ul class="nav nav-list">
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToReadASyndicationFeed.html" title="Read a syndication feed">
<i class="none"></i>
Read a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToCreateAndWriteASyndicationFeed.html" title="Create and write a syndication feed">
<i class="none"></i>
Create and write a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToConvertASyndicationFeedFromOneTypeToAnother.html" title="Convert a syndication feed">
<i class="none"></i>
Convert a syndication feed</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>Aggregate many syndication feeds</a>
</li>
<li>
<a href="../HowRomeWorks/UnderstandingTheRomeCommonClassesAndInterfaces.html" title="Common classes and interfaces">
<i class="none"></i>
Common classes and interfaces</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialDefiningACustomModuleBeanParserAndGenerator.html" title="Defining a Custom Module">
<i class="none"></i>
Defining a Custom Module</a>
</li>
</ul>
</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>Using Rome to aggregate many syndication feeds into a single one<a name="Using_Rome_to_aggregate_many_syndication_feeds_into_a_single_one"></a></h2>
<p>Rome represents syndication feeds (RSS and Atom) as instances of the com.rometools.rome.synd.SyndFeed interface. The SyndFeed interfaces and its properties follow the Java Bean patterns. The default implementations provided with Rome are all lightweight classes.</p>
<p>Rome includes parsers to process syndication feeds into SyndFeed instances. The SyndFeedInput class handles the parsers using the correct one based on the syndication feed being processed. The developer does not need to worry about selecting the right parser for a syndication feed, the SyndFeedInput will take care of it by peeking at the syndication feed structure. All it takes to read a syndication feed using Rome are the following 2 lines of code:</p>
<div class="source">
<pre>
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = input.build(new XmlReader(feedUrl));
</pre></div>
<p>The first line creates a SyndFeedInput instance that will work with any syndication feed type (RSS and Atom versions). The second line instructs the SyndFeedInput to read the syndication feed from the InputStream of a URL pointing to the feed. The XmlReader is a character based Reader that resolves the encoding following the HTTP MIME types and XML rules for it. The SyndFeedInput.build() method returns a SyndFeed instance that can be easily processed.</p>
<p>Rome also includes generators to create syndication feeds out of SyndFeed instances. The SyndFeedOutput class does this generation. The SyndFeedOutput will generate a syndication feed of the feed type indicated by the SyndFeed object being output. The following two lines of code show how to create a syndication feed output from a SyndFeed instance:</p>
<div class="source">
<pre>
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,new PrintWriter(System.out));
</pre></div>
<p>The first line creates a SyndFeedOutput instance that will produce syndication feeds. It can output feeds of any type (rss_0.9, rss_0.91, rss_0.92, rss_0.93, rss_0.94, rss_1.0, rss_2.0 &amp; atom_0.3), the SyndFeed feedType property indicates the type. The second line writes the SyndFeed as a syndication feed into the application's output.</p>
<p>SyndFeed instances can also be created and populated within the code. For example:</p>
<div class="source">
<pre>
SyndFeed aggrFeed = new SyndFeedImpl();
aggrFeed.setFeedType(&quot;rss_1.0&quot;);
aggrFeed.setTitle(&quot;Aggregated Feed&quot;);
aggrFeed.setDescription(&quot;Anonymous Aggregated Feed&quot;);
aggrFeed.setAuthor(&quot;anonymous&quot;);
aggrFeed.setLink(&quot;http://www.anonymous.com&quot;);
</pre></div>
<p>The snipped of code above creates a SyndFeed instance using the default implementation provided by Rome, sets the feed type to RSS 1.0, sets the title, description, author and link properties of the feed.</p>
<p>SyndFeed properties can be modified, assigned to other SyndFeed instances, removed, etc. It's important to remember that the getters/setters semantics defined for all SyndFeed properties (and properties of its properties) is a copy by reference, not by value. In other words if you alter the property of a SyndFeed property you are altering the SyndFeed. Or, another example, if you assign the list of entries of one SyndFeed instance to another SyndFeed isntance and then you modify the list or any of the entries in the list, you are modifying the entries of both SyndFeed instances.</p>
<p>The following lines of code show how to copy the entries of a SyndFeed instance being read (inFeed) into a SyndFeed instance being created within the application (feed):</p>
<div class="source">
<pre>
package com.rometools.rome.samples;
import java.net.URL;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.List;
import java.util.ArrayList;
import com.rometools.rome.feed.synd.SyndFeed;
import com.rometools.rome.feed.synd.SyndFeedImpl;
import com.rometools.rome.io.SyndFeedOutput;
import com.rometools.rome.io.SyndFeedInput;
import com.rometools.rome.io.XmlReader;
/**
* It aggregates a list of RSS/Atom feeds (they can be of different types)
* into a single feed of the specified type.
* &lt;p&gt;
* @author Alejandro Abdelnur
*
*/
public class FeedAggregator {
public static void main(String[] args) {
boolean ok = false;
if (args.length&gt;=2) {
try {
String outputType = args[0];
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType(outputType);
feed.setTitle(&quot;Aggregated Feed&quot;);
feed.setDescription(&quot;Anonymous Aggregated Feed&quot;);
feed.setAuthor(&quot;anonymous&quot;);
feed.setLink(&quot;http://www.anonymous.com&quot;);
List entries = new ArrayList();
feed.setEntries(entries);
for (int i=1;i&lt;args.length;i++) {
URL inputUrl = new URL(args[i]);
SyndFeedInput input = new SyndFeedInput();
SyndFeed inFeed = input.build(new XmlReader(inputUrl));
entries.addAll(inFeed.getEntries());
}
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,new PrintWriter(System.out));
ok = true;
}
catch (Exception ex) {
System.out.println(&quot;ERROR: &quot;+ex.getMessage());
}
}
if (!ok) {
System.out.println();
System.out.println(&quot;FeedAggregator aggregates different feeds into a single one.&quot;);
System.out.println(&quot;The first parameter must be the feed type for the aggregated feed.&quot;);
System.out.println(&quot; [valid values are: rss_0.9, rss_0.91, rss_0.92, rss_0.93, ]&quot;);
System.out.println(&quot; [ rss_0.94, rss_1.0, rss_2.0 &amp; atom_0.3 ]&quot;);
System.out.println(&quot;The second to last parameters are the URLs of feeds to aggregate.&quot;);
System.out.println();
}
}
}
</pre></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>

View file

@ -1,303 +0,0 @@
<!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 - Rome v0.4 Tutorial, Using Rome to convert a syndication feed from one type to another</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-down"></i>
How Rome Works</a>
<ul class="nav nav-list">
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToReadASyndicationFeed.html" title="Read a syndication feed">
<i class="none"></i>
Read a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToCreateAndWriteASyndicationFeed.html" title="Create and write a syndication feed">
<i class="none"></i>
Create and write a syndication feed</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>Convert a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToAggregateManySyndicationFeedsIntoASingleOne.html" title="Aggregate many syndication feeds">
<i class="none"></i>
Aggregate many syndication feeds</a>
</li>
<li>
<a href="../HowRomeWorks/UnderstandingTheRomeCommonClassesAndInterfaces.html" title="Common classes and interfaces">
<i class="none"></i>
Common classes and interfaces</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialDefiningACustomModuleBeanParserAndGenerator.html" title="Defining a Custom Module">
<i class="none"></i>
Defining a Custom Module</a>
</li>
</ul>
</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>Using Rome to convert a syndication feed from one type to another<a name="Using_Rome_to_convert_a_syndication_feed_from_one_type_to_another"></a></h2>
<p>Rome represents syndication feeds (RSS and Atom) as instances of the com.rometools.rome.synd.SyndFeed interface. The SyndFeed interfaces and its properties follow the Java Bean patterns. The default implementations provided with Rome are all lightweight classes.</p>
<p>Rome includes parsers to process syndication feeds into SyndFeed instances. The SyndFeedInput class handles the parsers using the correct one based on the syndication feed being processed. The developer does not need to worry about selecting the right parser for a syndication feed, the SyndFeedInput will take care of it by peeking at the syndication feed structure. All it takes to read a syndication feed using Rome are the following 2 lines of code:</p>
<div class="source">
<pre>
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = input.build(new XmlReader(feedUrl));
</pre></div>
<p>The first line creates a SyndFeedInput instance that will work with any syndication feed type (RSS and Atom versions). The second line instructs the SyndFeedInput to read the syndication feed from the InputStream of a URL pointing to the feed. The XmlReader is a character based Reader that resolves the encoding following the HTTP MIME types and XML rules for it. The SyndFeedInput.build() method returns a SyndFeed instance that can be easily processed.</p>
<p>Rome also includes generators to create syndication feeds out of SyndFeed instances. The SyndFeedOutput class does this generation. The SyndFeedOutput will generate a syndication feed of the feed type indicated by the SyndFeed object being output. The following two lines of code show how to create a syndication feed output from a SyndFeed instance:</p>
<div class="source">
<pre>
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,new PrintWriter(System.out));
</pre></div>
<p>The first line creates a SyndFeedOutput instance that will produce syndication feeds. It can output feeds of any type (rss_0.9, rss_0.91, rss_0.92, rss_0.93, rss_0.94, rss_1.0, rss_2.0 &amp; atom_0.3), the SyndFeed feedType property indicates the type. The second line writes the SyndFeed as a syndication feed into the application's output.</p>
<p>Following is the full code for a Java application that reads a syndication feed and converts it to other syndication feed type, writing the converted feed to the application's output.</p>
<div class="source">
<pre>
package com.rometools.rome.samples;
import java.net.URL;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import com.rometools.rome.feed.synd.SyndFeed;
import com.rometools.rome.io.SyndFeedInput;
import com.rometools.rome.io.SyndFeedOutput;
import com.rometools.rome.io.XmlReader;
/**
* It Converts any RSS/Atom feed type to a an RSS/Atom feed of the
* specified type.
* &lt;p&gt;
* @author Alejandro Abdelnur
*
*/
public class FeedConverter {
public static void main(String[] args) {
boolean ok = false;
if (args.length==2) {
try {
String outputType = args[0];
URL feedUrl = new URL(args[1]);
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = input.build(new XmlReader(feedUrl));
feed.setFeedType(outputType);
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,new PrintWriter(System.out));
ok = true;
}
catch (Exception ex) {
System.out.println(&quot;ERROR: &quot;+ex.getMessage());
}
}
if (!ok) {
System.out.println();
System.out.println(&quot;FeedConverter converts between syndication feeds types.&quot;);
System.out.println(&quot;The first parameter must be the feed type to convert to.&quot;);
System.out.println(&quot; [valid values are: rss_0.9, rss_0.91, rss_0.92, rss_0.93, ]&quot;);
System.out.println(&quot; [ rss_0.94, rss_1.0, rss_2.0 &amp; atom_0.3 ]&quot;);
System.out.println(&quot;The second parameter must be the URL of the feed to convert.&quot;);
System.out.println();
}
}
}
</pre></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>

View file

@ -1,390 +0,0 @@
<!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 - Rome v0.4 Tutorial, Using Rome to create and write a syndication feed</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-down"></i>
How Rome Works</a>
<ul class="nav nav-list">
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToReadASyndicationFeed.html" title="Read a syndication feed">
<i class="none"></i>
Read a syndication feed</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>Create and write a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToConvertASyndicationFeedFromOneTypeToAnother.html" title="Convert a syndication feed">
<i class="none"></i>
Convert a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToAggregateManySyndicationFeedsIntoASingleOne.html" title="Aggregate many syndication feeds">
<i class="none"></i>
Aggregate many syndication feeds</a>
</li>
<li>
<a href="../HowRomeWorks/UnderstandingTheRomeCommonClassesAndInterfaces.html" title="Common classes and interfaces">
<i class="none"></i>
Common classes and interfaces</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialDefiningACustomModuleBeanParserAndGenerator.html" title="Defining a Custom Module">
<i class="none"></i>
Defining a Custom Module</a>
</li>
</ul>
</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>Using Rome to create and write a syndication feed<a name="Using_Rome_to_create_and_write_a_syndication_feed"></a></h2>
<p>Rome represents syndication feeds (RSS and Atom) as instances of the com.rometools.rome.feed.synd.SyndFeed interface. The SyndFeed interfaces and its properties follow the Java Bean patterns. The default implementations provided with Rome are all lightweight classes.</p>
<p>Creating a feed with SyndFeed beans consists of creating beans and setting their properties. The following code fragments show how a SyndFeed bean with 3 entries is created.</p>
<p>First the SyndFeed instance is created, the preferred syndication format is set and the feed header info (title, link, description) is also set.</p>
<div class="source">
<pre>
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType(feedType);
feed.setTitle(&quot;Sample Feed (created with Rome)&quot;);
feed.setLink(&quot;http://rome.dev.java.net&quot;);
feed.setDescription(&quot;This feed has been created using Rome (Java syndication utilities&quot;);
</pre></div>
<p>Then a list for entries is created, entries are created and added to the list. Each entry is set with a title, link, published date and a description. The description for the first entry is plain test, for the third entry is HTML. After each entry is created is added to the list.</p>
<div class="source">
<pre>
List entries = new ArrayList();
SyndEntry entry;
SyndContent description;
entry = new SyndEntryImpl();
entry.setTitle(&quot;Rome v1.0&quot;);
entry.setLink(&quot;http://wiki.java.net/bin/view/Javawsxml/Rome01&quot;);
entry.setPublishedDate(DATE_PARSER.parse(&quot;2004-06-08&quot;));
description = new SyndContentImpl();
description.setType(&quot;text/plain&quot;);
description.setValue(&quot;Initial release of Rome&quot;);
entry.setDescription(description);
entries.add(entry);
...
entry = new SyndEntryImpl();
entry.setTitle(&quot;Rome v3.0&quot;);
entry.setLink(&quot;http://wiki.java.net/bin/view/Javawsxml/Rome03&quot;);
entry.setPublishedDate(DATE_PARSER.parse(&quot;2004-07-27&quot;));
description = new SyndContentImpl();
description.setType(&quot;text/html&quot;);
description.setValue(&quot;&lt;p&gt;More Bug fixes, mor API changes, some new features and some Unit testing&lt;/p&gt;&quot;+
&quot;&lt;p&gt;For details check the &lt;a href=\&quot;http://wiki.java.net/bin/view/Javawsxml/RomeChangesLog#RomeV03\&quot;&gt;Changes Log&lt;/a&gt;&lt;/p&gt;&quot;);
entry.setDescription(description);
entries.add(entry);
</pre></div>
<p>Finally the list with entries is added to the SyndFeed bean.</p>
<div class="source">
<pre>
feed.setEntries(entries);
</pre></div>
<p>The SyndFeed bean is now ready to be written out to a syndication feed XML document. Note that any of supported syndication formats can be set in the feedType property.</p>
<p>Rome includes generators that allow producing syndication feed XML documents from SyndFeed instances. The SyndFeedOutput class handles the generation of the syndication feed XML documents on any of the supported feed formats (RSS and Atom). The developer does not need to worry about selecting the right generator for a syndication feed, the SyndFeedOutput will take care of it by looking at the information in the SyndFeed bean. All it takes to write a syndication feed XML document using Rome -assuming you have a SyndFeed bean and a Writer instance- are the following lines of code:</p>
<div class="source">
<pre>
SyndFeed feed = ...;
Writer writer = ...;
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,writer);
</pre></div>
<p>First a SyndFeedOutput instance is created, this instance will work with any syndication feed type (RSS and Atom versions). Then the feed and the writer are given to the SyndFeedOutput instance, the SyndFeedOutput will write the syndication feed XML document represented by the SyndFeed bean to the Writer stream.</p>
<p>Following is the full code for a Java application that creates a syndication feed and writes it to a file in the specified syndication format.</p>
<div class="source">
<pre>
package com.rometools.rome.samples;
import com.rometools.rome.feed.synd.*;
import com.rometools.rome.io.SyndFeedOutput;
import java.io.FileWriter;
import java.io.Writer;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
/**
* It creates a feed and writes it to a file.
* &lt;p&gt;
*
*/
public class FeedWriter {
private static final DateFormat DATE_PARSER = new SimpleDateFormat(&quot;yyyy-MM-dd&quot;);
public static void main(String[] args) {
boolean ok = false;
if (args.length==2) {
try {
String feedType = args[0];
String fileName = args[1];
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType(feedType);
feed.setTitle(&quot;Sample Feed (created with Rome)&quot;);
feed.setLink(&quot;http://rome.dev.java.net&quot;);
feed.setDescription(&quot;This feed has been created using Rome (Java syndication utilities&quot;);
List entries = new ArrayList();
SyndEntry entry;
SyndContent description;
entry = new SyndEntryImpl();
entry.setTitle(&quot;Rome v1.0&quot;);
entry.setLink(&quot;http://wiki.java.net/bin/view/Javawsxml/Rome01&quot;);
entry.setPublishedDate(DATE_PARSER.parse(&quot;2004-06-08&quot;));
description = new SyndContentImpl();
description.setType(&quot;text/plain&quot;);
description.setValue(&quot;Initial release of Rome&quot;);
entry.setDescription(description);
entries.add(entry);
entry = new SyndEntryImpl();
entry.setTitle(&quot;Rome v2.0&quot;);
entry.setLink(&quot;http://wiki.java.net/bin/view/Javawsxml/Rome02&quot;);
entry.setPublishedDate(DATE_PARSER.parse(&quot;2004-06-16&quot;));
description = new SyndContentImpl();
description.setType(&quot;text/plain&quot;);
description.setValue(&quot;Bug fixes, minor API changes and some new features&quot;);
entry.setDescription(description);
entries.add(entry);
entry = new SyndEntryImpl();
entry.setTitle(&quot;Rome v3.0&quot;);
entry.setLink(&quot;http://wiki.java.net/bin/view/Javawsxml/Rome03&quot;);
entry.setPublishedDate(DATE_PARSER.parse(&quot;2004-07-27&quot;));
description = new SyndContentImpl();
description.setType(&quot;text/html&quot;);
description.setValue(&quot;&lt;p&gt;More Bug fixes, mor API changes, some new features and some Unit testing&lt;/p&gt;&quot;+
&quot;&lt;p&gt;For details check the &lt;a href=\&quot;http://wiki.java.net/bin/view/Javawsxml/RomeChangesLog#RomeV03\&quot;&gt;Changes Log&lt;/a&gt;&lt;/p&gt;&quot;);
entry.setDescription(description);
entries.add(entry);
feed.setEntries(entries);
Writer writer = new FileWriter(fileName);
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,writer);
writer.close();
System.out.println(&quot;The feed has been written to the file [&quot;+fileName+&quot;]&quot;);
ok = true;
}
catch (Exception ex) {
ex.printStackTrace();
System.out.println(&quot;ERROR: &quot;+ex.getMessage());
}
}
if (!ok) {
System.out.println();
System.out.println(&quot;FeedWriter creates a RSS/Atom feed and writes it to a file.&quot;);
System.out.println(&quot;The first parameter must be the syndication format for the feed&quot;);
System.out.println(&quot; (rss_0.90, rss_0.91, rss_0.92, rss_0.93, rss_0.94, rss_1.0 rss_2.0 or atom_0.3)&quot;);
System.out.println(&quot;The second parameter must be the file name for the feed&quot;);
System.out.println();
}
}
}
</pre></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>

View file

@ -1,293 +0,0 @@
<!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 - Rome v0.4 Tutorial, Using Rome to read a syndication feed</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-down"></i>
How Rome Works</a>
<ul class="nav nav-list">
<li class="active">
<a href="#"><i class="none"></i>Read a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToCreateAndWriteASyndicationFeed.html" title="Create and write a syndication feed">
<i class="none"></i>
Create and write a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToConvertASyndicationFeedFromOneTypeToAnother.html" title="Convert a syndication feed">
<i class="none"></i>
Convert a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToAggregateManySyndicationFeedsIntoASingleOne.html" title="Aggregate many syndication feeds">
<i class="none"></i>
Aggregate many syndication feeds</a>
</li>
<li>
<a href="../HowRomeWorks/UnderstandingTheRomeCommonClassesAndInterfaces.html" title="Common classes and interfaces">
<i class="none"></i>
Common classes and interfaces</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialDefiningACustomModuleBeanParserAndGenerator.html" title="Defining a Custom Module">
<i class="none"></i>
Defining a Custom Module</a>
</li>
</ul>
</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>Using Rome to read a syndication feed<a name="Using_Rome_to_read_a_syndication_feed"></a></h2>
<p>Rome represents syndication feeds (RSS and Atom) as instances of the com.rometools.rome.synd.SyndFeed interface. The SyndFeed interfaces and its properties follow the Java Bean patterns. The default implementations provided with Rome are all lightweight classes.</p>
<p>Rome includes parsers to process syndication feeds into SyndFeed instances. The SyndFeedInput class handles the parsers using the correct one based on the syndication feed being processed. The developer does not need to worry about selecting the right parser for a syndication feed, the SyndFeedInput will take care of it by peeking at the syndication feed structure. All it takes to read a syndication feed using Rome are the following 2 lines of code:</p>
<div class="source">
<pre>
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = input.build(new XmlReader(feedUrl));
</pre></div>
<p>The first line creates a SyndFeedInput instance that will work with any syndication feed type (RSS and Atom versions). The second line instructs the SyndFeedInput to read the syndication feed from the char based input stream of a URL pointing to the feed. The XmlReader is a character based Reader that resolves the encoding following the HTTP MIME types and XML rules for it. The SyndFeedInput.build() method returns a SyndFeed instance that can be easily processed.</p>
<p>The default SyndFeed implementation has a detailed and clear toString() implementation. The following line just prints it to the application's output.</p>
<div class="source">
<pre>
System.out.println(feed);
</pre></div>
<p>Following is the full code for a Java application that reads a syndication feed and prints the SyndFeed bean to the application's output.</p>
<div class="source">
<pre>
package com.rometools.rome.samples;
import java.net.URL;
import java.io.InputStreamReader;
import com.rometools.rome.feed.synd.SyndFeed;
import com.rometools.rome.io.SyndFeedInput;
import com.rometools.rome.io.XmlReader;
/**
* It Reads and prints any RSS/Atom feed type.
* &lt;p&gt;
* @author Alejandro Abdelnur
*
*/
public class FeedReader {
public static void main(String[] args) {
boolean ok = false;
if (args.length==1) {
try {
URL feedUrl = new URL(args[0]);
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = input.build(new XmlReader(feedUrl));
System.out.println(feed);
ok = true;
}
catch (Exception ex) {
ex.printStackTrace();
System.out.println(&quot;ERROR: &quot;+ex.getMessage());
}
}
if (!ok) {
System.out.println();
System.out.println(&quot;FeedReader reads and prints any RSS/Atom feed type.&quot;);
System.out.println(&quot;The first parameter must be the URL of the feed to read.&quot;);
System.out.println();
}
}
}
</pre></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>

View file

@ -1,503 +0,0 @@
<!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 - Understanding the Rome common classes and interfaces</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-down"></i>
How Rome Works</a>
<ul class="nav nav-list">
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToReadASyndicationFeed.html" title="Read a syndication feed">
<i class="none"></i>
Read a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToCreateAndWriteASyndicationFeed.html" title="Create and write a syndication feed">
<i class="none"></i>
Create and write a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToConvertASyndicationFeedFromOneTypeToAnother.html" title="Convert a syndication feed">
<i class="none"></i>
Convert a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToAggregateManySyndicationFeedsIntoASingleOne.html" title="Aggregate many syndication feeds">
<i class="none"></i>
Aggregate many syndication feeds</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>Common classes and interfaces</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialDefiningACustomModuleBeanParserAndGenerator.html" title="Defining a Custom Module">
<i class="none"></i>
Defining a Custom Module</a>
</li>
</ul>
</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>Understanding the Rome common classes and interfaces<a name="Understanding_the_Rome_common_classes_and_interfaces"></a></h2>
<p>The Rome common package contains a set of Java classes that provide support for all the basic features Java Beans commonly must have: toString, equals, hashcode and cloning. There is also a simple enumeration base class (missing Java 5.0 already).</p>
<p>By implementing or extending the common classes and interfaces Beans don't have to hand code these functions. This greatly simplifies things when Beans have several properties, collection properties and composite properties.</p>
<p>The common classes use Java Bean instrospection on the properties of the classes extending and using them. This is done recursively on all properties.</p>
<p>All Rome Beans (interfaces and default implementations) leverage and use these classes and interfaces defined in the common package.</p>
<p>Ideally all this classes and interface should be part of a general component outside of Rome as they are not syndication specific (something like a commons-bean component if we use Jakarta Commons naming). They cannot be hidden in an implementation package as Rome public API uses them.</p>
<div class="section">
<h3>ToString and ToStringBean<a name="ToString_and_ToStringBean"></a></h3>
<p>Beans implementing the ToString interface must implement the toString(String prefix) method. This method must print the bean properties names and values, one per per line, separating the name and value with an '=' sign and prefixing the name with the given prefix parameter using the same notation used in the JSP expression language used in JSTL and in JSP 2.0. This must be done recursively for all array, collection and ToString properties.</p>
<p>The ToStringBean class provides an implementation of the ToString interface with the defined behavior. The ToStringBean constructor takes the class definition the ToStringBean class should use for properties scanning -using instrospection- for printing, normally it is the class of the Bean using the ToStringBean. Beans leveraging the ToStringBean implementation can do it using two different patterns.</p></div>
<div class="section">
<h3>Extending ToStringBean<a name="Extending_ToStringBean"></a></h3>
<div class="source">
<pre>
public class MyBean extend ToStringBean {
public MyBean() {
super(MyBean.class);
}
public Foo getFoo() { ... }
public void setFoo(Foo foo) { ... }
public String getName() { ... }
public void setName(String name) { ... }
public List getValues() { ... }
public void setValues(List values) { ... }
}
</pre></div>
<div class="section">
<h4>Using a ToStringBean in delegation mode<a name="Using_a_ToStringBean_in_delegation_mode"></a></h4>
<div class="source">
<pre>
public class MyBean implements ToString {
public Foo getFoo() { ... }
public void setFoo(Foo foo) { ... }
public String getName() { ... }
public void setName(String name) { ... }
public List getValues() { ... }
public void setValues(List values) { ... }
public String toString(String prefix) {
ToStringBean tsBean = new ToStringBean(MyBean.class,this);
return tsBean.toString(prefix);
}
public String toString() {
return toString(&quot;myBean&quot;);
}
}
</pre></div></div></div>
<div class="section">
<h3>EqualBean<a name="EqualBean"></a></h3>
<p>The EqualsBean class provides a recursive introspetion-based implementation of the equals() and hashCode() methods working on the Bean properties. The EqualsBean constructor takes the class definition that should be properties scanned (using introspection) by the equals() and thehashCode() methods. The EqualsBean class works on array, collection, bean and basic type properties. Java Beans leveraging the EqualsBean implementation can do it using two different patterns.</p>
<div class="section">
<h4>Extending EqualsBean<a name="Extending_EqualsBean"></a></h4>
<div class="source">
<pre>
public class MyBean extend EqualsBean {
public MyBean() {
super(MyBean.class);
}
public Foo getFoo() { ... }
public void setFoo(Foo foo) { ... }
public String getName() { ... }
public void setName(String name) { ... }
public List getValues() { ... }
public void setValues(List values) { ... }
}
</pre></div></div>
<div class="section">
<h4>Using a EqualsBean in delegation mode<a name="Using_a_EqualsBean_in_delegation_mode"></a></h4>
<div class="source">
<pre>
public class MyBean implements ToString {
public Foo getFoo() { ... }
public void setFoo(Foo foo) { ... }
public String getName() { ... }
public void setName(String name) { ... }
public List getValues() { ... }
public void setValues(List values) { ... }
public boolean equals(Object obj) {
EqualsBean eBean = new EqualsBean(MyBean.class,this);
return eBean.beanEquals(obj);
}
public int hashCode() {
EqualsBean equals = new EqualsBean(MyBean.class,this);
return equals.beanHashCode();
}
}
</pre></div></div></div>
<div class="section">
<h3>CloneableBean<a name="CloneableBean"></a></h3>
<p>The CloneableBean class provides a recursive introspetion-based implementation of the clone() method working on the Bean properties. The CloneableBean class works on array, collection, bean and basic type properties. Java Beans leveraging the CloneableBean implementation can do it using two different patterns.</p>
<div class="section">
<h4>Extending CloneableBean<a name="Extending_CloneableBean"></a></h4>
<div class="source">
<pre>
public class MyBean extend CloneableBean {
public Foo getFoo() { ... }
public void setFoo(Foo foo) { ... }
public String getName() { ... }
public void setName(String name) { ... }
public List getValues() { ... }
public void setValues(List values) { ... }
}
</pre></div></div>
<div class="section">
<h4>Using a CloneableBean in delegation mode<a name="Using_a_CloneableBean_in_delegation_mode"></a></h4>
<div class="source">
<pre>
public class MyBean implements Cloneable {
public Foo getFoo() { ... }
public void setFoo(Foo foo) { ... }
public String getName() { ... }
public void setName(String name) { ... }
public List getValues() { ... }
public void setValues(List values) { ... }
public Object clone() {
CloneableBean cBean = new CloneableBean(this);
return cBean.beanClone();
}
}
</pre></div>
<p>By default, the CloneableBean copies all properties of the given object. It also supports an ignore-properties set, the property names in this set will not be copied to the cloned instance. This is useful for cases where the Bean has convenience properties (properties that are actually references to other properties or properties of properties). For example SyndFeed and SyndEntry beans have convenience properties, publishedDate, author, copyright and categories all of them mapped to properties in the DC Module.</p></div></div>
<div class="section">
<h3>ObjectBean<a name="ObjectBean"></a></h3>
<p>The ObjectBean is a convenience bean providing ToStringBean, EqualsBean and CloneableBean functionality support. Also, ObjectBeans implements the Serializable interface making the beans serializable if all its properties are. Beans extending ObjectBean get toString(), equals(), hashCode() and clone() support as defined above.</p>
<p>And example of using the ObjectBean class is:</p>
<div class="source">
<pre>
public class MyBean extends ObjectBean {
public MyBean() {
super(MyBean.class);
}
public Foo getFoo() { ... }
public void setFoo(Foo foo) { ... }
public String getName() { ... }
public void setName(String name) { ... }
public List getValues() { ... }
public void setValues(List values) { ... }
}
</pre></div></div>
<div class="section">
<h3>Enum<a name="Enum"></a></h3>
<p>The Enum is an enumeration base class [Too bad Java 5.0 is not here yet (Aug/16/2004)] with equals(), hashCode(), toString(), clone() and serialization support. When used as properties of Beans implementing any of the above function it provides a seamless integration.</p>
<p>And example of using the EnumBean class is:</p>
<div class="source">
<pre>
public static class Day extends Enum {
private Day(String name) {
super(name);
}
public static final Day SUNDAY = new Day(&quot;sunday&quot;);
public static final Day MONDAY = new Day(&quot;monday&quot;);
public static final Day TUESDAY = new Day(&quot;tuesday&quot;);
public static final Day WEDNESDAY = new Day(&quot;wednesday&quot;);
public static final Day THURSDAY = new Day(&quot;thursday&quot;);
public static final Day FRIDAY = new Day(&quot;friday&quot;);
public static final Day SATURDAY = new Day(&quot;saturday&quot;);
}
</pre></div></div>
<div class="section">
<h3>CopyFrom<a name="CopyFrom"></a></h3>
<p>The CopyFrom interface defines functionality similar to a deep cloning. The difference with the clone() method (besides the deep cloning requirements) is that the object to be the copy of the original one has to be explicitly created and it is this object the one that triggers the deep copying process. Implemetations of the CopyFrom interface should work propertly on arrays, collections, CopyFrom and basic type properties.</p>
<p>Using CopyFrom objects enables copying data between different implementations of a given interface without these implementation having to know about each other.</p>
<p>CopyFrom is unidirectional. A class implementing the CopyFrom knows how to extract properties from the given class (commonly having an interface in common).</p>
<p>A simple example using the CopyFrom interface is:</p>
<div class="source">
<pre>
public interface Foo extends CopyFrom {
public void setName(String name);
public String getName();
public void setValues(Set values);
public Set getValues();
}
public class FooImplA implements Foo {
private String _name;
private Set _values;
public void setName(String name) {
_name = name;
}
public String getName() {
return _name;
}
public void setValues(Set values) {
_values = values;
}
public Set getValues() {
return _values;
}
public void copyFrom(Object obj) {
Foo other = (Foo) obj;
setName(other.getName());
setValues(new HashSet(other.getValues());
}
public Class getInterface() {
return Foo.class;
}
}
public class FooImplB implements Foo {
private Map _data;
public FooImplB() {
_data = new HashMap();
}
public void setName(String name) {
_data.put(&quot;name&quot;,name);
}
public String getName() {
return (String) _data.get(&quot;name&quot;);
}
public void setValues(Set values) {
_data.put(&quot;values&quot;,values);
}
public Set getValues() {
return (Set) _data.get(&quot;values&quot;);
}
public void copyFrom(Object obj) {
Foo other = (Foo) obj;
setName(other.getName());
setValues(new HashSet(other.getValues());
}
public Class getInterface() {
return Foo.class;
}
}
</pre></div>
<p>A use case for the CopyFrom functionality is a Java Bean implementation of an interface and a persistency implementation (such as Hibernate) of the the same interface that may add extra persistency related properties to the bean (ie, the 'Id' property as the persistency layer primary key).</p>
<p>For bean, array and collection properties the bean being invoked which copyFrom() method is invoked is responsible for those properties.</p>
<p>For properties implementing the CopyFrom interface, the bean must create a property instance implementing the interface returned by the getInterface() method. This allows the bean doing the copyFrom() to handle specialized subclasses of property elements propertly. This is also applicacle to array and collection properties. The 'modules' property of the SyndFeed and SyndEntry beans is a use case of this feature where the copyFrom() invocation must create different beans subclasses for each type of module, the getInteface() helps to find the right implementation.</p></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>

View file

@ -1,270 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - How Rome works</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 class="active">
<a href="#"><i class="icon-chevron-down"></i>How Rome Works</a>
<ul class="nav nav-list">
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToReadASyndicationFeed.html" title="Read a syndication feed">
<i class="none"></i>
Read a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToCreateAndWriteASyndicationFeed.html" title="Create and write a syndication feed">
<i class="none"></i>
Create and write a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToConvertASyndicationFeedFromOneTypeToAnother.html" title="Convert a syndication feed">
<i class="none"></i>
Convert a syndication feed</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialUsingRomeToAggregateManySyndicationFeedsIntoASingleOne.html" title="Aggregate many syndication feeds">
<i class="none"></i>
Aggregate many syndication feeds</a>
</li>
<li>
<a href="../HowRomeWorks/UnderstandingTheRomeCommonClassesAndInterfaces.html" title="Common classes and interfaces">
<i class="none"></i>
Common classes and interfaces</a>
</li>
<li>
<a href="../HowRomeWorks/RomeV0.4TutorialDefiningACustomModuleBeanParserAndGenerator.html" title="Defining a Custom Module">
<i class="none"></i>
Defining a Custom Module</a>
</li>
</ul>
</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>How Rome works<a name="How_Rome_works"></a></h2>
<p><b>Dave Johnson (</b><b><a class="externalLink" href="http://www.rollerweblogger.org/">The Roller Weblogger</a></b><b>) has written a very nice blog</b> <b><a class="externalLink" href="http://www.rollerweblogger.org/page/roller/20040808#how_rome_works">How Rome Works</a></b> <b>describing (as the title says) how Rome works. With his permission we are adding it to Rome documentation.</b></p>
<p>I spent some time exploring the new <a class="externalLink" href="http://rome.dev.java.net/">Rome</a> feed parser for Java and trying to understand how it works. Along the way, I put together the following class diagram and notes on the parsing process. I provide some pointers into the <a class="externalLink" href="http://rome.dev.java.net/apidocs/0_4/overview-summary.html">Rome 0.4 Javadocs</a>.</p>
<p>You don't need to know this stuff to use Rome, but it you are interested in internals you might find it interesting.</p>
<div class="section">
<h3>Notes on the Rome parsing process<a name="Notes_on_the_Rome_parsing_process"></a></h3>
<p>Rome is based around an idealized and abstract model of a Newsfeed or &quot;Syndication Feed.&quot; Rome can parse any format of Newsfeed, including RSS variants and Atom, into this model. Rome can convert from model representation to any of the same Newfeed output formats.</p>
<p>Internally, Rome defines intermediate object models for specific Newsfeed formats, or &quot;Wire Feed&quot; formats, including both Atom and all RSS variants. For each format, there is a separate JDOM based parser class that parses XML into an intermediate model. Rome provides &quot;converters&quot; to convert between the intermediate Wire Feed models and the idealized Syndication Feed model.</p>
<p>Rome makes no attempt at <a class="externalLink" href="http://www.xml.com/pub/a/2003/01/22/dive-into-xml.html">Pilgrim-style liberal XML parsing</a>. If a Newsfeed is not valid XML, then Rome will fail. Perhaps, as <a class="externalLink" href="http://www.peerfear.org/rss/permalink/2003/01/23/1043368363-Smart_Parsing__Not_RSS_Parsing.shtml">Kevin Burton suggests</a>, parsing errors in Newsfeeds can and should be corrected. Kevin suggests that, when the parse fails, you can correct the problem and parse again. (BTW, I have some sample code that shows how to do this, but it only works with Xerces - Crimsom's SAXParserException does not have reliable error line and column numbers.)</p>
<p>Here is what happens during Rome Newsfeed parsing:</p><img src="HowRomeWorks.png" alt="" />
<ol style="list-style-type: decimal">
<li>Your code calls <a class="externalLink" href="http://rome.dev.java.net/apidocs/0_4/com/sun/syndication/io/SyndFeedInput.html">SyndFeedInput</a> to parse a Newsfeed, for example (see also <a href="./RomeV0.4TutorialUsingRomeToReadASyndicationFeed.html">Using Rome to read a syndication feed</a>):
<div class="source">
<pre>URL feedUrl = new URL(&quot;file:blogging-roller.rss&quot;);
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = input.build(new InputStreamReader(feedUrl.openStream()));
</pre></div></li>
<li>SyndFeedInput delegates to WireFeedInput to do the actual parsing.</li>
<li><a class="externalLink" href="http://rome.dev.java.net/apidocs/0_4/com/sun/syndication/io/WireFeedInput.html">WireFeedInput</a> uses a PluginManager of class FeedParsers to pick the right parser to use to parse the feed and then calls that parser to parse the Newsfeed.</li>
<li>The appropriate parser parses the Newsfeed parses the feed, using <a class="externalLink" href="http://www.jdom.org/">JDom</a>, into a <a class="externalLink" href="http://rome.dev.java.net/apidocs/0_4/com/sun/syndication/feed/WireFeed.html">WireFeed</a>. If the Newsfeed is in an RSS format, the the WireFeed is of class <a class="externalLink" href="http://rome.dev.java.net/apidocs/0_4/com/sun/syndication/feed/rss/Channel.html">Channel</a> and contains Items, Clouds, and other RSS things from the <a class="externalLink" href="http://rome.dev.java.net/apidocs/0_4/com/sun/syndication/feed/rss/package-summary.html">com.rometools.rome.feed.rss</a> package. Or, on the other hand, if the Newsfeed is in Atom format, then the WireFeed is of class <a class="externalLink" href="http://rome.dev.java.net/apidocs/0_4/com/sun/syndication/feed/atom/Feed.html">Feed</a> from the <a class="externalLink" href="http://rome.dev.java.net/apidocs/0_4/com/sun/syndication/feed/atom/package-summary.html">com.rometools.rome.atom</a> package. In the end, WireFeedInput returns a WireFeed.</li>
<li>SyndFeedInput uses the returned WireFeedInput to create a SyndFeedImpl. Which implements SyndFeed. SyndFeed is an interface, the root of an abstraction that represents a format independent Newsfeed.</li>
<li><a class="externalLink" href="http://rome.dev.java.net/apidocs/0_4/com/sun/syndication/feed/synd/SyndFeed.html">SyndFeedImpl</a> uses a Converter to convert between the format specific WireFeed representation and a format-independent SyndFeed.</li>
<li>SyndFeedInput returns to you a SyndFeed containing the parsed Newsfeed.</li></ol></div>
<div class="section">
<h3>Other Rome features<a name="Other_Rome_features"></a></h3>
<p>Rome supports Newsfeed extension modules for all formats that also support modules: RSS 1.0, RSS 2.0, and Atom. Standard modules such as Dublic Core and Syndication are supported and you can <a href="./RomeV0.4TutorialDefiningACustomModuleBeanParserAndGenerator.html">define your own custom modules</a> too.</p>
<p>Rome also supports <a href="./RomeV0.4TutorialUsingRomeToCreateAndWriteASyndicationFeed.html">Newsfeed output</a> and for each Newsfeed format provides a &quot;generator&quot; class that can take a Syndication Feed model and produce from it Newsfeed XML.</p></div>
<div class="section">
<h3>Learning more<a name="Learning_more"></a></h3>
<p>I've linked to a number of the Rome 0.4 Tutorials, here is the full list from the <a href="../index.html">Rome Wiki</a>:</p>
<ol style="list-style-type: decimal">
<li><a href="./RomeV0.4TutorialUsingRomeToReadASyndicationFeed.html">Using Rome to read a syndication feed</a></li>
<li><a href="./RomeV0.4TutorialUsingRomeToConvertASyndicationFeedFromOneTypeToAnother.html">Using Rome to convert a syndication feed from one type to another</a></li>
<li><a href="./RomeV0.4TutorialUsingRomeToAggregateManySyndicationFeedsIntoASingleOne.html">Using Rome to aggregate many syndication feeds into a single one</a></li>
<li><a href="./RomeV0.4TutorialUsingRomeToCreateAndWriteASyndicationFeed.html">Using Rome to create and write a feed</a></li>
<li><a href="./RomeV0.4TutorialDefiningACustomModuleBeanParserAndGenerator.html">Defining a Custom Module bean, parser and generator</a></li></ol></div>
<div class="section">
<h3>Conclusion<a name="Conclusion"></a></h3>
<p>Overall, Rome looks really good. It is obvious that a lot of thought has gone into design and a lot of work has been done on implementation (and docs). Rome is well on the way to &quot;ending syndication feed confusion by supporting all of 'em&quot; for us Java heads.</p></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>

View file

@ -1,233 +0,0 @@
<!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 - How to build Rome?</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>How to build Rome?<a name="How_to_build_Rome"></a></h2>
<p>Rome is built using mighty <a class="externalLink" href="http://maven.apache.org/">Maven</a>! This is why these instructions are so short:-)</p>
<p>If you don't want to build Rome we'd suggest you download a binary build:-)</p>
<div class="section">
<h3>Check out from GitHub<a name="Check_out_from_GitHub"></a></h3>
<p>See <a class="externalLink" href="https://github.com/rometools/rome">GitHub</a> for access intructions and to browse the source from your browser.</p></div>
<div class="section">
<h3>Setup maven<a name="Setup_maven"></a></h3>
<p>See <a class="externalLink" href="http://maven.apache.org/run-maven/index.html">Installing Maven</a> for details.</p>
<p>Maven automatically downloads dependencies of a project from an online repository.</p></div>
<div class="section">
<h3>Build rome.jar<a name="Build_rome.jar"></a></h3>
<p>At the command prompt type:</p>
<div class="source">
<pre>
&gt; mvn package
</pre></div>
<p>This will build</p>
<div class="source">
<pre>
rome/target/rome-VERSION.jar
</pre></div>
<p>You're good to go.</p>
<div class="section">
<h4>Build a full binary distribution<a name="Build_a_full_binary_distribution"></a></h4>
<div class="source">
<pre>
&gt; mvn install
</pre></div></div>
<div class="section">
<h4>Build the project site<a name="Build_the_project_site"></a></h4>
<div class="source">
<pre>
&gt; mvn site
</pre></div></div></div>
<div class="section">
<h3>For Rome developers<a name="For_Rome_developers"></a></h3>
<div class="section">
<h4>Work on Rome using Eclipse<a name="Work_on_Rome_using_Eclipse"></a></h4>
<div class="source">
<pre>
&gt; mvn eclipse:eclipse
</pre></div>
<p>will setup the Eclipse project for you.</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>

10
Jenkinsfile vendored Normal file
View file

@ -0,0 +1,10 @@
node {
stage 'Checkout'
checkout scm
stage 'Build'
def mvnHome = tool 'Maven 3.3.9'
sh "${mvnHome}/bin/mvn clean install"
}

202
LICENSE Normal file
View file

@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View file

@ -1,310 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - A9 OpenSearch</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-down"></i>
Modules</a>
<ul class="nav nav-list">
<li>
<a href="../Modules/ITunesPodcasting.html" title="iTunes Podcasting">
<i class="none"></i>
iTunes Podcasting</a>
</li>
<li>
<a href="../Modules/GeoRSS.html" title="GeoRSS.html">
<i class="none"></i>
GeoRSS.html</a>
</li>
<li>
<a href="../Modules/Slash.html" title="Slash">
<i class="none"></i>
Slash</a>
</li>
<li>
<a href="../Modules/GoogleBase.html" title="Google Base">
<i class="none"></i>
Google Base</a>
</li>
<li>
<a href="../Modules/Content.html" title="Content">
<i class="none"></i>
Content</a>
</li>
<li>
<a href="../Modules/CreativeCommons.html" title="Creative Commons">
<i class="none"></i>
Creative Commons</a>
</li>
<li>
<a href="../Modules/MediaRSS.html" title="Yahoo! MediaRSS">
<i class="none"></i>
Yahoo! MediaRSS</a>
</li>
<li>
<a href="../Modules/IPhotoPhotocasting.html" title="iPhoto Photocasting">
<i class="none"></i>
iPhoto Photocasting</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>A9 OpenSearch</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleListExtensions.html" title="Microsoft Simple List Extensions">
<i class="none"></i>
Microsoft Simple List Extensions</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleSharingExtensions.html" title="Microsoft Simple Sharing Extensions">
<i class="none"></i>
Microsoft Simple Sharing Extensions</a>
</li>
<li>
<a href="../Modules/Weather.html" title="Yahoo! Weather">
<i class="none"></i>
Yahoo! Weather</a>
</li>
</ul>
</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>A9 OpenSearch<a name="A9_OpenSearch"></a></h2>
<p>This plug in is for use with <a class="externalLink" href="http://www.opensearch.org/">OpenSearch.org</a> results.</p>
<div class="section">
<h3>Sample Usage<a name="Sample_Usage"></a></h3>
<div class="source">
<pre>SyndFeed feed = new SyndFeedImpl();
feed.setFeedType(feedType);
// Add the opensearch module, you would get information like totalResults from the
// return results of your search
List mods = feed.getModules();
OpenSearchModule osm = new OpenSearchModuleImpl();
osm.setItemsPerPage(1);
osm.setStartIndex(1);
osm.setTotalResults(1024);
osm.setItemsPerPage(50);
OSQuery query = new OSQuery();
query.setRole(&quot;superset&quot;);
query.setSearchTerms(&quot;Java Syndication&quot;);
query.setStartPage(1);
osm.addQuery(query);
Link link = new Link();
link.setHref(&quot;http://www.bargainstriker.com/opensearch-description.xml&quot;);
link.setType(&quot;application/opensearchdescription+xml&quot;);
osm.setLink(link);
mods.add(osm);
feed.setModules(mods);
// end add module</pre></div></div>
<div class="section">
<h3>Changes<a name="Changes"></a></h3>
<div class="section">
<h4>0.1<a name="a0.1"></a></h4>
<p>Initial move to the ROME project.</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>

View file

@ -1,291 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Content</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-down"></i>
Modules</a>
<ul class="nav nav-list">
<li>
<a href="../Modules/ITunesPodcasting.html" title="iTunes Podcasting">
<i class="none"></i>
iTunes Podcasting</a>
</li>
<li>
<a href="../Modules/GeoRSS.html" title="GeoRSS.html">
<i class="none"></i>
GeoRSS.html</a>
</li>
<li>
<a href="../Modules/Slash.html" title="Slash">
<i class="none"></i>
Slash</a>
</li>
<li>
<a href="../Modules/GoogleBase.html" title="Google Base">
<i class="none"></i>
Google Base</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>Content</a>
</li>
<li>
<a href="../Modules/CreativeCommons.html" title="Creative Commons">
<i class="none"></i>
Creative Commons</a>
</li>
<li>
<a href="../Modules/MediaRSS.html" title="Yahoo! MediaRSS">
<i class="none"></i>
Yahoo! MediaRSS</a>
</li>
<li>
<a href="../Modules/IPhotoPhotocasting.html" title="iPhoto Photocasting">
<i class="none"></i>
iPhoto Photocasting</a>
</li>
<li>
<a href="../Modules/A9OpenSearch.html" title="A9 OpenSearch">
<i class="none"></i>
A9 OpenSearch</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleListExtensions.html" title="Microsoft Simple List Extensions">
<i class="none"></i>
Microsoft Simple List Extensions</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleSharingExtensions.html" title="Microsoft Simple Sharing Extensions">
<i class="none"></i>
Microsoft Simple Sharing Extensions</a>
</li>
<li>
<a href="../Modules/Weather.html" title="Yahoo! Weather">
<i class="none"></i>
Yahoo! Weather</a>
</li>
</ul>
</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>Content<a name="Content"></a></h2>
<p>This plug in is for use content:encoded in feeds.</p>
<div class="section">
<h3>Sample Usage<a name="Sample_Usage"></a></h3>
<div class="source">
<pre>SyndFeedInput input = new SyndFeedInput();
SyndFeed syndfeed = input.build(new XmlReader(feed.toURL()));
Module module = syndfeed.getModule(&quot;http://purl.org/rss/1.0/modules/content/&quot;);
ContentModule content = (ContentModule) module;
Iterator it = content.getEncodeds().iterator();
System.out.println( it.next() );</pre></div></div>
<div class="section">
<h3>Changes<a name="Changes"></a></h3>
<div class="section">
<h4>0.4<a name="a0.4"></a></h4>
<p>Initial move to the ROME project.</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>

View file

@ -1,294 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Creative Commons</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-down"></i>
Modules</a>
<ul class="nav nav-list">
<li>
<a href="../Modules/ITunesPodcasting.html" title="iTunes Podcasting">
<i class="none"></i>
iTunes Podcasting</a>
</li>
<li>
<a href="../Modules/GeoRSS.html" title="GeoRSS.html">
<i class="none"></i>
GeoRSS.html</a>
</li>
<li>
<a href="../Modules/Slash.html" title="Slash">
<i class="none"></i>
Slash</a>
</li>
<li>
<a href="../Modules/GoogleBase.html" title="Google Base">
<i class="none"></i>
Google Base</a>
</li>
<li>
<a href="../Modules/Content.html" title="Content">
<i class="none"></i>
Content</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>Creative Commons</a>
</li>
<li>
<a href="../Modules/MediaRSS.html" title="Yahoo! MediaRSS">
<i class="none"></i>
Yahoo! MediaRSS</a>
</li>
<li>
<a href="../Modules/IPhotoPhotocasting.html" title="iPhoto Photocasting">
<i class="none"></i>
iPhoto Photocasting</a>
</li>
<li>
<a href="../Modules/A9OpenSearch.html" title="A9 OpenSearch">
<i class="none"></i>
A9 OpenSearch</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleListExtensions.html" title="Microsoft Simple List Extensions">
<i class="none"></i>
Microsoft Simple List Extensions</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleSharingExtensions.html" title="Microsoft Simple Sharing Extensions">
<i class="none"></i>
Microsoft Simple Sharing Extensions</a>
</li>
<li>
<a href="../Modules/Weather.html" title="Yahoo! Weather">
<i class="none"></i>
Yahoo! Weather</a>
</li>
</ul>
</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>Creative Commons<a name="Creative_Commons"></a></h2>
<p>This plug in is for use with feeds from Creative Commons license.</p>
<p>This module provides a unified rights and license system for both the RSS2/Atom and RSS/RDF namespace. However, if you wish to <b>generate</b> RDF/RSS feeds, you need to use a CVS build of ROME (or a version higher than 0.8).</p>
<div class="section">
<h3>Sample Usage<a name="Sample_Usage"></a></h3>
<div class="source">
<pre>CreativeCommons commons = new CreativeCommonsImpl();
commons.setLicense( new License[]{ License.NONCOMMERCIAL } );
// Note, you do not have to setAllLicenses right now. When the RSS1 functionality is
// added, this will be required at the Feed level only.
ArrayList modules = new ArrayList()
modules.add( commons );
syndEntry.setModules( commons );
//Alternately, to get the module:
CreativeCommons commons = (CreativeCommons) syndFeed.getModule( CreativeCommons.URI );</pre></div></div>
<div class="section">
<h3>Changes<a name="Changes"></a></h3>
<div class="section">
<h4>0.2<a name="a0.2"></a></h4>
<p>Initial release from ROME.</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>

View file

@ -1,304 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - GeoRSS</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-down"></i>
Modules</a>
<ul class="nav nav-list">
<li>
<a href="../Modules/ITunesPodcasting.html" title="iTunes Podcasting">
<i class="none"></i>
iTunes Podcasting</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>GeoRSS.html</a>
</li>
<li>
<a href="../Modules/Slash.html" title="Slash">
<i class="none"></i>
Slash</a>
</li>
<li>
<a href="../Modules/GoogleBase.html" title="Google Base">
<i class="none"></i>
Google Base</a>
</li>
<li>
<a href="../Modules/Content.html" title="Content">
<i class="none"></i>
Content</a>
</li>
<li>
<a href="../Modules/CreativeCommons.html" title="Creative Commons">
<i class="none"></i>
Creative Commons</a>
</li>
<li>
<a href="../Modules/MediaRSS.html" title="Yahoo! MediaRSS">
<i class="none"></i>
Yahoo! MediaRSS</a>
</li>
<li>
<a href="../Modules/IPhotoPhotocasting.html" title="iPhoto Photocasting">
<i class="none"></i>
iPhoto Photocasting</a>
</li>
<li>
<a href="../Modules/A9OpenSearch.html" title="A9 OpenSearch">
<i class="none"></i>
A9 OpenSearch</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleListExtensions.html" title="Microsoft Simple List Extensions">
<i class="none"></i>
Microsoft Simple List Extensions</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleSharingExtensions.html" title="Microsoft Simple Sharing Extensions">
<i class="none"></i>
Microsoft Simple Sharing Extensions</a>
</li>
<li>
<a href="../Modules/Weather.html" title="Yahoo! Weather">
<i class="none"></i>
Yahoo! Weather</a>
</li>
</ul>
</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>GeoRSS<a name="GeoRSS"></a></h2>
<p>This Rome plugin is for adding location information to RSS/Atom.</p>
<div class="section">
<h3>Sample Usage<a name="Sample_Usage"></a></h3>
<div class="source">
<pre>SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = input.build(new XmlReader(new URL(&quot;http://www.geonames.org/recent-changes.xml&quot;)));
List&lt;SyndEntry&gt;; entries = feed.getEntries();
for (SyndEntry entry : entries) {
GeoRSSModule geoRSSModule = GeoRSSUtils.getGeoRSS(entry);
System.out.println(entry.getTitle() + &quot; : lat=&quot;
+ geoRSSModule.getLatitude() + &quot;,lng=&quot;
+ geoRSSModule.getLongitude() + &quot;, desc=&quot;
+ entry.getDescription().getValue() + &quot;; time=&quot;
+ entry.getPublishedDate());
}
//to generate a GeoRSS item
GeoRSSModule geoRSSModule = new W3CGeoModuleImpl();
//GeoRSSModule geoRSSModule = new SimpleModuleImpl();
geoRSSModule.setLatitude(47.0);
geoRSSModule.setLongitude(9.0);
entry.getModules().add(geoRSSModule);</pre></div>
<p>More information here: <a class="externalLink" href="http://georss.geonames.org/">http://georss.geonames.org/</a></p></div>
<div class="section">
<h3>Changes<a name="Changes"></a></h3>
<div class="section">
<h4>0.1<a name="a0.1"></a></h4>
<p>Initial Releas from ROME</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>

View file

@ -1,296 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Google Base</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-down"></i>
Modules</a>
<ul class="nav nav-list">
<li>
<a href="../Modules/ITunesPodcasting.html" title="iTunes Podcasting">
<i class="none"></i>
iTunes Podcasting</a>
</li>
<li>
<a href="../Modules/GeoRSS.html" title="GeoRSS.html">
<i class="none"></i>
GeoRSS.html</a>
</li>
<li>
<a href="../Modules/Slash.html" title="Slash">
<i class="none"></i>
Slash</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>Google Base</a>
</li>
<li>
<a href="../Modules/Content.html" title="Content">
<i class="none"></i>
Content</a>
</li>
<li>
<a href="../Modules/CreativeCommons.html" title="Creative Commons">
<i class="none"></i>
Creative Commons</a>
</li>
<li>
<a href="../Modules/MediaRSS.html" title="Yahoo! MediaRSS">
<i class="none"></i>
Yahoo! MediaRSS</a>
</li>
<li>
<a href="../Modules/IPhotoPhotocasting.html" title="iPhoto Photocasting">
<i class="none"></i>
iPhoto Photocasting</a>
</li>
<li>
<a href="../Modules/A9OpenSearch.html" title="A9 OpenSearch">
<i class="none"></i>
A9 OpenSearch</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleListExtensions.html" title="Microsoft Simple List Extensions">
<i class="none"></i>
Microsoft Simple List Extensions</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleSharingExtensions.html" title="Microsoft Simple Sharing Extensions">
<i class="none"></i>
Microsoft Simple Sharing Extensions</a>
</li>
<li>
<a href="../Modules/Weather.html" title="Yahoo! Weather">
<i class="none"></i>
Yahoo! Weather</a>
</li>
</ul>
</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>Google Base<a name="Google_Base"></a></h2>
<p>This plug in is for use with Google Base RSS/Atom Extensions</p>
<div class="section">
<h3>Sample Usage<a name="Sample_Usage"></a></h3>
<div class="source">
<pre>SyndEntry entry = new SyndEntryImpl();
// set up the entry...
Vehicle vehicle = new GoogleBaseImpl();
vehicle.setMake(&quot;Honda&quot;);
vehicle.setModel(&quot;Insight&quot;);
vehicle.setYear( new Year(&quot;2000&quot;));
List modules = new ArrayList();
modules.add( vehicle );
entry.setModules( modules );
//Optionally, to get Google Base information from a Feed:
Article article = entry.getModule( &quot;http://base.google.com/ns/1.0&quot; );
System.out.println( article.getPages() );</pre></div></div>
<div class="section">
<h3>Changes<a name="Changes"></a></h3>
<div class="section">
<h4>0.2<a name="a0.2"></a></h4>
<p>Initial release from ROME project.</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>

View file

@ -1,304 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - iPhoto Photocasting</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-down"></i>
Modules</a>
<ul class="nav nav-list">
<li>
<a href="../Modules/ITunesPodcasting.html" title="iTunes Podcasting">
<i class="none"></i>
iTunes Podcasting</a>
</li>
<li>
<a href="../Modules/GeoRSS.html" title="GeoRSS.html">
<i class="none"></i>
GeoRSS.html</a>
</li>
<li>
<a href="../Modules/Slash.html" title="Slash">
<i class="none"></i>
Slash</a>
</li>
<li>
<a href="../Modules/GoogleBase.html" title="Google Base">
<i class="none"></i>
Google Base</a>
</li>
<li>
<a href="../Modules/Content.html" title="Content">
<i class="none"></i>
Content</a>
</li>
<li>
<a href="../Modules/CreativeCommons.html" title="Creative Commons">
<i class="none"></i>
Creative Commons</a>
</li>
<li>
<a href="../Modules/MediaRSS.html" title="Yahoo! MediaRSS">
<i class="none"></i>
Yahoo! MediaRSS</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>iPhoto Photocasting</a>
</li>
<li>
<a href="../Modules/A9OpenSearch.html" title="A9 OpenSearch">
<i class="none"></i>
A9 OpenSearch</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleListExtensions.html" title="Microsoft Simple List Extensions">
<i class="none"></i>
Microsoft Simple List Extensions</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleSharingExtensions.html" title="Microsoft Simple Sharing Extensions">
<i class="none"></i>
Microsoft Simple Sharing Extensions</a>
</li>
<li>
<a href="../Modules/Weather.html" title="Yahoo! Weather">
<i class="none"></i>
Yahoo! Weather</a>
</li>
</ul>
</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>iPhoto Photocasting<a name="iPhoto_Photocasting"></a></h2>
<p>This plug in is for use with iPhoto Photocast listings.</p>
<p>This module will read and write photocast feeds &quot;properly&quot;. Be advised, however, that an iPhoto photocast feed will not pass a FeedValidator test as they are not properly namespaced. If you are wanting to publish, rather than read, consider using the <a href="./MediaRSS.html">MediaRSS (modules)</a> plug in instead. iPhoto will also read <a href="./MediaRSS.html">MediaRSS (modules)</a> (Flickr Photostream) feeds as well.</p>
<div class="section">
<h3>Sample Usage<a name="Sample_Usage"></a></h3>
<div class="source">
<pre>SyndFeed feed = input.build( new File( &quot;/foo.rss&quot; ) ) );
List entries = feed.getEntries();
for( int i =0; i &lt; entries.size() ; i++ ){
System.out.println( ((SyndEntry)entries.get(i)).getModule( PhotocastModule.URI ) );
}
// or to create a photocast module:
SyndFeed myFeed = new SyndFeedImpl();
myFeed.getModules().add( new PhotocastModuleImpl() );
// you need this as a placeholder so the version gets in the feed.
SyndEntry myEntry = new SyndEntryImpl();
PhotocastModule pm = new PhotocastModuleImpl();
pm.setUrl( new URL(&quot;http://foo.com/img.jpg&quot; ) );
pm.setThumnail( new URL(&quot;http://foo.com/img-small.jpg&quot; ) );
pm.setCropDate( new Date() );
pm.setPhotoDate( new Date() );
pm.setMetaData( new PhotoDate(), &quot;Some comments that I think always get ignored.&quot; );
myEntry.getModules().add( pm );</pre></div></div>
<div class="section">
<h3>Changes:<a name="Changes:"></a></h3>
<div class="section">
<h4>0.2<a name="a0.2"></a></h4>
<p>Initial move to the ROME project.</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>

View file

@ -1,305 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - iTunes Podcasting</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-down"></i>
Modules</a>
<ul class="nav nav-list">
<li class="active">
<a href="#"><i class="none"></i>iTunes Podcasting</a>
</li>
<li>
<a href="../Modules/GeoRSS.html" title="GeoRSS.html">
<i class="none"></i>
GeoRSS.html</a>
</li>
<li>
<a href="../Modules/Slash.html" title="Slash">
<i class="none"></i>
Slash</a>
</li>
<li>
<a href="../Modules/GoogleBase.html" title="Google Base">
<i class="none"></i>
Google Base</a>
</li>
<li>
<a href="../Modules/Content.html" title="Content">
<i class="none"></i>
Content</a>
</li>
<li>
<a href="../Modules/CreativeCommons.html" title="Creative Commons">
<i class="none"></i>
Creative Commons</a>
</li>
<li>
<a href="../Modules/MediaRSS.html" title="Yahoo! MediaRSS">
<i class="none"></i>
Yahoo! MediaRSS</a>
</li>
<li>
<a href="../Modules/IPhotoPhotocasting.html" title="iPhoto Photocasting">
<i class="none"></i>
iPhoto Photocasting</a>
</li>
<li>
<a href="../Modules/A9OpenSearch.html" title="A9 OpenSearch">
<i class="none"></i>
A9 OpenSearch</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleListExtensions.html" title="Microsoft Simple List Extensions">
<i class="none"></i>
Microsoft Simple List Extensions</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleSharingExtensions.html" title="Microsoft Simple Sharing Extensions">
<i class="none"></i>
Microsoft Simple Sharing Extensions</a>
</li>
<li>
<a href="../Modules/Weather.html" title="Yahoo! Weather">
<i class="none"></i>
Yahoo! Weather</a>
</li>
</ul>
</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>iTunes Podcasting<a name="iTunes_Podcasting"></a></h2>
<p>This plug in is for use with iTunes Music Service podcast listings.</p>
<div class="section">
<h3>Sample Usage<a name="Sample_Usage"></a></h3>
<div class="source">
<pre>SyndFeedInput input = new SyndFeedInput();
SyndFeed syndfeed = input.build(new XmlReader(feed.toURL()));
Module module = syndfeed.getModule(&quot;http://www.itunes.com/dtds/podcast-1.0.dtd&quot;);
FeedInformation feedInfo = (FeedInformation) module;
System.out.println( feedInfo.getImage() );
System.out.println( feedInfo.getCategory() );
// Or to create a feed..
ArrayList modules = new ArrayList();
EntryInformation e = new EntryInformationImpl();
e.setDuration( new Duration( 10000 ) );
modules.add( e );
syndEntry.setModules( modules );</pre></div></div>
<div class="section">
<h3>Changes<a name="Changes"></a></h3>
<div class="section">
<h4>0.4<a name="a0.4"></a></h4>
<ul>
<li>Corrected some Feed vs Item attribute issue.</li>
<li>Keywords now comma separated instead of space.</li></ul></div>
<div class="section">
<h4>0.3<a name="a0.3"></a></h4>
<ul>
<li>Added support for the &quot;other&quot; case of podcasts. It will now correctly parse all lowercase URIs as wells as the original mixed case URIs All generated feeds use the lowercase URI. Fixed some entity problems related to the apple summary tag.</li></ul></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>

View file

@ -1,306 +0,0 @@
<!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="20111018" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - MediaRSS</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-down"></i>
Modules</a>
<ul class="nav nav-list">
<li>
<a href="../Modules/ITunesPodcasting.html" title="iTunes Podcasting">
<i class="none"></i>
iTunes Podcasting</a>
</li>
<li>
<a href="../Modules/GeoRSS.html" title="GeoRSS.html">
<i class="none"></i>
GeoRSS.html</a>
</li>
<li>
<a href="../Modules/Slash.html" title="Slash">
<i class="none"></i>
Slash</a>
</li>
<li>
<a href="../Modules/GoogleBase.html" title="Google Base">
<i class="none"></i>
Google Base</a>
</li>
<li>
<a href="../Modules/Content.html" title="Content">
<i class="none"></i>
Content</a>
</li>
<li>
<a href="../Modules/CreativeCommons.html" title="Creative Commons">
<i class="none"></i>
Creative Commons</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>Yahoo! MediaRSS</a>
</li>
<li>
<a href="../Modules/IPhotoPhotocasting.html" title="iPhoto Photocasting">
<i class="none"></i>
iPhoto Photocasting</a>
</li>
<li>
<a href="../Modules/A9OpenSearch.html" title="A9 OpenSearch">
<i class="none"></i>
A9 OpenSearch</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleListExtensions.html" title="Microsoft Simple List Extensions">
<i class="none"></i>
Microsoft Simple List Extensions</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleSharingExtensions.html" title="Microsoft Simple Sharing Extensions">
<i class="none"></i>
Microsoft Simple Sharing Extensions</a>
</li>
<li>
<a href="../Modules/Weather.html" title="Yahoo! Weather">
<i class="none"></i>
Yahoo! Weather</a>
</li>
</ul>
</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>MediaRSS<a name="MediaRSS"></a></h2>
<p>This plugin is for use with Yahoo! MediaRSS/Flickr Photostreams</p>
<div class="section">
<h3>Sample Usage<a name="Sample_Usage"></a></h3>
<div class="source">
<pre>SyndFeed feed = input.build( myRSSFile );
List entries = feed.getEntries();
for( int i = 0; i &lt; entries.size(); i++ ){
System.out.println( ((SyndEntry) entries.get(i)).getModule( MediaModule.URI ) );
}
//Alternatively, to add a media item to an entry:
MediaContent[] contents = new MediaContent[1];
MediaContent myItem = new MediaContent( new UrlReference(&quot;http://me.com/movie.mpg&quot;) );
contents[0] = myItem();
Metadata md = new Metadata();
Thumbnail[] thumbs = new Thumbnail[2];
thumbs[0] = new Thumbnail( new URL(&quot;http://me.com/movie1.jpg&quot;) );
thumbs[1] = new Thumbnail( new URL(&quot;http://me.com/movie2.jpg&quot;) );
md.setThumbnail( thumbs );
myItem.setMetadata( md );
MediaEntryModuleImpl module = new MediaEntryModuleImpl();
module.setMediaContents( contents );
mySyndEntry.getModules().add( module );</pre></div></div>
<div class="section">
<h3>Changes<a name="Changes"></a></h3>
<div class="section">
<h4>0.2.1<a name="a0.2.1"></a></h4>
<p>Bugfix for metadata on MediaGroups.</p></div>
<div class="section">
<h4>0.1<a name="a0.1"></a></h4>
<p>Initial release from ROME.</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>

View file

@ -1,304 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Microsoft Simple List Extensions</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-down"></i>
Modules</a>
<ul class="nav nav-list">
<li>
<a href="../Modules/ITunesPodcasting.html" title="iTunes Podcasting">
<i class="none"></i>
iTunes Podcasting</a>
</li>
<li>
<a href="../Modules/GeoRSS.html" title="GeoRSS.html">
<i class="none"></i>
GeoRSS.html</a>
</li>
<li>
<a href="../Modules/Slash.html" title="Slash">
<i class="none"></i>
Slash</a>
</li>
<li>
<a href="../Modules/GoogleBase.html" title="Google Base">
<i class="none"></i>
Google Base</a>
</li>
<li>
<a href="../Modules/Content.html" title="Content">
<i class="none"></i>
Content</a>
</li>
<li>
<a href="../Modules/CreativeCommons.html" title="Creative Commons">
<i class="none"></i>
Creative Commons</a>
</li>
<li>
<a href="../Modules/MediaRSS.html" title="Yahoo! MediaRSS">
<i class="none"></i>
Yahoo! MediaRSS</a>
</li>
<li>
<a href="../Modules/IPhotoPhotocasting.html" title="iPhoto Photocasting">
<i class="none"></i>
iPhoto Photocasting</a>
</li>
<li>
<a href="../Modules/A9OpenSearch.html" title="A9 OpenSearch">
<i class="none"></i>
A9 OpenSearch</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>Microsoft Simple List Extensions</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleSharingExtensions.html" title="Microsoft Simple Sharing Extensions">
<i class="none"></i>
Microsoft Simple Sharing Extensions</a>
</li>
<li>
<a href="../Modules/Weather.html" title="Yahoo! Weather">
<i class="none"></i>
Yahoo! Weather</a>
</li>
</ul>
</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>Microsoft Simple List Extensions<a name="Microsoft_Simple_List_Extensions"></a></h2>
<p>This plug in is for use with feeds ith Microsoft Simple List Extensions.</p>
<p>Note you need to use the current CVS version of ROME or 0.9 when available.</p>
<div class="section">
<h3>Sample Usage<a name="Sample_Usage"></a></h3>
<div class="source">
<pre>SimpleListExtension sle = (SimpleListExtension) feed.getModule( SimpleListExtension.URI );
System.out.println( sle );
Group[] groups = sle.getGroupFields();
System.out.println( groups[0].getLabel() );
//You can use the SleUtility class to do sorting and grouping:
List sortedEntries = SleUtility.sort( feed.getEntries(), sle.getSortFields()[1], true );
SyndEntry entry = (SyndEntry) sortedEntries.get( 0 );
//You can also Group or Sort and Group
List sortedAndGroupedEntries = SleUtility.sortAndGroup( feed.getEntries, sle.getGroupFields(), sle.getSortFields()[0], false );
// If you change, for instance, module values on a feed and want to reinitialize it for
// grouping and sorting...
SleUtility.initializeForSorting( feed );
// Be aware, this is a VERY heavy operation and should not be used frequently.</pre></div></div>
<div class="section">
<h3>Changes<a name="Changes"></a></h3>
<div class="section">
<h4>0.1<a name="a0.1"></a></h4>
<p>Initial release from ROME.</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>

View file

@ -1,297 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Microsoft Simple Sharing Extensions</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-down"></i>
Modules</a>
<ul class="nav nav-list">
<li>
<a href="../Modules/ITunesPodcasting.html" title="iTunes Podcasting">
<i class="none"></i>
iTunes Podcasting</a>
</li>
<li>
<a href="../Modules/GeoRSS.html" title="GeoRSS.html">
<i class="none"></i>
GeoRSS.html</a>
</li>
<li>
<a href="../Modules/Slash.html" title="Slash">
<i class="none"></i>
Slash</a>
</li>
<li>
<a href="../Modules/GoogleBase.html" title="Google Base">
<i class="none"></i>
Google Base</a>
</li>
<li>
<a href="../Modules/Content.html" title="Content">
<i class="none"></i>
Content</a>
</li>
<li>
<a href="../Modules/CreativeCommons.html" title="Creative Commons">
<i class="none"></i>
Creative Commons</a>
</li>
<li>
<a href="../Modules/MediaRSS.html" title="Yahoo! MediaRSS">
<i class="none"></i>
Yahoo! MediaRSS</a>
</li>
<li>
<a href="../Modules/IPhotoPhotocasting.html" title="iPhoto Photocasting">
<i class="none"></i>
iPhoto Photocasting</a>
</li>
<li>
<a href="../Modules/A9OpenSearch.html" title="A9 OpenSearch">
<i class="none"></i>
A9 OpenSearch</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleListExtensions.html" title="Microsoft Simple List Extensions">
<i class="none"></i>
Microsoft Simple List Extensions</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>Microsoft Simple Sharing Extensions</a>
</li>
<li>
<a href="../Modules/Weather.html" title="Yahoo! Weather">
<i class="none"></i>
Yahoo! Weather</a>
</li>
</ul>
</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>Microsoft Simple Sharing Extensions<a name="Microsoft_Simple_Sharing_Extensions"></a></h2>
<p>This ROME module supports Microsoft Simple Sharing Extensions, an RSS and <a href="../opml/index.html">OPML</a> extension designed to support data synchronization between bi-directional feeds.</p>
<div class="section">
<h3>Sample Usage<a name="Sample_Usage"></a></h3>
<div class="source">
<pre>SyndFeedInput input = new SyndFeedInput();
SyndFeed syndfeed = input.build(new XmlReader(feed.toURL()));
List entries = syndfeed.getEntries();
Iterator it = entries.iterator();
for (int id = 101; it.hasNext() &amp;&amp; id &lt;= 113; id++) {
SyndEntry entry = (SyndEntry) it.next();
Sync sync = (Sync) entry.getModule(SSEModule.SSE_SCHEMA_URI);
assertEquals(String.valueOf(id), sync.getId());
History history = sync.getHistory();
assertNotNull(history);
Date when = history.getWhen();
assertNotNull(when);
Date testDate = DateParser.parseRFC822(&quot;Fri, 6 Jan 2006 19:24:09 GMT&quot;);
assertEquals(testDate, when);
}</pre></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>

View file

@ -1,297 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Slash</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-down"></i>
Modules</a>
<ul class="nav nav-list">
<li>
<a href="../Modules/ITunesPodcasting.html" title="iTunes Podcasting">
<i class="none"></i>
iTunes Podcasting</a>
</li>
<li>
<a href="../Modules/GeoRSS.html" title="GeoRSS.html">
<i class="none"></i>
GeoRSS.html</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>Slash</a>
</li>
<li>
<a href="../Modules/GoogleBase.html" title="Google Base">
<i class="none"></i>
Google Base</a>
</li>
<li>
<a href="../Modules/Content.html" title="Content">
<i class="none"></i>
Content</a>
</li>
<li>
<a href="../Modules/CreativeCommons.html" title="Creative Commons">
<i class="none"></i>
Creative Commons</a>
</li>
<li>
<a href="../Modules/MediaRSS.html" title="Yahoo! MediaRSS">
<i class="none"></i>
Yahoo! MediaRSS</a>
</li>
<li>
<a href="../Modules/IPhotoPhotocasting.html" title="iPhoto Photocasting">
<i class="none"></i>
iPhoto Photocasting</a>
</li>
<li>
<a href="../Modules/A9OpenSearch.html" title="A9 OpenSearch">
<i class="none"></i>
A9 OpenSearch</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleListExtensions.html" title="Microsoft Simple List Extensions">
<i class="none"></i>
Microsoft Simple List Extensions</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleSharingExtensions.html" title="Microsoft Simple Sharing Extensions">
<i class="none"></i>
Microsoft Simple Sharing Extensions</a>
</li>
<li>
<a href="../Modules/Weather.html" title="Yahoo! Weather">
<i class="none"></i>
Yahoo! Weather</a>
</li>
</ul>
</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>Slash<a name="Slash"></a></h2>
<p>This plug in is for use with feeds from Slash-based weblogs.</p>
<div class="section">
<h3>Sample Usage<a name="Sample_Usage"></a></h3>
<div class="source">
<pre>SyndEntry entry = new SyndEntryImpl();
// set up the entry...
Slash slash = new SlashImpl();
slash.setComments( new Integer( 12 ) );
slash.setDepartment( &quot;look-another-rome-plugin&quot; );
slash.setSection(&quot;code&quot;);
slash.setHitParade( new Integer[] { new Integer(12), new Integer(0) } );
List modules = new ArrayList();
modules.add( slash );
entry.setModules( modules );
//Optionally, to get Slash information from a Feed:
Slash slash = entry.getModule( Slash.URI );
System.out.println( slash.getComments() );</pre></div></div>
<div class="section">
<h3>Changes<a name="Changes"></a></h3>
<div class="section">
<h4>0.2<a name="a0.2"></a></h4>
<p>Initial release from ROME.</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>

View file

@ -1,295 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Weather</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-down"></i>
Modules</a>
<ul class="nav nav-list">
<li>
<a href="../Modules/ITunesPodcasting.html" title="iTunes Podcasting">
<i class="none"></i>
iTunes Podcasting</a>
</li>
<li>
<a href="../Modules/GeoRSS.html" title="GeoRSS.html">
<i class="none"></i>
GeoRSS.html</a>
</li>
<li>
<a href="../Modules/Slash.html" title="Slash">
<i class="none"></i>
Slash</a>
</li>
<li>
<a href="../Modules/GoogleBase.html" title="Google Base">
<i class="none"></i>
Google Base</a>
</li>
<li>
<a href="../Modules/Content.html" title="Content">
<i class="none"></i>
Content</a>
</li>
<li>
<a href="../Modules/CreativeCommons.html" title="Creative Commons">
<i class="none"></i>
Creative Commons</a>
</li>
<li>
<a href="../Modules/MediaRSS.html" title="Yahoo! MediaRSS">
<i class="none"></i>
Yahoo! MediaRSS</a>
</li>
<li>
<a href="../Modules/IPhotoPhotocasting.html" title="iPhoto Photocasting">
<i class="none"></i>
iPhoto Photocasting</a>
</li>
<li>
<a href="../Modules/A9OpenSearch.html" title="A9 OpenSearch">
<i class="none"></i>
A9 OpenSearch</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleListExtensions.html" title="Microsoft Simple List Extensions">
<i class="none"></i>
Microsoft Simple List Extensions</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleSharingExtensions.html" title="Microsoft Simple Sharing Extensions">
<i class="none"></i>
Microsoft Simple Sharing Extensions</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>Yahoo! Weather</a>
</li>
</ul>
</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>Weather<a name="Weather"></a></h2>
<p>This plug in is for use the <a class="externalLink" href="http://developer.yahoo.com/weather/">Yahoo! Weather service</a>.</p>
<div class="section">
<h3>Sample Usage<a name="Sample_Usage"></a></h3>
<div class="source">
<pre>SyndFeed feed = input.build( ... );
YWeatherFeedModule yfeed = (YWeatherFeedModule) feed.getModule( YWeatherFeedModule.URI );
System.out.println( yfeed.getLocation().getCity() );
SyndEntry entry = (SyndEntry) feed.getEntries().get(0);
YWeatherEntryModule yentry = (YWeatherEntryModule) entry.getModule( YWeatherEntryModule.URI );
System.out.println( yentry.getForecasts()[0].getHigh() );
//Optionally, to add Weather information to a feed:
SyndEntry entry = new SyndEntryImpl();
YWeatherEntryModule yentry = new YWeatherModuleImpl();
yentry.setCondition( Condition(&quot;Partly Cloudy&quot;, ConditionCode.PARTLY_CLOUDY, 65, new Date() ) );
entry.getModules.add(yentry);</pre></div></div>
<div class="section">
<h3>Changes<a name="Changes"></a></h3>
<div class="section">
<h4>0.1<a name="a0.1"></a></h4>
<p>Initial release from ROME.</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>

View file

@ -1,326 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Home</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 class="active">
<a href="#"><i class="icon-chevron-down"></i>Modules</a>
<ul class="nav nav-list">
<li>
<a href="../Modules/ITunesPodcasting.html" title="iTunes Podcasting">
<i class="none"></i>
iTunes Podcasting</a>
</li>
<li>
<a href="../Modules/GeoRSS.html" title="GeoRSS.html">
<i class="none"></i>
GeoRSS.html</a>
</li>
<li>
<a href="../Modules/Slash.html" title="Slash">
<i class="none"></i>
Slash</a>
</li>
<li>
<a href="../Modules/GoogleBase.html" title="Google Base">
<i class="none"></i>
Google Base</a>
</li>
<li>
<a href="../Modules/Content.html" title="Content">
<i class="none"></i>
Content</a>
</li>
<li>
<a href="../Modules/CreativeCommons.html" title="Creative Commons">
<i class="none"></i>
Creative Commons</a>
</li>
<li>
<a href="../Modules/MediaRSS.html" title="Yahoo! MediaRSS">
<i class="none"></i>
Yahoo! MediaRSS</a>
</li>
<li>
<a href="../Modules/IPhotoPhotocasting.html" title="iPhoto Photocasting">
<i class="none"></i>
iPhoto Photocasting</a>
</li>
<li>
<a href="../Modules/A9OpenSearch.html" title="A9 OpenSearch">
<i class="none"></i>
A9 OpenSearch</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleListExtensions.html" title="Microsoft Simple List Extensions">
<i class="none"></i>
Microsoft Simple List Extensions</a>
</li>
<li>
<a href="../Modules/MicrosoftSimpleSharingExtensions.html" title="Microsoft Simple Sharing Extensions">
<i class="none"></i>
Microsoft Simple Sharing Extensions</a>
</li>
<li>
<a href="../Modules/Weather.html" title="Yahoo! Weather">
<i class="none"></i>
Yahoo! Weather</a>
</li>
</ul>
</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>The ROME Modules Subproject.<a name="The_ROME_Modules_Subproject."></a></h2>
<p>The ROME Modules project is an effort to roll up contributed module support into a single distribution for users.</p>
<div class="section">
<h3>Current modules in the subproject include:<a name="Current_modules_in_the_subproject_include:"></a></h3>
<ul>
<li><a href="./ITunesPodcasting.html">iTunes Podcasting (modules)</a> &#x2013; Apples extensions for listing in the iTunes podcast directory.</li>
<li><a href="./GeoRSS.html">GeoRSS (modules)</a> &#x2013; For adding location information to RSS/Atom.</li>
<li><a href="./Slash.html">Slash (modules)</a> &#x2013; Used by Slash-based blogs.</li>
<li><a href="./GoogleBase.html">Google Base (modules)</a> &#x2013; For working with the Google Base types and custom tagsets.</li>
<li><a href="./Content.html">Content (modules)</a> &#x2013; For using content:encoded tags.</li>
<li><a href="./CreativeCommons.html">Creative Commons (modules)</a> &#x2013; A unified module for working with the RDF and RSS/Atom Creative Commons License information.</li>
<li><a href="./MediaRSS.html">Yahoo! MediaRSS</a> &#x2013; For working with Yahoo! MediaRSS feeds (and Flickr Photostreams)</li>
<li><a href="./IPhotoPhotocasting.html">iPhoto Photocasting (modules)</a> &#x2013; For working with Apple iPhoto Photocasts</li>
<li><a href="./A9OpenSearch.html">A9 OpenSearch (modules)</a> &#x2013; For working with Amazon/OpenSearch.org results.</li>
<li><a href="./MicrosoftSimpleListExtensions.html">Microsoft Simple List Extensions (modules)</a> &#x2013; for sorting and grouping entries.</li>
<li><a href="./MicrosoftSimpleSharingExtensions.html">Microsoft Simple Sharing Extensions (modules)</a> &#x2013; for synchronizing across bi-directional RSS and <a href="./index.html">OPML</a> feeds.</li>
<li><a href="./Weather.html">Yahoo! Weather</a> &#x2013; For use with the Yahoo Weather API</li></ul></div>
<div class="section">
<h3>Get it.<a name="Get_it."></a></h3>
<p>The 0.3.2 release of modules.jar (which contains all the above modules) is available.</p></div>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-modules-1.0.jar">rome-modules-1.0.jar</a></li>
<li><a href="./modules-0.3.2-javadoc.jar">modules-0.3.2-javadoc.jar</a></li>
<li><a href="./modules-0.3.2.jar">modules-0.3.2.jar</a></li>
<li><a href="./modules-0.3.1.jar">modules-0.3.1.jar</a></li>
<li><a href="./modules-0.3.1-javadoc.jar">modules-0.3.1-javadoc.jar</a></li>
<li><a href="./modules-0.3.1-sources.jar">modules-0.3.1-sources.jar</a></li>
<li><a href="./modules-0.3-sources.jar">modules-0.3-sources.jar</a></li>
<li><a href="./modules-0.3.2-sources.jar">modules-0.3.2-sources.jar</a></li>
<li><a href="./modules-0.3.jar">modules-0.3.jar</a></li>
<li><a href="./modules-0.3-javadoc.jar">modules-0.3-javadoc.jar</a></li></ul>
<p>Please don't use modules-0.3.jar. It had errors in the packaging which have been fixed in modules-0.3.1.jar and subsequent releases</p>
<p>See individual module sites for information.</p></div>
<div class="section">
<h3>Changes<a name="Changes"></a></h3>
<div class="section">
<h4>1.0 - released 24 February 2011<a name="a1.0_-_released_24_February_2011"></a></h4>
<p>Finalized 1.0 release.</p></div>
<div class="section">
<h4>0.3.2 - released 30 Jan 2009<a name="a0.3.2_-_released_30_Jan_2009"></a></h4>
<ul>
<li><a class="externalLink" href="http://java.net/jira/browse/ROME-122">http://java.net/jira/browse/ROME-122</a></li></ul></div></div>
<div class="section">
<h3>General Guidelines for modules:<a name="General_Guidelines_for_modules:"></a></h3>
<p>This is intended to serve as a guide for contributions as well as a hint for users working with the modules.</p>
<ul>
<li>Modules are packaged in com.rometools.rome.feed.module.[Module Name].</li>
<li>Modules contain a com.rometools.rome.feed.module.[Module Name].Module.URI reference for retrieval from ROME Synd* classes.</li>
<li>Modules contain a com.rometools.rome.feed.module.[Module Name].ModuleImpl that is a concrete implementation.</li>
<li>Modules contain a com.rometools.rome.feed.module.[Module Name].types package that holds any other datatypes needed for the module. Many of these are simple immutable types to simplify clone() and copyFrom()</li>
<li>Modules contain a com.rometools.rome.feed.module.[Module Name].io package with parsers and generators.</li></ul></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>

View file

@ -1,284 +0,0 @@
<!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="kwebble" />
<meta name="Date-Creation-yyyymmdd" content="20110923" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Home</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 class="active">
<a href="#"><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>ROME OPML<a name="ROME_OPML"></a></h2>
<p>This project provides support for <a class="externalLink" href="http://www.opml.org/">OPML</a> in ROME.</p>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./apidocs/index.html">JavaDocs</a></li></ul></div>
<div class="section">
<h3>Sample Usage<a name="Sample_Usage"></a></h3>
<p>To use this parser, simply include the jar file in your classpath as you are using ROME. Be sure it exists at the same level as ROME, such that, if ROME is in the common classpath of an application server, don't include this jar in your webapps WEB-INF/lib.</p>
<div class="source">
<pre>WireFeedInput input = new WireFeedInput();
Opml feed = (Opml) input.build( new File(&quot;myOpml.xml&quot;) );
List&lt;Outline&gt; outlines = (List&lt;Outline&gt;) feed.getOutlines();</pre></div></div>
<div class="section">
<h3>Hierarchy vs Flat<a name="Hierarchy_vs_Flat"></a></h3>
<p>Since OPML is a hierarchical format, some magic is required to preserve this information when they feed is moved to a Synd* structure. This is accomplished by adding categories indicating the tree structure to the <a class="externalLink" href="http://wiki.java.net/bin/edit/Javawsxml/SyndEntries?topicparent=Javawsxml.OPML;nowysiwyg=0">SyndEntries</a> ...</p>
<p>For example:</p>
<div class="source">
<pre>&lt;opml version=&quot;1.0&quot;&gt;
&lt;head&gt;
&lt;title&gt;Top Ten Sources for podcasting&lt;/title&gt;
&lt;ownerName&gt;Newsilike Media Group&lt;/ownerName&gt;
&lt;ownerEmail&gt;opml@TopTenSources.com&lt;/ownerEmail&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;outline type=&quot;link&quot; text=&quot;TopTenSources: podcasting&quot;
url=&quot;http://podcasting.TopTenSources.com/TopTenSources/&quot; /&gt;
&lt;outline text=&quot;CBS Technology News Podcast - Larry Magid' Tech Report&quot;&gt;
&lt;outline type=&quot;link&quot; text=&quot;Larry Magid's Tech Report&quot; url=&quot;http://www.cbsnews.com&quot; /&gt;
&lt;/outline&gt;
&lt;outline text=&quot;Adam Curry: Daily Source Code&quot;&gt;
&lt;outline type=&quot;link&quot; text=&quot;#374 Daily Source Code for Tuesday April 25th 2006&quot;
url=&quot;http://radio.weblogs.com/0001014/2006/04/26.html#a7304&quot; /&gt;
&lt;outline type=&quot;link&quot; text=&quot;#373 Daily Source Code for Monday April 24th 2006&quot;
url=&quot;http://radio.weblogs.com/0001014/2006/04/24.html#a7303&quot; /&gt;
&lt;outline type=&quot;link&quot; text=&quot;#372 Daily Source Code for Friday April 21st 2006&quot;
url=&quot;http://radio.weblogs.com/0001014/2006/04/21.html#a7302&quot; /&gt;
&lt;outline type=&quot;link&quot; text=&quot;#371 Daily Source Code for Thursday April 20th 2006&quot;
url=&quot;http://radio.weblogs.com/0001014/2006/04/20.html#a7301&quot; /&gt;
&lt;outline type=&quot;link&quot; text=&quot;#370 Daily Source Code for Wednesday April 19th 2006&quot;
url=&quot;http://radio.weblogs.com/0001014/2006/04/19.html#a7300&quot; /&gt;
&lt;/outline&gt;
&lt;outline text=&quot;Gillmor Gang&quot;&gt;
&lt;outline type=&quot;link&quot; text=&quot;Syndicate Gang Part I&quot; url=&quot;http://gillmorgang.podshow.com/?p=44&quot; /&gt;
&lt;outline type=&quot;link&quot; text=&quot;HughTrain Gang&quot; url=&quot;http://gillmorgang.podshow.com/?p=43&quot; /&gt;
&lt;outline type=&quot;link&quot; text=&quot;Phlegm at 11 Gang&quot; url=&quot;http://gillmorgang.podshow.com/?p=42&quot; /&gt;
&lt;outline type=&quot;link&quot; text=&quot;NDA Gang&quot; url=&quot;http://gillmorgang.podshow.com/?p=41&quot; /&gt;
&lt;outline type=&quot;link&quot; text=&quot;When the Music?s Over Gang&quot; url=&quot;http://gillmorgang.podshow.com/?p=40&quot; /&gt;
&lt;/outline&gt;</pre></div>
<p>...<br />When converted to RSS2 becomes:</p>
<div class="source">
<pre>&lt;channel&gt;
&lt;title&gt;Top Ten Sources for podcasting&lt;/title&gt;
&lt;link&gt;http://foo.com&lt;/link&gt;
&lt;description /&gt;
&lt;managingEditor&gt;Newsilike Media Group&lt;/managingEditor&gt;
&lt;item&gt;
&lt;title&gt;TopTenSources: podcasting&lt;/title&gt;
&lt;link&gt;http://podcasting.TopTenSources.com/TopTenSources/&lt;/link&gt;
&lt;category domain=&quot;urn:rome.tree&quot;&gt;node.-1732517202&lt;/category&gt;
&lt;category domain=&quot;urn:rome.attribute#url&quot;&gt;http://podcasting.TopTenSources.com/TopTenSources/&lt;/category&gt;
&lt;guid&gt;http://podcasting.TopTenSources.com/TopTenSources/&lt;/guid&gt;
&lt;/item&gt;
&lt;item&gt;
&lt;title&gt;CBS Technology News Podcast - Larry Magid' Tech Report&lt;/title&gt;
&lt;category domain=&quot;urn:rome.tree&quot;&gt;node.1353657827&lt;/category&gt;
&lt;/item&gt;
&lt;item&gt;
&lt;title&gt;Larry Magid's Tech Report&lt;/title&gt;
&lt;link&gt;http://www.cbsnews.com&lt;/link&gt;
&lt;category domain=&quot;urn:rome.tree&quot;&gt;node.-4085850&lt;/category&gt;
&lt;category domain=&quot;urn:rome.tree&quot;&gt;parent.1353657827&lt;/category&gt;
&lt;category domain=&quot;urn:rome.attribute#url&quot;&gt;http://www.cbsnews.com&lt;/category&gt;
&lt;guid&gt;http://www.cbsnews.com&lt;/guid&gt;
&lt;/item&gt;
&lt;item&gt;
&lt;title&gt;Adam Curry: Daily Source Code&lt;/title&gt;
&lt;category domain=&quot;urn:rome.tree&quot;&gt;node.835791399&lt;/category&gt;
&lt;/item&gt;
&lt;item&gt;
&lt;title&gt;#374 Daily Source Code for Tuesday April 25th 2006&lt;/title&gt;
&lt;link&gt;http://radio.weblogs.com/0001014/2006/04/26.html#a7304&lt;/link&gt;
&lt;category domain=&quot;urn:rome.tree&quot;&gt;node.222050897&lt;/category&gt;
&lt;category domain=&quot;urn:rome.tree&quot;&gt;parent.835791399&lt;/category&gt;
&lt;category domain=&quot;urn:rome.attribute#url&quot;&gt;http://radio.weblogs.com/0001014/2006/04/26.html#a7304&lt;/category&gt;
&lt;guid&gt;http://radio.weblogs.com/0001014/2006/04/26.html#a7304&lt;/guid&gt;
&lt;/item&gt;
&lt;item&gt;
&lt;title&gt;#373 Daily Source Code for Monday April 24th 2006&lt;/title&gt;
&lt;link&gt;http://radio.weblogs.com/0001014/2006/04/24.html#a7303&lt;/link&gt;
&lt;category domain=&quot;urn:rome.tree&quot;&gt;node.2088220478&lt;/category&gt;
&lt;category domain=&quot;urn:rome.tree&quot;&gt;parent.835791399&lt;/category&gt;
&lt;category domain=&quot;urn:rome.attribute#url&quot;&gt;http://radio.weblogs.com/0001014/2006/04/24.html#a7303&lt;/category&gt;
&lt;guid&gt;http://radio.weblogs.com/0001014/2006/04/24.html#a7303&lt;/guid&gt;
&lt;/item&gt;</pre></div>
<p>Nodes get categories with the &quot;urn:rome.tree&quot; URI that is used to maintain the tree structure.</p>
<p>The other thing you will notice is the &quot;urn:rome.attribute#url&quot;. Since OPML allows you to add arbitrary attributes to each outline element, these are used to preserve these values.</p></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>

View file

@ -1,220 +0,0 @@
<!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 - Preserving WireFeeds</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>Preserving WireFeeds<a name="Preserving_WireFeeds"></a></h2>
<p>WireFeeds will be preserved if the property preserveWireFeed is set on the SyndFeedInput object it is built from:</p>
<div class="source">
<pre>
SyndFeedInput in = new SyndFeedInput();
in.setPreserveWireFeed(true);
SyndFeed syndFeed = in.build(..);
WireFeed wireFeed = syndFeed.originalWireFeed();
</pre></div>
<p>Atom/RSS Entry/Item objects are also available from SyndEntry objects if the WireFeed is preserved:</p>
<div class="source">
<pre>
Object obj = syndEntry.getWireEntry();
if (obj != null &amp;&amp; obj instanceof Entry) {
// it is an Atom Entry object
// do Atom specific stuff, eg:
Entry entry = (Entry) o;
System.out.println(entry.getRights());
} else if (obj != null &amp;&amp; obj instanceof Item) {
// it is a RSS Item object
// do RSS specific stuff eg:
Item item = (Item) o;
System.out.println(item.getComments());
}
</pre></div>
<p>The Fetcher can be set to preserve WireFeeds by setting the preserveWireFeed property to true:</p>
<div class="source">
<pre>
feedFetcher.setPreserveWireFeed(true);
</pre></div>
<p>-- Main.nicklothian - 11 Mar 2009</p></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>

View file

@ -1,266 +0,0 @@
<!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="sbasegmez" />
<meta name="Date-Creation-yyyymmdd" content="20130314" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Products or sites powered by ROME</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>Products or sites powered by ROME<a name="Products_or_sites_powered_by_ROME"></a></h2>
<p>If your site or project is powered by ROME, please take the time to write a short testimonial on this wiki page, or send a mail to <a class="externalLink" href="mailto:users@rome.dev.java.net.">users@rome.dev.java.net.</a> Feel free to use our &quot;Powered by ROME&quot; badges in your work. (Several badge variations are available at the bottom of this page.)</p>
<div class="section">
<h3>Open Source using ROME<a name="Open_Source_using_ROME"></a></h3>
<ul>
<li><a class="externalLink" href="http://firenze.berlios.de/">Firenze</a><br />Firenze is a free Java based open source command line podcast receiver. It is powered by the ROME syndication framework. With Firenze you can easily subscribe to your favorite Podcast feeds and reveive them.</li>
<li><a class="externalLink" href="http://fnr.sourceforge.net/">Feed'n Read</a><br />Feed'n Read (FnR) is a free Java based open source newsfeed reader. It is powered by the ROME syndication framework and therefore supports all current formats (RSS 0.90, 0.91, 0.92, 0.93, 0.94, 1.00, 2.00, ATOM 0.30 and 1.00). It disposes of an intuitive, fast and responsive user interface using the eclipse Rich Client Platform (RCP), i.e. JFace and SWT. Thus it combines the platform independent Java world on one hand with a fast native user interface on the other hand.</li>
<li><a class="externalLink" href="http://tudu.sourceforge.net/">Tudu Lists</a><br />An AJAXian Todo Lists manager. We moved from our hand-made solution to ROME with great pleasure - it was fast and easy, and the overall performance is very good (11 ms per request in average today). You can try it out on our live site at <a class="externalLink" href="http://tudu.ess.ch/">http://tudu.ess.ch</a>.</li>
<li><a class="externalLink" href="http://snipsnap.org/">SnipSnap</a></li>
<li><a class="externalLink" href="http://www.rollerweblogger.org/page/project">Roller Weblogger and Aggregator</a><br />Roller is a weblog server. In Roller 1.1 there is a new aggregator feature, called PlanetRoller, based on ROME and ROME fetcher. Dave Johnson, who created Roller, <a class="externalLink" href="http://rollerweblogger.org/page/roller/20050213#rome_texen_planet_roller">created PlanetRoller in a couple of days</a>, leveraging ROME and ROME fetcher to do all the hard work. You can try out at <a class="externalLink" href="http://www.rollerweblogger.org/planet/roller.html">PlanetRoller</a>.</li>
<li><a class="externalLink" href="http://incubator.apache.org/activemq/">ActiveMQ</a><br />Apache ActiveMQ is a fast open source JMS 1.1 provider and Message Fabric supporting clustering, peer networks, discovery, TCP, SSL, multicast, persistence, XA and integrates seamlessly into J2EE 1.4 containers, light weight containers and any Java application. ActiveMQ is released under the Apache 2.0 License. <br />Currently ActiveMQ is using Rome to be able to <a class="externalLink" href="http://docs.codehaus.org/display/ACTIVEMQ/RSS+and+Atom">browse message queues</a> (with or without filters applied) as RSS or Atom feeds.</li>
<li><a class="externalLink" href="http://www.xwiki.org/">XWiki</a></li>
<li><a class="externalLink" href="http://www.thauvin.net/mobitopia/mobibot/">mobibot</a></li>
<li><a class="externalLink" href="http://sourceforge.net/projects/stat4j/">stat4j</a><br />Used ROME to create an RSS/ATOM Log4j Appender. Read more about it <a class="externalLink" href="http://www.jroller.com/comments/laraDAB?anchor=rss_atom_log4j_appender">here</a>.</li>
<li><a class="externalLink" href="http://www.spotdev.net/">SPOT Manager</a><br />SPOT Manager uses ROME to parse RSS feeds and send them to your MSN Direct wristwatch! Learn about MSN Direct <a class="externalLink" href="http://www.msndirect.com/">here.</a> Download the program from <a class="externalLink" href="http://www.spotdev.net/">SPOTDev.net</a>.</li>
<li><a class="externalLink" href="http://logdistiller.sf.net/">LogDistiller</a><br />LogDistiller is an extensible tool to merge and sort logs : reports can be stored in a feed file thanks to Rome.</li>
<li><a class="externalLink" href="http://openvision.tv/">ION Internet Video Console</a><br />The I/ON Internet Video Console fuses together leading technologies into one simple media player, connecting you directly to the video you want. Avoid the ads, pop-ups, and spyware that come with watching video in a browser and watch the web. ROME powers our RSS capabilities. Learn more and download <a class="externalLink" href="http://openvision.tv/">here</a>.</li>
<li><a class="externalLink" href="http://code.google.com/p/blog-mover">Blog Mover</a><br />Blog Mover's goal is allowing your blog moving freely between each BSP(Blog Service Provider). Learn more and try it <a class="externalLink" href="http://blog-mover.redv.com/">here</a>.</li>
<li><a class="externalLink" href="http://scarab.tigris.org/">Scarab</a><br />The goal of the Scarab project is to build a highly customisable Artifact tracking system. It's distributed under a BSD/Apache style license.</li>
<li><a class="externalLink" href="http://ozmozr.org/">Ozmozr</a><br />Ozmozr is a website for online learning communities being developed by the <a class="externalLink" href="http://www.cosl.usu.edu/">Center for Open Sustainable Learning</a> at <a class="externalLink" href="http://www.usu.edu/">Utah State University</a>. In ozmozr, users are both content producers and consumers, relying on their social networks to filter and distribute meaningful content. Ozmozr was built to leverage emergent technologies and support social and collaborative information filtering, self-organization, identity development, and free/open resource-sharing.</li></ul></div>
<div class="section">
<h3>Open Source Research Prototypes using ROME<a name="Open_Source_Research_Prototypes_using_ROME"></a></h3>
<ul>
<li><a class="externalLink" href="http://www.infosys.tuwien.ac.at/prototype/morse/">MORSE</a><br />The <a class="externalLink" href="http://www.infosys.tuwien.ac.at/prototype/morse/">Model-Aware Repository and Service Environment</a> (MORSE) is a service-based environment for the storage and retrieval of models and model-instances at both design- and runtime. Models, and model-elements are identified by Universally Unique Identifiers (UUID) and stored and managed in the MORSE repository. The MORSE repository provides versioning capabilities so that models can be manipulated at runtime and new and old versions of the models can be maintained in parallel. MORSE exposes various services to runtime clients and modeling tools. For instance, a <a class="externalLink" href="http://www.infosys.tuwien.ac.at/m2projects/at.ac.tuwien.infosys.tholmes.morse/rs-impl/">feed</a> reflects the latest changes within the repository.</li></ul></div>
<div class="section">
<h3>Free, Based On Open Standards, using ROME<a name="Free_Based_On_Open_Standards_using_ROME"></a></h3>
<ul>
<li><a class="externalLink" href="http://www.scheduleworld.com/">ScheduleWorld</a></li>
<li><a class="externalLink" href="http://feedpod.dev.java.net/">FeedPod</a></li></ul></div>
<div class="section">
<h3>Commercial using ROME<a name="Commercial_using_ROME"></a></h3>
<ul>
<li><a class="externalLink" href="http://interactivebrokers.com/">Interactive Brokers TraderWorkstation (TWS)</a><br />Interactive Brokers is leading software based broker. IB offers Universal Direct-Access Trading and sophisticated trade management tools at highly competitive costs to professional traders and investors worldwide. IB is the gateway to trading a broad array of financial instruments -- stocks, options, futures, corporate bonds as well as forex -- on over 50 exchanges and marketplaces in 14 countries. TraderWorkstation is java-based trading platform; ROME library is used to fetch, aggregate and visualize news related to securities listed in the application.</li>
<li><a class="externalLink" href="http://weblogs.at/parss/stories/2315/">parss</a><br />From the antville guys, that we met at blogtalk 1.0 2 years ago.</li>
<li><a class="externalLink" href="http://www.publicinteractive.com/">Public Interactive</a><br />Public Interactive&#xae; is the leading integrated Application Service Provider (ASP) of on-line collaborative tools, community engagement technologies, content syndication services and member and audience relationship management systems for the public broadcasting industry. Rome is used for syndicating news content and Podcasts local published by stations in the Public Interactive network.</li>
<li><a class="externalLink" href="http://www.blog-city.com/">Blog-City Ltd</a><br />Blog-City.com has been using ROME for many months now, utilising both the core project and the Fetcher project to allow bloggers to run their own mini-aggregators within their blog.</li>
<li><a class="externalLink" href="http://www.reger.com/">Reger.com</a><br />All blogs running at reger.com include ROME feeds. With the custom ROME module we wrote entry data is included in the RSS feeds. DataBlogging allows people to append activity-specific data to each of their entries. In addition to the pre-built log types (Running Log, Biking Log, Movie Log, etc), users can create custom log types with whatever data fields they need. The module outputs those data fields. Users simply customize their log types, adding and removing fields, and then the RSS feed automatically includes it. An RDDL document for the namespace can be found at<a class="externalLink" href="http://www.reger.com/about/specs/entrydata.rddl">http://www.reger.com/about/specs/entrydata.rddl</a> Thanks again for all of the help and for making ROME great!</li>
<li><a class="externalLink" href="http://techrepublic.com.com/">CNET Networks/TechRepublic.com</a><br />CNET Networks uses ROME with an application called the RSS Harvester. The purpose of this application is to harvest a list of predefined RSS/ATOM feeds, saving all new items for each feed in a database. In addition, each feed has an associated keyword that allows for easy surfacing of harvested data. <br />Once the feed data has been collected, internal editors can surface links to the harvested data on the TechRepublic website by including a call to a JSP component. This component passes several parameters including the number of items to return, the number of items from a particular site and an associated keyword. For example, <a class="externalLink" href="http://techrepublic.com.com/2001-10591-0.html">http://techrepublic.com.com/2001-10591-0.html</a> (see the section &quot;More on ...&quot;) we surface related articles. <br />We are also using Rome for Re-Blogging on TechRepublic.com. Users can start their own blogs on the site as well as choose to import an RSS feed from an existing blog such as blogger.com. When the user imports an existing blog we use Rome to parse the RSS/ATOM feed then convert it to a TechRepublic blog. Any new blog posts on the external blog are automatically imported to TechRepublic.</li>
<li><a class="externalLink" href="http://www.edmunds.com/insideline/">Edmunds.com Inside Line</a><br />We are currently using ROME as our feed generator and as a feed parser. Currently we publish RSS feeds of our latest articles on www.insideline.com, however, we also use it to provide updates between our sites. For example, our community site <a class="externalLink" href="http://townhall-talk.edmunds.com/">Townhall</a> produces RSS feeds which we then parse using ROME on our <a class="externalLink" href="http://www.edmunds.com/insideline">Inside Line</a> property. Rome has significantly speed up our development times thanks to its clean object model and its ability to generate multiple feed types.</li>
<li><a class="externalLink" href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewArtist?artistId=118405710">HBO Podcasts</a> (iTunes Music Store Link)<br />HoPE (HBO Podcast Engine) powered by ROME and the iTunes Podcast module. To date has served over 15-million podcasts for HBO podcast content such as The Sopranos, Real Time with Bill Maher, and Rome</li>
<li><a class="externalLink" href="http://www.dressupyourwedding.com/Article.do">DressUpYourWedding</a></li></ul></div>
<div class="section">
<h3>Sites using ROME<a name="Sites_using_ROME"></a></h3>
<ul>
<li><a class="externalLink" href="http://www.yabot.net/">Yabot</a><br />Yabot is a news service currently available in five editions (May 2008).
<p>Discovering and implementing ROME made Yabot's feed aggregation faster and easier. In previous versions we rendered the XML our selves but with ROME now doing most of this work developers can focus on presentation and integration features. Thanks!</p></li></ul></div></div>
<div class="section">
<h2>Mats, co-founder @ Yabot -<a class="externalLink" href="http://www.yabot.net/">http://www.yabot.net</a><a name="Mats_co-founder__Yabot_-http:www.yabot.net"></a></h2>
<ul>
<li><a class="externalLink" href="http://www.wasalive.com/">WASALive</a><br />Wasalive is a news, blogs and forums search engine. Results are sort by a mix of relevancy and date. Thanks to ROME library, Wasabot fetch and parse more than 70k feeds/days and store 3M posts. Thanks to ROME UTF8 support Wasalive is avalaible in <a class="externalLink" href="http://ru.wasalive.com/">Russian</a>, <a class="externalLink" href="http://fr.wasalive.com/">French</a>,<a class="externalLink" href="http://es.wasalive.com/">Spanish</a>, <a class="externalLink" href="http://en.wasalive.com/">English</a></li>
<li><a class="externalLink" href="http://www.airport-information.com/">http://www.airport-information.com</a><br />Rome is used to create a RSS feed with news on airports worldwide. The database runs under Tomcat. The Rome library was very helpful and allowed an easy and quick implementation. -- Main.airportinformation - 28 Jan 2008</li>
<li><a class="externalLink" href="http://www.abclinuxu.cz/">http://www.abclinuxu.cz</a><br />I use rome in daily production on www.abclinuxu.cz for watching cca 8 feeds and generating cca 60 feeds. After fixing charset related issues (thanks!) it runs smoothly. I am happy that I could remove my old propietary RSS rw code with Rome ... Leos</li>
<li><a class="externalLink" href="http://feeds.my.aol.com/">http://feeds.my.aol.com</a><br />The latest My AOL product, a customizable, feed-driven web application, uses the Rome library to read, manipulate, and normalize RSS, RDF, and Atom feeds. My AOL was built on a very rapid development schedule, and Rome made much of it a lot easier than it otherwise would have been. --Bill Kocik, Sr. Software Engineer, America Online, Inc.</li>
<li><a class="externalLink" href="http://www.backbase.com/">http://www.backbase.com</a><br />Rome is used on our site to provide rss feeds for forum threads. Implementation took me something like few hours (including downloading and installation), so needless to say I am very happy. Thanks. m.j.milicevic</li>
<li><a class="externalLink" href="http://oszone.org/">The Open Source Zone</a><br />Rome is used to power the <a class="externalLink" href="http://oszone.org/channels">Planet</a> section of The Open Source Zone, where we aggregate the most interesting feeds concerning Open Source. Took very little to implement, thanks to Rome. Rome Fetcher is used too, which is great.</li>
<li><a class="externalLink" href="http://www.rel8r.com/">rel8r.com</a><br />rel8r is a tag search and feed aggregator. Rome is used extensively for collecting feeds as well as for publishing all of the aggregated feeds. We love it. - Travis</li>
<li><a class="externalLink" href="http://newsrack.in/">NewsRack</a><br />Several organizations in the social development sector monitor news that is relevant to their work. This is a time-consuming and laborious process for some groups, especially when the news is monitored, marked, cut, and filed using hard copies of newspapers and magazines. This process is very much the case in India. However, much of this work can be automated using web versions of newspapers and magazines. In this context, the broad goal of this project is to automate news monitoring. <br />NewsRack is a tool/service for classifying, filing, and long-term archiving of news. Users specify filtering rules which are used to select relevant articles from incoming news feeds. The selected articles are then classified into various categories. This process is similar to the process of specifying email filters to pre-sort incoming mail into various folders. <br />NewsRack is currently using Rome. I am looking for developers, so, if this project tickles you, please get in touch! - Subramanya Sastry</li>
<li><a class="externalLink" href="http://www.rsspress.it/">http://www.rsspress.it</a><br />An Italian Rss Aggregator, with a very nice design and layout, very simple to use, with a lot of rss feeds not only in italian language. You can register it and have your personalized homepage with your preferred news.</li>
<li><a class="externalLink" href="http://www.geonames.org/rss-to-georss-converter.html">Geonames RSS to GeoRSS</a><br />The Geonames &quot;RSS to GeoRSS Converter&quot; reads the entries of an RSS feed and searches the Geonames Database to find a location for the entry text. If a relevant location is found, its latitude and longitude are added to the RSS feed using the GeoRSS encoding.</li>
<li><a class="externalLink" href="http://www.feedarea.de/">feedarea.de</a><br />FeedArea.de is a RSS, Atom and Podcast portal using Rome for handling the feed submissions.</li>
<li><a class="externalLink" href="http://www.podblock.de/">podblock.de</a> / <a class="externalLink" href="http://www.podblock.com/">podblock.com</a><br />PodBlock is a podcast portal using Rome for handling the feed submissions.</li>
<li><a class="externalLink" href="http://www.javamix.co.uk/">javaMix.co.uk</a><br />javaMix is a java news aggregation website using Rome to find the news.</li>
<li><a class="externalLink" href="http://www.javamix.co.uk/">JavaMix</a><br />the latest java news, articles and resources</li>
<li><a class="externalLink" href="http://wirecatch.com/">Wirecatch</a><br />Wirecatch is a semantic news aggregator and visualization tool. It uses Rome to grab several news feeds and show connections and relationships between names, concepts and documents.</li>
<li><a class="externalLink" href="http://swiftmob.com/">Swift</a><br />Swift imports rss feeds and formats them for mobile devices. Swift also include many other tools for building mobile friendly webpages that will reshape themselves for each phone so the experience for the end user is as good as possible.</li>
<li><a class="externalLink" href="http://devmeat.com/">DevMeat</a><br />DevMeat deliver fresh meat for software developers and Rome is TOP cook !</li>
<li><a class="externalLink" href="http://folder2feed.nogoodatcoding.com/">Folder2Feed</a><br />Folder2Feed allows users to generate feeds from the contents of local and network folders; providing an easy way to monitor updates to folders of interest for a large audience.</li>
<li><a class="externalLink" href="http://www.podcast.tv/">podcast.tv</a></li>
<li><a class="externalLink" href="http://www.podcast.it/">podcast.it</a></li>
<li><a class="externalLink" href="http://www.podcast.at/">podcast.at</a><br />Podcast.tv, podcast.it and podcast.at are podcast directories using Rome for handling the feed submissions and parsing.</li>
<li><a class="externalLink" href="http://collaborationtoday.info/">CollaborationToday.info</a><br />Collaboration Today is a news aggregator, also an open source software developed by OpenNTF. This site is for&#xa0;IBM Collaboration Solutions&#xa0;professionals covering news about various IBM products like IBM Connections, IBM Notes/ Domino, IBM WebSphere Portal etc. and cross product topics like mobile, cloud and analytics. Rome is running on background and fetching stories from various sites.</li></ul>
<div class="section">
<h3>Powered By ROME Badges Here are badges for use with your ROME-powered site or software:<a name="Powered_By_ROME_Badges_Here_are_badges_for_use_with_your_ROME-powered_site_or_software:"></a></h3>
<ul>
<li><b>Static:</b></li>
<li><b>Animated:</b></li></ul>
<p>Please copy the image to your own server rather than link to the image on its current host.</p></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>

View file

@ -1,202 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME Propono Version 0.4</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>ROME Propono Version 0.4<a name="ROME_Propono_Version_0.4"></a></h2>
<p>This is the first release of the <a href="./index.html">Rome Propono</a> publishing library. It's a beta release and will be followed closely by Propono 0.5.</p>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-propono-0.4-src.zip">rome-propono-0.4-src.zip</a></li>
<li><a href="./rome-propono-0.4.tar.gz">rome-propono-0.4.tar.gz</a></li>
<li><a href="./rome-propono-0.4.zip">rome-propono-0.4.zip</a></li>
<li><a href="./rome-propono-0.4-src.tar.gz">rome-propono-0.4-src.tar.gz</a></li></ul></div>
<div class="section">
<h3>API Docs<a name="API_Docs"></a></h3>
<ul>
<li><a class="externalLink" href="https://rome.dev.java.net/apidocs/subprojects/propono/0.4/overview-summary.html">Propono 0.4 API Docs</a></li></ul></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>

View file

@ -1,207 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME Propono Version 0.5</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>ROME Propono Version 0.5<a name="ROME_Propono_Version_0.5"></a></h2>
<p>This is the second release of the <a href="./index.html">Rome Propono</a> publishing library. It's a bug fix release follow-on to 0.4. Here are the changes:</p>
<ul>
<li>Fixes in Blog Client constructors</li>
<li>AtomServlet uses application/atomsvc+xml for the Service Document</li>
<li>Fixed issue #66: don't expect entry to be returned from update</li>
<li>Made example builds more configurable</li></ul>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-propono-0.5-src.zip">rome-propono-0.5-src.zip</a></li>
<li><a href="./rome-propono-0.5.tar.gz">rome-propono-0.5.tar.gz</a></li>
<li><a href="./rome-propono-0.5.zip">rome-propono-0.5.zip</a></li>
<li><a href="./rome-propono-0.5-src.tar.gz">rome-propono-0.5-src.tar.gz</a></li></ul></div>
<div class="section">
<h3>API Docs<a name="API_Docs"></a></h3>
<ul>
<li><a class="externalLink" href="https://rome.dev.java.net/apidocs/subprojects/propono/0.5/overview-summary.html">Propono 0.5 API Docs</a></li></ul></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>

View file

@ -1,236 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME Propono Version 0.6</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>ROME Propono Version 0.6<a name="ROME_Propono_Version_0.6"></a></h2>
<p>September 30, 2007</p>
<p>This is the third release of the <a href="./index.html">Rome Propono</a> publishing library. It includes major changes to add support for the final Atom Publishing Protocol specification relative URIs and out-of-line categories. It's an an interim release it includes a pre-release version of ROME 0.9.1-dev. A new version will follow as soon as ROME 0.9.1 (or 1.0) has been finalized.</p>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-propono-0.6-src.zip">rome-propono-0.6-src.zip</a></li>
<li><a href="./rome-propono-0.6.tar.gz">rome-propono-0.6.tar.gz</a></li>
<li><a href="./rome-propono-0.6.zip">rome-propono-0.6.zip</a></li>
<li><a href="./rome-propono-0.6-src.tar.gz">rome-propono-0.6-src.tar.gz</a></li></ul></div>
<div class="section">
<h3>API Docs<a name="API_Docs"></a></h3>
<ul>
<li><a class="externalLink" href="https://rome.dev.java.net/apidocs/subprojects/propono/0.6/overview-summary.html">Propono 0.6 API Docs</a></li></ul></div>
<div class="section">
<h3>Changes<a name="Changes"></a></h3>
<ul>
<li>Updated for APP final (draft #17) w/new APP URI &quot;http://www.w3.org/2007/app&quot;</li>
<li>Tested file-based server against Tim Bray's Ape (from CVS September 30, 2007).</li>
<li>Now includes pre-release of ROME 0.9.1 with key Atom parse fixes.</li>
<li>Changed arguements in Atom server's AtomHandler interface to accept AtomRequest objects instead of String[] pathinfo arrays.</li>
<li>Added support for relative URIs in the Service Document
<ul>
<li>Fixes <a class="externalLink" href="http://java.net/jira/browse/ROME-67">http://java.net/jira/browse/ROME-67</a></li>
<li>Added Collection.getHrefResolved()</li>
<li>Added Categories.getHrefResolved()</li></ul></li>
<li>Added new options to the file-based server's propono.properties file so you can turn on/off relative URIs and inline categories.
<ul>
<li>propono.atomserver.filebased.relativeURIs=true</li>
<li>propono.atomserver.filebased.inlineCategories=true</li></ul></li>
<li>Added support for out-of-line categories in Atom client classes
<ul>
<li>Added new Categories.href property</li>
<li>New ClientCategories classes can fetch remote categories from href URI</li>
<li>Fixes <a class="externalLink" href="http://java.net/jira/browse/ROME-68">http://java.net/jira/browse/ROME-68</a></li></ul></li>
<li>Added support for out-of-line categories in Atom server classes
<ul>
<li>New AtomHandler.getCategoriesDocument(String[] pathInfo) method</li>
<li>New AtomHandler.isCategoriesDocumentURI(String[] pathInfo) method</li></ul></li>
<li>Renamed Introspection to Service Document
<ul>
<li>AtomHandler.isIntrospectionURI() -&gt; AtomHandler.isSerivceDocumentURI()</li>
<li>AtomHandler.getIntrospection() -&gt; AtomHandler.getServiceDocument()</li>
<li>Added String[] pathInfo argument to getServiceDocument()</li></ul></li>
<li>Renamed PubControlModule to AppModule becuase it also supports app:edited
<ul>
<li>Added rome.properties file to configure AppModule</li></ul></li></ul></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>

View file

@ -1,209 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME Propono Version 1.0</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>ROME Propono Version 1.0<a name="ROME_Propono_Version_1.0"></a></h2>
<p>April 2009</p>
<p>ROME Propono 1.0 is coming soon. If you'd like to help out, you can try 1.0 RC1 and provide feedback to us on the ROME dev mail list.</p>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-propono-1.0RC1-src.zip">rome-propono-1.0RC1-src.zip</a></li>
<li><a href="./rome-propono-1.0RC1.tar.gz">rome-propono-1.0RC1.tar.gz</a></li>
<li><a href="./rome-propono-1.0RC1.zip">rome-propono-1.0RC1.zip</a></li>
<li><a href="./rome-propono-1.0RC1-src.tar.gz">rome-propono-1.0RC1-src.tar.gz</a></li></ul></div>
<div class="section">
<h3>API Docs<a name="API_Docs"></a></h3>
<ul>
<li><a class="externalLink" href="https://rome.dev.java.net/apidocs/subprojects/propono/1.0/overview-summary.html">Propono 1.0 API Docs</a></li></ul></div>
<div class="section">
<h3>Changes<a name="Changes"></a></h3>
<ul>
<li>Updated to ROME 1.0</li>
<li>Added support for pluggable authentication in the AtomPub client</li>
<li>Added support for OAuth in the AtomPub client, see Javadocs for details</li></ul></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>

View file

@ -1,200 +0,0 @@
<!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="20110816" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Home</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 class="active">
<a href="#"><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>ROME Propono<a name="ROME_Propono"></a></h2>
<p>The ROME Propono subproject is a Java class library that supports publishing protocols, specifically the Atom Publishing Protocol and the legacy MetaWeblog API. Propono includes an Atom client library, an Atom server framework and a Blog client that supports both Atom protocol and the MetaWeblog API.</p></div>
<div class="section">
<h2>Documentation<a name="Documentation"></a></h2>
<ul>
<li>See the <a href="./apidocs/overview-summary.html">Propono API docs</a> for an explanation of Propono usage, diagrams and code examples.</li></ul></div>
<div class="section">
<h2>Releases<a name="Releases"></a></h2>
<ul>
<li><a href="./ROMEProponoVersion1.0.html">ROME Propono Version 1.0 (propono)</a></li>
<li><a href="./ROMEProponoVersion0.6.html">ROME Propono Version 0.6 (propono)</a></li>
<li><a href="./ROMEProponoVersion0.5.html">ROME Propono Version 0.5 (propono)</a></li>
<li><a href="./ROMEProponoVersion0.4.html">ROME Propono Version 0.4 (propono)</a></li></ul></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>

35
README.md Normal file
View file

@ -0,0 +1,35 @@
# ROME
[![Build Status](https://travis-ci.org/rometools/rome.svg?branch=master)](https://travis-ci.org/rometools/rome)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.rometools/rome/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.rometools/rome)
ROME is a Java framework for RSS and Atom feeds. The framework consist of several modules:
| Module | Description |
| ------ | ----------- |
| `rome` | Library for generating and parsing RSS and Atom feeds. |
| `rome-modules` | Generators and parsers for extensions like MediaRSS, GeoRSS and others. |
| `rome-opml` | [OPML](https://en.wikipedia.org/wiki/OPML) parsers and tools. |
Deprecated modules: `rome-fetcher`, `rome-certiorem`, `rome-certiorem-webapp` and `rome-propono`.
## Examples
Parse a feed:
```java
String url = "http://stackoverflow.com/feeds/tag?tagnames=rome";
SyndFeed feed = new SyndFeedInput().build(new XmlReader(new URL(url)));
System.out.println(feed.getTitle());
```
Generate a feed:
```java
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType("rss_2.0");
feed.setTitle("test-title");
feed.setDescription("test-description");
feed.setLink("https://example.org");
System.out.println(new SyndFeedOutput().outputString(feed));
```

View file

@ -1,217 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME and Maven 2</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>ROME and Maven 2<a name="ROME_and_Maven_2"></a></h2>
<p>this page is not up to date</p>
<p>Starting with ROME 1.0 RC2, rome jars are deployed on the <a class="externalLink" href="http://download.java.net/maven/2/">java.net maven repository</a>.</p>
<p>In your project you can add this repository by putting the following XML into your pom.xml</p>
<div class="source">
<pre>
&lt;repository&gt;
&lt;id&gt;maven2-repository.dev.java.net&lt;/id&gt;
&lt;name&gt;Java.net Repository for Maven&lt;/name&gt;
&lt;url&gt;http://download.java.net/maven/2/&lt;/url&gt;
&lt;layout&gt;default&lt;/layout&gt;
&lt;/repository&gt;
</pre></div>
<p>As of 22, April 2009, the jars are deployed for the following releases:</p>
<ul>
<li>ROME 1.0</li>
<li>ROME Fetcher 1.0</li>
<li>ROME Modules 0.3.2</li></ul>
<p>To include the Rome 1.0 in your maven2 project:</p>
<div class="source">
<pre>
&lt;dependency&gt;
&lt;groupId&gt;rome&lt;/groupId&gt;
&lt;artifactId&gt;rome&lt;/artifactId&gt;
&lt;version&gt;1.0&lt;/version&gt;
&lt;/dependency&gt;
</pre></div>
<p>-- Main.mj_ - 22 Apr 2009</p></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>

View file

@ -1,193 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME and OSGI</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>ROME and OSGI<a name="ROME_and_OSGI"></a></h2>
<p>From ROME 1.0 RC2 onwards, the ROME jar includes OSGi information in its manifest.</p>
<p>Note that we have received some reports that ROME plugin classloading may cause problems with OSGi. Setting the system property &quot;rome.pluginmanager.useloadclass&quot; to &quot;true&quot; may help avoid this. See <a class="externalLink" href="http://java.net/jira/browse/ROME-118">Issue 118</a> for further information.</p>
<p>-- Main.nicklothian - 08 Jan 2009</p></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>

View file

@ -1,198 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME Development Process</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>ROME Development Process<a name="ROME_Development_Process"></a></h2>
<p>We're welcoming our first external developer, <a class="externalLink" href="http://www.mackmo.com/nick/blog/">Nick Lothian</a> today, so we thought it would be good to set a few basic rules for this project. We don't want to be too formal, since we're still alpha, and trust our developer's common sense to &quot;do the right thing&quot;.</p>
<ul>
<li>Please before commiting anything send an email in the rome developer lists to explain what you want to do</li>
<li>When you create some new code, please javadoc it, and unit tests are welcome </li>
<li>If your code involves new functionality for end users, please document it on the wiki.</li>
<li>and update the <a href="./ChangeLog.html">RomeChangesLog</a></li>
<li>I think that's it: Welcome to Rome</li></ul>
<p>-- <a class="externalLink" href="http://wiki.java.net/twiki/bin/view/Main/PatrickChanezon">PatrickChanezon</a> - 17 Jun 2004</p></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>

View file

@ -1,402 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME2 1st Proposal (June 10th 2006) NOT CURRENT</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>ROME2 1st Proposal (June 10th 2006) NOT CURRENT<a name="ROME2_1st_Proposal_June_10th_2006_NOT_CURRENT"></a></h2>
<p>It has been 2 years since ROME started and along the way we've fixed, improved, enhanced and changed the API and the implementation. We've had to address things we did not think at first, we have to add support for specifications that were not around when ROME started, doing that has not being a hard task. The best indicator we've done a fair job with ROME is adoption.</p>
<p>Some cracks are starting to appear, mistakes in the design (such as overloading the use of DCModule), a bit of implementation over-engineering (such as the home grown bean-introspector and the <b>smart</b> ObjectBean &amp; co classes), a more complex than needed API (the existence of 2 abstraction levels for feed, Synd and Wire beans).</p>
<p>This proposal attempts to address the problems and limitations we currently have with ROME.</p>
<div class="section">
<h3>Backwards Compatibility, Support and Upgrade<a name="Backwards_Compatibility_Support_and_Upgrade"></a></h3>
<p>ROME2 will change the API breaking backwards compatibility (after all we are an Open Source Project and that is what they do best).</p>
<p>We will maintain ROME 1.0 (bugfixing only) for 1 year to allow a smooth transition for all ROME users. We will also prepare migration/upgrade tips (based on our own experience) for the ROME community.</p></div>
<div class="section">
<h3>Leveraging New Language Features<a name="Leveraging_New_Language_Features"></a></h3>
<p>ROME2 will make use of Generics to type collections in its beans. It will also use the <b>enum</b> construct when applicable.</p></div>
<div class="section">
<h3>Minimum Number of Dependencies<a name="Minimum_Number_of_Dependencies"></a></h3>
<p>ROME2 will implement its core competency (Atom and RSS parsing, generation and manipulation), it will leverage other components as much as possible but it will focus, as ROME, in being as lean as possible not only in its code by in its dependencies (keeping them down to a reasonable minimum).</p></div>
<div class="section">
<h3>One Abstraction Level, 2 Models<a name="One_Abstraction_Level_2_Models"></a></h3>
<p>ROME2 will not have an abstract representation of feeds (the Synd beans). It will have 2 distinct models, Atom and RSS, both of them first citizens.</p>
<p>ROME2 users will use the model that fits more their needs.</p>
<p>Conversion (automatic and implicit) between the 2 models will be part of ROME2.</p></div>
<div class="section">
<h3>No Interfaces, Pluggable Beans<a name="No_Interfaces_Pluggable_Beans"></a></h3>
<p>Interfaces are good, in fact they are great. However, when using them with beans that have to be created by the developer it ads noise to the code. Interfaces are used for all parameters and variables but implementations must be used to create the bean instances thus hard-coding areas of the application to a specific implementation. Or a factory pattern has to be use throughout the code to hide the implementation, with a side effect of removing clarity from the code.</p>
<p>ROME2 will bring the best of both worlds, it will allow coding such as</p>
<div class="source">
<pre>
Feed feed = new Feed();
Entry entry1 = new Entry();
Entry entry2 = new Entry();
feed.getEntries().add(entry1);
feed.getEntries().add(entry2);
</pre></div>
<p>While allowing pluggability of the beans implementation. The pluggability will be achieved using a combination of a factory pattern and a self-proxy patterns, both of them transparent to the ROME2 user.</p>
<p>For example the ROME2 API bean for the Atom feed would be something like:</p>
<div class="source">
<pre>
public class Feed {
private Feed feed;
public Feed() {
if (this.getClass() == Feed.class) {
feed = BeanFactory.getFactory().create(Feed.class);
}
}
public final Feed getImplementation() {
return feed;
}
public Text getTitle() {
return feed.getTitle();
}
public void setTitle(Text title) {
feed.setTitle(title);
}
...
}
</pre></div>
<p>The ROME2 (default/provided) implementation bean for the Atom feed would be something like:</p>
<div class="source">
<pre>
public class FeedBean extends Feed {
private Text title;
public Text getTitle() {
return title;
}
public void setTitle(Text title) {
this.title = title;
}
...
}
</pre></div>
<p>ROME2 users will use the ROME2 API bean as plain objects that they are. The ROME2 API beans will delegate all their properties to an instance implementing their corresponding class. This instance will be the implementation bean which is created by the BeanFactory.</p>
<p>To provide alternate implementation beans an alternate BeanFactory has to be provided.</p>
<p>To write an alternate implementation beans the ROME2 API bean has be used as an interface, all property methods have to be overridden, nothing else.</p>
<p>When extending ROME2 API beans, for example providing a new module bean, it is left to the implementor to follow this pattern or to use plain beans for the the additional module.</p>
<p>For cases (they shouldn't be many) that a ROME2 user needs to manipulate the implementation bean, all ROME2 API beans will give access to it via the getImplementation() method.</p></div>
<div class="section">
<h3>Using multiple Bean implementations simultaneously<a name="Using_multiple_Bean_implementations_simultaneously"></a></h3>
<p>ROME2 will support the use of multiple implementation beans simultaneously.</p>
<p>A use case could be retrieving a feed from a persistent store (which uses its own implementation beans), retrieving a feed from the internet (using the default implementation beans), merging their entries and producing an output feed, into the persistent store or out to the internet.</p>
<p>ROME2 public API will include the following classes for this purpose:</p>
<div class="source">
<pre>
public abstract class BeanFactory {
public abstract &lt;T&gt; T create(Class&lt;T&gt; beanClass);
}
public class BeanFactoryInjector {
public static void execute(BeanFactory factory, Runnable runnable) { .. }
}
</pre></div>
<p>When these two classes are not used explicitly ROME2 will use the default BeanFactory that creates default implementation beans.</p>
<p>For alternate implementation beans a BeanFactory has to be provided. This factory will be responsible for creating a complete ROME2 bean family.</p>
<p>The code to create ROME2 beans with an alternate factory will have to be written in the run() method of a Runnable object and it will have to be executed via the BeanFactoryInjector.execute() method.</p>
<p>The created ROME2 beans could be used outside of the Runnable.run() method, because of this ROME2 users have to be aware that it is possible to mix and match implementation beans and that may not always have a happy ending if not thought properly.</p></div>
<div class="section">
<h3>Collection Elements<a name="Collection_Elements"></a></h3>
<p>All collection properties (such as the authors, categories, contributors, links and entries of an Atom feed bean) will only have getter methods in the ROME2 API beans, no setter methods. For example:</p>
<div class="source">
<pre>
public class Feed {
public List&lt;Person&gt; getAuthors() { ... }
public List&lt;Category&gt; getCategories() { ... }
...
}
</pre></div>
<p>This will ensure that the implementation bean has control on the implementation of the collection being used. This is particularly important to enable alternate implementation beans to fetch data from a repository as the collection is iterated over.</p>
<p>Persistent experts we need your input here.</p></div>
<div class="section">
<h3>Modules<a name="Modules"></a></h3>
<p>Feeds, both RSS and Atom, are extensible via namespaced elements at feed/channel and entry/item level, these namespace elements are known as modules. Beans supporting modules (feed, channel, entry and item) will all have the following method to support modules.</p>
<div class="source">
<pre>
public Map&lt;String,Module&gt; getModules() { ... }
</pre></div>
<p>Because modules are uniquely identified by their URI, a Map will be used, the key will be the URI of the module and the value the module itself. As with other ROME2 API bean collection properties, the getModules() property has a getter only, the Map implementation is controlled by the implementation bean.</p>
<p>Module URIs in ROME2, as all the links URLs in the beans, will be Strings thus reducing object creation explosion a bit. For cases that some URI manipulation is required, the JDK URI class should be used.</p></div>
<div class="section">
<h3>Dynamic Modules Support<a name="Dynamic_Modules_Support"></a></h3>
<p>ROME2 modules design has to ensure it provides simple and comprehensive support for dynamic modules such as SLE and GData.</p></div>
<div class="section">
<h3>Unknown Modules<a name="Unknown_Modules"></a></h3>
<p>A special Module subclass, UnknownModule, will serve as placeholder for module data not explicitly processed by ROME2 available parsers/generators. This will allow to consume and re-export a feed without losing unknown (to ROME2) modules. Each unknown module will be keyed off with its URI in the map of the associated feed, channel, entry or item.</p>
<p>The data of the unknown module will be available as a String. ROME2 users should not use =UnknownModule='s data directly, if they need to manipulate that data they should find or implement bean/parser/generator for the module they need to manipulate.</p>
<p>Because unknown modules brings some extra overhead in the parsing and generating process ROME2 will have a property to enable/disable processing of unknown modules.</p></div>
<div class="section">
<h3>The xml:lang Attributes<a name="The_xml:lang_Attributes"></a></h3>
<p>All ROME2 API beans will have xml:lang attributes, String and enum and primitive types properties won't.</p></div>
<div class="section">
<h3>The xml:base Attributes<a name="The_xml:base_Attributes"></a></h3>
<p>The xml:base attribute will not be present in any ROME2 API bean.</p>
<p>It will be the responsibility of the parsers to resolve any relative URL present in the feed at parsing time. Similarly, generators may relativize URLs as a size optimization (for God's sake we are doing XML).</p></div>
<div class="section">
<h3>Conversion between Feed Types<a name="Conversion_between_Feed_Types"></a></h3>
<p>A FeedConverter class will provide conversion from Atom to RSS beans and vice versa, both at feed/channel and entry/item level. All properties, including modules data will be copied, after an conversion the state of the beans will be completely independent.</p></div>
<div class="section">
<h3>Object Class Methods in ROME2 Beans<a name="Object_Class_Methods_in_ROME2_Beans"></a></h3>
<p>The equals() and hashCode() methods will not be overridden. All ROME2 beans are mutable, it is not safe to use them as keys of hash structures.</p>
<p>Cloning will not be supported by ROME2 beans, instead they will have a copyFrom() method which is type safe and does a deep copy. Cloning a ROME2 bean will be a two step process, for example:</p>
<div class="source">
<pre>
Feed feed1 = new Feed();
...
Feed feed2 = new Feed();
feed2.copyFrom(feed1);
</pre></div>
<p>The toString() method in the beans will print the property that most likely identifies the bean plus the class name of the implementation bean. For example for a Feed bean the output of toString() would be:</p>
<div class="source">
<pre>
[http://foo.com/atom.xml - xxx.rome2.impl.pojo.atom.FeedBean]
</pre></div>
<p>--++ Plugins ClassLoading</p>
<p>Bean implementations, parsers, generators, converters and all pluggable ROME2 components will be loaded using the same classLoader ROME2 core classes are loaded from.</p>
<p>This is to keep simple the handling of them via singletons and their instantiation. Supporting different classLoaders would require complex handling for instantiation, to avoid missing classes and class mismatches.</p>
<p>As an example of how easy things can go sour, imagine ROME2 core classes in the common path of a web-container and 2 web-apps adding their own beans/parsers/generators/modules, the singletons managing them are in ROME2 core, managed by the common classLoader, a simple singleton won't cut it. ROME2 core will be small enough that it will not be a memory consumption issue if it is once in each web-app.</p></div>
<div class="section">
<h3>Parsers and Generators<a name="Parsers_and_Generators"></a></h3>
<p>XML parsing and generation will support stream mode. We may even consider using streaming as the underlaying default implementation even if manipulating a feed bean on its whole in memory. We have to see if how this could be done leveraging Abdera, else using StAX API directly. This also means we may get rid of the JDom dependency.</p>
<p>For example, the streaming version of an Atom parser and generator would be something like:</p>
<div class="source">
<pre>
public interface AtomReader {
// repeatable operation, returns was has been read from the header so far
Feed readFeed() throws FeedException;
// returns null when reaches the end of the feed
Entry readEntry() throws FeedException;
void close() throws FeedException;
}
public interface AtomWriter {
// if called must be called once and before a write(Entry)
void write(Feed feed) throws FeedException;
// if the first write is for an entry, then the output is an entry document
abstract void write(Entry entry) throws FeedException;
void close() throws FeedException;
}
</pre></div>
<p>As with ROME, in ROME2 Parsers will be as lenient as possible. Generators will be strict.</p></div>
<div class="section">
<h3>Feed Validators<a name="Feed_Validators"></a></h3>
<p>A bean FeedValidator class will verify that a feed or entry bean is valid for a given feed type. Feed generators would use this class to ensure feed correctness.</p></div>
<div class="section">
<h3>Feed Conversion<a name="Feed_Conversion"></a></h3>
<p>Conversion from Atom beans to RSS beans and vice versa will be done by a FeedConverter class that would have the following signature:</p>
<div class="source">
<pre>
public class FeedConverter {
public Feed convertToFeed(Channel channel, boolean processItems) { ... }
public Entry convertToEntry(Item item) { ... }
public Channel convertToChannel(Feed feed, boolean processEntries) { ... }
public Item convertToItem(Entry entry) { ... }
}
</pre></div>
<p>Because the mapping from Atom to RSS elements is sometimes subject do discussion and different requirements the FeedConverter class will be pluggable. It will implement the self-proxy pattern ROME2 API beans implement.</p></div>
<div class="section">
<h3>Parser and Generator Filters<a name="Parser_and_Generator_Filters"></a></h3>
<p>Manipulation of feeds during parsing and generation at feed/channel and entry/item level will be possible by implementing readers and writers wrappers that work on top of the original reader and writer instances.</p>
<p>This filtering/wrapping could be automated via configuration.</p></div>
<div class="section">
<h3>Sources<a name="Sources"></a></h3>
<ul>
<li><a href="./rome2proto.zip">rome2proto.zip</a></li></ul></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>

View file

@ -1,422 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME2 2nd Proposal (July 18th 2006) CURRENT</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>ROME2 2nd Proposal (July 18th 2006) CURRENT<a name="ROME2_2nd_Proposal_July_18th_2006_CURRENT"></a></h2>
<p>It has been 2 years since ROME started and along the way we've fixed, improved, enhanced and changed the API and the implementation. We've had to address things we did not think at first, we have to add support for specifications that were not around when ROME started, doing that has not being a hard task. The best indicator we've done a fair job with ROME is adoption.</p>
<p>Some cracks are starting to appear, mistakes in the design (such as overloading the use of DCModule), a bit of implementation over-engineering (such as the home grown bean-introspector and the <b>smart</b> ObjectBean &amp; co classes), a more complex than needed API (the existence of 2 abstraction levels for feed, Synd and Wire beans).</p>
<p>This proposal attempts to address the problems and limitations we currently have with ROME.</p>
<div class="section">
<h3>Backwards Compatibility, Support and Upgrade<a name="Backwards_Compatibility_Support_and_Upgrade"></a></h3>
<p>ROME2 will change the API breaking backwards compatibility (after all we are an Open Source Project and that is what they do best).</p>
<p>We will maintain ROME 1.0 (bugfixing only) for 1 year to allow a smooth transition for all ROME users. We will also prepare migration/upgrade tips (based on our own experience) for the ROME community.</p></div>
<div class="section">
<h3>Leveraging New Language Features<a name="Leveraging_New_Language_Features"></a></h3>
<p>ROME2 will make use of Generics to type collections in its beans. It will also use the <b>enum</b> construct when applicable.</p></div>
<div class="section">
<h3>Minimum Number of Dependencies<a name="Minimum_Number_of_Dependencies"></a></h3>
<p>ROME2 will implement its core competency (Atom and RSS parsing, generation and manipulation), it will leverage other components as much as possible but it will, as ROME, be as lean as possible not only in its code but in its dependencies (keeping them down to a reasonable minimum).</p></div>
<div class="section">
<h3>One Abstraction Level, 2 Models<a name="One_Abstraction_Level_2_Models"></a></h3>
<p>ROME2 will not have an abstract representation of feeds (the Synd beans). It will have 2 distinct models, Atom and RSS, both of them first citizens.</p>
<p>ROME2 users will use the model that fits more their needs.</p>
<p>Conversion (automatic and programmatic) between the 2 models will be part of ROME2.</p></div>
<div class="section">
<h3>Bean Interfaces<a name="Bean_Interfaces"></a></h3>
<p>After some discussions on the first ROME2 proposal we are going back to the interface model. The self proxy pattern proposed in the first proposal (to be able use arbitrary implementations) adds a bit of complexity into understanding what is going one plus it does not address in a clean way the needs for persistency (such as Hibernate or JPA).</p>
<p>All ROME2 beans will interfaces. Different from ROME, the implementation classes for the ROME2 beans will not be part of the public API. Instead using directly constructors to create ROME2 beans, a factory pattern will be used. A Convenience class, Rome, will wrap the factory class providing a concise way of creating a ROME2 bean.</p>
<p>For example, creating ROME2 beans using the Rome class convenience class will be something like:</p>
<div class="source">
<pre>
Feed feed = Rome.create(Feed.class);
Entry entry1 = Rome.create(Entry.class));
Entry entry2 = Rome.create(Entry);
feed.getEntries().add(entry1);
feed.getEntries().add(entry2);
</pre></div>
<p>Which is equivalent to (using the Rome Bean factory class):</p>
<div class="source">
<pre>
Feed feed = BeanFactory.getFactory().create(Feed.class);
Entry entry1 = BeanFactory.getFactory().create(Entry.class));
Entry entry2 = BeanFactory.getFactory().create(Entry);
feed.getEntries().add(entry1);
feed.getEntries().add(entry2);
</pre></div>
<p>To provide an alternate implementation beans an alternate set of beans will have to be provided. In addition, if necessary, an alternate bean factory could be used.</p>
<p>To write an alternate implementation the bean classes will have to implement the ROME2 interface beans.</p></div>
<div class="section">
<h3>Using multiple Bean implementations simultaneously<a name="Using_multiple_Bean_implementations_simultaneously"></a></h3>
<p>ROME2 will support the use of multiple implementation beans simultaneously by changing the bean factory at anytime.</p>
<p>A use case could be retrieving a feed from a persistent store (which uses its own implementation beans), retrieving a feed from the internet (using the default implementation beans), merging their entries and producing an output feed, into the persistent store or out to the internet.</p></div>
<div class="section">
<h3>Bean Factory Scopes<a name="Bean_Factory_Scopes"></a></h3>
<p>The bean factory will support a default factory and a context factory. The default factory is used if no context factory is available. The context factory uses a InheritableThreadLocal to store the factory in context, this is useful for use in dependency injection containers (Servlet, Spring, etc).</p></div>
<div class="section">
<h3>Collection Elements<a name="Collection_Elements"></a></h3>
<p>All collection properties (such as the authors, categories, contributors, links and entries of an Atom feed bean) will only have getter methods in the ROME2 API beans, no setter methods. For example:</p>
<div class="source">
<pre>
public class Feed {
public List&lt;Person&gt; getAuthors() { ... }
public List&lt;Category&gt; getCategories() { ... }
...
}
</pre></div>
<p>This will ensure that the implementation bean has control on the implementation of the collection being used. This is particularly important to enable alternate implementation beans to fetch data from a repository as the collection is iterated over.</p></div>
<div class="section">
<h3>Modules<a name="Modules"></a></h3>
<p>Feeds, both RSS and Atom, are extensible via namespaced elements at feed/channel and entry/item level, these namespace elements are known as modules. Beans supporting modules (feed, channel, entry and item) will all have the following method to support modules.</p>
<div class="source">
<pre>
public Map&lt;String,Module&gt; getModules() { ... }
</pre></div>
<p>Because modules are uniquely identified by their URI, a Map will be used, the key will be the URI of the module and the value the module itself. As with other ROME2 API bean collection properties, the getModules() property has a getter only, the Map implementation is controlled by the implementation bean.</p>
<p>Module URIs in ROME2, as all the links URLs in the beans, will be Strings thus reducing object creation explosion a bit. For cases that some URI manipulation is required, the JDK URI class should be used.</p></div>
<div class="section">
<h3>Dynamic Modules Support<a name="Dynamic_Modules_Support"></a></h3>
<p>ROME2 modules design has to ensure it provides simple and comprehensive support for dynamic modules such as SLE and GData.</p></div>
<div class="section">
<h3>Unknown Modules<a name="Unknown_Modules"></a></h3>
<p>A special Module subclass, UnknownModule, will serve as placeholder for module data not explicitly processed by ROME2 available parsers/generators. This will allow to consume and re-export a feed without losing unknown (to ROME2) modules. Each unknown module will be keyed off with its URI in the map of the associated feed, channel, entry or item.</p>
<p>The data of the unknown module will be available as a String. ROME2 users should not use =UnknownModule='s data directly, if they need to manipulate that data they should find or implement bean/parser/generator for the module they need to manipulate.</p>
<p>Because unknown modules brings some extra overhead in the parsing and generating process ROME2 will have a property to enable/disable processing of unknown modules.</p></div>
<div class="section">
<h3>The xml:lang Attributes<a name="The_xml:lang_Attributes"></a></h3>
<p>All ROME2 API beans will have xml:lang attributes, String and enum and primitive types properties won't.</p></div>
<div class="section">
<h3>The xml:base Attributes<a name="The_xml:base_Attributes"></a></h3>
<p>The xml:base attribute will not be present in any ROME2 API bean.</p>
<p>It will be the responsibility of the parsers to resolve any relative URL present in the feed at parsing time. Similarly, generators may relativize URLs as a size optimization (for God's sake we are doing XML).</p></div>
<div class="section">
<h3>Object Class Methods in ROME2 Beans<a name="Object_Class_Methods_in_ROME2_Beans"></a></h3>
<p>The equals() and hashCode() methods will not be overridden. As all ROME2 beans are mutable, it is not safe to use them as keys of hash structures.</p>
<p>Cloning will not be directly defined by ROME2 interface beans, instead they will have a copyFrom() method which is type safe and does a deep copy. Cloning a ROME2 bean will be a two step process, for example:</p>
<div class="source">
<pre>
Feed feed1 = Rome.create(Feed.class);
...
Feed feed2 = Rome.create(Feed.class);
feed2.copyFrom(feed1);
</pre></div>
<p>The toString() method in the beans will print the property that most likely identifies the bean plus the class name of the implementation bean. For example for a Feed bean the output of toString() would be:</p>
<div class="source">
<pre>
[xxx.rome2.impl.pojo.atom.FeedBean - http://foo.com/atom.xml]
</pre></div>
<p>--++ Plugins ClassLoading</p>
<p>Bean implementations, parsers, generators, converters and all pluggable ROME2 components will be loaded using the same classLoader ROME2 core classes are loaded from.</p>
<p>This is to keep simple the handling of them via singletons and their instantiation. Supporting different classLoaders would require complex handling for instantiation, to avoid missing classes and class mismatches.</p>
<p>NOTE: As an example of how easy things can go sour, imagine ROME2 core classes in the common path of a web-container and 2 web-apps adding their own beans/parsers/generators/modules, the singletons managing them are in ROME2 core, managed by the common classLoader, a simple singleton won't cut it. ROME2 core will be small enough that it will not be a memory consumption issue if it is once in each web-app.</p></div>
<div class="section">
<h3>Parsers and Generators<a name="Parsers_and_Generators"></a></h3>
<p>To support large feeds (several megabytes or even gigabytes) ROME2 will support stream parsing. We have to see if how this could be done leveraging Abdera, else using StAX API directly.</p>
<p>Using XML stream parsers/generators is more complicated than using a DOM ones, to make easier for developers to implement parsers and generators ROME2 will take care of the details of the XML streaming API and it will expose feed fragments (the feed header and entries) via the JDom API, as JDom Elements. For example, the streaming version of an Atom parser and generator would be something like:</p>
<div class="source">
<pre>
public interface AtomParser {
// A JDom Document with just the root element, its attributes and namespaces in it.
boolean canParseFeed(Document jdomDoc);
// repeatable operation, returns was has been read from the header so far
// feed parameter has whatever is has been readed from the feed header so far.
// If the given feed parameter is not null data from the jdom element is injected in it.
Feed parseFeed(Element jdomFeedElement, Feed feed) throws FeedException;
// the jdomFeedElement allows the parser to get context (such as base URL, namespaces)
// for the entry being parsed.
Entry parseEntry(Element jdomFeedElement, Element jdomEntryElement) throws FeedException;
}
public interface AtomGenerator {
String getFeedType();
// if called must be called once and before a generateEntry(Entry)
Element generateFeed(Feed feed) throws FeedException;
Element generateEntry(Entry entry) throws FeedException;
}
</pre></div>
<p>For Modules the parser and generator interface would be something like:</p>
<div class="source">
<pre>
public interface ModuleParser&lt;M extends Module&gt; {
String getUri();
M parseModule(Element jdomFeedElement);
M parseModule(Element jdomFeedElement, Element jdomEntryElement);
}
public interface ModuleGenerator&lt;M extends Module&gt; {
String getUri();
Element generateModule(M module);
}
</pre></div>
<p>Parsers and Generators for modules will follow the same principle.</p>
<p>As with ROME, in ROME2 Parsers will be as lenient as possible. Generators will be strict. </p></div>
<div class="section">
<h3>ROME2 IO classes<a name="ROME2_IO_classes"></a></h3>
<p>Feed parsers and generators will not be directly accessed by the ROME2 user, they are used by ROME2 to expose a more convenient API in the form of streaming API and builder API. For example:</p>
<div class="source">
<pre>
public class RomeIO {
// streaming API
public static AtomReader createAtomReader(Reader reader, boolean xmlHealing) { };
public static RssReader createRssReader(Reader reader, boolean xmlHealing) { };
public static AtomWriter createAtomWriter(Writer writer, String feedType) { };
public static RssWriter createRssWriter(Writer writer, String feedType) { };
// builder API
public Feed parseAsFeed(Reader reader) { };
public Channel parseAsChannel(Reader reader) { };
public void generate(Writer writer, Feed feed, String feedType) { };
public void generate(Writer writer, Channel channel, String feedType) { };
}
public interface AtomReader {
String getFeedType();
// repeatable read, returns the current parsed state of the feed header
Feed readFeed() throws FeedException;
// returns a feed entry while there are more, NULL when done
Entry readEntry() throws FeedException;
// closes the feed reader
void close() throws FeedException;
}
public interface AtomWriter {
String getFeedType();
// if called must be called once and before a write(Entry)
void writeFeed(Feed feed) throws FeedException;
// if the first write is for an Entry, then the output is an item document
void writeEntry(Entry entry) throws FeedException;
void close() throws FeedException;
}
</pre></div></div>
<div class="section">
<h3>Feed Validators<a name="Feed_Validators"></a></h3>
<p>A bean FeedValidator class will verify that a feed or entry bean is valid for a given feed type. Feed generators would use this class to ensure feed correctness.</p></div>
<div class="section">
<h3>Feed Conversion<a name="Feed_Conversion"></a></h3>
<p>Conversion from Atom to RSS beans and vice versa will be done by an implementation of the FeedConverter interface. Conversion will be supported at both feed/channel and entry/item level. All properties, including modules data will be copied, after an conversion the state of the beans will be completely independent.</p>
<p>The converter implementation will be pluggable, the implementation will be obtained from the bean factory and the Rome convenience class.</p>
<p>Conversion from Atom beans to RSS beans and vice versa will be done by a FeedConverter class that would have the following signature:</p>
<div class="source">
<pre>
public interface FeedConverter {
public Feed convertToFeed(Channel channel);
public Feed convertToFeed(Channel channel, boolean processItems);
public Entry convertToEntry(Item item);
public Channel convertToChannel(Feed feed);
public Channel convertToChannel(Feed feed, boolean processEntries);
public Item convertToItem(Entry entry);
}
</pre></div></div>
<div class="section">
<h3>Parser and Generator Filters<a name="Parser_and_Generator_Filters"></a></h3>
<p>Manipulation of feeds during parsing and generation at feed/channel and entry/item level would be possible by implementing readers and writers wrappers that work on top of the original reader and writer instances.</p>
<p>This filtering/wrapping could be automated via configuration.</p></div>
<div class="section">
<h3>Sources<a name="Sources"></a></h3>
<p>The following ZIP file only includes the ROME2 beans as described in this proposal, it does not include any of the parser, generator or IO API.</p>
<ul>
<li><a href="./rome2proto2.zip">rome2proto2.zip</a></li></ul></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>

View file

@ -1,218 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME Feature Requests</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>ROME Feature Requests<a name="ROME_Feature_Requests"></a></h2>
<ul>
<li><b>BUG:</b> com.rometools.rome.io.impl.DateParser:Date parseW3CDateTime(String) incorrectly uses a comma (&quot;,&quot;) rather than a decimal (&quot;.&quot;) to delimit the seconds from miliseconds. The correct format can be found on <a class="externalLink" href="http://www.w3.org/TR/NOTE-datetime">http://www.w3.org/TR/NOTE-datetime</a>. The bug is on line 170 (version 0.8). The fix is to replace the line with this: <tt>int secFraction = pre.indexOf(&quot;.&quot;);</tt> -- JLP 9/4/2006</li>
<li><b>BUG:</b> Atom 1.0 parsing uses wrong Content types. &quot;text&quot;, &quot;html&quot;, &quot;xhtml&quot; do not match what is parse from the content elements. Subsequently, the content elements always have a null value - no way to get content.</li>
<li><b>BUG:</b> Link in description is not parsed<br />Try to parse <a class="externalLink" href="http://jakarta.apache.org/site/rss.xml">http://jakarta.apache.org/site/rss.xml</a>, look at entry <a class="externalLink" href="http://jakarta.apache.org/site/news/news-2006-q1.html#20060107.1">http://jakarta.apache.org/site/news/news-2006-q1.html#20060107.1</a> This entry has an &quot;&lt;a href...&quot; in the first line, which isn't parsed by Rome -- Main.iterson - 25 Jan 2006</li>
<li><b>BUG:</b> Support all encodings<br />The problem is when reading RSS a space between the encoding to the value or ualue in '' insted of &quot;&quot; will cause error, for example: this will work work encoding=&quot;windows-1255&quot; but this: encoding = &quot;windows-1255&quot; or encoding='windows-1255' won't work.</li>
<li><b>BUG:</b> The reader doesn't attempt use the masks that defined in the rome.properties for reading the date for all date parsing method, e.g. RSS093Parser.parseItem uses DateParser.parserRFC822 which is not covered by that logic -- Main.den_st - 17 Jan 2006; if it will use the mask the code will run good. I had a problem to read date and I defined a mask in the properties file (datetime.extra.masks=yyyy-MM-dd'T'HH:mm:ss trying to read 2005-09-22T09:00:41} ). Then i try to change one of the mask at runtime to the mask i defined in the properties file and it works good. The logic in the code trys to format the date with each one of the default masks if it faild it returns null instead of trying to format the date using the format that defined in the rome.properties file.</li>
<li>Support for writing to OutputStreams. If I want to compress the feeds to a (.gz) file or write to a socket, I have to extend SyndFeedOutput and WireFeedOutput to add a method called output(SyndFeed, OuputStream). It would be nice to have that built in instead. -- Main.agherna - 08 Aug 2005</li>
<li>I'd like the getDate method on feeds and entries to go to the associated modules and retrieve the appropriate dc:date when the getDate() method returns null. This way entries from feeds like this one: <a class="externalLink" href="http://www.magpiebrain.com/index.xml">http://www.magpiebrain.com/index.xml</a> would have valid dates without requiring me to write code work out what format the feed is in and act accordingly.</li>
<li>Would like to see <a href="../../opml/index.html">OPML</a> parser also.<br /><tt>This is already supported by Rome</tt>. RSS2.0 parser, see <a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/FeedsDateElementsMappingToSyndFeedAndSyndEntry.html">Date Elements mapping</a> by default does not process Modules. Refer to the Modules Plugins documentation to see how to enable this.</li>
<li><a class="externalLink" href="http://bobwyman.pubsub.com/main/2004/09/implementations.html">RFC3229</a> support (in <a href="../../fetcher/index.html">RomeFetcher</a> and example code implementing it for production) would be a killer feature.</li>
<li>The RSS 1.0 Spec <a class="externalLink" href="http://web.resource.org/rss/1.0/spec">http://web.resource.org/rss/1.0/spec</a> indicates that the <b>suggested</b> maximum length for a description field on an entry is 500 characters, but the 0.4 codebase enforces 500 characters as a hard limit -- exceeding it on input or output generates a FeedException. Since one doesn't always have control over the feeds one consumes, it seems to me that it would be a good idea if Rome were more forgiving in accepting feed entries that exceed the suggested lengths.</li>
<li>Is there a chance to include an option in Rome for liberal parsing, ie. trying to get most out of a feed even when it's non-conforming without throwing exceptions? I believe RSS is pretty close to HTML not from a technical point of view but thinking of practical use. Hence, RSS feeds will be incorrect in many cases however they still could join the party with a tolerant parser. Maybe Rome could do for Java what <a class="externalLink" href="http://diveintomark.org/projects/feed_parser/">Mark Pilgrim</a> has done for Python (although I did not verify his ultraliberal parser's tolerance)?</li>
<li>More liberal parsing for dates, to handle un-parseable dates like: &quot;12 sep 1998&quot;, &quot;'05&quot; or monsters like this one : &quot;[2005]&quot;. I faced this problem using DCModule, dc:date attribute can have mentioned values. In older versions of my app there were no constrains for date format, so users have written them very freely.</li>
<li>I think that Rome has problems parsing rss feeds where the xml contains a link to a stylesheet. Try parsing <a class="externalLink" href="http://ihatemyflatmate.blogspot.com/atom.xml">http://ihatemyflatmate.blogspot.com/atom.xml</a> (Atom) or <a class="externalLink" href="http://msdn.microsoft.com/rss.xml">http://msdn.microsoft.com/rss.xml</a> (RSS 1.0). I get Exceptions with both, and they both have stylesheets, whereas other working feeds don't.</li>
<li>It would be very nice to have a possibility to add stylesheet to generated feed. I can do this by replacing header in generated String, but this method is ...</li>
<li>There are problems with the correct encoding of HTML when generating RSS2.0. It is in the area of extended character sets. If you encode the following:
<div class="source">
<pre>
&lt;FONT size=&quot;2&quot;&gt;Quatre pi&amp;amp;#232;ces&lt;/FONT&gt;
</pre></div>
<p>In the hope of gettin &quot;Quatre pi&#xe8;ces&quot; in your html feed. You get from the SynFeedOutput.output() this: </p>
<div class="source">
<pre>
&amp;amp;lt;FONT size=&quot;2&quot;&amp;amp;gt;Quatre pi&amp;amp;amp;#232;ces&amp;amp;lt;/FONT&amp;amp;gt;
</pre></div>
<p>Which ends up with &quot;Quatre pi&#xe8;ces&quot; being displayed in the RSS Reader that is taking your feed. To get the correct ouput I have had to resort to outputString.replaceAll(&quot;&#&quot;,&quot;&#&quot;); OK as a a workaround but not very elegant or performant! -- Main.rjwallis - 19 Mar 2005</p></li>
<li>From that what i know about Rome it's impossible to use &quot;&lt;[!CDDATA [&quot; entities in content of feed's tags. i know this isn't essential, but it would a very nice feature.</li>
<li>Provide support for lastBuildDate in RSS, many news provider, including Yahoo News and BBC use lastBuildDate instead of lastPublishDate.</li></ul></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>

View file

@ -1,202 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME Development Proposals</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 class="active">
<a href="#"><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>ROME Development Proposals<a name="ROME_Development_Proposals"></a></h2>
<div class="section">
<h3>ROME Development Proposals<a name="ROME_Development_Proposals"></a></h3>
<p>Link to new ROME feature and release proposals here.</p></div>
<div class="section">
<h3>ROME2 Proposal<a name="ROME2_Proposal"></a></h3>
<ul>
<li><a href="../ROMEROADMAPProposed.html">ROME ROADMAP (Proposed) (rome)</a></li>
<li><a href="./ROME21stProposalJune10th2006NOTCURRENT.html">ROME2 first proposal&#xa0;</a> (Jun/10/2006).</li>
<li><a href="./ROME22ndProposalJuly18th2006CURRENT.html">ROME2 second proposal&#xa0;</a> (Jul/18/2006).</li></ul></div>
<div class="section">
<h3>Requests for Enhancement (RFEs)<a name="Requests_for_Enhancement_RFEs"></a></h3>
<ul>
<li><a class="externalLink" href="https://github.com/rometools/rome/issues">Issue tracking system</a> - file RFEs here</li>
<li><a href="./ROMEFeatureRequests.html">Feature Requests</a> - old feature request page</li></ul></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>

View file

@ -1,217 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME ROADMAP (Proposed)</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>ROME ROADMAP (Proposed)<a name="ROME_ROADMAP_Proposed"></a></h2>
<table border="1" class="table table-striped">
<tr class="a">
<th align="left">version</th>
<th align="left">changes</th></tr>
<tr class="b">
<td align="left">1.1</td>
<td align="left">Omnibus release with ROME patches + JDK 1.5 changes.</td></tr>
<tr class="a">
<td align="left">1.5</td>
<td align="left">Migration to org.rometools (light break compat)</td></tr>
<tr class="b">
<td align="left">1.6</td>
<td align="left">Elimination of Synd* interfaces and Synd*Impl in favor of base objects (break compat)</td></tr>
<tr class="a">
<td align="left">1.7</td>
<td align="left">Introduction of &quot;Rome&quot; class with pass-by-ref context for modules</td></tr>
<tr class="b">
<td align="left">1.8</td>
<td align="left">Addition of a factory by package for the Rome class.</td></tr>
<tr class="a">
<td align="left">1.9</td>
<td align="left">JSR-330 remix of the Rome class and all deps.</td></tr></table>
<div class="section">
<h3>Old Development Proposals<a name="Old_Development_Proposals"></a></h3>
<ul>
<li><a href="./ROMEDevelopmentProposals/ROME22ndProposalJuly18th2006CURRENT.html">ROME2 2nd Proposal (July 18th 2006) CURRENT (rome)</a></li>
<li><a href="./ROMEDevelopmentProposals/ROME21stProposalJune10th2006NOTCURRENT.html">ROME2 1st Proposal (June 10th 2006) NOT CURRENT (rome)</a></li></ul></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>

View file

@ -1,215 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.1, How to build and run the tutorials sample code</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>Rome v0.1, How to build and run the tutorials sample code<a name="Rome_v0.1_How_to_build_and_run_the_tutorials_sample_code"></a></h2>
<div class="section">
<h3>Building the samples with Maven<a name="Building_the_samples_with_Maven"></a></h3>
<p>This is, as usual, the easiest way.</p>
<p>There's only one configuration step: Maven downloads dependencies from an online repository (by default ibiblio), to a local repository (on UNIX usually in ~/.maven/repository). Because the rome distribution is not yet on ibiblio, you need to add it yourself, either to your local repository, or to your own intranet maven repository if you have such a thing in your organization.</p>
<p>If you built Rome run maven jar:install in the rome project to install Rome's jar in your Maven repository.</p>
<p>If you got Rome binary distribution copy the Rome's jar file to your Maven repository (on UNIX that would be cp rome-0.1/rome-0.1.jar &#xa0; ~/.maven/repository/rome/jars/).</p>
<p>Then building the samples it's easy as a pie, just run maven jar in the rome-samples project and you are all set.</p></div>
<div class="section">
<h3>Building the samples with Ant<a name="Building_the_samples_with_Ant"></a></h3>
<p>Hopefully maven is helpful in supporting poor ant users who did not make the switch yet:-) We generated an Ant build.xml file in order for you to be able to build rome-samples with Ant. (Actually, Maven did it for us, the maven ant goal).</p>
<p>The targets present in the build.xml are very helpful, ant get-deps will download from ibiblio to rome-samples/target/lib all the jar files Rome depends on and are needed for building an application using Rome.</p>
<p>The only thing that will be left out is Rome's jar file itself: you'll need to copy it to the rome-samples/target/lib directory (For example in UNIX would be cp rome-0.1/rome-0.1.jar&#xa0; rome-samples/target/lib, where rome-0.1 is the binary distribution).</p>
<p>To build rome-samples just run ant jar.</p></div>
<div class="section">
<h3>Running the samples with Maven<a name="Running_the_samples_with_Maven"></a></h3>
<p>The Maven goals for running the samples are defined in maven.xml. They should all generate the same file named toto, but somehow it ends up empty. However the output is correctly sent to the console. We'll fix that glitch later.</p>
<p>maven run-agr runs the FeedAggregator sample</p>
<p>maven run-conv runs the FeedConverter sample</p>
<p>maven run-read runs the FeedReader sample</p></div>
<div class="section">
<h3>Running the samples with Ant<a name="Running_the_samples_with_Ant"></a></h3>
<p>All ant targets for the samples generate the same file named toto: feel free to customize this build.xml to your own needs. Also today all these targets depends on the jar target, which represents some overhead if you have already built. Get rid of that once your project is well setup.</p>
<p>ant run-aggr runs the FeedAggregator sample</p>
<p>ant run-conv runs the FeedConverter sample</p>
<p>ant run-read runs the FeedReader sample</p></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>

View file

@ -1,296 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.1 Tutorial, Using Rome to aggregate many syndication feeds into a single one</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>Rome v0.1 Tutorial, Using Rome to aggregate many syndication feeds into a single one<a name="Rome_v0.1_Tutorial_Using_Rome_to_aggregate_many_syndication_feeds_into_a_single_one"></a></h2>
<p><b>Software requirements:</b> J2SE 1.4+, Xerces 2.4.0, JDOM B10, Commons Codec 1.2 and Rome 0.1.</p>
<p>Rome represents syndication feeds (RSS and Atom) as instances of the com.rometools.rome.synd.SyndFeedI interface. The SyndFeedI interfaces and its properties follow the Java Bean patterns. The default implementations provided with Rome are all lightweight classes.</p>
<p>Rome includes parsers to process syndication feeds into SyndFeedI instances. The SyndInput class handles the parsers using the correct one based on the syndication feed being processed. The developer does not need to worry about selecting the right parser for a syndication feed, the SyndInput will take care of it by peeking at the syndication feed structure. All it takes to read a syndication feed using Rome are the following 2 lines of code:</p>
<div class="source">
<pre>
SyndInput input = new SyndInput();
SyndFeedI feed = input.build(feedUrl.openStream());
</pre></div>
<p>The first line creates a SyndInput instance that will work with any syndication feed type (RSS and Atom versions). The second line instructs the SyndInput to read the syndication feed from the InputStream of a URL pointing to the feed. The SyndInput.build() method returns a SyndFeedI instance that can be easily processed.</p>
<p>Rome also includes generators to create syndication feeds out of SyndFeedI instances. The SyndOutput class does this generation. When creating a syndication feed output, the developer has to indicate the syndication feed type for the ouput, and the SyndOutput will use the right generator for it. The following two lines of code show how to create a syndication feed output from a SyndFeedI instance:</p>
<div class="source">
<pre>
SyndOutput output = new SyndOutput(outputType);
output.output(feed,System.out);
</pre></div>
<p>The first line creates a SyndOutput instance that will produce syndication feeds of the type indicated by the outputType parameter. The outputType parameter can be any of the following values: rss_0.9, rss_0.91, rss_0.92, rss_0.93, rss_0.94, rss_1.0, rss_2.0 &amp; atom_0.3. The second line writes the SyndFeedI as a syndication feed into the application's output.</p>
<p>SyndFeedI can also be created and populated within the code. For example:</p>
<div class="source">
<pre>
SyndFeedI aggrFeed = new SyndFeed();
aggrFeed.setTitle(&quot;Aggregated Feed&quot;);
aggrFeed.setDescription(&quot;Anonymous Aggregated Feed&quot;);
aggrFeed.setAuthor(&quot;anonymous&quot;);
aggrFeed.setLink(&quot;http://www.anonymous.com&quot;);
</pre></div>
<p>The snipped of code above creates a SyndFeedI instance using the default implementation provided by Rome and sets the title, description, author and link properties of the feed.</p>
<p>SyndFeedI properties can be modified, assigned to other SyndFeedI instances, removed, etc. It's important to remember that the getters/setters semantics defined for all SyndFeedI properties (and properties of its properties) is a copy by reference, not by value. In other words if you alter the property of a SyndFeedI property you are altering the SyndFeedI. Or, another example, if you assign the list of entries of one SyndFeedI instance to another SyndFeedI isntance and then you modify the list or any of the entries in the list, you are modifying the entries of both SyndFeedI instances.</p>
<p>The following lines of code show how to copy the entries of a SyndFeedI instance being read (inFeed) into a SyndFeedI instance being created within the application (feed):</p>
<div class="source">
<pre>
SyndFeedI feed = new SyndFeed();
...
List entries = new ArrayList();
feed.setEntries(entries);
...
SyndInput input = new SyndInput(false);
SyndFeedI inFeed = input.build(inputUrl.openStream());
entries.addAll(inFeed.getEntries());
</pre></div>
<p>Note that it's OK to assign the entries list to the feed and later add entries to it as all SyndFeedI getters/setters do copy by reference.</p>
<p>Following is the full code for a Java application that reads a list of syndication feed, aggregates their items into a single feed, and writes the aggregated feed to the application's output.</p>
<div class="source">
<pre>
package com.rometools.rome.samples;
import java.net.URL;
import java.util.List;
import java.util.ArrayList;
import com.rometools.rome.feed.synd.SyndFeedI;
import com.rometools.rome.feed.synd.SyndFeed;
import com.rometools.rome.feed.synd.SyndEntryI;
import com.rometools.rome.io.SyndInput;
import com.rometools.rome.io.SyndOutput;
public class FeedAggregator {
public static void main(String[] args) {
boolean ok = false;
if (args.length&gt;=2) {
try {
String outputType = args[0];
SyndFeedI feed = new SyndFeed();
feed.setTitle(&quot;Aggregated Feed&quot;);
feed.setDescription(&quot;Anonymous Aggregated Feed&quot;);
feed.setAuthor(&quot;anonymous&quot;);
feed.setLink(&quot;http://www.anonymous.com&quot;);
List entries = new ArrayList();
feed.setEntries(entries);
for (int i=1;i&lt;args.length;i++) {
URL inputUrl = new URL(args[i]);
SyndInput input = new SyndInput(false);
SyndFeedI inFeed = input.build(inputUrl.openStream());
entries.addAll(inFeed.getEntries());
}
SyndOutput output = new SyndOutput(outputType);
output.output(feed,System.out);
ok = true;
}
catch (Exception ex) {
System.out.println(&quot;ERROR: &quot;+ex.getMessage());
}
}
if (!ok) {
System.out.println();
System.out.println(&quot;FeedAggregator aggregates different feeds into a single one.&quot;);
System.out.println(&quot;The first parameter must be the feed type for the aggregated feed.&quot;);
System.out.println(&quot; [valid values are: rss_0.9, rss_0.91, rss_0.92, rss_0.93, ]&quot;);
System.out.println(&quot; [ rss_0.94, rss_1.0, rss_2.0 &amp; atom_0.3 ]&quot;);
System.out.println(&quot;The second to last parameters are the URLs of feeds to aggregate.&quot;);
System.out.println();
}
}
}
</pre></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>

View file

@ -1,252 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.1 Tutorial, Using Rome to convert a syndication feed from one type to another</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>Rome v0.1 Tutorial, Using Rome to convert a syndication feed from one type to another<a name="Rome_v0.1_Tutorial_Using_Rome_to_convert_a_syndication_feed_from_one_type_to_another"></a></h2>
<p><b>Software requirements:</b> Synd J2SE 1.4+, Xerces 2.4.0, JDOM B10, Commons Codec 1.2 and Rome 0.1.</p>
<p>Rome represents syndication feeds (RSS and Atom) as instances of the com.rometools.rome.synd.SyndFeedI interface. The SyndFeedI interfaces and its properties follow the Java Bean patterns. The default implementations provided with Rome are all lightweight classes.</p>
<p>Rome includes parsers to process syndication feeds into SyndFeedI instances. The SyndInput class handles the parsers using the correct one based on the syndication feed being processed. The developer does not need to worry about selecting the right parser for a syndication feed, the SyndInput will take care of it by peeking at the syndication feed structure. All it takes to read a syndication feed using Rome are the following 2 lines of code:</p>
<div class="source">
<pre>
SyndInput input = new SyndInput();
SyndFeedI feed = input.build(feedUrl.openStream());
</pre></div>
<p>The first line creates a SyndInput instance that will work with any syndication feed type (RSS and Atom versions). The second line instructs the SyndInput to read the syndication feed from the InputStream of a URL pointing to the feed. The SyndInput.build() method returns a SyndFeedI instance that can be easily processed.</p>
<p>Rome also includes generators to create syndication feeds out of SyndFeedI instances. The SyndOutput class does this generation. When creating a syndication feed output, the developer has to indicate the syndication feed type for the ouput, and the SyndOutput will use the right generator for it. The following two lines of code show how to create a syndication feed output from a SyndFeedI instance:</p>
<div class="source">
<pre>
SyndOutput output = new SyndOutput(outputType);
output.output(feed,System.out);
</pre></div>
<p>The first line creates a SyndOutput instance that will produce syndication feeds of the type indicated by the outputType parameter. The outputType parameter can be any of the following values: rss_0.9, rss_0.91, rss_0.92, rss_0.93, rss_0.94, rss_1.0, rss_2.0 &amp; atom_0.3. The second line writes the SyndFeedI as a syndication feed into the application's output.</p>
<p>Following is the full code for a Java application that reads a syndication feed and converts it to other syndication feed type, writing the converted feed to the application's output.</p>
<div class="source">
<pre>
package com.rometools.rome.samples;
import java.net.URL;
import com.rometools.rome.feed.synd.SyndFeedI;
import com.rometools.rome.io.SyndInput;
import com.rometools.rome.io.SyndOutput;
public class FeedConverter {
public static void main(String[] args) {
boolean ok = false;
if (args.length==2) {
try {
String outputType = args[0];
URL feedUrl = new URL(args[1]);
SyndInput input = new SyndInput(false);
SyndFeedI feed = input.build(feedUrl.openStream());
SyndOutput output = new SyndOutput(outputType);
output.output(feed,System.out);
ok = true;
}
catch (Exception ex) {
System.out.println(&quot;ERROR: &quot;+ex.getMessage());
}
}
if (!ok) {
System.out.println();
System.out.println(&quot;FeedConverter converts between syndication feeds types.&quot;);
System.out.println(&quot;The first parameter must be the feed type to convert to.&quot;);
System.out.println(&quot; [valid values are: rss_0.9, rss_0.91, rss_0.92, rss_0.93, ]&quot;);
System.out.println(&quot; [ rss_0.94, rss_1.0, rss_2.0 &amp; atom_0.3 ]&quot;);
System.out.println(&quot;The second parameter must be the URL of the feed to convert.&quot;);
System.out.println();
}
}
}
</pre></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>

View file

@ -1,243 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.1 Tutorial, Using Rome to read a syndication feed</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>Rome v0.1 Tutorial, Using Rome to read a syndication feed<a name="Rome_v0.1_Tutorial_Using_Rome_to_read_a_syndication_feed"></a></h2>
<p><b>Software requirements:</b> J2SE 1.4+, Xerces 2.4.0, JDOM B10, Commons Codec 1.2 and Rome 0.1.</p>
<p>Rome represents syndication feeds (RSS and Atom) as instances of the com.rometools.rome.synd.SyndFeedI interface. The SyndFeedI interfaces and its properties follow the Java Bean patterns. The default implementations provided with Rome are all lightweight classes.</p>
<p>Rome includes parsers to process syndication feeds into SyndFeedI instances. The SyndInput class handles the parsers using the correct one based on the syndication feed being processed. The developer does not need to worry about selecting the right parser for a syndication feed, the SyndInput will take care of it by peeking at the syndication feed structure. All it takes to read a syndication feed using Rome are the following 2 lines of code:</p>
<div class="source">
<pre>
SyndInput input = new SyndInput();
SyndFeedI feed = input.build(feedUrl.openStream());
</pre></div>
<p>The first line creates a SyndInput instance that will work with any syndication feed type (RSS and Atom versions). The second line instructs the SyndInput to read the syndication feed from the InputStream of a URL pointing to the feed. The SyndInput.build() method returns a SyndFeedI instance that can be easily processed.</p>
<p>The default SyndFeedI implementation has a detailed and clear toString() implementation. The following line just prints it to the application's output.</p>
<div class="source">
<pre>
System.out.println(feed);
</pre></div>
<p>Following is the full code for a Java application that reads a syndication feed and prints the SyndFeedI bean to the application's output.</p>
<div class="source">
<pre>
package com.rometools.rome.samples;
import java.net.URL;
import com.rometools.rome.feed.synd.SyndFeedI;
import com.rometools.rome.io.SyndInput;
public class FeedReader {
public static void main(String[] args) {
boolean ok = false;
if (args.length==1) {
try {
URL feedUrl = new URL(args[0]);
SyndInput input = new SyndInput();
SyndFeedI feed = input.build(feedUrl.openStream());
System.out.println(feed);
ok = true;
}
catch (Exception ex) {
System.out.println(&quot;ERROR: &quot;+ex.getMessage());
}
}
if (!ok) {
System.out.println();
System.out.println(&quot;FeedReader reads and prints any RSS/Atom feed type.&quot;);
System.out.println(&quot;The first parameter must be the URL of the feed to read.&quot;);
System.out.println();
}
}
}
</pre></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>

View file

@ -1,196 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.1 Tutorials</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>Rome v0.1 Tutorials<a name="Rome_v0.1_Tutorials"></a></h2>
<p>The following tutorials show how to use the Rome API. They focus on the higher abstraction layer of classes offered by Rome, what we call the Synd* classes. By using the Synd* classes developers don't have to deal with the specifics of any syndication feed. They work with normalized feeds, the Synd* feeds. This makes it much easier to write applications that have to deal with all the variety of syndication feed types in use today.</p>
<ol style="list-style-type: decimal">
<li><a href="./RomeV0.1TutorialUsingRomeToReadASyndicationFeed.html">Using Rome to read a syndication feed</a></li>
<li><a href="./RomeV0.1TutorialUsingRomeToConvertASyndicationFeedFromOneTypeToAnother.html">Using Rome to convert a syndication feed from one type to another</a></li>
<li><a href="./RomeV0.1TutorialUsingRomeToAggregateManySyndicationFeedsIntoASingleOne.html">Using Rome to aggregate many syndication feeds into a single one</a></li></ol>
<p>For instructions on how to build and run the samples used in the tutorials <a href="./RomeV0.1HowToBuildAndRunTheTutorialsSampleCode.html">click here</a>.</p></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>

View file

@ -1,301 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME 0.1 Beta</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-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../../ROMEReleases/ROME1.0Release.html" title="ROME 1.0">
<i class="none"></i>
ROME 1.0</a>
</li>
<li>
<a href="../../ROMEReleases/ROME1.0RC2.html" title="ROME 1.0 RC2">
<i class="none"></i>
ROME 1.0 RC2</a>
</li>
<li>
<a href="../../ROMEReleases/ROME1.0RC1.html" title="ROME 1.0 RC1">
<i class="none"></i>
ROME 1.0 RC1</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.9Beta.html" title="ROME 0.9 Beta">
<i class="none"></i>
ROME 0.9 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.8Beta.html" title="ROME 0.8 Beta">
<i class="none"></i>
ROME 0.8 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.7Beta.html" title="ROME 0.7 Beta">
<i class="none"></i>
ROME 0.7 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.6Beta.html" title="ROME 0.6 Beta">
<i class="none"></i>
ROME 0.6 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.5Beta/index.html" title="ROME 0.5 Beta">
<i class="none"></i>
ROME 0.5 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.4Beta/index.html" title="ROME 0.4 Beta">
<i class="none"></i>
ROME 0.4 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.3Beta/index.html" title="ROME 0.3 Beta">
<i class="none"></i>
ROME 0.3 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.2Beta/index.html" title="ROME 0.2 Beta">
<i class="none"></i>
ROME 0.2 Beta</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>ROME 0.1 Beta</a>
</li>
</ul>
</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>ROME 0.1 Beta<a name="ROME_0.1_Beta"></a></h2>
<div class="section">
<h3>Dependencies<a name="Dependencies"></a></h3>
<ul>
<li>J2SE 1.4+ (Not J2SE 1.3+ as it was initially documented)</li>
<li><a class="externalLink" href="http://www.jdom.org/">JDOM Beta 10</a></li>
<li><a class="externalLink" href="http://jakarta.apache.org/commons/codec/">Jakarta Commons Codec 1.2</a></li>
<li>Rome v0.1 does not depend on Xerces as it was initially documented</li></ul></div>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-0.1-src.zip">rome-0.1-src.zip</a></li>
<li><a href="./rome-0.1.tar.gz">rome-0.1.tar.gz</a></li>
<li><a href="./rome-0.1.zip">rome-0.1.zip</a></li>
<li><a href="./rome-0.1-src.tar.gz">rome-0.1-src.tar.gz</a></li>
<li><a href="./rome-samples-0.1-src.zip">rome-samples-0.1-src.zip</a></li>
<li><a href="./rome-samples-0.1.tar.gz">rome-samples-0.1.tar.gz</a></li>
<li><a href="./rome-samples-0.1.zip">rome-samples-0.1.zip</a></li>
<li><a href="./rome-samples-0.1-src.tar.gz">rome-samples-0.1-src.tar.gz</a></li></ul></div>
<div class="section">
<h3>Additional Information<a name="Additional_Information"></a></h3>
<ul>
<li><a href="./RomeV0.1Tutorials/index.html">Tutorials</a></li></ul></div>
<div class="section">
<h3>Known Issues<a name="Known_Issues"></a></h3>
<ul>
<li>On Mac OS X 10.2.8 Maven cannot run the samples, the JVM exist with a reflection error in a native method</li>
<li>On Mac OS X 10.2.8 to run the samples using Ant you need to include Xerces 2.4.0 in the CLASSPATH. Otherwise it does not the XML Parser implementation</li></ul></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>

View file

@ -1,291 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.2 Tutorial, Using Rome to aggregate many syndication feeds into a single one</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>Rome v0.2 Tutorial, Using Rome to aggregate many syndication feeds into a single one<a name="Rome_v0.2_Tutorial_Using_Rome_to_aggregate_many_syndication_feeds_into_a_single_one"></a></h2>
<p><b>Software requirements:</b> J2SE 1.4+, JDOM B10 and Rome 0.2.</p>
<p>Rome represents syndication feeds (RSS and Atom) as instances of the com.rometools.rome.synd.SyndFeedI interface. The SyndFeedI interfaces and its properties follow the Java Bean patterns. The default implementations provided with Rome are all lightweight classes.</p>
<p>Rome includes parsers to process syndication feeds into SyndFeedI instances. The SyndFeedInput class handles the parsers using the correct one based on the syndication feed being processed. The developer does not need to worry about selecting the right parser for a syndication feed, the SyndFeedInput will take care of it by peeking at the syndication feed structure. All it takes to read a syndication feed using Rome are the following 2 lines of code:</p>
<div class="source">
<pre>
SyndFeedInput input = new SyndFeedInput();
SyndFeedI feed = input.build(feedUrl.openStream());
</pre></div>
<p>The first line creates a SyndFeedInput instance that will work with any syndication feed type (RSS and Atom versions). The second line instructs the SyndFeedInput to read the syndication feed from the InputStream of a URL pointing to the feed. The SyndFeedInput.build() method returns a SyndFeedI instance that can be easily processed.</p>
<p>Rome also includes generators to create syndication feeds out of SyndFeedI instances. The SyndFeedOutput class does this generation. The SyndFeedOutput will generate a syndication feed of the feed type indicated by the SyndFeedI object being output. The following two lines of code show how to create a syndication feed output from a SyndFeedI instance:</p>
<div class="source">
<pre>
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,System.out);
</pre></div>
<p>The first line creates a SyndFeedOutput instance that will produce syndication feeds. It can output feeds of any type (rss_0.9, rss_0.91, rss_0.92, rss_0.93, rss_0.94, rss_1.0, rss_2.0 &amp; atom_0.3), the SyndFeedI feedType property indicates the type. The second line writes the SyndFeedI as a syndication feed into the application's output.</p>
<p>SyndFeedI can also be created and populated within the code. For example:</p>
<div class="source">
<pre>
SyndFeedI aggrFeed = new SyndFeed();
aggrFeed.setFeedType(&quot;rss_1.0&quot;);
aggrFeed.setTitle(&quot;Aggregated Feed&quot;);
aggrFeed.setDescription(&quot;Anonymous Aggregated Feed&quot;);
aggrFeed.setAuthor(&quot;anonymous&quot;);
aggrFeed.setLink(&quot;http://www.anonymous.com&quot;);
</pre></div>
<p>The snipped of code above creates a SyndFeedI instance using the default implementation provided by Rome, sets the feed type to RSS 1.0, sets the title, description, author and link properties of the feed.</p>
<p>SyndFeedI properties can be modified, assigned to other SyndFeedI instances, removed, etc. It's important to remember that the getters/setters semantics defined for all SyndFeedI properties (and properties of its properties) is a copy by reference, not by value. In other words if you alter the property of a SyndFeedI property you are altering the SyndFeedI. Or, another example, if you assign the list of entries of one SyndFeedI instance to another SyndFeedI isntance and then you modify the list or any of the entries in the list, you are modifying the entries of both SyndFeedI instances.</p>
<p>The following lines of code show how to copy the entries of a SyndFeedI instance being read (inFeed) into a SyndFeedI instance being created within the application (feed):</p>
<div class="source">
<pre>
package com.rometools.rome.samples;
import java.net.URL;
import java.util.List;
import java.util.ArrayList;
import com.rometools.rome.feed.synd.SyndFeedI;
import com.rometools.rome.feed.synd.SyndFeed;
import com.rometools.rome.io.SyndFeedOutput;
import com.rometools.rome.io.SyndFeedInput;
/**
* It aggregates a list of RSS/Atom feeds (they can be of different types)
* into a single feed of the specified type.
* &lt;p&gt;
* @author Alejandro Abdelnur
*
*/
public class FeedAggregator {
public static void main(String[] args) {
boolean ok = false;
if (args.length&gt;=2) {
try {
String outputType = args[0];
SyndFeedI feed = new SyndFeed();
feed.setFeedType(outputType);
feed.setTitle(&quot;Aggregated Feed&quot;);
feed.setDescription(&quot;Anonymous Aggregated Feed&quot;);
feed.setAuthor(&quot;anonymous&quot;);
feed.setLink(&quot;http://www.anonymous.com&quot;);
List entries = new ArrayList();
feed.setEntries(entries);
for (int i=1;i&lt;args.length;i++) {
URL inputUrl = new URL(args[i]);
SyndFeedInput input = new SyndFeedInput();
SyndFeedI inFeed = input.build(inputUrl.openStream());
entries.addAll(inFeed.getEntries());
}
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,System.out);
ok = true;
}
catch (Exception ex) {
System.out.println(&quot;ERROR: &quot;+ex.getMessage());
}
}
if (!ok) {
System.out.println();
System.out.println(&quot;FeedAggregator aggregates different feeds into a single one.&quot;);
System.out.println(&quot;The first parameter must be the feed type for the aggregated feed.&quot;);
System.out.println(&quot; [valid values are: rss_0.9, rss_0.91, rss_0.92, rss_0.93, ]&quot;);
System.out.println(&quot; [ rss_0.94, rss_1.0, rss_2.0 &amp; atom_0.3 ]&quot;);
System.out.println(&quot;The second to last parameters are the URLs of feeds to aggregate.&quot;);
System.out.println();
}
}
}
</pre></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>

View file

@ -1,259 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.2 Tutorial, Using Rome to convert a syndication feed from one type to another</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>Rome v0.2 Tutorial, Using Rome to convert a syndication feed from one type to another<a name="Rome_v0.2_Tutorial_Using_Rome_to_convert_a_syndication_feed_from_one_type_to_another"></a></h2>
<p><b>Software requirements:</b> Synd J2SE 1.4+, JDOM B10 and Rome 0.2.</p>
<p>Rome represents syndication feeds (RSS and Atom) as instances of the com.rometools.rome.synd.SyndFeedI interface. The SyndFeedI interfaces and its properties follow the Java Bean patterns. The default implementations provided with Rome are all lightweight classes.</p>
<p>Rome includes parsers to process syndication feeds into SyndFeedI instances. The SyndFeedInput class handles the parsers using the correct one based on the syndication feed being processed. The developer does not need to worry about selecting the right parser for a syndication feed, the SyndFeedInput will take care of it by peeking at the syndication feed structure. All it takes to read a syndication feed using Rome are the following 2 lines of code:</p>
<div class="source">
<pre>
SyndFeedInput input = new SyndFeedInput();
SyndFeedI feed = input.build(feedUrl.openStream());
</pre></div>
<p>The first line creates a SyndFeedInput instance that will work with any syndication feed type (RSS and Atom versions). The second line instructs the SyndFeedInput to read the syndication feed from the InputStream of a URL pointing to the feed. The SyndFeedInput.build() method returns a SyndFeedI instance that can be easily processed.</p>
<p>Rome also includes generators to create syndication feeds out of SyndFeedI instances. The SyndFeedOutput class does this generation. The SyndFeedOutput will generate a syndication feed of the feed type indicated by the SyndFeedI object being output. The following two lines of code show how to create a syndication feed output from a SyndFeedI instance:</p>
<div class="source">
<pre>
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,System.out);
</pre></div>
<p>The first line creates a SyndFeedOutput instance that will produce syndication feeds. It can output feeds of any type (rss_0.9, rss_0.91, rss_0.92, rss_0.93, rss_0.94, rss_1.0, rss_2.0 &amp; atom_0.3), the SyndFeedI feedType property indicates the type. The second line writes the SyndFeedI as a syndication feed into the application's output.</p>
<p>Following is the full code for a Java application that reads a syndication feed and converts it to other syndication feed type, writing the converted feed to the application's output.</p>
<div class="source">
<pre>
package com.rometools.rome.samples;
import java.net.URL;
import com.rometools.rome.feed.synd.SyndFeedI;
import com.rometools.rome.io.SyndFeedInput;
import com.rometools.rome.io.SyndFeedOutput;
/**
* It Converts any RSS/Atom feed type to a an RSS/Atom feed of the
* specified type.
* &lt;p&gt;
* @author Alejandro Abdelnur
*
*/
public class FeedConverter {
public static void main(String[] args) {
boolean ok = false;
if (args.length==2) {
try {
String outputType = args[0];
URL feedUrl = new URL(args[1]);
SyndFeedInput input = new SyndFeedInput();
SyndFeedI feed = input.build(feedUrl.openStream());
feed.setFeedType(outputType);
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,System.out);
ok = true;
}
catch (Exception ex) {
System.out.println(&quot;ERROR: &quot;+ex.getMessage());
}
}
if (!ok) {
System.out.println();
System.out.println(&quot;FeedConverter converts between syndication feeds types.&quot;);
System.out.println(&quot;The first parameter must be the feed type to convert to.&quot;);
System.out.println(&quot; [valid values are: rss_0.9, rss_0.91, rss_0.92, rss_0.93, ]&quot;);
System.out.println(&quot; [ rss_0.94, rss_1.0, rss_2.0 &amp; atom_0.3 ]&quot;);
System.out.println(&quot;The second parameter must be the URL of the feed to convert.&quot;);
System.out.println();
}
}
}
</pre></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>

View file

@ -1,250 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.2 Tutorial, Using Rome to read a syndication feed</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>Rome v0.2 Tutorial, Using Rome to read a syndication feed<a name="Rome_v0.2_Tutorial_Using_Rome_to_read_a_syndication_feed"></a></h2>
<p><b>Software requirements:</b> J2SE 1.4+, JDOM B10 and Rome 0.2.</p>
<p>Rome represents syndication feeds (RSS and Atom) as instances of the com.rometools.rome.synd.SyndFeedI interface. The SyndFeedI interfaces and its properties follow the Java Bean patterns. The default implementations provided with Rome are all lightweight classes.</p>
<p>Rome includes parsers to process syndication feeds into SyndFeedI instances. The SyndFeedInput class handles the parsers using the correct one based on the syndication feed being processed. The developer does not need to worry about selecting the right parser for a syndication feed, the SyndFeedInput will take care of it by peeking at the syndication feed structure. All it takes to read a syndication feed using Rome are the following 2 lines of code:</p>
<div class="source">
<pre>
SyndFeedInput input = new SyndFeedInput();
SyndFeedI feed = input.build(feedUrl.openStream());
</pre></div>
<p>The first line creates a SyndFeedInput instance that will work with any syndication feed type (RSS and Atom versions). The second line instructs the SyndFeedInput to read the syndication feed from the InputStream of a URL pointing to the feed. The SyndFeedInput.build() method returns a SyndFeedI instance that can be easily processed.</p>
<p>The default SyndFeedI implementation has a detailed and clear toString() implementation. The following line just prints it to the application's output.</p>
<div class="source">
<pre>
System.out.println(feed);
</pre></div>
<p>Following is the full code for a Java application that reads a syndication feed and prints the SyndFeedI bean to the application's output.</p>
<div class="source">
<pre>
package com.rometools.rome.samples;
import java.net.URL;
import com.rometools.rome.feed.synd.SyndFeedI;
import com.rometools.rome.io.SyndFeedInput;
/**
* It Reads and prints any RSS/Atom feed type.
* &lt;p&gt;
* @author Alejandro Abdelnur
*
*/
public class FeedReader {
public static void main(String[] args) {
boolean ok = false;
if (args.length==1) {
try {
URL feedUrl = new URL(args[0]);
SyndFeedInput input = new SyndFeedInput();
SyndFeedI feed = input.build(feedUrl.openStream());
System.out.println(feed);
ok = true;
}
catch (Exception ex) {
ex.printStackTrace();
System.out.println(&quot;ERROR: &quot;+ex.getMessage());
}
}
if (!ok) {
System.out.println();
System.out.println(&quot;FeedReader reads and prints any RSS/Atom feed type.&quot;);
System.out.println(&quot;The first parameter must be the URL of the feed to read.&quot;);
System.out.println();
}
}
}
</pre></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>

View file

@ -1,196 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.2 Tutorials</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>Rome v0.2 Tutorials<a name="Rome_v0.2_Tutorials"></a></h2>
<p>The following tutorials show how to use the Rome API. They focus on the higher abstraction layer of classes offered by Rome, what we call the Synd* classes. By using the Synd* classes developers don't have to deal with the specifics of any syndication feed. They work with normalized feeds, the Synd* feeds. This makes it much easier to write applications that have to deal with all the variety of syndication feed types in use today.</p>
<ol style="list-style-type: decimal">
<li><a href="./RomeV0.2TutorialUsingRomeToReadASyndicationFeed.html">Using Rome to read a syndication feed</a></li>
<li><a href="./RomeV0.2TutorialUsingRomeToConvertASyndicationFeedFromOneTypeToAnother.html">Using Rome to convert a syndication feed from one type to another</a></li>
<li><a href="./RomeV0.2TutorialUsingRomeToAggregateManySyndicationFeedsIntoASingleOne.html">Using Rome to aggregate many syndication feeds into a single one</a></li></ol>
<p>The instructions for building and running the samples are identical to the&#xa0;<a href="../../ROME0.1Beta/RomeV0.1Tutorials/RomeV0.1HowToBuildAndRunTheTutorialsSampleCode.html">instructions for Rome v0.1</a>.</p></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>

View file

@ -1,299 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME 0.2 Beta</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-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../../ROMEReleases/ROME1.0Release.html" title="ROME 1.0">
<i class="none"></i>
ROME 1.0</a>
</li>
<li>
<a href="../../ROMEReleases/ROME1.0RC2.html" title="ROME 1.0 RC2">
<i class="none"></i>
ROME 1.0 RC2</a>
</li>
<li>
<a href="../../ROMEReleases/ROME1.0RC1.html" title="ROME 1.0 RC1">
<i class="none"></i>
ROME 1.0 RC1</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.9Beta.html" title="ROME 0.9 Beta">
<i class="none"></i>
ROME 0.9 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.8Beta.html" title="ROME 0.8 Beta">
<i class="none"></i>
ROME 0.8 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.7Beta.html" title="ROME 0.7 Beta">
<i class="none"></i>
ROME 0.7 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.6Beta.html" title="ROME 0.6 Beta">
<i class="none"></i>
ROME 0.6 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.5Beta/index.html" title="ROME 0.5 Beta">
<i class="none"></i>
ROME 0.5 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.4Beta/index.html" title="ROME 0.4 Beta">
<i class="none"></i>
ROME 0.4 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.3Beta/index.html" title="ROME 0.3 Beta">
<i class="none"></i>
ROME 0.3 Beta</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>ROME 0.2 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.1Beta/index.html" title="ROME 0.1 Beta">
<i class="none"></i>
ROME 0.1 Beta</a>
</li>
</ul>
</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>ROME 0.2 Beta<a name="ROME_0.2_Beta"></a></h2>
<div class="section">
<h3>Dependencies<a name="Dependencies"></a></h3>
<ul>
<li>J2SE 1.4+</li>
<li><a class="externalLink" href="http://www.jdom.org/">JDOM Beta 10</a></li></ul></div>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-0.2-src.zip">rome-0.2-src.zip</a></li>
<li><a href="./rome-0.2.tar.gz">rome-0.2.tar.gz</a></li>
<li><a href="./rome-0.2.zip">rome-0.2.zip</a></li>
<li><a href="./rome-0.2-src.tar.gz">rome-0.2-src.tar.gz</a></li>
<li><a href="./rome-samples-0.2-src.tar.gz">rome-samples-0.2-src.tar.gz</a></li>
<li><a href="./rome-samples-0.2.tar.gz">rome-samples-0.2.tar.gz</a></li>
<li><a href="./rome-samples-0.2.zip">rome-samples-0.2.zip</a></li>
<li><a href="./rome-samples-0.2-src.zip">rome-samples-0.2-src.zip</a></li></ul></div>
<div class="section">
<h3>Aditional Information<a name="Aditional_Information"></a></h3>
<ul>
<li><a href="./RomeV0.2Tutorials/index.html">Tutorials</a></li>
<li>Changes Log</li></ul></div>
<div class="section">
<h3>Known Issues<a name="Known_Issues"></a></h3>
<ul>
<li>Same issues as Rome v0.1</li></ul></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>

View file

@ -1,221 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.3, How to build and run the tutorials sample code</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>Rome v0.3, How to build and run the tutorials sample code<a name="Rome_v0.3_How_to_build_and_run_the_tutorials_sample_code"></a></h2>
<div class="section">
<h3>Building the samples with Maven<a name="Building_the_samples_with_Maven"></a></h3>
<p>This is, as usual, the easiest way.</p>
<p>There's only one configuration step: Maven downloads dependencies from an online repository (by default ibiblio), to a local repository (on UNIX usually in <tt>~/.maven/repository</tt>). Because the rome distribution is not yet on ibiblio, you need to add it yourself, either to your local repository, or to your own intranet maven repository if you have such a thing in your organization.</p>
<p>If you built Rome run maven jar:install in the rome project to install Rome's jar in your Maven repository.</p>
<p>If you got Rome binary distribution copy the Rome's jar file to your Maven repository (on UNIX that would be <tt>cp rome-0.3/rome-0.3.jar &#xa0; ~/.maven/repository/rome/jars/</tt>).</p>
<p>Then building the samples it's easy as a pie, just run maven jar in the rome-samples project and you are all set.</p></div>
<div class="section">
<h3>Building the samples with Ant<a name="Building_the_samples_with_Ant"></a></h3>
<p>Hopefully maven is helpful in supporting poor ant users who did not make the switch yet We generated an Ant build.xml file in order for you to be able to build rome-samples with Ant. (Actually, Maven did it for us, the maven ant goal).</p>
<p>The targets present in the build.xml are very helpful, ant get-deps will download from ibiblio to rome-samples/target/lib all the jar files Rome depends on and are needed for building an application using Rome.</p>
<p>The only thing that will be left out is Rome's jar file itself: you'll need to copy it to the rome-samples/target/lib directory (For example in UNIX would be <tt>cp rome-0.3/rome-0.3.jar&#xa0; rome-samples/target/lib</tt>, where rome-0.3 is the binary distribution).</p>
<p>To build rome-samples just run <tt>ant jar</tt>.</p></div>
<div class="section">
<h3>Running the samples with Maven<a name="Running_the_samples_with_Maven"></a></h3>
<p>The Maven goals for running the samples are defined in maven.xml. They should all generate the same file named toto, but somehow it ends up empty. However the output is correctly sent to the console. We'll fix that glitch later.</p>
<ul>
<li><tt>maven run-agr</tt> runs the FeedAggregator sample</li>
<li><tt>maven run-conv</tt> runs the FeedConverter sample</li>
<li><tt>maven run-read</tt> runs the FeedReader sample</li>
<li><tt>maven run-write</tt> runs the FeedWriter sample</li>
<li><tt>maven run-sampleModule</tt> runs the FeedConverter sample against a file with Sample Module data (shows off custom module plugin)</li></ul></div>
<div class="section">
<h3>Running the samples with Ant<a name="Running_the_samples_with_Ant"></a></h3>
<p>All ant targets for the samples generate the same file named toto: feel free to customize this build.xml to your own needs. Also today all these targets depends on the jar target, which represents some overhead if you have already built. Get rid of that once your project is well setup.</p>
<ul>
<li><tt>ant run-aggr</tt> runs the FeedAggregator sample</li>
<li><tt>ant run-conv</tt> runs the FeedConverter sample</li>
<li><tt>ant run-read</tt> runs the FeedReader sample</li>
<li><tt>ant run-write</tt> runs the FeedWriter sample</li>
<li><tt>ant run-sampleModule</tt> runs the FeedConverter sample against a file with Sample Module data (shows off custom module plugin)</li></ul></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>

View file

@ -1,440 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.3 Tutorial, Defining a Custom Module (bean, parser and generator)</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>Rome v0.3 Tutorial, Defining a Custom Module (bean, parser and generator)<a name="Rome_v0.3_Tutorial_Defining_a_Custom_Module_bean_parser_and_generator"></a></h2>
<p>This tutorial walks through the steps of creating a custom module for syndication feeds that support additional namespaces (such as RSS 1.0, RSS 2.0 and Atom 0.3).</p>
<p>To understand this tutorial you should be familiar the with Rome API and with the use of modules in syndication feeds.</p>
<p>Out of the box Rome parsers and generators support plug-ability of modules for RSS 1.0, RSS 2.0 and Atom 0.3 at both feed and item/entry levels. Also support for the Dublin Core and Syndication modules is provided.</p>
<p>The complete source for this tutorial is in the Rome samples bundle as well as in CVS.</p>
<div class="section">
<h3>What is the intended outcome of the tutorial?<a name="What_is_the_intended_outcome_of_the_tutorial"></a></h3>
<p>The goal is to add support for a hypothetical Sample Module by defining a module bean, module parser and module generator and the necessary configuration to wire the parser and generator to an RSS 1.0 parser and RSS 1.0 generator.</p>
<p>The sample module defines 3 elements, 'bar', 'foo' and 'date', where 'bar' and 'date' may occur at most once and the 'foo' element may occur several times. For example, a feed with the Sample Module data would look like:</p>
<div class="source">
<pre>
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;
xmlns=&quot;http://purl.org/rss/1.0/&quot;
xmlns:sample=&quot;http://rome.dev.java.net/module/sample/1.0&quot;&gt;
&lt;channel&gt;
&lt;title&gt;RSS 1.0 Feed with Sample Module&lt;/title&gt;
&lt;link&gt;http://rome.dev.java.net&lt;/link&gt;
&lt;description&gt;This is a feed showing how to use a custom module with Rome&lt;/description&gt;
&lt;items&gt;
&lt;rdf:Seq&gt;
&lt;rdf:li resource=&quot;item01&quot; /&gt;
&lt;rdf:li resource=&quot;item02&quot; /&gt;
&lt;/rdf:Seq&gt;
&lt;/items&gt;
&lt;sample:bar&gt;Channel bar&lt;/sample:bar&gt;
&lt;sample:foo&gt;Channel first foo&lt;/sample:foo&gt;
&lt;sample:foo&gt;Channel second foo&lt;/sample:foo&gt;
&lt;/channel&gt;
&lt;item rdf:about=&quot;item01&quot;&gt;
&lt;title&gt;Title of Item 01&lt;/title&gt;
&lt;link&gt;http://rome.dev.java.net/item01&lt;/link&gt;
&lt;description&gt;Item 01 does not have Sample module data&lt;/description&gt;
&lt;/item&gt;
&lt;item rdf:about=&quot;item02&quot;&gt;
&lt;title&gt;Title of Item 02&lt;/title&gt;
&lt;link&gt;http://rome.dev.java.net/item02&lt;/link&gt;
&lt;description&gt;Item 02 has Sample module data&lt;/description&gt;
&lt;sample:bar&gt;Item 02 bar&lt;/sample:bar&gt;
&lt;sample:foo&gt;Item 02 only foo&lt;/sample:foo&gt;
&lt;sample:date&gt;2004-07-27T00:00+00:00&lt;/sample:date&gt;
&lt;/item&gt;
&lt;/rdf:RDF&gt;
</pre></div></div>
<div class="section">
<h3>Sample Module Bean<a name="Sample_Module_Bean"></a></h3>
<p>First we must start with the bean interface, SampleModuleI. SampleModuleI must extend ModuleI. The ModuleI interface defines the getUri() method, which will return a URI identifying the module. The ModuleI interface also extends the Cloneable, ToString and CopyFrom interfaces to ensure that the beans provide support for basic features as cloning, equality, toString, etc. (for more details on this check the Understanding the Rome common classes and interfaces document).</p>
<p>The SampleModule's URI is defined as a constant, accessible via the getURI() instance method. This is for convenience and good practice only.</p>
<p>Then the module defines 3 properties: bar (String), foos (List) and date (Date). The elements of the foos property list must be strings (wishing for Java 5 generics already?).</p>
<div class="source">
<pre>
public interface SampleModuleI extends ModuleI,CopyFrom {
public static final String URI = &quot;http://rome.dev.java.net/module/sample/1.0&quot;;
public String getBar();
public void setBar(String bar);
public List getFoos();
public void setFoos(List foos);
public Date getDate();
public void setDate(Date date);
}
</pre></div>
<p>Next we have to write the bean implementation, SampleModule.</p>
<p>SampleModule extends Module (the implementation counterpart of ModuleI). Module extends ObjectBean which provides equals, hashCode, toString and clone support for the properties of the class given in the constructor (SampleModuleI). Also the URI of the Sample module is indicated; it will be used by the Module.getUri() method.</p>
<div class="source">
<pre>
public class SampleModule extends Module implements SampleModuleI {
...
public SampleModule() {
super(SampleModuleI.class,SampleModuleI.URI);
}
public String getBar() {
return _bar;
}
...
</pre></div>
<p>The module properties are just Java Bean properties. The only catch is to follow Rome semantics for Collection properties: in the case of a null value for the collection, an empty collection must be returned.. Also, following Rome semantics, all properties are by reference, including mutable ones.</p>
<div class="source">
<pre>
public class SampleModule extends Module implements SampleModuleI {
private String _bar;
private List _foos;
private Date _date;
...
public void setBar(String bar) {
_bar = bar;
}
public List getFoos() {
return (_foos==null) ? (_foos=new ArrayList()) : _foos;
}
public void setFoos(List foos) {
_foos = foos;
}
public Date getDate() {
return _date;
}
public void setDate(Date date) {
_date = date;
}
</pre></div>
<p>Now the weird part: the bits for the CopyFrom logic. The Understanding the Rome common classes and interfaces document fully explains the CopyFrom logic in detail. In short, the CopyFrom interface is to support copying properties from one implementation of a bean (defined through an interface) to another implementation of the same bean.</p>
<p>The getInterface() method returns the bean interface of the implementation (this is necessary for collections containing sub-classes such as a list of modules).</p>
<p>The copyFrom() method copies all the properties from the parameter object (which must be a SampleModuleI implementation) into the caller bean properties. Note that the copyFrom must do a deep copy.</p>
<div class="source">
<pre>
public class SampleModule extends Module implements SampleModuleI {
...
public Class getInterface() {
return SampleModuleI.class;
}
public void copyFrom(Object obj) {
SampleModuleI sm = (SampleModuleI) obj;
setBar(sm.getBar());
List foos = new ArrayList(sm.getFoos()); // this is enough for the copy because the list elements are inmutable (Strings)
setFoos(foos);
setDate((Date)sm.getDate().clone()); // because Date is not inmutable.
}
}
</pre></div></div>
<div class="section">
<h3>Sample Module Parser<a name="Sample_Module_Parser"></a></h3>
<p>The sample module parser must implement the ModuleParser interface. This interface defines 2 methods, getNamespaceUri() that returns the URI of the module and parse(Element) which extracts the module elements from the given Element.</p>
<p>The feed parsers will invoke the module parser with a feed element or with an item element. The module parser must look for module elements in the children of the given element. That is was the Sample parser is doing when looking for 'bar', 'foo' and 'date' children elements in the received element.</p>
<p>In the case of the 'foo' element it looks for all occurrences as the Sample module schema allows for more than one occurrence of the 'foo' element. A SampleModule bean is created and the found values are set into it. For the 'date' element it assumes its a date value in W3C datetime format.</p>
<p>If no Sample Module elements are found in the feed, the parse(Element) method returns null. This is to avoid having an empty instance of a module -not present in the feed- in the feed bean or in the item bean.</p>
<div class="source">
<pre>
public class SampleModuleParser implements ModuleParser {
private static final Namespace SAMPLE_NS = Namespace.getNamespace(&quot;sample&quot;, SampleModuleI.URI);
public String getNamespaceUri() {
return SampleModuleI.URI;
}
public ModuleI parse(Element dcRoot) {
boolean foundSomething = false;
SampleModuleI fm = new SampleModule();
Element e = dcRoot.getChild(&quot;bar&quot;, SAMPLE_NS);
if (e != null) {
foundSomething = true;
fm.setBar(e.getText());
}
List eList = dcRoot.getChildren(&quot;foo&quot;, SAMPLE_NS);
if (eList.size() &gt; 0) {
foundSomething = true;
fm.setFoos(parseFoos(eList));
}
e = dcRoot.getChild(&quot;date&quot;, SAMPLE_NS);
if (e != null) {
foundSomething = true;
fm.setDate(DateParser.parseW3CDateTime(e.getText()));
}
return (foundSomething) ? fm : null;
}
private List parseFoos(List eList) {
List foos = new ArrayList();
for (int i = 0; i &lt; eList.size(); i++) {
Element e = (Element) eList.get(i);
foos.add(e.getText());
}
return foos;
}
}
</pre></div></div>
<div class="section">
<h3>Sample Module Generator<a name="Sample_Module_Generator"></a></h3>
<p>The sample module generator must implement the ModuleGenerator interface. This interface defines 2 methods, getNamespaceUri() that returns the URI of the module and generate(ModuleI,Element) which injects the module data into the given Element.</p>
<p>The feed generator will invoke the module generator with a feed element or with an item element. The module generator must inject the module properties into the given element (which is a feed or an item). This injection has to be done using the right namespace.</p>
<p>If no Sample Module bean is in the feed bean the module generator is not invoked at all.</p>
<div class="source">
<pre>
public class SampleModuleGenerator implements ModuleGenerator {
private static final Namespace SAMPLE_NS = Namespace.getNamespace(&quot;sample&quot;, SampleModuleI.URI);
public String getNamespaceUri() {
return SampleModuleI.URI;
}
public void generate(ModuleI module, Element element) {
// this is not necessary, it is done to avoid the namespace definition in every item.
Element root = element;
while (root.getParent()!=null &amp;&amp; root.getParent() instanceof Element) {
root = (Element) element.getParent();
}
root.addNamespaceDeclaration(SAMPLE_NS);
SampleModuleI fm = (SampleModuleI)module;
if (fm.getBar() != null) {
element.addContent(generateSimpleElement(&quot;bar&quot;, fm.getBar()));
}
List foos = fm.getFoos();
for (int i = 0; i &lt; foos.size(); i++) {
element.addContent(generateSimpleElement(&quot;foo&quot;,foos.get(i).toString()));
}
if (fm.getDate() != null) {
element.addContent(generateSimpleElement(&quot;date&quot;, DateParser.parseW3CDateTime(fm.getDate())));
}
}
protected Element generateSimpleElement(String name, String value) {
Element element = new Element(name, SAMPLE_NS);
element.addContent(value);
return element;
}
}
</pre></div></div>
<div class="section">
<h3>Configuration to make Rome process Sample Module in feeds<a name="Configuration_to_make_Rome_process_Sample_Module_in_feeds"></a></h3>
<p>The last step is to setup the configuration file to indicate to Rome how and when to use the Sample Module parser and generator.</p>
<p>The configuration is stored in a Properties file, 'rome.properties', that has to be in the root of the classpath or JAR where the Sample Module bean, parser and generator classes are.</p>
<p>You must indicate the syndication feed formats (ie RSS 1.0) that must be aware of the Sample Module. You must indicate if the Sample Module is available for feed or item elements, or for both. You must indicate both the parser and the generator classes.</p>
<p>Following is the 'rome.properties' file for the Sample Module, it's defined for RSS 1.0 only, for both feed and item elements.</p>
<div class="source">
<pre>
# Parsers for RSS 1.0 feed modules
#
rss_1.0.feed.ModuleParser.classes=com.rometools.rome.samples.module.SampleModuleParser
# Parsers for RSS 1.0 item modules
#
rss_1.0.item.ModuleParser.classes=com.rometools.rome.samples.module.SampleModuleParser
# Generators for RSS 1.0 feed modules
#
rss_1.0.feed.ModuleGenerator.classes=com.rometools.rome.samples.module.SampleModuleGenerator
# Generators for RSS_1.0 entry modules
#
rss_1.0.item.ModuleGenerator.classes=com.rometools.rome.samples.module.SampleModuleGenerator
</pre></div>
<p>If you are defining more than one module, indicate the parser and generator implementation classes separated by commas or spaces.</p></div>
<div class="section">
<h3>Using the Sample Module from the SyndFeedI beans<a name="Using_the_Sample_Module_from_the_SyndFeedI_beans"></a></h3>
<p>They will be there, just use them. You may get the SampleModuleI bean using the getModule(String Uri) method of the SyndFeedI bean and the SyndEntryI bean. </p>
<p>Adding or replacing a syndication feed parser, generator or converter is along the same lines of what it has been explained in the tutorial for modules. Eventually we'll have a doc on that too </p></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>

View file

@ -1,294 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.3 Tutorial, Using Rome to aggregate many syndication feeds into a single one</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>Rome v0.3 Tutorial, Using Rome to aggregate many syndication feeds into a single one<a name="Rome_v0.3_Tutorial_Using_Rome_to_aggregate_many_syndication_feeds_into_a_single_one"></a></h2>
<p><b>Software requirements:</b> J2SE 1.4+, JDOM B10 and Rome 0.3.</p>
<p>Rome represents syndication feeds (RSS and Atom) as instances of the com.rometools.rome.synd.SyndFeedI interface. The SyndFeedI interfaces and its properties follow the Java Bean patterns. The default implementations provided with Rome are all lightweight classes.</p>
<p>Rome includes parsers to process syndication feeds into SyndFeedI instances. The SyndFeedInput class handles the parsers using the correct one based on the syndication feed being processed. The developer does not need to worry about selecting the right parser for a syndication feed, the SyndFeedInput will take care of it by peeking at the syndication feed structure. All it takes to read a syndication feed using Rome are the following 2 lines of code:</p>
<div class="source">
<pre>
SyndFeedInput input = new SyndFeedInput();
SyndFeedI feed = input.build(new InputStreamReader(feedUrl.openStream()));
</pre></div>
<p>Obtaining the char based input stream has been simplified in this tutorial, the sample code in the distribution is a little more complex to handle charset encodings properly.</p>
<p>The first line creates a SyndFeedInput instance that will work with any syndication feed type (RSS and Atom versions). The second line instructs the SyndFeedInput to read the syndication feed from the InputStream of a URL pointing to the feed. The SyndFeedInput.build() method returns a SyndFeedI instance that can be easily processed.</p>
<p>Rome also includes generators to create syndication feeds out of SyndFeedI instances. The SyndFeedOutput class does this generation. The SyndFeedOutput will generate a syndication feed of the feed type indicated by the SyndFeedI object being output. The following two lines of code show how to create a syndication feed output from a SyndFeedI instance:</p>
<div class="source">
<pre>
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,new PrintWriter(System.out));
</pre></div>
<p>The first line creates a SyndFeedOutput instance that will produce syndication feeds. It can output feeds of any type (rss_0.9, rss_0.91, rss_0.92, rss_0.93, rss_0.94, rss_1.0, rss_2.0 &amp; atom_0.3), the SyndFeedI feedType property indicates the type. The second line writes the SyndFeedI as a syndication feed into the application's output.</p>
<p>SyndFeedI can also be created and populated within the code. For example:</p>
<div class="source">
<pre>
SyndFeedI aggrFeed = new SyndFeed();
aggrFeed.setFeedType(&quot;rss_1.0&quot;);
aggrFeed.setTitle(&quot;Aggregated Feed&quot;);
aggrFeed.setDescription(&quot;Anonymous Aggregated Feed&quot;);
aggrFeed.setAuthor(&quot;anonymous&quot;);
aggrFeed.setLink(&quot;http://www.anonymous.com&quot;);
</pre></div>
<p>The snipped of code above creates a SyndFeedI instance using the default implementation provided by Rome, sets the feed type to RSS 1.0, sets the title, description, author and link properties of the feed.</p>
<p>SyndFeedI properties can be modified, assigned to other SyndFeedI instances, removed, etc. It's important to remember that the getters/setters semantics defined for all SyndFeedI properties (and properties of its properties) is a copy by reference, not by value. In other words if you alter the property of a SyndFeedI property you are altering the SyndFeedI. Or, another example, if you assign the list of entries of one SyndFeedI instance to another SyndFeedI isntance and then you modify the list or any of the entries in the list, you are modifying the entries of both SyndFeedI instances.</p>
<p>The following lines of code show how to copy the entries of a SyndFeedI instance being read (inFeed) into a SyndFeedI instance being created within the application (feed):</p>
<div class="source">
<pre>
package com.rometools.rome.samples;
import java.net.URL;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.List;
import java.util.ArrayList;
import com.rometools.rome.feed.synd.SyndFeedI;
import com.rometools.rome.feed.synd.SyndFeed;
import com.rometools.rome.io.SyndFeedOutput;
import com.rometools.rome.io.SyndFeedInput;
/**
* It aggregates a list of RSS/Atom feeds (they can be of different types)
* into a single feed of the specified type.
* &lt;p&gt;
* @author Alejandro Abdelnur
*
*/
public class FeedAggregator {
public static void main(String[] args) {
boolean ok = false;
if (args.length&gt;=2) {
try {
String outputType = args[0];
SyndFeedI feed = new SyndFeed();
feed.setFeedType(outputType);
feed.setTitle(&quot;Aggregated Feed&quot;);
feed.setDescription(&quot;Anonymous Aggregated Feed&quot;);
feed.setAuthor(&quot;anonymous&quot;);
feed.setLink(&quot;http://www.anonymous.com&quot;);
List entries = new ArrayList();
feed.setEntries(entries);
for (int i=1;i&lt;args.length;i++) {
URL inputUrl = new URL(args[i]);
SyndFeedInput input = new SyndFeedInput();
SyndFeedI inFeed = input.build(new InputStreamReader(inputUrl.openStream()));
entries.addAll(inFeed.getEntries());
}
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,new PrintWriter(System.out));
ok = true;
}
catch (Exception ex) {
System.out.println(&quot;ERROR: &quot;+ex.getMessage());
}
}
if (!ok) {
System.out.println();
System.out.println(&quot;FeedAggregator aggregates different feeds into a single one.&quot;);
System.out.println(&quot;The first parameter must be the feed type for the aggregated feed.&quot;);
System.out.println(&quot; [valid values are: rss_0.9, rss_0.91, rss_0.92, rss_0.93, ]&quot;);
System.out.println(&quot; [ rss_0.94, rss_1.0, rss_2.0 &amp; atom_0.3 ]&quot;);
System.out.println(&quot;The second to last parameters are the URLs of feeds to aggregate.&quot;);
System.out.println();
}
}
}
</pre></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>

View file

@ -1,261 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.3 Tutorial, Using Rome to convert a syndication feed from one type to another</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>Rome v0.3 Tutorial, Using Rome to convert a syndication feed from one type to another<a name="Rome_v0.3_Tutorial_Using_Rome_to_convert_a_syndication_feed_from_one_type_to_another"></a></h2>
<p><b>Software requirements:</b> Synd J2SE 1.4+, JDOM B10 and Rome 0.3.</p>
<p>Rome represents syndication feeds (RSS and Atom) as instances of the com.rometools.rome.synd.SyndFeedI interface. The SyndFeedI interfaces and its properties follow the Java Bean patterns. The default implementations provided with Rome are all lightweight classes.</p>
<p>Rome includes parsers to process syndication feeds into SyndFeedI instances. The SyndFeedInput class handles the parsers using the correct one based on the syndication feed being processed. The developer does not need to worry about selecting the right parser for a syndication feed, the SyndFeedInput will take care of it by peeking at the syndication feed structure. All it takes to read a syndication feed using Rome are the following 2 lines of code:</p>
<div class="source">
<pre>
SyndFeedInput input = new SyndFeedInput();
SyndFeedI feed = input.build(new InputStreamReader(feedUrl.openStream()));
</pre></div>
<p>Obtaining the char based input stream has been simplified in this tutorial, the sample code in the distribution is a little more complex to handle charset encodings properly.</p>
<p>The first line creates a SyndFeedInput instance that will work with any syndication feed type (RSS and Atom versions). The second line instructs the SyndFeedInput to read the syndication feed from the InputStream of a URL pointing to the feed. The SyndFeedInput.build() method returns a SyndFeedI instance that can be easily processed.</p>
<p>Rome also includes generators to create syndication feeds out of SyndFeedI instances. The SyndFeedOutput class does this generation. The SyndFeedOutput will generate a syndication feed of the feed type indicated by the SyndFeedI object being output. The following two lines of code show how to create a syndication feed output from a SyndFeedI instance:</p>
<div class="source">
<pre>SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,new PrintWriter(System.out));
</pre></div>
<p>The first line creates a SyndFeedOutput instance that will produce syndication feeds. It can output feeds of any type (rss_0.9, rss_0.91, rss_0.92, rss_0.93, rss_0.94, rss_1.0, rss_2.0 &amp; atom_0.3), the SyndFeedI feedType property indicates the type. The second line writes the SyndFeedI as a syndication feed into the application's output.</p>
<p>Following is the full code for a Java application that reads a syndication feed and converts it to other syndication feed type, writing the converted feed to the application's output.</p>
<div class="source">
<pre>
package com.rometools.rome.samples;
import java.net.URL;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import com.rometools.rome.feed.synd.SyndFeedI;
import com.rometools.rome.io.SyndFeedInput;
import com.rometools.rome.io.SyndFeedOutput;
/**
* It Converts any RSS/Atom feed type to a an RSS/Atom feed of the
* specified type.
* &lt;p&gt;
* @author Alejandro Abdelnur
*
*/
public class FeedConverter {
public static void main(String[] args) {
boolean ok = false;
if (args.length==2) {
try {
String outputType = args[0];
URL feedUrl = new URL(args[1]);
SyndFeedInput input = new SyndFeedInput();
SyndFeedI feed = input.build(new InputStreamReader(feedUrl.openStream()));
feed.setFeedType(outputType);
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,new PrintWriter(System.out));
ok = true;
}
catch (Exception ex) {
System.out.println(&quot;ERROR: &quot;+ex.getMessage());
}
}
if (!ok) {
System.out.println();
System.out.println(&quot;FeedConverter converts between syndication feeds types.&quot;);
System.out.println(&quot;The first parameter must be the feed type to convert to.&quot;);
System.out.println(&quot; [valid values are: rss_0.9, rss_0.91, rss_0.92, rss_0.93, ]&quot;);
System.out.println(&quot; [ rss_0.94, rss_1.0, rss_2.0 &amp; atom_0.3 ]&quot;);
System.out.println(&quot;The second parameter must be the URL of the feed to convert.&quot;);
System.out.println();
}
}
}
</pre></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>

View file

@ -1,349 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.3 Tutorial, Using Rome to create and write a syndication feed</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>Rome v0.3 Tutorial, Using Rome to create and write a syndication feed<a name="Rome_v0.3_Tutorial_Using_Rome_to_create_and_write_a_syndication_feed"></a></h2>
<p><b>Software requirements:</b> J2SE 1.4+, JDOM B10 and Rome 0.3.</p>
<p>Rome represents syndication feeds (RSS and Atom) as instances of the com.rometools.rome.synd.SyndFeedI interface. The SyndFeedI interfaces and its properties follow the Java Bean patterns. The default implementations provided with Rome are all lightweight classes.</p>
<p>Creating a feed with SyndFeedI beans consists of creating beans and setting their properties. The following code fragments show how a SyndFeedI bean with 3 entries is created.</p>
<p>First the SyndFeedI instance is created, the preferred syndication format is set and the feed header info (title, link, description) is also set.</p>
<div class="source">
<pre>
SyndFeedI feed = new SyndFeed();
feed.setFeedType(feedType);
feed.setTitle(&quot;Sample Feed (created with Rome)&quot;);
feed.setLink(&quot;http://rome.dev.java.net&quot;);
feed.setDescription(&quot;This feed has been created using Rome (Java syndication utilities&quot;);
</pre></div>
<p>Then a list for entries is created, entries are created and added to the list. Each entry is set with a title, link, published date and a description. The description for the first entry is plain test, for the third entry is HTML. After each entry is created is added to the list.</p>
<div class="source">
<pre>
List entries = new ArrayList();
SyndEntryI entry;
SyndContentI description;
entry = new SyndEntry();
entry.setTitle(&quot;Rome v1.0&quot;);
entry.setLink(&quot;http://wiki.java.net/bin/view/Javawsxml/Rome01&quot;);
entry.setPublishedDate(DATE_PARSER.parse(&quot;2004-06-08&quot;));
description = new SyndContent();
description.setType(&quot;text/plain&quot;);
description.setValue(&quot;Initial release of Rome&quot;);
entry.setDescription(description);
entries.add(entry);
...
entry = new SyndEntry();
entry.setTitle(&quot;Rome v3.0&quot;);
entry.setLink(&quot;http://wiki.java.net/bin/view/Javawsxml/Rome03&quot;);
entry.setPublishedDate(DATE_PARSER.parse(&quot;2004-07-27&quot;));
description = new SyndContent();
description.setType(&quot;text/html&quot;);
description.setValue(&quot;&lt;p&gt;More Bug fixes, mor API changes, some new features and some Unit testing&lt;/p&gt;&quot;+
&quot;&lt;p&gt;For details check the &lt;a href=\&quot;http://wiki.java.net/bin/view/Javawsxml/RomeChangesLog#RomeV03\&quot;&gt;Changes Log&lt;/a&gt;&lt;/p&gt;&quot;);
entry.setDescription(description);
entries.add(entry);
</pre></div>
<p>Finally the list with entries is added to the SyndFeedI bean.</p>
<div class="source">
<pre>
feed.setEntries(entries);
</pre></div>
<p>The SyndFeedI bean is now ready to be written out to a syndication feed XML document. Note that any of supported syndication formats can be set in the feedType property.</p>
<p>Rome includes generators that allow producing syndication feed XML documents from SyndFeedI instances. The SyndFeedOutput class handles the generation of the syndication feed XML documents on any of the supported feed formats (RSS and Atom). The developer does not need to worry about selecting the right generator for a syndication feed, the SyndFeedOutput will take care of it by looking at the information in the SyndFeedI bean. All it takes to write a syndication feed XML document using Rome -assuming you have a SyndFeedI bean and a Writer instance- are the following lines of code:</p>
<div class="source">
<pre>
SyndFeedI feed = ...;
Writer writer = ...;
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,writer);
</pre></div>
<p>First a SyndFeedOutput instance is created, this instance will work with any syndication feed type (RSS and Atom versions). Then the feed and the writer are given to the SyndFeedOutput instance, the SyndFeedOutput will write the syndication feed XML document represented by the SyndFeedI bean to the Writer stream.</p>
<p>Following is the full code for a Java application that creates a syndication feed and writes it to a file in the specified syndication format.</p>
<div class="source">
<pre>
package com.rometools.rome.samples;
import com.rometools.rome.feed.synd.*;
import com.rometools.rome.io.SyndFeedOutput;
import java.io.FileWriter;
import java.io.Writer;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
/**
* It creates a feed and writes it to a file.
* &lt;p&gt;
*
*/
public class FeedWriter {
private static final DateFormat DATE_PARSER = new SimpleDateFormat(&quot;yyyy-MM-dd&quot;);
public static void main(String[] args) {
boolean ok = false;
if (args.length==2) {
try {
String feedType = args[0];
String fileName = args[1];
SyndFeedI feed = new SyndFeed();
feed.setFeedType(feedType);
feed.setTitle(&quot;Sample Feed (created with Rome)&quot;);
feed.setLink(&quot;http://rome.dev.java.net&quot;);
feed.setDescription(&quot;This feed has been created using Rome (Java syndication utilities&quot;);
List entries = new ArrayList();
SyndEntryI entry;
SyndContentI description;
entry = new SyndEntry();
entry.setTitle(&quot;Rome v1.0&quot;);
entry.setLink(&quot;http://wiki.java.net/bin/view/Javawsxml/Rome01&quot;);
entry.setPublishedDate(DATE_PARSER.parse(&quot;2004-06-08&quot;));
description = new SyndContent();
description.setType(&quot;text/plain&quot;);
description.setValue(&quot;Initial release of Rome&quot;);
entry.setDescription(description);
entries.add(entry);
entry = new SyndEntry();
entry.setTitle(&quot;Rome v2.0&quot;);
entry.setLink(&quot;http://wiki.java.net/bin/view/Javawsxml/Rome02&quot;);
entry.setPublishedDate(DATE_PARSER.parse(&quot;2004-06-16&quot;));
description = new SyndContent();
description.setType(&quot;text/plain&quot;);
description.setValue(&quot;Bug fixes, minor API changes and some new features&quot;);
entry.setDescription(description);
entries.add(entry);
entry = new SyndEntry();
entry.setTitle(&quot;Rome v3.0&quot;);
entry.setLink(&quot;http://wiki.java.net/bin/view/Javawsxml/Rome03&quot;);
entry.setPublishedDate(DATE_PARSER.parse(&quot;2004-07-27&quot;));
description = new SyndContent();
description.setType(&quot;text/html&quot;);
description.setValue(&quot;&lt;p&gt;More Bug fixes, mor API changes, some new features and some Unit testing&lt;/p&gt;&quot;+
&quot;&lt;p&gt;For details check the &lt;a href=\&quot;http://wiki.java.net/bin/view/Javawsxml/RomeChangesLog#RomeV03\&quot;&gt;Changes Log&lt;/a&gt;&lt;/p&gt;&quot;);
entry.setDescription(description);
entries.add(entry);
feed.setEntries(entries);
Writer writer = new FileWriter(fileName);
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,writer);
writer.close();
System.out.println(&quot;The feed has been written to the file [&quot;+fileName+&quot;]&quot;);
ok = true;
}
catch (Exception ex) {
ex.printStackTrace();
System.out.println(&quot;ERROR: &quot;+ex.getMessage());
}
}
if (!ok) {
System.out.println();
System.out.println(&quot;FeedWriter creates a RSS/Atom feed and writes it to a file.&quot;);
System.out.println(&quot;The first parameter must be the syndication format for the feed&quot;);
System.out.println(&quot; (rss_0.90, rss_0.91, rss_0.92, rss_0.93, rss_0.94, rss_1.0 rss_2.0 or atom_0.3)&quot;);
System.out.println(&quot;The second parameter must be the file name for the feed&quot;);
System.out.println();
}
}
}
</pre></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>

View file

@ -1,252 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.3 Tutorial, Using Rome to read a syndication feed</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>Rome v0.3 Tutorial, Using Rome to read a syndication feed<a name="Rome_v0.3_Tutorial_Using_Rome_to_read_a_syndication_feed"></a></h2>
<p><b>Software requirements:</b> J2SE 1.4+, JDOM B10 and Rome 0.3.</p>
<p>Rome represents syndication feeds (RSS and Atom) as instances of the com.rometools.rome.synd.SyndFeedI interface. The SyndFeedI interfaces and its properties follow the Java Bean patterns. The default implementations provided with Rome are all lightweight classes.</p>
<p>Rome includes parsers to process syndication feeds into SyndFeedI instances. The SyndFeedInput class handles the parsers using the correct one based on the syndication feed being processed. The developer does not need to worry about selecting the right parser for a syndication feed, the SyndFeedInput will take care of it by peeking at the syndication feed structure. All it takes to read a syndication feed using Rome are the following 2 lines of code:</p>
<div class="source">
<pre>
SyndFeedInput input = new SyndFeedInput();
SyndFeedI feed = input.build(new InputStreamReader(feedUrl.openStream()));
</pre></div>
<p>The first line creates a SyndFeedInput instance that will work with any syndication feed type (RSS and Atom versions). The second line instructs the SyndFeedInput to read the syndication feed from the char based input stream of a URL pointing to the feed. The SyndFeedInput.build() method returns a SyndFeedI instance that can be easily processed.</p>
<p>Obtaining the char based input stream has been simplified in this tutorial, the sample code in the distribution is a little more complex to handle charset encodings properly.</p>
<p>The default SyndFeedI implementation has a detailed and clear toString() implementation. The following line just prints it to the application's output.</p>
<div class="source">
<pre>
System.out.println(feed);
</pre></div>
<p>Following is the full code for a Java application that reads a syndication feed and prints the SyndFeedI bean to the application's output.</p>
<div class="source">
<pre>
package com.rometools.rome.samples;
import java.net.URL;
import java.io.InputStreamReader;
import com.rometools.rome.feed.synd.SyndFeedI;
import com.rometools.rome.io.SyndFeedInput;
/**
* It Reads and prints any RSS/Atom feed type.
* &lt;p&gt;
* @author Alejandro Abdelnur
*
*/
public class FeedReader {
public static void main(String[] args) {
boolean ok = false;
if (args.length==1) {
try {
URL feedUrl = new URL(args[0]);
SyndFeedInput input = new SyndFeedInput();
SyndFeedI feed = input.build(new InputStreamReader(feedUrl.openStream()));
System.out.println(feed);
ok = true;
}
catch (Exception ex) {
ex.printStackTrace();
System.out.println(&quot;ERROR: &quot;+ex.getMessage());
}
}
if (!ok) {
System.out.println();
System.out.println(&quot;FeedReader reads and prints any RSS/Atom feed type.&quot;);
System.out.println(&quot;The first parameter must be the URL of the feed to read.&quot;);
System.out.println();
}
}
}
</pre></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>

View file

@ -1,198 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.3 Tutorials</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>Rome v0.3 Tutorials<a name="Rome_v0.3_Tutorials"></a></h2>
<p>The following tutorials show how to use the Rome API. They focus on the higher abstraction layer of classes offered by Rome, what we call the Synd* classes. By using the Synd* classes developers don't have to deal with the specifics of any syndication feed. They work with normalized feeds, the Synd* feeds. This makes it much easier to write applications that have to deal with all the variety of syndication feed types in use today.</p>
<ol style="list-style-type: decimal">
<li><a href="./RomeV0.3TutorialUsingRomeToReadASyndicationFeed.html">Using Rome to read a syndication feed</a></li>
<li><a href="./RomeV0.3TutorialUsingRomeToConvertASyndicationFeedFromOneTypeToAnother.html">Using Rome to convert a syndication feed from one type to another</a></li>
<li><a href="./RomeV0.3TutorialUsingRomeToAggregateManySyndicationFeedsIntoASingleOne.html">Using Rome to aggregate many syndication feeds into a single one</a></li>
<li><a href="./RomeV0.3TutorialUsingRomeToCreateAndWriteASyndicationFeed.html">Using Rome to create and write a feed</a> <tt>(New)</tt></li>
<li><a href="./RomeV0.3TutorialDefiningACustomModuleBeanParserAndGenerator.html">Defining a Custom Module bean, parser and generator</a> <tt>(New)</tt></li></ol>
<p>For instructions on how to build and run the samples used in the tutorials <a href="./RomeV0.3HowToBuildAndRunTheTutorialsSampleCode.html">click here</a>.</p></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>

View file

@ -1,299 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME 0.3 Beta</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-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../../ROMEReleases/ROME1.0Release.html" title="ROME 1.0">
<i class="none"></i>
ROME 1.0</a>
</li>
<li>
<a href="../../ROMEReleases/ROME1.0RC2.html" title="ROME 1.0 RC2">
<i class="none"></i>
ROME 1.0 RC2</a>
</li>
<li>
<a href="../../ROMEReleases/ROME1.0RC1.html" title="ROME 1.0 RC1">
<i class="none"></i>
ROME 1.0 RC1</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.9Beta.html" title="ROME 0.9 Beta">
<i class="none"></i>
ROME 0.9 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.8Beta.html" title="ROME 0.8 Beta">
<i class="none"></i>
ROME 0.8 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.7Beta.html" title="ROME 0.7 Beta">
<i class="none"></i>
ROME 0.7 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.6Beta.html" title="ROME 0.6 Beta">
<i class="none"></i>
ROME 0.6 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.5Beta/index.html" title="ROME 0.5 Beta">
<i class="none"></i>
ROME 0.5 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.4Beta/index.html" title="ROME 0.4 Beta">
<i class="none"></i>
ROME 0.4 Beta</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>ROME 0.3 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.2Beta/index.html" title="ROME 0.2 Beta">
<i class="none"></i>
ROME 0.2 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.1Beta/index.html" title="ROME 0.1 Beta">
<i class="none"></i>
ROME 0.1 Beta</a>
</li>
</ul>
</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>ROME 0.3 Beta<a name="ROME_0.3_Beta"></a></h2>
<div class="section">
<h3>Dependencies <a name="Dependencies"></a></h3>
<ul>
<li>J2SE 1.4+</li>
<li><a class="externalLink" href="http://www.jdom.org/">JDOM Beta 10</a></li></ul></div>
<div class="section">
<h3>Downloads <a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-0.3-src.zip">rome-0.3-src.zip</a></li>
<li><a href="./rome-0.3.tar.gz">rome-0.3.tar.gz</a></li>
<li><a href="./rome-0.3.zip">rome-0.3.zip</a></li>
<li><a href="./rome-0.3-src.tar.gz">rome-0.3-src.tar.gz</a></li>
<li><a href="./rome-samples-0.3-src.tar.gz">rome-samples-0.3-src.tar.gz</a></li>
<li><a href="./rome-samples-0.3-src.zip">rome-samples-0.3-src.zip</a></li></ul></div>
<div class="section">
<h3>Additional Information<a name="Additional_Information"></a></h3>
<ul>
<li><a href="./RomeV0.3Tutorials/index.html">Tutorials</a> (2 New ones)</li>
<li>Changes Log</li></ul></div>
<div class="section">
<h3>Known Issues<a name="Known_Issues"></a></h3>
<ul>
<li>Same issues as Rome v0.1</li>
<li>When processing XML documents with DTD (ie: Netscape RSS 0.91) if the XML parser implementation is not Xerces and the system does not have access ot the internet, the XML parser will fail.</li>
<li>If the feed starts with a <a class="externalLink" href="http://www.unicode.org/faq/utf_bom.html#BOM">BOM</a> the JAXP SAX parser may fail, using <a class="externalLink" href="http://xml.apache.org/xerces2-j">Xerces 2.6.2</a> addresses the problem.</li></ul></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>

View file

@ -1,222 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.4, How to build and run the tutorials sample code</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>Rome v0.4, How to build and run the tutorials sample code<a name="Rome_v0.4_How_to_build_and_run_the_tutorials_sample_code"></a></h2>
<div class="section">
<h3>Building the samples with Maven<a name="Building_the_samples_with_Maven"></a></h3>
<p>This is, as usual, the easiest way.</p>
<p>There's only one configuration step: Maven downloads dependencies from an online repository (by default ibiblio), to a local repository (on UNIX usually in ~/.maven/repository). Because the rome distribution is not yet on ibiblio, you need to add it yourself, either to your local repository, or to your own intranet maven repository if you have such a thing in your organization.</p>
<p>If you built Rome run maven jar:install in the rome project to install Rome's jar in your Maven repository.</p>
<p>If you got Rome binary distribution copy the Rome's jar file to your Maven repository (on UNIX that would be <tt>cp rome-0.4/rome-0.4.jar &#xa0; ~/.maven/repository/rome/jars/</tt>).</p>
<p>Then building the samples it's easy as a pie, just run maven jar in the samples sub-project and you are all set.</p>
<p>To build the sample Web Application, just run maven war in the samples sub-project. The WAR file, <tt>rome-samples.war</tt>, will be created under the <tt>target</tt> directory.</p></div>
<div class="section">
<h3>Building the samples with Ant<a name="Building_the_samples_with_Ant"></a></h3>
<p>The targets present in the build.xml are very helpful, ant get-deps will download from ibiblio to rome-samples/target/lib all the jar files Rome depends on and are needed for building an application using Rome.</p>
<p>In order to build the samples (or any subprojects), you'll need to first ensure that rome itself is built. You can do this simply by running ant in the project root directory.</p>
<p>Once this is done, change to the samples directory, and just run ant. This will produce two files, rome-samples.jar which contains the sample applications, and rome-samples.war which will contain a deployable web application war file for the FeedServlet sample.</p></div>
<div class="section">
<h3>Running the samples with Maven<a name="Running_the_samples_with_Maven"></a></h3>
<p>The Maven goals for running the samples are defined in maven.xml. They should all generate the same file named toto, but somehow it ends up empty. However the output is correctly sent to the console. We'll fix that glitch later.</p>
<ul>
<li><tt>maven run-agr</tt> runs the FeedAggregator sample</li>
<li><tt>maven run-conv</tt> runs the FeedConverter sample</li>
<li><tt>maven run-read</tt> runs the FeedReader sample</li>
<li><tt>maven run-write</tt> runs the FeedWriter sample</li>
<li><tt>maven run-sampleModule</tt> runs the FeedConverter sample against a file with Sample Module data (shows off custom module plugin)</li></ul>
<p>To run the sample Web Application you'll need to deploy the WAR file into your servlet container. If you are using Tomcat 4 or Tomcat 5 and the WAR file was dropped in the <tt>${TOMCAT}/webapps</tt> directory the URL for the <tt>FeedServlet</tt> would be <a class="externalLink" href="http://localhost:8080/rome-samples/feed">http://localhost:8080/rome-samples/feed</a> in a default localhost Tomcat installation. </p></div>
<div class="section">
<h3>Running the samples with Ant<a name="Running_the_samples_with_Ant"></a></h3>
<p>All ant targets for the samples generate the same file named toto: feel free to customize this build.xml to your own needs. Also today all these targets depends on the jar target, which represents some overhead if you have already built. Get rid of that once your project is well setup.</p>
<ul>
<li><tt>ant run-aggr</tt> runs the FeedAggregator sample</li>
<li><tt>ant run-conv</tt> runs the FeedConverter sample</li>
<li><tt>ant run-read</tt> runs the FeedReader sample</li>
<li><tt>ant run-write</tt> runs the FeedWriter sample</li>
<li><tt>ant run-sampleModule</tt> runs the FeedConverter sample against a file with Sample Module data (shows off custom module plugin)</li></ul></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>

View file

@ -1,393 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.4 Tutorial, Using Rome within a Servlet to create and return a feed</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>Rome v0.4 Tutorial, Using Rome within a Servlet to create and return a feed<a name="Rome_v0.4_Tutorial_Using_Rome_within_a_Servlet_to_create_and_return_a_feed"></a></h2>
<p><b>Software requirements:</b> J2SE 1.4+, Servlet Container 2.3+, JDOM 1.0 and Rome 0.4.</p>
<p>This sample consists of a servlet that serves a feed as response. The feed type (RSS in any of its variants or Atom) can be specified as a URL parameter when requesting the feed. The returned feed is hardwired in the sample and it would be straight forward to modify the sample to generate the feed dynamically (i.e. from data stored in a database).</p>
<p>The core logic of the <tt>FeedServlet</tt> is in the following fragment of code:</p>
<div class="source">
<pre>
public class FeedServlet extends HttpServlet {
...
public void doGet(HttpServletRequest req,HttpServletResponse res) throws IOException {
...
SyndFeed feed = getFeed(req);
String feedType = req.getParameter(FEED_TYPE);
feedType = (feedType!=null) ? feedType : _defaultFeedType;
feed.setFeedType(feedType);
res.setContentType(MIME_TYPE);
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,res.getWriter());
...
}
protected SyndFeed getFeed(HttpServletRequest req) throws IOException,FeedException {
SyndFeed feed = new SyndFeedImpl();
feed = ...
return feed;
}
}
</pre></div>
<p>The servlet returns a feed upon HTTP GET requests with the <tt>doGet()</tt> method.</p>
<p>First the <tt>SyndFeed</tt> bean is obtained by invoking the <tt>getFeed()</tt> method, the request object is passed as it could be used to obtain request contextual information to create the feed. How to create a feed using SyndFeed bean is explained in detail in the <a href="../../../HowRomeWorks/RomeV0.4TutorialUsingRomeToCreateAndWriteASyndicationFeed.html">Using Rome to create and write a feed</a> Tutorial.</p>
<p>Then the feed type of the response is determined, first looking at the request parameters and falling back to a default feed type (specified by a servlet init parameter) if the type is not indicated in the request parameters. Setting the feed type in the feed bean will indicate the <tt>SyndFeedOutput</tt> the feed type to output.</p>
<p>Finally, the response is set with the proper content type (the MIME_TYPE constant is 'application/xml; charset=UTF-8') and the feed is written to response writer using the <tt>SyndFeedOutput</tt> output classes.</p>
<p>Following is the full code for the servlet.</p>
<div class="source">
<pre>
package com.rometools.rome.samples.servlet;
import com.rometools.rome.feed.synd.*;
import com.rometools.rome.io.FeedException;
import com.rometools.rome.io.SyndFeedOutput;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
/**
* Sample Servlet that serves a feed created with Rome.
* &lt;p&gt;
* The feed type is determined by the 'type' request parameter, if the parameter is missing it defaults
* to the 'default.feed.type' servlet init parameter, if the init parameter is missing it defaults to 'atom_0.3'
* &lt;p&gt;
* @author Alejandro Abdelnur
*
*/
public class FeedServlet extends HttpServlet {
private static final String DEFAULT_FEED_TYPE = &quot;default.feed.type&quot;;
private static final String FEED_TYPE = &quot;type&quot;;
private static final String MIME_TYPE = &quot;application/xml; charset=UTF-8&quot;;
private static final String COULD_NOT_GENERATE_FEED_ERROR = &quot;Could not generate feed&quot;;
private static final DateFormat DATE_PARSER = new SimpleDateFormat(&quot;yyyy-MM-dd&quot;);
private String _defaultFeedType;
public void init() {
_defaultFeedType = getServletConfig().getInitParameter(DEFAULT_FEED_TYPE);
_defaultFeedType = (_defaultFeedType!=null) ? _defaultFeedType : &quot;atom_0.3&quot;;
}
public void doGet(HttpServletRequest req,HttpServletResponse res) throws IOException {
try {
SyndFeed feed = getFeed(req);
String feedType = req.getParameter(FEED_TYPE);
feedType = (feedType!=null) ? feedType : _defaultFeedType;
feed.setFeedType(feedType);
res.setContentType(MIME_TYPE);
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,res.getWriter());
}
catch (FeedException ex) {
String msg = COULD_NOT_GENERATE_FEED_ERROR;
log(msg,ex);
res.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,msg);
}
}
protected SyndFeed getFeed(HttpServletRequest req) throws IOException,FeedException {
SyndFeed feed = new SyndFeedImpl();
feed.setTitle(&quot;Sample Feed (created with Rome)&quot;);
feed.setLink(&quot;http://rome.dev.java.net&quot;);
feed.setDescription(&quot;This feed has been created using Rome (Java syndication utilities&quot;);
List entries = new ArrayList();
SyndEntry entry;
SyndContent description;
entry = new SyndEntryImpl();
entry.setTitle(&quot;Rome v0.1&quot;);
entry.setLink(&quot;http://wiki.java.net/bin/view/Javawsxml/Rome01&quot;);
try {
entry.setPublishedDate(DATE_PARSER.parse(&quot;2004-06-08&quot;));
}
catch (ParseException ex) {
// IT CANNOT HAPPEN WITH THIS SAMPLE
}
description = new SyndContentImpl();
description.setType(&quot;text/plain&quot;);
description.setValue(&quot;Initial release of Rome&quot;);
entry.setDescription(description);
entries.add(entry);
entry = new SyndEntryImpl();
entry.setTitle(&quot;Rome v0.2&quot;);
entry.setLink(&quot;http://wiki.java.net/bin/view/Javawsxml/Rome02&quot;);
try {
entry.setPublishedDate(DATE_PARSER.parse(&quot;2004-06-16&quot;));
}
catch (ParseException ex) {
// IT CANNOT HAPPEN WITH THIS SAMPLE
}
description = new SyndContentImpl();
description.setType(&quot;text/plain&quot;);
description.setValue(&quot;Bug fixes, minor API changes and some new features&quot;+
&quot;&lt;p&gt;For details check the &lt;a href=\&quot;http://wiki.java.net/bin/view/Javawsxml/RomeChangesLog#RomeV02\&quot;&gt;Changes Log for 0.2&lt;/a&gt;&lt;/p&gt;&quot;);
entry.setDescription(description);
entries.add(entry);
entry = new SyndEntryImpl();
entry.setTitle(&quot;Rome v0.3&quot;);
entry.setLink(&quot;http://wiki.java.net/bin/view/Javawsxml/Rome03&quot;);
try {
entry.setPublishedDate(DATE_PARSER.parse(&quot;2004-07-27&quot;));
}
catch (ParseException ex) {
// IT CANNOT HAPPEN WITH THIS SAMPLE
}
description = new SyndContentImpl();
description.setType(&quot;text/html&quot;);
description.setValue(&quot;&lt;p&gt;Bug fixes, API changes, some new features and some Unit testing&lt;/p&gt;&quot;+
&quot;&lt;p&gt;For details check the &lt;a href=\&quot;http://wiki.java.net/bin/view/Javawsxml/RomeChangesLog#RomeV03\&quot;&gt;Changes Log for 0.3&lt;/a&gt;&lt;/p&gt;&quot;);
entry.setDescription(description);
entries.add(entry);
entry = new SyndEntryImpl();
entry.setTitle(&quot;Rome v0.4&quot;);
entry.setLink(&quot;http://wiki.java.net/bin/view/Javawsxml/Rome04&quot;);
try {
entry.setPublishedDate(DATE_PARSER.parse(&quot;2004-09-24&quot;));
}
catch (ParseException ex) {
// IT CANNOT HAPPEN WITH THIS SAMPLE
}
description = new SyndContentImpl();
description.setType(&quot;text/html&quot;);
description.setValue(&quot;&lt;p&gt;Bug fixes, API changes, some new features, Unit testing completed&lt;/p&gt;&quot;+
&quot;&lt;p&gt;For details check the &lt;a href=\&quot;http://wiki.java.net/bin/view/Javawsxml/RomeChangesLog#RomeV04\&quot;&gt;Changes Log for 0.4&lt;/a&gt;&lt;/p&gt;&quot;);
entry.setDescription(description);
entries.add(entry);
feed.setEntries(entries);
return feed;
}
}
</pre></div>
<p>To use the <tt>FeedServlet</tt> we need to create a Web Application. For the Web Application we need a deployment descriptor, the <tt>web.xml</tt> file:</p>
<div class="source">
<pre>
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE web-app PUBLIC &quot;-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN&quot; &quot;http://java.sun.com/dtd/web-app_2_3.dtd&quot;&gt;
&lt;web-app&gt;
&lt;display-name&gt;Rome Samples&lt;/display-name&gt;
&lt;servlet&gt;
&lt;servlet-name&gt;FeedServlet&lt;/servlet-name&gt;
&lt;servlet-class&gt;com.rometools.rome.samples.servlet.FeedServlet&lt;/servlet-class&gt;
&lt;init-param&gt;
&lt;param-name&gt;default.feed.type&lt;/param-name&gt;
&lt;param-value&gt;rss_2.0&lt;/param-value&gt;
&lt;/init-param&gt;
&lt;/servlet&gt;
&lt;servlet-mapping&gt;
&lt;servlet-name&gt;FeedServlet&lt;/servlet-name&gt;
&lt;url-pattern&gt;/feed&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;
&lt;/web-app&gt;
</pre></div>
<p>To build the sample Web Application, just run maven war in the samples sub-project. The WAR file, <tt>rome-samples.war</tt>, will be created under the <tt>target</tt> directory. Deploy the WAR in a servlet container and the <tt>FeedServlet</tt> should be up an running. If you are using Tomcat 4 or Tomcat 5 and the WAR file was dropped in the <tt>${TOMCAT}/webapps</tt> directory the URL for the <tt>FeedServlet</tt> would be <a class="externalLink" href="http://localhost:8080/rome-samples/feed">http://localhost:8080/rome-samples/feed</a> in a default localhost Tomcat installation.</p></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>

View file

@ -1,199 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.4 Tutorials</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>Rome v0.4 Tutorials<a name="Rome_v0.4_Tutorials"></a></h2>
<p>The following tutorials show how to use the Rome API. They focus on the higher abstraction layer of classes offered by Rome, what we call the Synd* classes. By using the Synd* classes developers don't have to deal with the specifics of any syndication feed. They work with normalized feeds, the Synd* feeds. This makes it much easier to write applications that have to deal with all the variety of syndication feed types in use today.</p>
<ol style="list-style-type: decimal">
<li><a href="../../../HowRomeWorks/RomeV0.4TutorialUsingRomeToReadASyndicationFeed.html">Using Rome to read a syndication feed</a></li>
<li><a href="../../../HowRomeWorks/RomeV0.4TutorialUsingRomeToConvertASyndicationFeedFromOneTypeToAnother.html">Using Rome to convert a syndication feed from one type to another</a></li>
<li><a href="../../../HowRomeWorks/RomeV0.4TutorialUsingRomeToAggregateManySyndicationFeedsIntoASingleOne.html">Using Rome to aggregate many syndication feeds into a single one</a></li>
<li><a href="../../../HowRomeWorks/RomeV0.4TutorialUsingRomeToCreateAndWriteASyndicationFeed.html">Using Rome to create and write a feed</a></li>
<li><a href="../../../HowRomeWorks/RomeV0.4TutorialDefiningACustomModuleBeanParserAndGenerator.html">Defining a Custom Module bean, parser and generator</a></li>
<li><a href="./RomeV0.4TutorialUsingRomeWithinAServletToCreateAndReturnAFeed.html">Using Rome within a Servlet to create and return a feed</a> <tt>(NEW)</tt></li></ol>
<p>For instructions on how to build and run the samples used in the tutorials <a href="./RomeV0.4HowToBuildAndRunTheTutorialsSampleCode.html">click here</a>.</p></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>

View file

@ -1,316 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME 0.4 Beta</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-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../../ROMEReleases/ROME1.0Release.html" title="ROME 1.0">
<i class="none"></i>
ROME 1.0</a>
</li>
<li>
<a href="../../ROMEReleases/ROME1.0RC2.html" title="ROME 1.0 RC2">
<i class="none"></i>
ROME 1.0 RC2</a>
</li>
<li>
<a href="../../ROMEReleases/ROME1.0RC1.html" title="ROME 1.0 RC1">
<i class="none"></i>
ROME 1.0 RC1</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.9Beta.html" title="ROME 0.9 Beta">
<i class="none"></i>
ROME 0.9 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.8Beta.html" title="ROME 0.8 Beta">
<i class="none"></i>
ROME 0.8 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.7Beta.html" title="ROME 0.7 Beta">
<i class="none"></i>
ROME 0.7 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.6Beta.html" title="ROME 0.6 Beta">
<i class="none"></i>
ROME 0.6 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.5Beta/index.html" title="ROME 0.5 Beta">
<i class="none"></i>
ROME 0.5 Beta</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>ROME 0.4 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.3Beta/index.html" title="ROME 0.3 Beta">
<i class="none"></i>
ROME 0.3 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.2Beta/index.html" title="ROME 0.2 Beta">
<i class="none"></i>
ROME 0.2 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.1Beta/index.html" title="ROME 0.1 Beta">
<i class="none"></i>
ROME 0.1 Beta</a>
</li>
</ul>
</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>ROME 0.4 Beta<a name="ROME_0.4_Beta"></a></h2>
<div class="section">
<h3>What is New, Highlights <a name="What_is_New_Highlights"></a></h3>
<ul>
<li>Changed naming convention of bean interfaces and implementations (i.e.: SyndFeedI/SyndFeed are now SyndFeed/SyndFeedImpl)</li>
<li>New XmlReader that handles charset encoding as defined by the XML 1.0 specification and RFC 3023</li>
<li>Support of RSS 0.91 Netscape and RSS 0.91 Userland as distinct feed types</li>
<li>All feed types have Modules support</li>
<li>Added checks to generators reducing the chances of generating invalid feeds</li>
<li>Comprehensive Unit testing</li>
<li>Bug fixes</li>
<li>More documentation and samples</li>
<li>Dependencies, upgraded to JDom 1.0 and removed Xerces</li></ul></div>
<div class="section">
<h3>Dependencies <a name="Dependencies"></a></h3>
<ul>
<li>J2SE 1.4+</li>
<li><a class="externalLink" href="http://www.jdom.org/">JDOM 1.0</a></li></ul></div>
<div class="section">
<h3>Downloads <a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-0.4-src.zip">rome-0.4-src.zip</a></li>
<li><a href="./rome-0.4.tar.gz">rome-0.4.tar.gz</a></li>
<li><a href="./rome-0.4.zip">rome-0.4.zip</a></li>
<li><a href="./rome-0.4-src.tar.gz">rome-0.4-src.tar.gz</a></li>
<li><a href="./rome-samples-0.4-src.tar.gz">rome-samples-0.4-src.tar.gz</a></li>
<li><a href="./rome-samples-0.4-src.zip">rome-samples-0.4-src.zip</a></li></ul></div>
<div class="section">
<h3>Additional Information <a name="Additional_Information"></a></h3>
<ul>
<li><a href="./RomeV0.4Tutorials/index.html">Tutorials</a></li>
<li><a href="../../ChangeLog.html">Changes Log</a></li>
<li>Inside ROME, How Things Work
<ul>
<li><a href="../../HowRomeWorks/index.html">How ROME Works</a>, Understanding Rome (a detailed overview by Dave Johnson)</li>
<li><a href="../../HowRomeWorks/UnderstandingTheRomeCommonClassesAndInterfaces.html">Rome common Package</a>, bean utilities, enums, copying and clonning</li>
<li><a href="../../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/RssAndAtOMUtilitiEsROMEPluginsMechanism.html">ROME Plugins Mechanism</a>, bootstrap, adding and changing parsers, generators, converters and modules</li>
<li><a href="../../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/FeedsDateElementsMappingToSyndFeedAndSyndEntry.html">Feeds Date Elements</a>, how Date data is mapped to SyndFeed and SyndEntry</li>
<li><a href="../../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/FeedAndEntryURIMappingHowSyndFeedAndSyndEntryUriPropertiesMapToRSSAndAtomElements.html">Feed and Entry URI Mapping</a>, how SyndFeed and SyndEntry 'uri' properties map to concrete feed elements</li>
<li><a href="../../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/XMLCharsetEncodingDetectionHowRssAndAtOMUtilitiEsROMEHelpsGettingTheRightCharsetEncoding.html">XML Charset Encoding Detection</a>, how Rome helps getting the right charset encoding</li></ul></li></ul></div>
<div class="section">
<h3>Known Issues <a name="Known_Issues"></a></h3>
<p>None. </p></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>

View file

@ -1,194 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME T-Shirt</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>ROME T-Shirt<a name="ROME_T-Shirt"></a></h2>
<p>I made it quickly before taking a plane, and ruined my iron when trying to press it myself on a T-shirt, but it's better than nothing and a T-shirt is vital to an open source project!</p>
<p>It's at <a class="externalLink" href="http://www.cafepress.com/chanezon.13794826">http://www.cafepress.com/chanezon.13794826</a></p>
<p>Else just print the design yourself and iron it on a T-shirt (advice from P@ the practical guy: don't try to iron glossy paper photo on a T-shirt </p><img src="http://blogs.sun.com/roller/resources/pat/_rome-t-shirt.png" alt="" />
<p>-- <a class="externalLink" href="http://wiki.java.net/twiki/bin/view/Main/PatrickChanezon">PatrickChanezon</a> - 10 Jan 2005</p></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>

View file

@ -1,316 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME 0.5 Beta</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-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../../ROMEReleases/ROME1.0Release.html" title="ROME 1.0">
<i class="none"></i>
ROME 1.0</a>
</li>
<li>
<a href="../../ROMEReleases/ROME1.0RC2.html" title="ROME 1.0 RC2">
<i class="none"></i>
ROME 1.0 RC2</a>
</li>
<li>
<a href="../../ROMEReleases/ROME1.0RC1.html" title="ROME 1.0 RC1">
<i class="none"></i>
ROME 1.0 RC1</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.9Beta.html" title="ROME 0.9 Beta">
<i class="none"></i>
ROME 0.9 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.8Beta.html" title="ROME 0.8 Beta">
<i class="none"></i>
ROME 0.8 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.7Beta.html" title="ROME 0.7 Beta">
<i class="none"></i>
ROME 0.7 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.6Beta.html" title="ROME 0.6 Beta">
<i class="none"></i>
ROME 0.6 Beta</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>ROME 0.5 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.4Beta/index.html" title="ROME 0.4 Beta">
<i class="none"></i>
ROME 0.4 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.3Beta/index.html" title="ROME 0.3 Beta">
<i class="none"></i>
ROME 0.3 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.2Beta/index.html" title="ROME 0.2 Beta">
<i class="none"></i>
ROME 0.2 Beta</a>
</li>
<li>
<a href="../../ROMEReleases/ROME0.1Beta/index.html" title="ROME 0.1 Beta">
<i class="none"></i>
ROME 0.1 Beta</a>
</li>
</ul>
</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>ROME 0.5 Beta<a name="ROME_0.5_Beta"></a></h2>
<div class="section">
<h3>What is New, Highlights <a name="What_is_New_Highlights"></a></h3>
<ul>
<li>Removed common package and classes from the public API</li>
<li>Removed Enum class, using constants now</li>
<li>XmlReader now has a lenient behavior for charset encoding detection</li>
<li>Bug fixes</li>
<li><a href="./ROMET-Shirt.html">ROME T-Shirt (rome)</a></li></ul></div>
<div class="section">
<h3>Dependencies <a name="Dependencies"></a></h3>
<ul>
<li>J2SE 1.4+</li>
<li><a class="externalLink" href="http://www.jdom.org/">JDOM 1.0</a></li></ul></div>
<div class="section">
<h3>Downloads <a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-0.5-src.zip">rome-0.5-src.zip</a></li>
<li><a href="./rome-0.5.tar.gz">rome-0.5.tar.gz</a></li>
<li><a href="./rome-0.5.zip">rome-0.5.zip</a></li>
<li><a href="./rome-0.5-src.tar.gz">rome-0.5-src.tar.gz</a></li>
<li><a href="./rome-samples-0.5-src.tar.gz">rome-samples-0.5-src.tar.gz</a></li>
<li><a href="./rome-samples-0.5-src.zip">rome-samples-0.5-src.zip</a></li></ul></div>
<div class="section">
<h3>Additional Information <a name="Additional_Information"></a></h3>
<ul>
<li><a href="../../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/index.html">Tutorials</a></li>
<li><a href="../../ChangeLog.html">Changes Log</a></li>
<li>Inside ROME, How Things Work
<ul>
<li><a href="../../HowRomeWorks/index.html">How ROME Works</a>, Understanding ROME, a detailed overview by Dave Johnson (This doc is based on ROME v0.4)</li>
<li><a href="../../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/RssAndAtOMUtilitiEsROMEPluginsMechanism.html">ROME Plugins Mechanism</a>, bootstrap, adding and changing parsers, generators, converters and modules</li>
<li><a href="../../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/FeedsDateElementsMappingToSyndFeedAndSyndEntry.html">Feeds Date Elements</a>, how Date data is mapped to SyndFeed and SyndEntry</li>
<li><a href="../../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/FeedAndEntryURIMappingHowSyndFeedAndSyndEntryUriPropertiesMapToRSSAndAtomElements.html">Feed and Entry URI Mapping</a>, how SyndFeed and SyndEntry 'uri' properties map to concrete feed elements</li>
<li><a href="../../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/XMLCharsetEncodingDetectionHowRssAndAtOMUtilitiEsROMEHelpsGettingTheRightCharsetEncoding.html">XML Charset Encoding Detection</a>, how ROME helps getting the right charset encoding</li>
<li><a href="../../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/RssAndAtOMUtilitiEsROMEV0.5TutorialDefiningACustomModuleBeanParserAndGenerator.html">Creating a custom Module</a>, creating all necessary pieces, bean, parser and generator</li>
<li><a href="../../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/TheCopyFromInterface.html">The CopyFrom interface</a></li></ul></li>
<li>Implementation documents
<ul>
<li><a href="../../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/UnderstandingRssAndAtOMUtilitiEsROMEBeanUtilities.html">ROME bean utilities, equals, toString and clonning</a></li></ul></li></ul></div>
<div class="section">
<h3>Known Issues <a name="Known_Issues"></a></h3>
<p>None. </p></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>

View file

@ -1,313 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME 0.6 Beta</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-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../ROMEReleases/ROME1.0Release.html" title="ROME 1.0">
<i class="none"></i>
ROME 1.0</a>
</li>
<li>
<a href="../ROMEReleases/ROME1.0RC2.html" title="ROME 1.0 RC2">
<i class="none"></i>
ROME 1.0 RC2</a>
</li>
<li>
<a href="../ROMEReleases/ROME1.0RC1.html" title="ROME 1.0 RC1">
<i class="none"></i>
ROME 1.0 RC1</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.9Beta.html" title="ROME 0.9 Beta">
<i class="none"></i>
ROME 0.9 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.8Beta.html" title="ROME 0.8 Beta">
<i class="none"></i>
ROME 0.8 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.7Beta.html" title="ROME 0.7 Beta">
<i class="none"></i>
ROME 0.7 Beta</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>ROME 0.6 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.5Beta/index.html" title="ROME 0.5 Beta">
<i class="none"></i>
ROME 0.5 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.4Beta/index.html" title="ROME 0.4 Beta">
<i class="none"></i>
ROME 0.4 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.3Beta/index.html" title="ROME 0.3 Beta">
<i class="none"></i>
ROME 0.3 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.2Beta/index.html" title="ROME 0.2 Beta">
<i class="none"></i>
ROME 0.2 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.1Beta/index.html" title="ROME 0.1 Beta">
<i class="none"></i>
ROME 0.1 Beta</a>
</li>
</ul>
</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>ROME 0.6 Beta<a name="ROME_0.6_Beta"></a></h2>
<p>Normally each release of ROME includes a whole new set of Wiki pages with the corresponding version number. ROME 0.6 is reusing ROME 0.5 Wiki pages as most of the changes are internal and the documentation has not changed.</p>
<div class="section">
<h3>What is New, Highlights<a name="What_is_New_Highlights"></a></h3>
<ul>
<li>Bug fixes</li></ul></div>
<div class="section">
<h3>Dependencies<a name="Dependencies"></a></h3>
<ul>
<li>J2SE 1.4+</li>
<li><a class="externalLink" href="http://www.jdom.org/">JDOM 1.0</a></li></ul></div>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-0.6-src.zip">rome-0.6-src.zip</a></li>
<li><a href="./rome-0.6.tar.gz">rome-0.6.tar.gz</a></li>
<li><a href="./rome-0.6.zip">rome-0.6.zip</a></li>
<li><a href="./rome-0.6-src.tar.gz">rome-0.6-src.tar.gz</a></li>
<li><a href="./rome-samples-0.6-src.tar.gz">rome-samples-0.6-src.tar.gz</a></li>
<li><a href="./rome-samples-0.6-src.zip">rome-samples-0.6-src.zip</a></li></ul></div>
<div class="section">
<h3>Additional Information <a name="Additional_Information"></a></h3>
<ul>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/index.html">Tutorials</a></li>
<li><a href="../ChangeLog.html">Changes Log</a></li>
<li>Inside ROME, How Things Work
<ul>
<li><a href="../HowRomeWorks/index.html">How ROME Works</a>, Understanding ROME, a detailed overview by Dave Johnson (This doc is based on ROME v0.4)</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/RssAndAtOMUtilitiEsROMEPluginsMechanism.html">ROME Plugins Mechanism</a>, bootstrap, adding and changing parsers, generators, converters and modules</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/FeedsDateElementsMappingToSyndFeedAndSyndEntry.html">Feeds Date Elements</a>, how Date data is mapped to SyndFeed and SyndEntry</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/FeedAndEntryURIMappingHowSyndFeedAndSyndEntryUriPropertiesMapToRSSAndAtomElements.html">Feed and Entry URI Mapping</a>, how SyndFeed and SyndEntry 'uri' properties map to concrete feed elements</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/XMLCharsetEncodingDetectionHowRssAndAtOMUtilitiEsROMEHelpsGettingTheRightCharsetEncoding.html">XML Charset Encoding Detection</a>, how ROME helps getting the right charset encoding</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/RssAndAtOMUtilitiEsROMEV0.5TutorialDefiningACustomModuleBeanParserAndGenerator.html">Creating a custom Module</a>, creating all necessary pieces, bean, parser and generator</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/TheCopyFromInterface.html">The CopyFrom interface</a></li></ul></li>
<li>Implementation documents
<ul>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/UnderstandingRssAndAtOMUtilitiEsROMEBeanUtilities.html">ROME bean utilities, equals, toString and clonning</a></li></ul></li></ul></div>
<div class="section">
<h3>Known Issues<a name="Known_Issues"></a></h3>
<p>None.</p></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>

View file

@ -1,314 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME 0.7 Beta</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-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../ROMEReleases/ROME1.0Release.html" title="ROME 1.0">
<i class="none"></i>
ROME 1.0</a>
</li>
<li>
<a href="../ROMEReleases/ROME1.0RC2.html" title="ROME 1.0 RC2">
<i class="none"></i>
ROME 1.0 RC2</a>
</li>
<li>
<a href="../ROMEReleases/ROME1.0RC1.html" title="ROME 1.0 RC1">
<i class="none"></i>
ROME 1.0 RC1</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.9Beta.html" title="ROME 0.9 Beta">
<i class="none"></i>
ROME 0.9 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.8Beta.html" title="ROME 0.8 Beta">
<i class="none"></i>
ROME 0.8 Beta</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>ROME 0.7 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.6Beta.html" title="ROME 0.6 Beta">
<i class="none"></i>
ROME 0.6 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.5Beta/index.html" title="ROME 0.5 Beta">
<i class="none"></i>
ROME 0.5 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.4Beta/index.html" title="ROME 0.4 Beta">
<i class="none"></i>
ROME 0.4 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.3Beta/index.html" title="ROME 0.3 Beta">
<i class="none"></i>
ROME 0.3 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.2Beta/index.html" title="ROME 0.2 Beta">
<i class="none"></i>
ROME 0.2 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.1Beta/index.html" title="ROME 0.1 Beta">
<i class="none"></i>
ROME 0.1 Beta</a>
</li>
</ul>
</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>ROME 0.7 Beta<a name="ROME_0.7_Beta"></a></h2>
<p>Normally each release of ROME includes a whole new set of Wiki pages with the corresponding version number. ROME 0.7 is reusing ROME 0.5 Wiki pages as most of the changes are internal.</p>
<div class="section">
<h3>What is New, Highlights<a name="What_is_New_Highlights"></a></h3>
<ul>
<li>We got a cool logo</li>
<li>Bug fixes</li>
<li>Several Date and time parsing improvements including support for custom parsing masks</li></ul></div>
<div class="section">
<h3>Dependencies <a name="Dependencies"></a></h3>
<ul>
<li>J2SE 1.4+</li>
<li><a class="externalLink" href="http://www.jdom.org/">JDOM 1.0</a></li></ul></div>
<div class="section">
<h3>Downloads <a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-0.7-src.zip">rome-0.7-src.zip</a></li>
<li><a href="./rome-0.7.tar.gz">rome-0.7.tar.gz</a></li>
<li><a href="./rome-0.7.zip">rome-0.7.zip</a></li>
<li><a href="./rome-0.7-src.tar.gz">rome-0.7-src.tar.gz</a></li>
<li><a href="./rome-samples-0.7-src.tar.gz">rome-samples-0.7-src.tar.gz</a></li>
<li><a href="./rome-samples-0.7-src.zip">rome-samples-0.7-src.zip</a></li></ul></div>
<div class="section">
<h3>Additional Information <a name="Additional_Information"></a></h3>
<ul>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/index.html">Tutorials</a></li>
<li><a href="../ChangeLog.html">Changes Log</a></li>
<li>Inside ROME, How Things Work
<ul>
<li><a href="../HowRomeWorks/index.html">How ROME Works</a>, Understanding ROME, a detailed overview by Dave Johnson (This doc is based on ROME v0.4)</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/RssAndAtOMUtilitiEsROMEPluginsMechanism.html">ROME Plugins Mechanism</a>, bootstrap, adding and changing parsers, generators, converters and modules</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/FeedsDateElementsMappingToSyndFeedAndSyndEntry.html">Feeds Date Elements</a>, how Date data is mapped to SyndFeed and SyndEntry</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/FeedAndEntryURIMappingHowSyndFeedAndSyndEntryUriPropertiesMapToRSSAndAtomElements.html">Feed and Entry URI Mapping</a>, how SyndFeed and SyndEntry 'uri' properties map to concrete feed elements</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/XMLCharsetEncodingDetectionHowRssAndAtOMUtilitiEsROMEHelpsGettingTheRightCharsetEncoding.html">XML Charset Encoding Detection</a>, how ROME helps getting the right charset encoding</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/RssAndAtOMUtilitiEsROMEV0.5TutorialDefiningACustomModuleBeanParserAndGenerator.html">Creating a custom Module</a>, creating all necessary pieces, bean, parser and generator</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/TheCopyFromInterface.html">The CopyFrom interface</a></li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/UnderstandingRssAndAtOMUtilitiEsROMEBeanUtilities.html">ROME bean utilities, equals, toString and clonning</a></li>
<li><a href="../RssAndAtOMUtiliEsROMEV0.7DateAndTimeParsing.html">Customizing Date and time parsing</a> in the rome.properties file <b>NEW</b></li></ul></li></ul></div>
<div class="section">
<h3>Known Issues <a name="Known_Issues"></a></h3>
<p>None.</p></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>

View file

@ -1,315 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME 0.8 Beta</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-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../ROMEReleases/ROME1.0Release.html" title="ROME 1.0">
<i class="none"></i>
ROME 1.0</a>
</li>
<li>
<a href="../ROMEReleases/ROME1.0RC2.html" title="ROME 1.0 RC2">
<i class="none"></i>
ROME 1.0 RC2</a>
</li>
<li>
<a href="../ROMEReleases/ROME1.0RC1.html" title="ROME 1.0 RC1">
<i class="none"></i>
ROME 1.0 RC1</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.9Beta.html" title="ROME 0.9 Beta">
<i class="none"></i>
ROME 0.9 Beta</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>ROME 0.8 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.7Beta.html" title="ROME 0.7 Beta">
<i class="none"></i>
ROME 0.7 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.6Beta.html" title="ROME 0.6 Beta">
<i class="none"></i>
ROME 0.6 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.5Beta/index.html" title="ROME 0.5 Beta">
<i class="none"></i>
ROME 0.5 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.4Beta/index.html" title="ROME 0.4 Beta">
<i class="none"></i>
ROME 0.4 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.3Beta/index.html" title="ROME 0.3 Beta">
<i class="none"></i>
ROME 0.3 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.2Beta/index.html" title="ROME 0.2 Beta">
<i class="none"></i>
ROME 0.2 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.1Beta/index.html" title="ROME 0.1 Beta">
<i class="none"></i>
ROME 0.1 Beta</a>
</li>
</ul>
</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>ROME 0.8 Beta<a name="ROME_0.8_Beta"></a></h2>
<p>Normally each release of ROME includes a whole new set of Wiki pages with the corresponding version number. ROME 0.8 is reusing ROME 0.7 Wiki pages as much as possible.</p>
<div class="section">
<h3>What is New, Highlights<a name="What_is_New_Highlights"></a></h3>
<ul>
<li>ROME now supports the final version of the Atom Syndication Format <a class="externalLink" href="http://www.ietf.org/rfc/rfc4287">RFC 4287</a>: let's Nuke all these feeds! <b>NEW</b></li>
<li>Enclosure support at the Synd level, for all our podcaster friends</li>
<li>Bug fixes</li>
<li>details in the ChangeList</li>
<li>Modules galore: Content, iTunes Podcast, Slash, Google Base, Creative Commons, MediaRSS</li></ul></div>
<div class="section">
<h3>Dependencies<a name="Dependencies"></a></h3>
<ul>
<li>J2SE 1.4+</li>
<li><a class="externalLink" href="http://www.jdom.org/">JDOM 1.0</a></li></ul></div>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-0.8-src.zip">rome-0.8-src.zip</a></li>
<li><a href="./rome-0.8.tar.gz">rome-0.8.tar.gz</a></li>
<li><a href="./rome-0.8.zip">rome-0.8.zip</a></li>
<li><a href="./rome-0.8-src.tar.gz">rome-0.8-src.tar.gz</a></li></ul></div>
<div class="section">
<h3>Additional Information <a name="Additional_Information"></a></h3>
<ul>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/index.html">Tutorials</a></li>
<li><a href="../ChangeLog.html">Changes Log</a></li>
<li>Inside ROME, How Things Work
<ul>
<li><a href="../HowRomeWorks/index.html">How ROME Works</a>, Understanding ROME, a detailed overview by Dave Johnson (This doc is based on ROME v0.4)</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/RssAndAtOMUtilitiEsROMEPluginsMechanism.html">ROME Plugins Mechanism</a>, bootstrap, adding and changing parsers, generators, converters and modules</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/FeedsDateElementsMappingToSyndFeedAndSyndEntry.html">Feeds Date Elements</a>, how Date data is mapped to SyndFeed and SyndEntry</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/FeedAndEntryURIMappingHowSyndFeedAndSyndEntryUriPropertiesMapToRSSAndAtomElements.html">Feed and Entry URI Mapping</a>, how SyndFeed and SyndEntry 'uri' properties map to concrete feed elements</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/XMLCharsetEncodingDetectionHowRssAndAtOMUtilitiEsROMEHelpsGettingTheRightCharsetEncoding.html">XML Charset Encoding Detection</a>, how ROME helps getting the right charset encoding</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/RssAndAtOMUtilitiEsROMEV0.5TutorialDefiningACustomModuleBeanParserAndGenerator.html">Creating a custom Module</a>, creating all necessary pieces, bean, parser and generator</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/TheCopyFromInterface.html">The CopyFrom interface</a></li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/UnderstandingRssAndAtOMUtilitiEsROMEBeanUtilities.html">ROME bean utilities, equals, toString and clonning</a></li>
<li><a href="../RssAndAtOMUtiliEsROMEV0.7DateAndTimeParsing.html">Customizing Date and time parsing</a> in the rome.properties file <b>NEW</b></li></ul></li></ul></div>
<div class="section">
<h3>Known Issues<a name="Known_Issues"></a></h3>
<p>None.</p>
<p>-- <a class="externalLink" href="http://wiki.java.net/twiki/bin/view/Main/PatrickChanezon">PatrickChanezon</a> - 02 Feb 2006</p></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>

View file

@ -1,318 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME 0.9 Beta</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-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../ROMEReleases/ROME1.0Release.html" title="ROME 1.0">
<i class="none"></i>
ROME 1.0</a>
</li>
<li>
<a href="../ROMEReleases/ROME1.0RC2.html" title="ROME 1.0 RC2">
<i class="none"></i>
ROME 1.0 RC2</a>
</li>
<li>
<a href="../ROMEReleases/ROME1.0RC1.html" title="ROME 1.0 RC1">
<i class="none"></i>
ROME 1.0 RC1</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>ROME 0.9 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.8Beta.html" title="ROME 0.8 Beta">
<i class="none"></i>
ROME 0.8 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.7Beta.html" title="ROME 0.7 Beta">
<i class="none"></i>
ROME 0.7 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.6Beta.html" title="ROME 0.6 Beta">
<i class="none"></i>
ROME 0.6 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.5Beta/index.html" title="ROME 0.5 Beta">
<i class="none"></i>
ROME 0.5 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.4Beta/index.html" title="ROME 0.4 Beta">
<i class="none"></i>
ROME 0.4 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.3Beta/index.html" title="ROME 0.3 Beta">
<i class="none"></i>
ROME 0.3 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.2Beta/index.html" title="ROME 0.2 Beta">
<i class="none"></i>
ROME 0.2 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.1Beta/index.html" title="ROME 0.1 Beta">
<i class="none"></i>
ROME 0.1 Beta</a>
</li>
</ul>
</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>ROME 0.9 Beta<a name="ROME_0.9_Beta"></a></h2>
<p>Normally each release of ROME includes a whole new set of Wiki pages with the corresponding version number. ROME 0.9 is reusing ROME 0.8 Wiki pages as much as possible.</p>
<div class="section">
<h3>What is New, Highlights<a name="What_is_New_Highlights"></a></h3>
<ul>
<li>Better support for RSS feeds that use</li>
<li>Better mapping for RSS description/content and Atom summary/content</li>
<li>Numerous bug fixes</li>
<li>Details in the ChangeList</li></ul></div>
<div class="section">
<h3>Dependencies<a name="Dependencies"></a></h3>
<ul>
<li>J2SE 1.4+</li>
<li><a class="externalLink" href="http://www.jdom.org/">JDOM 1.0</a></li></ul></div>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-samples-0.9.tar.gz">rome-samples-0.9.tar.gz</a></li>
<li><a href="./rome-0.9.tar.gz">rome-0.9.tar.gz</a></li>
<li><a href="./rome-0.9-src.zip">rome-0.9-src.zip</a></li>
<li><a href="./rome-0.9-src.tar.gz">rome-0.9-src.tar.gz</a></li>
<li><a href="./rome-0.9.zip">rome-0.9.zip</a></li>
<li><a href="./rome-samples-0.9.zip">rome-samples-0.9.zip</a></li>
<li><a href="./rome-samples-0.9-src.tar.gz">rome-samples-0.9-src.tar.gz</a></li>
<li><a href="./rome-samples-0.9-src.zip">rome-samples-0.9-src.zip</a></li></ul></div>
<div class="section">
<h3>Additional Information<a name="Additional_Information"></a></h3>
<ul>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/index.html">Tutorials</a></li>
<li><a href="../ChangeLog.html">Changes Log</a></li>
<li>Inside ROME, How Things Work
<ul>
<li><a href="../HowRomeWorks/index.html">How ROME Works</a>, Understanding ROME, a detailed overview by Dave Johnson (This doc is based on ROME v0.4)</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/RssAndAtOMUtilitiEsROMEPluginsMechanism.html">ROME Plugins Mechanism</a>, bootstrap, adding and changing parsers, generators, converters and modules</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/FeedsDateElementsMappingToSyndFeedAndSyndEntry.html">Feeds Date Elements</a>, how Date data is mapped to SyndFeed and SyndEntry</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/FeedAndEntryURIMappingHowSyndFeedAndSyndEntryUriPropertiesMapToRSSAndAtomElements.html">Feed and Entry URI Mapping</a>, how SyndFeed and SyndEntry 'uri' properties map to concrete feed elements</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/XMLCharsetEncodingDetectionHowRssAndAtOMUtilitiEsROMEHelpsGettingTheRightCharsetEncoding.html">XML Charset Encoding Detection</a>, how ROME helps getting the right charset encoding</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/RssAndAtOMUtilitiEsROMEV0.5TutorialDefiningACustomModuleBeanParserAndGenerator.html">Creating a custom Module</a>, creating all necessary pieces, bean, parser and generator</li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/TheCopyFromInterface.html">The CopyFrom interface</a></li>
<li><a href="../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/UnderstandingRssAndAtOMUtilitiEsROMEBeanUtilities.html">ROME bean utilities, equals, toString and clonning</a></li>
<li><a href="../RssAndAtOMUtiliEsROMEV0.7DateAndTimeParsing.html">Customizing Date and time parsing</a> in the rome.properties file <b>NEW</b></li></ul></li></ul></div>
<div class="section">
<h3>Known Issues<a name="Known_Issues"></a></h3>
<p>None.</p>
<p>-- Main.snoopdave - 06 Dec 2006</p></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>

View file

@ -1,303 +0,0 @@
<!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 - ROME 1.0 RC1</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-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../ROMEReleases/ROME1.0Release.html" title="ROME 1.0">
<i class="none"></i>
ROME 1.0</a>
</li>
<li>
<a href="../ROMEReleases/ROME1.0RC2.html" title="ROME 1.0 RC2">
<i class="none"></i>
ROME 1.0 RC2</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>ROME 1.0 RC1</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.9Beta.html" title="ROME 0.9 Beta">
<i class="none"></i>
ROME 0.9 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.8Beta.html" title="ROME 0.8 Beta">
<i class="none"></i>
ROME 0.8 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.7Beta.html" title="ROME 0.7 Beta">
<i class="none"></i>
ROME 0.7 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.6Beta.html" title="ROME 0.6 Beta">
<i class="none"></i>
ROME 0.6 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.5Beta/index.html" title="ROME 0.5 Beta">
<i class="none"></i>
ROME 0.5 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.4Beta/index.html" title="ROME 0.4 Beta">
<i class="none"></i>
ROME 0.4 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.3Beta/index.html" title="ROME 0.3 Beta">
<i class="none"></i>
ROME 0.3 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.2Beta/index.html" title="ROME 0.2 Beta">
<i class="none"></i>
ROME 0.2 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.1Beta/index.html" title="ROME 0.1 Beta">
<i class="none"></i>
ROME 0.1 Beta</a>
</li>
</ul>
</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>ROME 1.0 RC1<a name="ROME_1.0_RC1"></a></h2>
<div class="section">
<h3>Rss and atOM utiliEs (ROME) v1.0 RC1 (16 Jul 2008)<a name="Rss_and_atOM_utiliEs_ROME_v1.0_RC1_16_Jul_2008"></a></h3>
<p>Normally each release of ROME includes a whole new set of Wiki pages with the corresponding version number. ROME 1.0 is reusing wikis from previous versions as there are not significant changes.</p></div>
<div class="section">
<h3>What is New, Highlights<a name="What_is_New_Highlights"></a></h3>
<ul>
<li>Several XmlReader fixes</li>
<li>Several Atom 1.0 bean, parser and generator fixes</li>
<li>Some RSS fixes</li>
<li>Removal of unused namespaces</li>
<li>Details in the <a href="../ChangeLog.html">change log</a></li></ul></div>
<div class="section">
<h3>Dependencies<a name="Dependencies"></a></h3>
<ul>
<li>J2SE 1.4+</li>
<li><a class="externalLink" href="http://www.jdom.org/">JDOM 1.0</a></li></ul></div>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-samples-1.0RC1-src.zip">rome-samples-1.0RC1-src.zip</a></li>
<li><a href="./rome-1.0RC1-src.zip">rome-1.0RC1-src.zip</a></li>
<li><a href="./rome-1.0RC1.tar.gz">rome-1.0RC1.tar.gz</a></li>
<li><a href="./rome-1.0RC1.zip">rome-1.0RC1.zip</a></li>
<li><a href="./rome-1.0RC1-src.tar.gz">rome-1.0RC1-src.tar.gz</a></li>
<li><a href="./rome-samples-1.0RC1-src.tar.gz">rome-samples-1.0RC1-src.tar.gz</a></li></ul></div>
<div class="section">
<h3>Documentation <a name="Documentation"></a></h3>
<ul>
<li><a class="externalLink" href="http://rome.dev.java.net/apidocs/1_0RC1/overview-summary.html">Javadocs</a></li></ul></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>

View file

@ -1,298 +0,0 @@
<!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 - ROME 1.0 RC2</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-down"></i>
Releases</a>
<ul class="nav nav-list">
<li>
<a href="../ROMEReleases/ROME1.0Release.html" title="ROME 1.0">
<i class="none"></i>
ROME 1.0</a>
</li>
<li class="active">
<a href="#"><i class="none"></i>ROME 1.0 RC2</a>
</li>
<li>
<a href="../ROMEReleases/ROME1.0RC1.html" title="ROME 1.0 RC1">
<i class="none"></i>
ROME 1.0 RC1</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.9Beta.html" title="ROME 0.9 Beta">
<i class="none"></i>
ROME 0.9 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.8Beta.html" title="ROME 0.8 Beta">
<i class="none"></i>
ROME 0.8 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.7Beta.html" title="ROME 0.7 Beta">
<i class="none"></i>
ROME 0.7 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.6Beta.html" title="ROME 0.6 Beta">
<i class="none"></i>
ROME 0.6 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.5Beta/index.html" title="ROME 0.5 Beta">
<i class="none"></i>
ROME 0.5 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.4Beta/index.html" title="ROME 0.4 Beta">
<i class="none"></i>
ROME 0.4 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.3Beta/index.html" title="ROME 0.3 Beta">
<i class="none"></i>
ROME 0.3 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.2Beta/index.html" title="ROME 0.2 Beta">
<i class="none"></i>
ROME 0.2 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.1Beta/index.html" title="ROME 0.1 Beta">
<i class="none"></i>
ROME 0.1 Beta</a>
</li>
</ul>
</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>ROME 1.0 RC2<a name="ROME_1.0_RC2"></a></h2>
<div class="section">
<h3>What is New, Highlights<a name="What_is_New_Highlights"></a></h3>
<ul>
<li>ROME is now <a href="../HowToBuildRome.html">built using Maven 2</a></li>
<li>ROME jars are now available in the&#xa0;<a href="../ROMEAndMaven2.html">java.net Maven repository</a></li>
<li>More lenient handling of Number formats during parsing</li>
<li>Better date parsing for Atom dates</li>
<li>Complete details in the <a href="../ChangeLog.html">change log</a></li></ul></div>
<div class="section">
<h3>Dependencies<a name="Dependencies"></a></h3>
<ul>
<li><a class="externalLink" href="http://wiki.java.net/twiki/bin/view/Javawsxml/J2SE">J2SE</a> 1.4+</li>
<li><a class="externalLink" href="http://www.jdom.org/">JDOM 1.0</a></li></ul></div>
<div class="section">
<h3>Downloads<a name="Downloads"></a></h3>
<ul>
<li><a href="./rome-fetcher-1.0RC2-src.zip">rome-fetcher-1.0RC2-src.zip</a></li>
<li><a href="./rome-1.0RC2.jar">rome-1.0RC2.jar</a></li>
<li><a href="./rome-1.0RC2-javadoc.jar">rome-1.0RC2-javadoc.jar</a></li>
<li><a href="./rome-1.0RC2-sources.jar">rome-1.0RC2-sources.jar</a></li></ul></div>
<div class="section">
<h3>Documentation<a name="Documentation"></a></h3>
<ul>
<li><a class="externalLink" href="http://rome.dev.java.net/apidocs/1_0RC2/overview-summary.html">Javadocs</a></li></ul></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>

View file

@ -1,300 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME 1.0 Release</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-down"></i>
Releases</a>
<ul class="nav nav-list">
<li class="active">
<a href="#"><i class="none"></i>ROME 1.0</a>
</li>
<li>
<a href="../ROMEReleases/ROME1.0RC2.html" title="ROME 1.0 RC2">
<i class="none"></i>
ROME 1.0 RC2</a>
</li>
<li>
<a href="../ROMEReleases/ROME1.0RC1.html" title="ROME 1.0 RC1">
<i class="none"></i>
ROME 1.0 RC1</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.9Beta.html" title="ROME 0.9 Beta">
<i class="none"></i>
ROME 0.9 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.8Beta.html" title="ROME 0.8 Beta">
<i class="none"></i>
ROME 0.8 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.7Beta.html" title="ROME 0.7 Beta">
<i class="none"></i>
ROME 0.7 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.6Beta.html" title="ROME 0.6 Beta">
<i class="none"></i>
ROME 0.6 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.5Beta/index.html" title="ROME 0.5 Beta">
<i class="none"></i>
ROME 0.5 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.4Beta/index.html" title="ROME 0.4 Beta">
<i class="none"></i>
ROME 0.4 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.3Beta/index.html" title="ROME 0.3 Beta">
<i class="none"></i>
ROME 0.3 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.2Beta/index.html" title="ROME 0.2 Beta">
<i class="none"></i>
ROME 0.2 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.1Beta/index.html" title="ROME 0.1 Beta">
<i class="none"></i>
ROME 0.1 Beta</a>
</li>
</ul>
</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>ROME 1.0 Release<a name="ROME_1.0_Release"></a></h2>
<p><i>ROME 1.0 was released on March 12, 2009</i></p>
<div class="section">
<h3>What is New / Highlights<a name="What_is_New__Highlights"></a></h3>
<p>Normally each release of ROME includes a whole new set of Wiki pages with the corresponding version number. ROME 1.0 is reusing wikis from previous versions as there are not significant changes. </p>
<ul>
<li>ROME can now optionally preserve WireFeed (ie, Atom/RSS specific) data and make it available via the SyndFeed data model. See <a href="../PreservingWireFeeds.html">PreservingWireFeeds</a> for further details</li></ul>
<ul>
<li>Complete details in the <a href="../ChangeLog.html">change log</a></li></ul>
<div class="section">
<h4>Downloads<a name="Downloads"></a></h4>
<ul>
<li><a href="./rome-1.0.jar">rome-1.0.jar</a></li>
<li><a href="./rome-1.0-sources.jar">rome-1.0-sources.jar</a></li>
<li><a href="./rome-1.0-javadoc.jar">rome-1.0-javadoc.jar</a></li>
<li><a href="./rome-1.0.jar">rome-1.0.jar</a></li>
<li><a href="./rome-1.0-javadoc.jar">rome-1.0-javadoc.jar</a></li>
<li><a href="./rome-1.0-sources.jar">rome-1.0-sources.jar</a></li></ul></div>
<div class="section">
<h4>Dependencies<a name="Dependencies"></a></h4>
<ul>
<li>J2SE 1.4+</li>
<li><a class="externalLink" href="http://www.jdom.org/">JDOM 1.0</a>\</li></ul></div>
<div class="section">
<h4>Documentation<a name="Documentation"></a></h4>
<ul>
<li><a class="externalLink" href="http://rome.dev.java.net/apidocs/1_0/overview-summary.html">Javadocs</a></li></ul></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>

View file

@ -1,314 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - ROME Releases</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 class="active">
<a href="#"><i class="icon-chevron-down"></i>Releases</a>
<ul class="nav nav-list">
<li>
<a href="../ROMEReleases/ROME1.0Release.html" title="ROME 1.0">
<i class="none"></i>
ROME 1.0</a>
</li>
<li>
<a href="../ROMEReleases/ROME1.0RC2.html" title="ROME 1.0 RC2">
<i class="none"></i>
ROME 1.0 RC2</a>
</li>
<li>
<a href="../ROMEReleases/ROME1.0RC1.html" title="ROME 1.0 RC1">
<i class="none"></i>
ROME 1.0 RC1</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.9Beta.html" title="ROME 0.9 Beta">
<i class="none"></i>
ROME 0.9 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.8Beta.html" title="ROME 0.8 Beta">
<i class="none"></i>
ROME 0.8 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.7Beta.html" title="ROME 0.7 Beta">
<i class="none"></i>
ROME 0.7 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.6Beta.html" title="ROME 0.6 Beta">
<i class="none"></i>
ROME 0.6 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.5Beta/index.html" title="ROME 0.5 Beta">
<i class="none"></i>
ROME 0.5 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.4Beta/index.html" title="ROME 0.4 Beta">
<i class="none"></i>
ROME 0.4 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.3Beta/index.html" title="ROME 0.3 Beta">
<i class="none"></i>
ROME 0.3 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.2Beta/index.html" title="ROME 0.2 Beta">
<i class="none"></i>
ROME 0.2 Beta</a>
</li>
<li>
<a href="../ROMEReleases/ROME0.1Beta/index.html" title="ROME 0.1 Beta">
<i class="none"></i>
ROME 0.1 Beta</a>
</li>
</ul>
</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>ROME Releases<a name="ROME_Releases"></a></h2>
<table border="1" class="table table-striped">
<tr class="a">
<th align="left">Version</th>
<th align="left">Release Date</th></tr>
<tr class="b">
<td align="left"><a href="./ROME1.0Release.html">ROME 1.0</a></td>
<td align="left">March 12, 2009</td></tr>
<tr class="a">
<td align="left"><a href="./ROME1.0RC2.html">Rome v1.0 RC2</a></td>
<td align="left">Jan 9, 2009</td></tr>
<tr class="b">
<td align="left"><a href="./ROME1.0RC1.html">Rome v1.0 RC1</a></td>
<td align="left">Jul 16, 2007</td></tr>
<tr class="a">
<td align="left"><a href="./ROME0.9Beta.html">Rome v0.9 Beta</a></td>
<td align="left">Dec 11, 2006</td></tr>
<tr class="b">
<td align="left"><a href="./ROME0.8Beta.html">Rome v0.8 Beta</a></td>
<td align="left">Feb 01, 2006</td></tr>
<tr class="a">
<td align="left"><a href="./ROME0.7Beta.html">Rome v0.7 Beta</a></td>
<td align="left">Sep 09, 2005</td></tr>
<tr class="b">
<td align="left"><a href="./ROME0.6Beta.html">Rome v0.6 Beta</a></td>
<td align="left">Apr 01, 2005</td></tr>
<tr class="a">
<td align="left"><a href="./ROME0.5Beta/index.html">Rome v0.5 Beta</a></td>
<td align="left">Jan 10, 2005</td></tr>
<tr class="b">
<td align="left"><a href="./ROME0.4Beta/index.html">Rome v0.4 Beta</a></td>
<td align="left">Sep 27, 2004</td></tr>
<tr class="a">
<td align="left"><a href="./ROME0.3Beta/index.html">Rome v0.3 Beta</a></td>
<td align="left">Jul 28, 2004</td></tr>
<tr class="b">
<td align="left"><a href="./ROME0.2Beta/index.html">Rome v0.2 Beta</a></td>
<td align="left">Jun 16, 2004</td></tr>
<tr class="a">
<td align="left"><a href="./ROME0.1Beta/index.html">Rome v0.1 Beta</a></td>
<td align="left">Jun 08, 2004</td></tr></table></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>

View file

@ -1,244 +0,0 @@
<!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 - Rome API FAQ</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>Rome API FAQ<a name="Rome_API_FAQ"></a></h2>
<p>As we were designing and implementing Rome we had discusssions, brainstorming and code reviews on the API. We've captured them in this document.</p>
<div class="section">
<h3>Do SyndFeed support arbitrary Metadata?<a name="Do_SyndFeed_support_arbitrary_Metadata"></a></h3>
<p>Yes, using what we call Modules. Currently we support the 2 modules defined in RSS 1.0, <a class="externalLink" href="http://purl.org/rss/1.0/modules/dc/">Dublin Core</a> and <a class="externalLink" href="http://purl.org/rss/1.0/modules/syndication/">Syndication</a>. They are wired when converting from SyndFeed beans to RSS/Atom feeds beans and vice versa. We use the RSS 1.0 terminology of Modules because RSS 1.0 is the specification that defined and used extensibility the most. RSS 2.0 and Atom use XML namespaces to extend the feed.</p>
<p>However we will develop, and encourage developers to develop Rome specific Modules to handle future RSS 2.0 and Atom extensions.</p>
<p>If additional modules are defined to express metadata the converters should be modified to handle them. And the same goes for the parsers and generators or RSS/Atom feeds.</p></div>
<div class="section">
<h3>Why those package, interfaces, classes and method names?<a name="Why_those_package_interfaces_classes_and_method_names"></a></h3>
<p>We've struggled (and still are struggling) with names. We renamed and moved things around until we got dizzy. If you have suggestions please let us know.</p></div>
<div class="section">
<h3>Where are the parser, generator and converter implementations?<a name="Where_are_the_parser_generator_and_converter_implementations"></a></h3>
<p>They are in hidden (not javadoc-ed) packages within the Rome jar file. Their classes are loaded using declarations in a properties file. It is possible for developers to add or replace implementations of these components without modifying Rome source code, just by indicating an addition properties file to look for extra implementation classes.</p></div>
<div class="section">
<h3>What are the interfaces and classes in the syndication.common package for? And why most bean (or interface) extend/implement them?<a name="What_are_the_interfaces_and_classes_in_the_syndication.common_package_for_And_why_most_bean_or_interface_extendimplement_them"></a></h3>
<p>At first we got tired of modifying the toString() methods every time we were adding/removing a property. As we were strictly following the Bean patterns we wrote a toString() method that would traverse the properties and print them. Then we went recursively. Then we refactor that into an interface and provided an adapter.</p>
<p>Later we did the same to handle equals/hashcode, which is very useful when using Maps.</p>
<p>To complete the task we did the same for cloning, providing deep cloning support.</p>
<p>The ObjectBean is a base class that implements all these features. All Rome beans extend ObjectBean getting a toString, equals, hashcode and clone support for free.</p></div>
<div class="section">
<h3>What are the property values when not set?<a name="What_are_the_property_values_when_not_set"></a></h3>
<p>For Boolean is <b>false</b>. For numbers is 1. For String is null. For collections is an empty collection (even if you set it to null you get an empty collection). For all other objects is null.</p></div>
<div class="section">
<h3>Are properties copied by value or by reference when set or gotten?<a name="Are_properties_copied_by_value_or_by_reference_when_set_or_gotten"></a></h3>
<p>All properties as always handled by reference (except primitive types). If they are not immutable and you modify them you are affecting the bean/s that reference them too.</p></div>
<div class="section">
<h3>What is with the interface and implementation names in the synd and module packages?<a name="What_is_with_the_interface_and_implementation_names_in_the_synd_and_module_packages"></a></h3>
<p>Interfaces have the following naming pattern: &lt;NAME&gt;I. Default implementations provided with Rome are named just &lt;NAME&gt;. For example, SyndFeedI is the interface and SyndFeed is the default implementation.</p>
<p>We decided to use &lt;NAME&gt; for the default implementation classes as we think they'll be the implementation of choice most of the time.</p></div>
<div class="section">
<h3>Why the beans in the synd and module packages have interface and implementation versions of them?<a name="Why_the_beans_in_the_synd_and_module_packages_have_interface_and_implementation_versions_of_them"></a></h3>
<p>We added interfaces only for the higher abstraction layer of Rome, SyndFeed (and Modules as they are used to express extensible metadata for SyndFeed instances). The reasoning behind such decoupling was to allow facading existing classes as SyndFeed beans. For example some persistent classes. This would allow to process them through components that work with SyndFeedI.</p></div>
<div class="section">
<h3>Why the RSS and Atom beans don't have interface and implementation versions of it?<a name="Why_the_RSS_and_Atom_beans_dont_have_interface_and_implementation_versions_of_it"></a></h3>
<p>We thought about this, we dismissed the idea. The reasoning was that we expect to work with the SyndFeed and Module beans all the time and the convenience of using interface should be at that level only. We have RSS and Atom only because we have folks going and making up things without talking to each other. In short, we expect all our application processing to be done in a feed agnostic way in Java using SyndFeed and Module beans.</p></div>
<div class="section">
<h3>How all the escaping for the description elements is handled for the different feed types as they keep changing their mind version after version?<a name="How_all_the_escaping_for_the_description_elements_is_handled_for_the_different_feed_types_as_they_keep_changing_their_mind_version_after_version"></a></h3>
<p>Item description MIME type, depending on the RSS version is text/plain (0.91), text/html (0.92, 0.93, 2.0) or configurable (0.94). The thing is that when you get the value out of JDOM Element it's always XML unescaped. When putting data into a JDOM Element the data is XML escaped. This is not 100% correct but it will work in most of the cases.</p>
<p>Note that type in feed beans indicate what was the escaping type of the underlying feed, but if you get the value is already unescaped.</p></div>
<div class="section">
<h3>How does Rome handle Atom content elements that support encoding (Base64, XML, plain) using the mode attribute?<a name="How_does_Rome_handle_Atom_content_elements_that_support_encoding_Base64_XML_plain_using_the_mode_attribute"></a></h3>
<p>The mode in feed in content indicates what was the encoding of the element in the feed, but when you get the value is already unencoded.</p></div>
<div class="section">
<h3>What kind of input and output Rome supports?<a name="What_kind_of_input_and_output_Rome_supports"></a></h3>
<p>Rome implementation currently uses JDOM for parsing and generating syndication feeds. As people tend to use the XML libraries they feel more comfortable with we have built in support for SAX, DOM, JDOM, byte streams, character streams and strings.</p></div>
<div class="section">
<h3>What is the SyndFeedI.getSupportedFeedTypes() method for?<a name="What_is_the_SyndFeedI.getSupportedFeedTypes_method_for"></a></h3>
<p>This method was originally a static method in the SyndFeed class. We've moved ot the SyndFeedI interface as we thought it would be useful to be able to ask a SyndFeedI instance the feed converters it handles.</p></div>
<div class="section">
<h3>Are Rome beans Serializable? Why?<a name="Are_Rome_beans_Serializable_Why"></a></h3>
<p>Yes, the default bean implementations of SyndFeedI provided with Rome are Serializable.</p>
<p>However, the *I interfaces are not. We made that decision consciously and the reason behind it is closely related to the reason we introduced the *I interfaces. You may want to extend some existing classes to implement SyndFeedI, and these classes you are extending may not be Serializable and cannot be (for example, they are tied to a live InputStream).</p></div>
<div class="section">
<h3>Why all those packages?<a name="Why_all_those_packages"></a></h3>
<p>TBD</p></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>

View file

@ -1,229 +0,0 @@
<!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="20110815" />
<meta name="Date-Revision-yyyymmdd" content="20160424" />
<meta http-equiv="Content-Language" content="en" />
<title>ROME - Rome v0.4, Feed and Entry URI Mapping</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>Rome v0.4, Feed and Entry URI Mapping<a name="Rome_v0.4_Feed_and_Entry_URI_Mapping"></a></h2>
<p>Rome Synd beans define the concept of URI at both feed and entry levels. The purpose of this URI is to help uniquely identifying feeds and entries when processed with Rome. This is particularly useful when a system is persisting feeds and when doing data manipulation where a primary key for the feeds or the entries is needed.</p>
<div class="section">
<h3>The Problem<a name="The_Problem"></a></h3>
<p>RSS 0.90, 0.91, 0.92, 0.93 and 1.0 do not define any special element for the purposes of identifying the feed or the items other than the items link element. The channel link element cannot be used to identify the feed as its semantics is to refer to the web site that has the information being published through the feed and, if web site offers more than one feed most likely both of them will have the same feed link value.</p>
<p>RSS 0.94 and RSS 2.0 define the guid element at item level. The guid element has an overloaded meaning. If the isPermalink attribute is true, the guid value can be used also as the URL for the item instead of the link element as well as a unique ID for the item. If the isPermalink attribute is false, the guid value can be used as a unique ID for the item. However, RSS 0.94 or RSS 2.0, do not define that the value of the guid element must be an URI.</p>
<p>Atom 0.3 defines an id element at feed and entry levels. The id element is defined as an URI. The Atom specification being currently designed requires the id element to contain a normalized URI as defined by RFC 2396bis.</p>
<p>The RSS0.94 and RSS 2.0 guid element and the Atom 0.3 id element are optional elements. Because of this, they may not be present at all in feeds.</p></div>
<div class="section">
<h3>Rome's Solution<a name="Romes_Solution"></a></h3>
<p>Because the concept of a URI it is not defined in all the feed formats, Rome makes an arbitrary design decision to provide the URI functionality regardless of the original (or target) feed type. The following behavior as been chosen based on expected and assumed usage pattern of feed and entry data.</p></div>
<div class="section">
<h3>URI Normalization<a name="URI_Normalization"></a></h3>
<p>If the uri property of a SyndFeed or SyndEntry bean is not NULL, the getter method must return a normalized URI following the rules defined in RFC2396bis.</p>
<div class="section">
<h4>Converting from WireFeed (RSS or Atom) to SyndFeed<a name="Converting_from_WireFeed_RSS_or_Atom_to_SyndFeed"></a></h4>
<p>The common use case for this scenario is when consuming a feed. Because of that, for clarity purposes, when referring to the data in the WireFeed the following sections talks about elements (as in the XML feed) instead of talking of properties.</p></div>
<div class="section">
<h4>SyndFeed<a name="SyndFeed"></a></h4>
<p>None of the RSS versions define an ID at channel level. In addition to this, Rome input classes (WireFeedInput and SyndFeedInput) do not have access to the URL (if any) used to fetch the feed. Because of this Rome does not set in the SyndFeed uri property , it is left to developer to set (if needed) a URI in the feed bean.</p>
<p>In the case of Atom 0.3, if the id element is present in the feed, the SyndFeed uri property will be set with the value of the id element. If it is not present, the developer must set (if needed) a URI manually.</p>
<div class="section">
<h5>SyndEntry<a name="SyndEntry"></a></h5>
<p>For RSS 0.91, RSS 0.92, RSS 0.93 &amp; RSS 1.0 if the link element is present in the item, the SyndEntry uri property will be set with the value of the link element. Otherwise the SyndEntry uri property is left as NULL and the developer must set it (if needed).</p>
<p>For RSS 0.94 &amp; RSS 2.0 if the guid property is present in the item, the SyndEntry uri property will be set with the value of the guid element. If the guid element is not present, the SyndEntry uri property will be set with the value of the link element. If the link element is missing but the guid is present and it is flagged as a permalink, Rome will set set the SyndEntry link property with the value of the guid element (Rome is doing this because is a common practice to generated RSS 2.0 fees with guid elements marked as permalinks and without a link element).</p>
<p>For Atom 0.3 if the id element is present, the SyndEntry uri property is set with the value of the id element. If the id element is not present, the SyndEntry uri property is set with the value of the alternate link element.</p></div></div>
<div class="section">
<h4>Converting from SyndFeed to WireFeed (RSS or Atom)<a name="Converting_from_SyndFeed_to_WireFeed_RSS_or_Atom"></a></h4>
<p>The common use case for this scenario is when generating a feed. Because of that, for clarity purposes, when referring to the data in the WireFeed the following sections talks about elements (as in the XML feed) instead of talking of properties.</p>
<div class="section">
<h5>SyndFeed<a name="SyndFeed"></a></h5>
<p>For RSS 0.91, RSS 0.92, RSS 0.93, RSS 1.0 &amp; RSS 2.0 the SyndFeed uri property is lost as there is not possible representation in the channel element for it.</p>
<p>For Atom 0.3 set the SyndFeed uri property is set as the value for the id element.</p></div>
<div class="section">
<h5>SyndEntry<a name="SyndEntry"></a></h5>
<p>For RSS 0.91, RSS 0.92, RSS 0.93 &amp; RSS 1.0 the SyndEntry uri property is lost as there is not possible representation in the item element for it.</p>
<p>For RSS 0.94 &amp; RSS 2.0 the SyndEntry uri property is set as the value of the guid element with permalink set to false. If the SyndEntry uri property is not set, the SyndEntry link property is set as the value of the guid element with permalink set to true. Note that if the SyndFEntry linkproperty is missing the SyndEntry uri cannot be set as the value of the link element because it cannot be assumed that the uri property is an URL.</p>
<p>Because SyndEntry instances always return a normalized URI the value of the guid elements of a generated RSS 0.94 or RSS 2.0 may differ from the values of the guid elements of the original feed.</p>
<p>For Atom 0.3 the SyndEntry uri property is set as the id element.</p>
<p>Mosh...</p></div></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>

Some files were not shown because too many files have changed in this diff Show more