Merge pull request #1 from imk/master

maven site for Rome fetcher
This commit is contained in:
Patrick Gotthard 2013-09-30 08:28:02 -07:00
commit aabcbedced
56 changed files with 910 additions and 8 deletions

7
README.md Normal file
View file

@ -0,0 +1,7 @@
rome
====
ROME is a set of RSS and Atom Utilities for Java. It makes it easy to work in Java with most syndication formats: RSS 0.90, RSS 0.91 Netscape,
RSS 0.91 Userland, RSS 0.92, RSS 0.93, RSS 0.94, RSS 1.0, RSS 2.0, Atom 0.3, Atom 1.0
More Information: http://rometools.github.io/rome-fetcher/

62
pom.xml
View file

@ -7,18 +7,18 @@
<version>1.2</version> <version>1.2</version>
<inceptionYear>2004</inceptionYear> <inceptionYear>2004</inceptionYear>
<description>A well behaved feed fetcher API for ROME</description> <description>A well behaved feed fetcher API for ROME</description>
<url>http://www.rometools.org</url> <url>http://rometools.github.io/rome-fetcher/</url>
<organization> <organization>
<name>ROME Project</name> <name>ROME Project</name>
<url>http://rometools.jira.com</url> <url>https://github.com/rometools/</url>
</organization> </organization>
<issueManagement> <issueManagement>
<url>https://rometools.jira.com/secure/IssueNavigator.jspa</url> <url>https://github.com/rometools/rome-fetcher/issues</url>
</issueManagement> </issueManagement>
<scm> <scm>
<connection>scm:svn:https://rometools.jira.com/svn/FETCHER/trunk</connection> <connection>scm:git:git@github.com:rometools/rome-fetcher.git</connection>
<developerConnection>scm:svn:https://rometools.jira.com/svn/FETCHER/trunk</developerConnection> <developerConnection>scm:git:git@github.com:rometools/rome-fetcher.git</developerConnection>
<url>https://rometools.jira.com/source/browse/FETCHER</url> <url>https://github.com/rometools/rome-fetcher/</url>
</scm> </scm>
<licenses> <licenses>
<license> <license>
@ -89,12 +89,30 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId> <artifactId>maven-resources-plugin</artifactId>
<version>2.2</version> <version>2.6</version>
<configuration> <configuration>
<encoding>${project.build.sourceEncoding}</encoding> <encoding>${project.build.sourceEncoding}</encoding>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.3</version>
<configuration>
<port>9000</port>
<tempWebappDirectory>${basedir}/target/site/tempdir</tempWebappDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<version>1.0-beta-2</version>
<configuration>
<scmBranch>gh-pages</scmBranch>
<pubScmUrl>scm:git:git@github.com:rometools/rome-fetcher.git</pubScmUrl>
<content>${project.build.directory}/site</content>
</configuration>
</plugin>
</plugins> </plugins>
</build> </build>
<dependencies> <dependencies>
@ -237,4 +255,32 @@
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.6</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
<reportSets>
<reportSet>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
<reportSet>
<id>aggregate</id>
<inherited>false</inherited>
<reports>
<report>aggregate</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
</project> </project>

View file

@ -0,0 +1,11 @@
-----
Building the Rome Fetcher
-----
mkurz
-----
2011-08-15 17:34:51.402
-----
Building the Rome Fetcher
The Rome Fetcher can build using Maven 2.

113
src/site/apt/ChangeLog.apt Normal file
View file

@ -0,0 +1,113 @@
-----
Change Log
-----
mkurz
-----
2011-08-15 17:27:20.212
-----
Change Log
*Prior to first release (on the way to v0.3)
[[1]] Updated to handle removal of IO methods using byte streams\
Byte Stream IO was removed from Rome itself. The Rome Fetcher is now updated to support this
[[1]] Add FeedFetcherI interface and FeedFetcherFactory class\
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)
[[1]] Event Support Added to FeedFetcherI\
The FeedFetcherI interface now supports feed polled, feed retrieved and feed unchanged events
[[1]] Samples added\
Samples are now included with the Rome Fetcher
[[1]] Unit Tests Added\
JUnit based tests which invoke the Rome Fetcher against an embedded Jetty webserver are now included
[[1]] Bug fixes in the FeedFetcher event model\
The JUnit test suite uncovered some bugs in the event model used by the FeedFetcher. These bugs are now fixed.
[[1]] Refactored the SyndFeedInfo class\
SyndFeedInfo now extends ObjectBean
[[1]] Removed FeedFetcherFactory\
The benefit of the FeedFetcherFactory was arguable. Now the client code will need to manage the creation of specific implementations of the FeedFetcher
[]
*Prior to second release (on the way to v0.4)
[[1]] Refectored to match Rome naming standards\
FeedFetcherI renamed to FeedFetcher\
#. New FeedFetcher Implementation\
HttpClientFeedFetcher uses the Apache Commons HTTP Client
[[1]] Abstract test classes excluded in project.xml\
Tests now run correctly under Maven
[[1]] Added GZip support to HttpClientFeedFetcher\
HttpClientFeedFetcher now supports GZip compression. Tests have been added.
[]
*Prior to third release (on the way to v0.5)
[[1]] SyndFeedInfo implements Serializable\
SyndFeedInfo implements Serializable to make it easier to store
[[1]] Support for rfc3229 delta encoding\
The Fetcher now supports rfc3229 delta encoding. See {{{http://www.ietf.org/rfc/rfc3229.txt}http://www.ietf.org/rfc/rfc3229.txt}} and
{{{http://bobwyman.pubsub.com/main/2004/09/using_rfc3229_w.html}http://bobwyman.pubsub.com/main/2004/09/using_rfc3229_w.html}}.
Note that this is support is experimental and disabled by default
[]
*Prior to 0.6
[[1]] Feed passed to FetcherEvents\
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.
[]
*Prior to 0.7
[[1]] Fix for URL Connection leak\
In some circumstances URLConnection objects were not closed. This could cause problems in long\-running application.
[]
*0.8 was never released
*Prior to 0.9
[[1]] Fix for potential synchronization issue\
There was the possibility of synchronization issues in the FeedFetcher. Fixed, thanks to suggestions from Javier Kohen.
[[1]] New LinkedHashMapFeedInfoCache FeedFetcherCache implementation\
The new LinkedHashMapFeedInfoCache has the advantage that it will not grow unbound
[]
*Prior to 1.0RC2
[[1]] BeanInfo class added for AbstractFeedFetcher\
com.sun.syndication.fetcher.impl.AbstractFeedFetcherBeanInfo was created to allow introspection to correctly find the events
[[1]] Callback to allow access to HttpClient HttpMethod object\
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
[[1]] Support for clearing cache\
See {{{http://java.net/jira/browse/ROME\-119}http://java.net/jira/browse/ROME\-119}} for details
[]
*Prior to 1.0
[[1]] Support for preserving wire feed data.\
The fetcher now has a setPreserveWireFeed() method which will setup ROME to preserve WireFeed data. See
{{{http://rometools.github.io/rome/PreservingWireFeeds.html}PreservingWireFeeds}} for further information.
[]

View file

@ -0,0 +1,13 @@
-----
HttpClientFeedFetcher
-----
mkurz
-----
2011-08-15 17:40:11.468
-----
HttpClientFeedFetcher
An implementation of the <<<FeedFetcher>>> which uses the Jakarta HTTP Client. This HTTP client has many benefits over the standard Java implementation.

View file

@ -0,0 +1,36 @@
-----
Dependencies
-----
mkurz
-----
2011-08-15 17:42:31.999
-----
Dependencies
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.
The current dependencies required to use the Rome Fetcher are:
* JDK 1.4\+
* Current version of Rome
* JDom v 1.0
[]
To build the Rome Fetcher the {{{http://jakarta.apache.org/commons/httpclient/}Jakarta HTTP Client}} is required.
If the {{{./HttpClientFeedFetcher.html}HttpClientFeedFetcher (fetcher)}} fetcher implementation is used then the Jakarta HTTP Client and Jakarta Commons Logging is required.
To build and run the unit tests for the Rome Fetcher the following additional dependencies are required:
* servletapi version 2.3
* jetty 4.2.12
[]
Note that Maven will automatically download the correct versions of all dependancies.

View file

@ -0,0 +1,43 @@
-----
Known Issues
-----
mkurz
-----
2011-08-15 17:30:28.420
-----
Known Issues
*Version 0.3
* The Maven build does not run the <<<jetty>>> tests because of a bug in Maven
* Version 0.3 does not have <<<Xerces>>> included in the project.xml (it is required to run the samples). Either get the latest <<<project.xml>>> from CVS, or
{{{https://rome.dev.java.net/source/browse/rome/subprojects/fetcher/project.xml?r1\=1.1&r2\=1.2}patch it yourself}}
* 0.3 had a bug that caused it to overwite system properties.
[]
*Version 0.4
* No known issues (yet!)
[]
*Version 0.5
* When listening to feed events using <<<FetcherListener>>>, there is no way to get to the retrieved content, because it is set after firing the event.
\-\- {{{http://wiki.java.net/twiki/bin/view/Javawsxml/Jawe}jawe}}
* When listening to feed events using <<<FetcherListener>>>, the feed URLs returned by the <<<FetcherEvent>>> are prepended with
"sun.net.www.protocol.http.HttpURLConnection:" \-\- {{{http://wiki.java.net/twiki/bin/view/Javawsxml/Jawe}jawe}}
[]
*Version 0.7
* <<<HashMapFeedInfoCache>>> doesn't work quite right because <<<URL.hashCode()>>> does hostname resolution and treats virtual hosts with the same IP as equal,
so e.g. all RSS feeds from <<<blogspot.com>>> collide in the cache. Also, it's really slow. Fix is to use <<<URL.toExternalForm()>>> as the hash key instead of the URL itself.
[]

View file

@ -0,0 +1,49 @@
-----
ROME Fetcher 0.6
-----
mkurz
-----
2011-08-15 17:50:02.821
-----
ROME Fetcher 0.6
*Downloads
* {{{./rome\-fetcher\-0.6\-src.zip}rome\-fetcher\-0.6\-src.zip}}
* {{{./rome\-fetcher\-0.6.tar.gz}rome\-fetcher\-0.6.tar.gz}}
* {{{./rome\-fetcher\-0.6.zip}rome\-fetcher\-0.6.zip}}
* {{{./rome\-fetcher\-0.6\-src.tar.gz}rome\-fetcher\-0.6\-src.tar.gz}}
[]
*Tutorials
* {{{../BuildingTheRomeFetcher.html}Building the Rome Fetcher (fetcher)}}
* {{{../UsingTheRomeFetcherModuleToRetrieveFeeds.html}Using the Rome Fetcher module to retrieve feeds (fetcher)}}
* {{{../SampleProgramsIncluded.html}Sample programs included (fetcher)}}
[]
*Todo list
* {{{../TodoList.html}Todo list (fetcher)}}
[]
*Issues
* {{{../KnownIssues.html}Known Issues (fetcher)}}
[]
*Change Log
* {{{../ChangeLog.html}Change Log (fetcher)}}
[]

View file

@ -0,0 +1,49 @@
-----
ROME Fetcher 0.7
-----
mkurz
-----
2011-08-15 17:50:31.833
-----
ROME Fetcher 0.7
*Downloads
* {{{./rome\-fetcher\-0.7\-src.zip}rome\-fetcher\-0.7\-src.zip}}
* {{{./rome\-fetcher\-0.7.tar.gz}rome\-fetcher\-0.7.tar.gz}}
* {{{./rome\-fetcher\-0.7.zip}rome\-fetcher\-0.7.zip}}
* {{{./rome\-fetcher\-0.7\-src.tar.gz}rome\-fetcher\-0.7\-src.tar.gz}}
[]
*Tutorials
* {{{../BuildingTheRomeFetcher.html}Building the Rome Fetcher (fetcher)}}
* {{{../UsingTheRomeFetcherModuleToRetrieveFeeds.html}Using the Rome Fetcher module to retrieve feeds (fetcher)}}
* {{{../SampleProgramsIncluded.html}Sample programs included (fetcher)}}
[]
*Todo list
* {{{../TodoList.html}Todo list (fetcher)}}
[]
*Issues
* {{{../KnownIssues.html}Known Issues (fetcher)}}
[]
*Change Log
* {{{../ChangeLog.html}Change Log (fetcher)}}
[]

View file

@ -0,0 +1,51 @@
-----
ROME Fetcher 0.9
-----
mkurz
-----
2011-08-15 17:51:04.383
-----
ROME Fetcher 0.9
Note that there was no 0.8 Fetcher release
*Downloads
* {{{./rome\-fetcher\-0.9\-src.zip}rome\-fetcher\-0.9\-src.zip}}
* {{{./rome\-fetcher\-0.9.tar.gz}rome\-fetcher\-0.9.tar.gz}}
* {{{./rome\-fetcher\-0.9.zip}rome\-fetcher\-0.9.zip}}
* {{{./rome\-fetcher\-0.9\-src.tar.gz}rome\-fetcher\-0.9\-src.tar.gz}}
[]
*Tutorials
* {{{../BuildingTheRomeFetcher.html}Building the Rome Fetcher (fetcher)}}
* {{{../UsingTheRomeFetcherModuleToRetrieveFeeds.html}Using the Rome Fetcher module to retrieve feeds (fetcher)}}
* {{{../SampleProgramsIncluded.html}Sample programs included (fetcher)}}
[]
*Todo list
* {{{../TodoList.html}Todo list (fetcher)}}
[]
*Issues
* {{{../KnownIssues.html}Known Issues (fetcher)}}
[]
*Change Log
* {{{../ChangeLog.html}Change Log (fetcher)}}
[]

View file

@ -0,0 +1,53 @@
-----
ROME Fetcher 1.0
-----
mkurz
-----
2011-08-15 17:52:18.652
-----
ROME Fetcher 1.0
*Downloads
* {{{./rome\-fetcher\-1.0.jar}rome\-fetcher\-1.0.jar}}
* {{{./rome\-fetcher\-1.0\-javadoc.jar}rome\-fetcher\-1.0\-javadoc.jar}}
* {{{./rome\-fetcher\-1.0\-sources.jar}rome\-fetcher\-1.0\-sources.jar}}
[]
*Tutorials
* {{{../BuildingTheRomeFetcher.html}Building the Rome Fetcher (fetcher)}}
* {{{../UsingTheRomeFetcherModuleToRetrieveFeeds.html}Using the Rome Fetcher module to retrieve feeds (fetcher)}}
* {{{../SampleProgramsIncluded.html}Sample programs included (fetcher)}}
[]
*API Docs
* {{{./rome-fetcher-1.0-javadoc.jar}Fetcher API Docs}}
[]
*Todo list
* {{{../TodoList.html}Todo list (fetcher)}}
[]
*Issues
* {{{../KnownIssues.html}Known Issues (fetcher)}}
[]
*Change Log
* {{{../ChangeLog.html}Change Log (fetcher)}}
[]

View file

@ -0,0 +1,57 @@
-----
ROME Fetcher 1.0 RC2
-----
mkurz
-----
2011-08-15 17:51:50.236
-----
ROME Fetcher 1.0 RC2
Note that there was no 1.0 RC1 Fetcher release
*Downloads
* {{{./rome\-fetcher\-1.0RC2\-src.zip}rome\-fetcher\-1.0RC2\-src.zip}}
* {{{./rome\-fetcher\-1.0RC2.jar}rome\-fetcher\-1.0RC2.jar}}
* {{{./rome\-fetcher\-1.0RC2\-javadoc.jar}rome\-fetcher\-1.0RC2\-javadoc.jar}}
* {{{./rome\-fetcher\-1.0RC2\-sources.jar}rome\-fetcher\-1.0RC2\-sources.jar}}
[]
*Tutorials
* {{{../BuildingTheRomeFetcher.html}Building the Rome Fetcher (fetcher)}}
* {{{../UsingTheRomeFetcherModuleToRetrieveFeeds.html}Using the Rome Fetcher module to retrieve feeds (fetcher)}}
* {{{../SampleProgramsIncluded.html}Sample programs included (fetcher)}}
[]
*API Docs
* {{{./rome-fetcher-1.0RC2-javadoc.jar}Fetcher API Docs}}
[]
*Todo list
* {{{../TodoList.html}Todo list (fetcher)}}
[]
*Issues
* {{{../KnownIssues.html}Known Issues (fetcher)}}
[]
*Change Log
* {{{../ChangeLog.html}Change Log (fetcher)}}
[]

View file

@ -0,0 +1,51 @@
-----
Rome Fetcher 0.3
-----
mkurz
-----
2011-08-15 17:46:45.860
-----
Rome Fetcher 0.3
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.
*Downloads
* {{{./rome\-fetcher\-0.3\-src.zip}rome\-fetcher\-0.3\-src.zip}}
* {{{./rome\-fetcher\-0.3.tar.gz}rome\-fetcher\-0.3.tar.gz}}
* {{{./rome\-fetcher\-0.3.zip}rome\-fetcher\-0.3.zip}}
* {{{./rome\-fetcher\-0.3\-src.tar.gz}rome\-fetcher\-0.3\-src.tar.gz}}
[]
*Tutorials
* {{{../BuildingTheRomeFetcher.html}Building the Rome Fetcher (fetcher)}}
* {{{../UsingTheRomeFetcherModuleToRetrieveFeeds.html}Using the Rome Fetcher module to retrieve feeds (fetcher)}}
* {{{../SampleProgramsIncluded.html}Sample programs included (fetcher)}}
[]
*Todo list
* {{{../TodoList.html}Todo list (fetcher)}}
[]
*Issues
* {{{../KnownIssues.html}Known Issues (fetcher)}}
[]
*Change Log
* {{{../ChangeLog.html}Change Log (fetcher)}}
[]

View file

@ -0,0 +1,49 @@
-----
Rome Fetcher 0.4
-----
mkurz
-----
2011-08-15 17:47:58.203
-----
Rome Fetcher 0.4
*Downloads
* {{{./rome\-fetcher\-0.4\-src.zip}rome\-fetcher\-0.4\-src.zip}}
* {{{./rome\-fetcher\-0.4.tar.gz}rome\-fetcher\-0.4.tar.gz}}
* {{{./rome\-fetcher\-0.4.zip}rome\-fetcher\-0.4.zip}}
* {{{./rome\-fetcher\-0.4\-src.tar.gz}rome\-fetcher\-0.4\-src.tar.gz}}
[]
*Tutorials
* {{{../BuildingTheRomeFetcher.html}Building the Rome Fetcher (fetcher)}}
* {{{../UsingTheRomeFetcherModuleToRetrieveFeeds.html}Using the Rome Fetcher module to retrieve feeds (fetcher)}}
* {{{../SampleProgramsIncluded.html}Sample programs included (fetcher)}}
[]
*Todo list
* {{{../TodoList.html}Todo list (fetcher)}}
[]
*Issues
* {{{../KnownIssues.html}Known Issues (fetcher)}}
[]
*Change Log
* {{{../ChangeLog.html}Change Log (fetcher)}}
[]

View file

@ -0,0 +1,51 @@
-----
Rome Fetcher 0.5
-----
mkurz
-----
2011-08-15 17:49:03.166
-----
Rome Fetcher 0.5
The ROME Fetcher v 0.6 is now released. This page exists for historical purposes only.
*Downloads
* {{{./rome\-fetcher\-0.5\-src.zip}rome\-fetcher\-0.5\-src.zip}}
* {{{./rome\-fetcher\-0.5.zip}rome\-fetcher\-0.5.zip}}
* {{{./rome\-fetcher\-0.5.tar.gz}rome\-fetcher\-0.5.tar.gz}}
* {{{./rome\-fetcher\-0.5\-src.tar.gz}rome\-fetcher\-0.5\-src.tar.gz}}
[]
*Tutorials
* {{{../BuildingTheRomeFetcher.html}Building the Rome Fetcher (fetcher)}}
* {{{../UsingTheRomeFetcherModuleToRetrieveFeeds.html}Using the Rome Fetcher module to retrieve feeds (fetcher)}}
* {{{../SampleProgramsIncluded.html}Sample programs included (fetcher)}}
[]
*Todo list
* {{{../TodoList.html}Todo list (fetcher)}}
[]
*Issues
* {{{../KnownIssues.html}Known Issues (fetcher)}}
[]
*Change Log
* {{{../ChangeLog.html}Change Log (fetcher)}}
[]

View file

@ -0,0 +1,10 @@
-----
Releases
-----
mkurz
-----
2011-08-15 17:57:59.422
-----
Releases

View file

@ -0,0 +1,21 @@
-----
Sample programs included
-----
mkurz
-----
2011-08-15 17:38:21.664
-----
Sample programs included
There are two sample programs included with Rome Fetcher.
{{{https://github.com/rometools/rome-fetcher/blob/master/src/java/org/rometools/fetcher/samples/FeedReader.java}FeedReader}}
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 <<<maven run\-read>>> target.
{{{https://github.com/rometools/rome-fetcher/blob/master/src/java/org/rometools/fetcher/samples/FeedAggregator.java}FeedAggregator}}
is a program which aggregates a number of feeds together into a single feed. It can be run using the <<<maven run\-aggr>>> target.
(Note that in verision 0.3 the Maven build does not include Xerces in the classpath \- which is required to use Rome. This is
{{{https://rome.dev.java.net/source/browse/rome/subprojects/fetcher/project.xml?r1\=1.1&r2\=1.2}easy to fix}}.)

29
src/site/apt/TodoList.apt Normal file
View file

@ -0,0 +1,29 @@
-----
Todo list
-----
mkurz
-----
2011-08-15 17:33:17.559
-----
Todo list
Please discuss items here on the rome dev mailing list
* Automatically update the
\-{{{https://github.com/rometools/rome-fetcher/blob/master/src/java/org/rometools/fetcher/FeedFetcher.java}default User\-Agent version number}}
via the build\- Done: 23\-June\-2004
* Listener Architecture (for URL changes via 3xx redirection etc) Done: 30\-June\-2004
* {{{http://radio.userland.com/userGuide/reference/howToRedirectRss}RSS Redirection}}
* Unit Tests: smart unit tests along the lines of Mark Pilgrim's tests, in his
\-{{{http://diveintomark.org/projects/feed_parser/}Python Universal Feed Parser}}. 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
* Better character encoding handling \- See {{{http://diveintomark.org/archives/2004/02/13/xml\-media\-types}http://diveintomark.org/archives/2004/02/13/xml\-media\-types}}
* A caching feed fetcher
[]

View file

@ -0,0 +1,36 @@
-----
Using the Rome Fetcher module to retrieve feeds
-----
mkurz
-----
2011-08-15 17:36:41.844
-----
Using the Rome Fetcher module to retrieve feeds
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: <<<HashMapFeedInfoCache>>>.
The basic usage of FeedFetcher is as follows:
+------+
FeedFetcherCache feedInfoCache = HashMapFeedInfoCache.getInstance();
FeedFetcher feedFetcher = new HttpURLFeedFetcher(feedInfoCache);
SyndFeed feed = feedFetcher.retrieveFeed(new URL("http://blogs.sun.com/roller/rss/pat"));
System.out.println(feed);
+------+
Any subsequent fetches of {{{http://blogs.sun.com/roller/rss/pat}http://blogs.sun.com/roller/rss/pat}} by any FeedFetcher using feedInfoCache
will now only retrieve the feed if it has changed.
FeedFetcher can be used without a cache if required. Simply create it using the zero\-parameter constructor:
+------+
FeedFetcher feedFetcher = new HttpURLFeedFetcher();
+------+
A more complete sample (including the use of listener on Fetcher events)
{{{https://github.com/rometools/rome-fetcher/blob/master/src/java/org/rometools/fetcher/samples/FeedReader.java}is included in the Rome Fetcher project}}
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.

17
src/site/apt/WishList.apt Normal file
View file

@ -0,0 +1,17 @@
-----
Wish list
-----
mkurz
-----
2011-08-15 17:33:55.774
-----
Wish list
* {{{http://diveintomark.org/archives/2002/05/31}RSS Autodiscovery}}
* {{{http://www.intertwingly.net/wiki/pie/PaceAutoDisco}Atom Autodiscovery}}
* Connection timeout and read settings.
[]

72
src/site/apt/index.apt Normal file
View file

@ -0,0 +1,72 @@
-----
Home
-----
mkurz
-----
2011-08-15 17:44:31.665
-----
Rome Fetcher
The Rome Fetcher (see modules/fetcher) allows the retrieval of feeds via HTTP. It supports
{{{http://fishbowl.pastiche.org/2002/10/21/http_conditional_get_for_rss_hackers}HTTP conditional gets}}
(ie: last modified and ETag handling) and GZip encoded feeds. It should enable user to write aggregators that follow the
{{{http://diveintomark.org/archives/2003/07/21/atom_aggregator_behavior_http_level}Atom aggregator behaviour recommendations}}
As with the rest of Rome, the Fetcher subproject is ultra\-lean \- it requires {{{./Dependencies/index.html}no new dependencies}}
over the requirements for Rome.
Tutorials
* {{{./BuildingTheRomeFetcher.html}Building the Rome Fetcher (fetcher)}}
* {{{./UsingTheRomeFetcherModuleToRetrieveFeeds.html}Using the Rome Fetcher module to retrieve feeds (fetcher)}}
* {{{./SampleProgramsIncluded.html}Sample programs included (fetcher)}}
[]
Todo list
* {{{./TodoList.html}Todo list (fetcher)}}
[]
Wish list
* {{{./WishList.html}Wish list (fetcher)}}
[]
Issues
* {{{./KnownIssues.html}Known Issues (fetcher)}}
[]
Releases
* {{{./Releases/RomeFetcher0.3.html}Rome Fetcher 0.3 (fetcher)}}
* {{{./Releases/RomeFetcher0.4.html}Rome Fetcher 0.4 (fetcher)}}
* {{{./Releases/RomeFetcher0.5.html}Rome Fetcher 0.5 (fetcher)}}
* {{{./Releases/ROMEFetcher0.6.html}ROME Fetcher 0.6 (fetcher)}}
* {{{./Releases/ROMEFetcher0.7.html}ROME Fetcher 0.7 (fetcher)}}
* {{{./Releases/ROMEFetcher0.9.html}ROME Fetcher 0.9 (fetcher)}}
* {{{./Releases/ROMEFetcher1.0RC2.html}ROME Fetcher 1.0 RC2 (fetcher)}}
* {{{./Releases/ROMEFetcher1.0.html}ROME Fetcher 1.0 (fetcher)}}
[]
Change Log
* {{{./ChangeLog.html}Change Log (fetcher)}}
[]

View file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,8 @@
h1 {
padding: 4px 4px 4px 6px;
border: 1px solid #999;
color: #900;
background-color: #ddd;
font-weight:900;
font-size: x-large;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

30
src/site/site.xml Normal file
View file

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/DECORATION/1.3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0 http://maven.apache.org/xsd/decoration-1.3.0.xsd"
name="ROME fetcher">
<bannerLeft>
<name>ROME fetcher</name>
<src>images/romelogo.png</src>
<href>http://github.com/rometools/</href>
</bannerLeft>
<publishDate position="right" />
<version position="right" />
<body>
<menu name="ROME Fetcher">
<item name="Overview" href="index.html"/>
<item name="Dependencies" href="Dependencies/index.html"/>
</menu>
<menu name="Releases">
<item name="1.0" href="Releases/ROMEFetcher1.0.html"/>
<item name="1.0RC2" href="Releases/ROMEFetcher1.0RC2.html"/>
<item name="0.9" href="Releases/ROMEFetcher0.9.html"/>
<item name="0.7" href="Releases/ROMEFetcher0.7.html"/>
<item name="0.6" href="Releases/ROMEFetcher0.6.html"/>
<item name="0.5" href="Releases/RomeFetcher0.5.html"/>
<item name="0.4" href="Releases/RomeFetcher0.4.html"/>
<item name="0.3" href="Releases/RomeFetcher0.3.html"/>
</menu>
<menu ref="reports" />
</body>
</project>