diff --git a/cleanup.xml b/cleanup.xml
deleted file mode 100644
index 40f9b7a..0000000
--- a/cleanup.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
- * The default user agent. It is not marked final so buggy java compiler will not write this string into all classes that reference it. + * The default user agent. It is not marked final so buggy java compiler will not write this + * string into all classes that reference it. *
- * + * *- * http://tinyurl.com/64t5n points to https://rome.dev.java.net Some servers ban user agents with "Java" in the name. + * http://tinyurl.com/64t5n points to https://rome.dev.java.net Some servers ban user agents + * with "Java" in the name. *
- * + * */ public static String DEFAULT_USER_AGENT = "Rome Client (http://tinyurl.com/64t5n)"; @@ -49,15 +51,16 @@ public interface FeedFetcher { ** Turn on or off rfc3229 delta encoding *
- * + * *- * See http://www.ietf.org/rfc/rfc3229.txt and http://bobwyman.pubsub.com/main/2004/09/using_rfc3229_w.html + * See http://www.ietf.org/rfc/rfc3229.txt and + * http://bobwyman.pubsub.com/main/2004/09/using_rfc3229_w.html *
- * + * ** NOTE: This is experimental and feedback is welcome! *
- * + * * @param useDeltaEncoding */ public abstract void setUsingDeltaEncoding(boolean useDeltaEncoding); @@ -66,7 +69,7 @@ public interface FeedFetcher { ** Is this fetcher using rfc3229 delta encoding? *
- * + * * @return */ public abstract boolean isUsingDeltaEncoding(); @@ -75,11 +78,12 @@ public interface FeedFetcher { ** Add a FetcherListener. *
- * + * *- * The FetcherListener will receive an FetcherEvent when a Fetcher event (feed polled, retrieved, etc) occurs + * The FetcherListener will receive an FetcherEvent when a Fetcher event (feed polled, + * retrieved, etc) occurs *
- * + * * @param listener The FetcherListener to recieve the event */ public abstract void addFetcherEventListener(FetcherListener listener); @@ -88,14 +92,14 @@ public interface FeedFetcher { ** Remove a FetcherListener *
- * + * * @param listener The FetcherListener to remove */ public abstract void removeFetcherEventListener(FetcherListener listener); /** * Retrieve a feed over HTTP - * + * * @param feedUrl A non-null URL of a RSS/Atom feed to retrieve * @return A {@link com.sun.syndication.feed.synd.SyndFeed} object * @throws IllegalArgumentException if the URL is null; @@ -108,8 +112,9 @@ public interface FeedFetcher { public SyndFeed retrieveFeed(String userAgent, URL url) throws IllegalArgumentException, IOException, FeedException, FetcherException; /** - * If set to true, the WireFeed will be made accessible from the SyndFeed object returned from the Fetcher via the originalWireFeed() method. Each Entry in - * the feed will have the corresponding wireEntry property set. + * If set to true, the WireFeed will be made accessible from the SyndFeed object returned from + * the Fetcher via the originalWireFeed() method. Each Entry in the feed will have the + * corresponding wireEntry property set. */ void setPreserveWireFeed(boolean preserveWireFeed); } diff --git a/src/main/java/org/rometools/fetcher/FetcherEvent.java b/src/main/java/com/rometools/fetcher/FetcherEvent.java similarity index 88% rename from src/main/java/org/rometools/fetcher/FetcherEvent.java rename to src/main/java/com/rometools/fetcher/FetcherEvent.java index 8010113..26358de 100644 --- a/src/main/java/org/rometools/fetcher/FetcherEvent.java +++ b/src/main/java/com/rometools/fetcher/FetcherEvent.java @@ -1,18 +1,19 @@ -package org.rometools.fetcher; +package com.rometools.fetcher; import java.util.EventObject; import com.sun.syndication.feed.synd.SyndFeed; /** - * Implementation note: FetcherEvent is not thread safe. Make sure that they are only ever accessed by one thread. If necessary, make all getters and setters - * synchronized, or alternatively make all fields final. - * + * Implementation note: FetcherEvent is not thread safe. Make sure that they are only ever accessed + * by one thread. If necessary, make all getters and setters synchronized, or alternatively make all + * fields final. + * * @author nl */ public class FetcherEvent extends EventObject { - private static final long serialVersionUID = 3985600601904140103L; + private static final long serialVersionUID = 1L; public static final String EVENT_TYPE_FEED_POLLED = "FEED_POLLED"; public static final String EVENT_TYPE_FEED_RETRIEVED = "FEED_RETRIEVED"; @@ -39,7 +40,7 @@ public class FetcherEvent extends EventObject { /** * @return Returns the feed. - * + * ** The feed will only be set if the eventType is EVENT_TYPE_FEED_RETRIEVED *
@@ -50,7 +51,7 @@ public class FetcherEvent extends EventObject { /** * @param feed The feed to set. - * + * ** The feed will only be set if the eventType is EVENT_TYPE_FEED_RETRIEVED *
diff --git a/src/main/java/org/rometools/fetcher/FetcherException.java b/src/main/java/com/rometools/fetcher/FetcherException.java similarity index 92% rename from src/main/java/org/rometools/fetcher/FetcherException.java rename to src/main/java/com/rometools/fetcher/FetcherException.java index afaf432..447ab2f 100644 --- a/src/main/java/org/rometools/fetcher/FetcherException.java +++ b/src/main/java/com/rometools/fetcher/FetcherException.java @@ -14,14 +14,14 @@ * limitations under the License. * */ -package org.rometools.fetcher; +package com.rometools.fetcher; /** * @author Nick Lothian - * + * */ public class FetcherException extends Exception { - private static final long serialVersionUID = -7479645796948092380L; + private static final long serialVersionUID = 1L; int responseCode; diff --git a/src/main/java/org/rometools/fetcher/FetcherListener.java b/src/main/java/com/rometools/fetcher/FetcherListener.java similarity index 87% rename from src/main/java/org/rometools/fetcher/FetcherListener.java rename to src/main/java/com/rometools/fetcher/FetcherListener.java index d5640b5..617532c 100644 --- a/src/main/java/org/rometools/fetcher/FetcherListener.java +++ b/src/main/java/com/rometools/fetcher/FetcherListener.java @@ -1,4 +1,4 @@ -package org.rometools.fetcher; +package com.rometools.fetcher; import java.util.EventListener; @@ -8,7 +8,7 @@ public interface FetcherListener extends EventListener { ** Called when a fetcher event occurs *
- * + * * @param event the event that fired */ public void fetcherEvent(FetcherEvent event); diff --git a/src/main/java/org/rometools/fetcher/impl/AbstractFeedFetcher.java b/src/main/java/com/rometools/fetcher/impl/AbstractFeedFetcher.java similarity index 87% rename from src/main/java/org/rometools/fetcher/impl/AbstractFeedFetcher.java rename to src/main/java/com/rometools/fetcher/impl/AbstractFeedFetcher.java index b1bccb1..6d5a1b1 100644 --- a/src/main/java/org/rometools/fetcher/impl/AbstractFeedFetcher.java +++ b/src/main/java/com/rometools/fetcher/impl/AbstractFeedFetcher.java @@ -15,25 +15,29 @@ * */ -package org.rometools.fetcher.impl; +package com.rometools.fetcher.impl; import java.io.IOException; import java.io.InputStream; import java.net.URLConnection; import java.util.Collections; import java.util.HashSet; -import java.util.Iterator; import java.util.Properties; import java.util.Set; -import org.rometools.fetcher.FeedFetcher; -import org.rometools.fetcher.FetcherEvent; -import org.rometools.fetcher.FetcherException; -import org.rometools.fetcher.FetcherListener; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import com.rometools.fetcher.FeedFetcher; +import com.rometools.fetcher.FetcherEvent; +import com.rometools.fetcher.FetcherException; +import com.rometools.fetcher.FetcherListener; import com.sun.syndication.feed.synd.SyndFeed; public abstract class AbstractFeedFetcher implements FeedFetcher { + + private static final Logger LOG = LoggerFactory.getLogger(AbstractFeedFetcher.class); + private final Set* Handles HTTP error codes. *
- * + * * @param responseCode the HTTP response code * @throws FetcherException if response code is in the range 400 to 599 inclusive */ @@ -192,11 +187,12 @@ public abstract class AbstractFeedFetcher implements FeedFetcher { ** Combine the entries in two feeds into a single feed. *
- * + * *- * The returned feed will have the same data as the newFeed parameter, with the entries from originalFeed appended to the end of its entries. + * The returned feed will have the same data as the newFeed parameter, with the entries from + * originalFeed appended to the end of its entries. *
- * + * * @param originalFeed * @param newFeed * @return @@ -205,9 +201,7 @@ public abstract class AbstractFeedFetcher implements FeedFetcher { SyndFeed result; try { result = (SyndFeed) newFeed.clone(); - result.getEntries().addAll(result.getEntries().size(), originalFeed.getEntries()); - return result; } catch (final CloneNotSupportedException e) { final IllegalArgumentException iae = new IllegalArgumentException("Cannot clone feed"); diff --git a/src/main/java/org/rometools/fetcher/impl/AbstractFeedFetcherBeanInfo.java b/src/main/java/com/rometools/fetcher/impl/AbstractFeedFetcherBeanInfo.java similarity index 74% rename from src/main/java/org/rometools/fetcher/impl/AbstractFeedFetcherBeanInfo.java rename to src/main/java/com/rometools/fetcher/impl/AbstractFeedFetcherBeanInfo.java index 9d8bf17..a040745 100644 --- a/src/main/java/org/rometools/fetcher/impl/AbstractFeedFetcherBeanInfo.java +++ b/src/main/java/com/rometools/fetcher/impl/AbstractFeedFetcherBeanInfo.java @@ -1,18 +1,20 @@ -package org.rometools.fetcher.impl; +package com.rometools.fetcher.impl; import java.beans.EventSetDescriptor; import java.beans.SimpleBeanInfo; import java.lang.reflect.Method; -import org.rometools.fetcher.FetcherEvent; -import org.rometools.fetcher.FetcherListener; +import com.rometools.fetcher.FetcherEvent; +import com.rometools.fetcher.FetcherListener; public class AbstractFeedFetcherBeanInfo extends SimpleBeanInfo { @Override public EventSetDescriptor[] getEventSetDescriptors() { try { - final Class- * An interface to allow caching of feed details. Implementing this allows the {@link org.rometools.fetcher.io.HttpURLFeedFetcher} class to enable conditional - * gets + * An interface to allow caching of feed details. Implementing this allows the + * {@link com.rometools.fetcher.io.HttpURLFeedFetcher} class to enable conditional gets *
- * + * * @author Nick Lothian - * + * */ public interface FeedFetcherCache { /** * Get a SyndFeedInfo object from the cache. - * + * * @param feedUrl The url of the feed * @return A SyndFeedInfo or null if it is not in the cache */ @@ -38,7 +38,7 @@ public interface FeedFetcherCache { /** * Add a SyndFeedInfo object to the cache - * + * * @param feedUrl The url of the feed * @param syndFeedInfo A SyndFeedInfo for the feed */ @@ -51,7 +51,7 @@ public interface FeedFetcherCache { /** * Removes the SyndFeedInfo identified by the url from the cache. - * + * * @return The removed SyndFeedInfo */ public SyndFeedInfo remove(URL feedUrl); diff --git a/src/main/java/org/rometools/fetcher/impl/HashMapFeedInfoCache.java b/src/main/java/com/rometools/fetcher/impl/HashMapFeedInfoCache.java similarity index 85% rename from src/main/java/org/rometools/fetcher/impl/HashMapFeedInfoCache.java rename to src/main/java/com/rometools/fetcher/impl/HashMapFeedInfoCache.java index 32877f1..989ab91 100644 --- a/src/main/java/org/rometools/fetcher/impl/HashMapFeedInfoCache.java +++ b/src/main/java/com/rometools/fetcher/impl/HashMapFeedInfoCache.java @@ -14,7 +14,7 @@ * limitations under the License. * */ -package org.rometools.fetcher.impl; +package com.rometools.fetcher.impl; import java.io.Serializable; import java.net.URL; @@ -24,19 +24,21 @@ import java.util.Map; /** *- * A very simple implementation of the {@link org.rometools.fetcher.impl.FeedFetcherCache} interface. + * A very simple implementation of the {@link com.rometools.fetcher.impl.FeedFetcherCache} + * interface. *
- * + * *- * This implementation uses a HashMap to cache retrieved feeds. This implementation is most suitible for sort term (client aggregator?) use, as the memory usage - * will increase over time as the number of feeds in the cache increases. + * This implementation uses a HashMap to cache retrieved feeds. This implementation is most suitible + * for sort term (client aggregator?) use, as the memory usage will increase over time as the number + * of feeds in the cache increases. *
- * + * * @author Nick Lothian - * + * */ public class HashMapFeedInfoCache implements FeedFetcherCache, Serializable { - private static final long serialVersionUID = -1594665619950916222L; + private static final long serialVersionUID = 1L; static HashMapFeedInfoCache _instance; @@ -46,11 +48,12 @@ public class HashMapFeedInfoCache implements FeedFetcherCache, Serializable { ** Constructor for HashMapFeedInfoCache *
- * + * *- * Only use this if you want multiple instances of the cache. Usually getInstance() is more appropriate. + * Only use this if you want multiple instances of the cache. Usually getInstance() is more + * appropriate. *
- * + * */ public HashMapFeedInfoCache() { setInfoCache(createInfoCache()); @@ -58,7 +61,7 @@ public class HashMapFeedInfoCache implements FeedFetcherCache, Serializable { /** * Get the global instance of the cache - * + * * @return an implementation of FeedFetcherCache */ public static synchronized FeedFetcherCache getInstance() { @@ -101,8 +104,9 @@ public class HashMapFeedInfoCache implements FeedFetcherCache, Serializable { } /** - * The API of this class indicates that map must thread safe. In other words, be sure to wrap it in a synchronized map unless you know what you are doing. - * + * The API of this class indicates that map must thread safe. In other words, be sure to wrap it + * in a synchronized map unless you know what you are doing. + * * @param map the map to use as the info cache. */ protected synchronized final void setInfoCache(final Map* Class to retrieve syndication files via HTTP. *
- * + * *- * If passed a {@link org.rometools.fetcher.impl.FeedFetcherCache} in the constructor it will use conditional gets to only retrieve modified content. + * If passed a {@link com.rometools.fetcher.impl.FeedFetcherCache} in the constructor it will use + * conditional gets to only retrieve modified content. *
- * + * *- * The class uses the Accept-Encoding: gzip header to retrieve gzipped feeds where supported by the server. + * The class uses the Accept-Encoding: gzip header to retrieve gzipped feeds where supported by the + * server. *
- * + * ** Simple usage: - * + * *
* // create the cache * FeedFetcherCache feedInfoCache = HashMapFeedInfoCache.getFeedInfoCache(); @@ -56,14 +57,15 @@ import com.sun.syndication.io.XmlReader; * // retrieve the resource if it has changed * SyndFeed feed = new HttpURLFeedFetcher(feedInfoCache).retrieveFeed(feedUrl); *- * + * * - * + * * @see http://fishbowl.pastiche.org/2002/10/21/http_conditional_get_for_rss_hackers * @see http://diveintomark.org/archives/2003/07/21/atom_aggregator_behavior_http_level - * @see http://bobwyman.pubsub.com/main/2004/09/using_rfc3229_w.html + * @see http://bobwyman.pubsub.com/main/2004/09/using_rfc3229_w.html * @author Nick Lothian */ public class HttpURLFeedFetcher extends AbstractFeedFetcher { @@ -76,7 +78,7 @@ public class HttpURLFeedFetcher extends AbstractFeedFetcher { /** * Constructor to use HttpURLFeedFetcher without caching of feeds - * + * */ public HttpURLFeedFetcher() { super(); @@ -84,7 +86,7 @@ public class HttpURLFeedFetcher extends AbstractFeedFetcher { /** * Constructor to enable HttpURLFeedFetcher to cache feeds - * + * * @param feedCache - an instance of the FeedFetcherCache interface */ public HttpURLFeedFetcher(final FeedFetcherCache feedInfoCache) { @@ -99,7 +101,7 @@ public class HttpURLFeedFetcher extends AbstractFeedFetcher { /** * Retrieve a feed over HTTP - * + * * @param feedUrl A non-null URL of a RSS/Atom feed to retrieve * @return A {@link com.sun.syndication.feed.synd.SyndFeed} object * @throws IllegalArgumentException if the URL is null; @@ -121,7 +123,8 @@ public class HttpURLFeedFetcher extends AbstractFeedFetcher { if (connectTimeout >= 0) { httpConnection.setConnectTimeout(connectTimeout); } - // httpConnection.setInstanceFollowRedirects(true); // this is true by default, but can be changed on a claswide basis + // httpConnection.setInstanceFollowRedirects(true); // this is true by default, but can be + // changed on a claswide basis final FeedFetcherCache cache = getFeedInfoCache(); if (cache != null) { @@ -217,7 +220,8 @@ public class HttpURLFeedFetcher extends AbstractFeedFetcher { if (isUsingDeltaEncoding() && imHeader != null && imHeader.indexOf("feed") >= 0) { final FeedFetcherCache cache = getFeedInfoCache(); if (cache != null && connection.getResponseCode() == 226) { - // client is setup to use http delta encoding and the server supports it and has returned a delta encoded response + // client is setup to use http delta encoding and the server supports it and has + // returned a delta encoded response // This response only includes new items final SyndFeedInfo cachedInfo = cache.getFeedInfo(orignalUrl); if (cachedInfo != null) { @@ -241,7 +245,7 @@ public class HttpURLFeedFetcher extends AbstractFeedFetcher { *
* Set appropriate HTTP headers, including conditional get and gzip encoding headers *
- * + * * @param connection A URLConnection * @param syndFeedInfo The SyndFeedInfo for the feed to be retrieved. May be null */ @@ -278,7 +282,8 @@ public class HttpURLFeedFetcher extends AbstractFeedFetcher { is = new BufferedInputStream(inputStream); } - // InputStreamReader reader = new InputStreamReader(is, ResponseHandler.getCharacterEncoding(connection)); + // InputStreamReader reader = new InputStreamReader(is, + // ResponseHandler.getCharacterEncoding(connection)); // SyndFeedInput input = new SyndFeedInput(); @@ -322,5 +327,5 @@ public class HttpURLFeedFetcher extends AbstractFeedFetcher { */ public synchronized void setConnectTimeout(final int timeout) { connectTimeout = timeout; - } + } } diff --git a/src/main/java/org/rometools/fetcher/impl/LinkedHashMapFeedInfoCache.java b/src/main/java/com/rometools/fetcher/impl/LinkedHashMapFeedInfoCache.java similarity index 83% rename from src/main/java/org/rometools/fetcher/impl/LinkedHashMapFeedInfoCache.java rename to src/main/java/com/rometools/fetcher/impl/LinkedHashMapFeedInfoCache.java index aeb9abf..a398bf6 100644 --- a/src/main/java/org/rometools/fetcher/impl/LinkedHashMapFeedInfoCache.java +++ b/src/main/java/com/rometools/fetcher/impl/LinkedHashMapFeedInfoCache.java @@ -1,4 +1,4 @@ -package org.rometools.fetcher.impl; +package com.rometools.fetcher.impl; import java.util.Collections; import java.util.LinkedHashMap; @@ -6,22 +6,22 @@ import java.util.Map; /** *- * An implementation of the {@link org.rometools.fetcher.impl.FeedFetcherCache} interface. + * An implementation of the {@link com.rometools.fetcher.impl.FeedFetcherCache} interface. *
- * + * ** Unlike the HashMapFeedInfoCache this implementation will not grow unbound *
- * + * * @author Javier Kohen * @author Nick Lothian - * + * */ public class LinkedHashMapFeedInfoCache extends HashMapFeedInfoCache { private final class CacheImpl extends LinkedHashMap* Constructor for HashMapFeedInfoCache *
- * + * *- * Only use this if you want multiple instances of the cache. Usually {@link #getInstance()} is more appropriate. + * Only use this if you want multiple instances of the cache. Usually {@link #getInstance()} is + * more appropriate. *
- * + * * @see #getInstance() */ public LinkedHashMapFeedInfoCache() { diff --git a/src/main/java/org/rometools/fetcher/impl/ResponseHandler.java b/src/main/java/com/rometools/fetcher/impl/ResponseHandler.java similarity index 91% rename from src/main/java/org/rometools/fetcher/impl/ResponseHandler.java rename to src/main/java/com/rometools/fetcher/impl/ResponseHandler.java index 432e3bd..56b3ab8 100644 --- a/src/main/java/org/rometools/fetcher/impl/ResponseHandler.java +++ b/src/main/java/com/rometools/fetcher/impl/ResponseHandler.java @@ -14,7 +14,7 @@ * limitations under the License. * */ -package org.rometools.fetcher.impl; +package com.rometools.fetcher.impl; import java.net.URLConnection; import java.util.regex.Matcher; @@ -22,7 +22,7 @@ import java.util.regex.Pattern; /** * Utility class to help deal with HTTP responses - * + * */ public class ResponseHandler { public static final String defaultCharacterEncoding = "ISO-8859-1"; @@ -34,12 +34,14 @@ public class ResponseHandler { } /** - * + * *- * Gets the character encoding of a response. (Note that this is different to the content-encoding) + * Gets the character encoding of a response. (Note that this is different to the + * content-encoding) *
- * - * @param contentTypeHeader the value of the content-type HTTP header eg: text/html; charset=ISO-8859-4 + * + * @param contentTypeHeader the value of the content-type HTTP header eg: text/html; + * charset=ISO-8859-4 * @return the character encoding, eg: ISO-8859-4 */ public static String getCharacterEncoding(final String contentTypeHeader) { diff --git a/src/main/java/org/rometools/fetcher/impl/SyndFeedInfo.java b/src/main/java/com/rometools/fetcher/impl/SyndFeedInfo.java similarity index 91% rename from src/main/java/org/rometools/fetcher/impl/SyndFeedInfo.java rename to src/main/java/com/rometools/fetcher/impl/SyndFeedInfo.java index 1f9eb73..4b9d604 100644 --- a/src/main/java/org/rometools/fetcher/impl/SyndFeedInfo.java +++ b/src/main/java/com/rometools/fetcher/impl/SyndFeedInfo.java @@ -14,7 +14,7 @@ * limitations under the License. * */ -package org.rometools.fetcher.impl; +package com.rometools.fetcher.impl; import java.io.Serializable; import java.net.URL; @@ -24,17 +24,18 @@ import com.sun.syndication.feed.synd.SyndFeed; /** *- * A class to represent a {@link com.sun.syndication.feed.synd.SyndFeed} and some useful information about it. + * A class to represent a {@link com.sun.syndication.feed.synd.SyndFeed} and some useful information + * about it. *
- * + * ** This class is thread safe, as expected by the different feed fetcher implementations. *
- * + * * @author Nick Lothian */ public class SyndFeedInfo implements Cloneable, Serializable { - private static final long serialVersionUID = -1874786860901426015L; + private static final long serialVersionUID = 1L; private final ObjectBean _objBean; private String id; @@ -50,10 +51,10 @@ public class SyndFeedInfo implements Cloneable, Serializable { /** * Creates a deep 'bean' clone of the object. *- * + * * @return a clone of the object. * @throws CloneNotSupportedException thrown if an element of the object cannot be cloned. - * + * */ @Override public Object clone() throws CloneNotSupportedException { @@ -61,12 +62,13 @@ public class SyndFeedInfo implements Cloneable, Serializable { } /** - * Indicates whether some other object is "equal to" this one as defined by the Object equals() method. + * Indicates whether some other object is "equal to" this one as defined by the Object equals() + * method. *
- * + * * @param other he reference object with which to compare. * @return true if 'this' object is equal to the 'other' object. - * + * */ @Override public boolean equals(final Object other) { @@ -78,9 +80,9 @@ public class SyndFeedInfo implements Cloneable, Serializable { *
* It follows the contract defined by the Object hashCode() method. *
- * + * * @return the hashcode of the bean object. - * + * */ @Override public int hashCode() { @@ -90,9 +92,9 @@ public class SyndFeedInfo implements Cloneable, Serializable { /** * Returns the String representation for the object. *
- * + * * @return String representation for the object. - * + * */ @Override public String toString() { @@ -148,7 +150,8 @@ public class SyndFeedInfo implements Cloneable, Serializable { } /** - * @param string A unique ID to identify the feed. Note that if the URL of the feed changes this will remain the same + * @param string A unique ID to identify the feed. Note that if the URL of the feed changes this + * will remain the same */ public synchronized void setId(final String string) { id = string; diff --git a/src/main/java/org/rometools/fetcher/samples/FeedAggregator.java b/src/main/java/com/rometools/fetcher/samples/FeedAggregator.java similarity index 91% rename from src/main/java/org/rometools/fetcher/samples/FeedAggregator.java rename to src/main/java/com/rometools/fetcher/samples/FeedAggregator.java index 590b157..8af007f 100644 --- a/src/main/java/org/rometools/fetcher/samples/FeedAggregator.java +++ b/src/main/java/com/rometools/fetcher/samples/FeedAggregator.java @@ -14,18 +14,17 @@ * limitations under the License. * */ -package org.rometools.fetcher.samples; +package com.rometools.fetcher.samples; import java.io.PrintWriter; import java.net.URL; import java.util.ArrayList; import java.util.List; -import org.rometools.fetcher.FeedFetcher; -import org.rometools.fetcher.impl.FeedFetcherCache; -import org.rometools.fetcher.impl.HashMapFeedInfoCache; -import org.rometools.fetcher.impl.HttpURLFeedFetcher; - +import com.rometools.fetcher.FeedFetcher; +import com.rometools.fetcher.impl.FeedFetcherCache; +import com.rometools.fetcher.impl.HashMapFeedInfoCache; +import com.rometools.fetcher.impl.HttpURLFeedFetcher; import com.sun.syndication.feed.synd.SyndEntry; import com.sun.syndication.feed.synd.SyndFeed; import com.sun.syndication.feed.synd.SyndFeedImpl; @@ -33,16 +32,17 @@ import com.sun.syndication.io.SyndFeedOutput; /** *
- * It aggregates a list of RSS/Atom feeds (they can be of different types) into a single feed of the specified type. + * It aggregates a list of RSS/Atom feeds (they can be of different types) into a single feed of the + * specified type. *
- * + * ** Converted from the original FeedAggregator sample *
- * + * * @author Alejandro Abdelnur * @author Nick Lothian - * + * */ public class FeedAggregator { diff --git a/src/main/java/org/rometools/fetcher/samples/FeedReader.java b/src/main/java/com/rometools/fetcher/samples/FeedReader.java similarity index 91% rename from src/main/java/org/rometools/fetcher/samples/FeedReader.java rename to src/main/java/com/rometools/fetcher/samples/FeedReader.java index a8fddea..4dc92f7 100644 --- a/src/main/java/org/rometools/fetcher/samples/FeedReader.java +++ b/src/main/java/com/rometools/fetcher/samples/FeedReader.java @@ -15,26 +15,25 @@ * */ -package org.rometools.fetcher.samples; +package com.rometools.fetcher.samples; import java.net.URL; -import org.rometools.fetcher.FeedFetcher; -import org.rometools.fetcher.FetcherEvent; -import org.rometools.fetcher.FetcherListener; -import org.rometools.fetcher.impl.FeedFetcherCache; -import org.rometools.fetcher.impl.HashMapFeedInfoCache; -import org.rometools.fetcher.impl.HttpURLFeedFetcher; - +import com.rometools.fetcher.FeedFetcher; +import com.rometools.fetcher.FetcherEvent; +import com.rometools.fetcher.FetcherListener; +import com.rometools.fetcher.impl.FeedFetcherCache; +import com.rometools.fetcher.impl.HashMapFeedInfoCache; +import com.rometools.fetcher.impl.HttpURLFeedFetcher; import com.sun.syndication.feed.synd.SyndFeed; /** * Reads and prints any RSS/Atom feed type. Converted from the original Rome sample FeedReader *
- *
+ *
* @author Alejandro Abdelnur
* @author Nick Lothian
- *
+ *
*/
public class FeedReader {
public static void main(final String[] args) {
diff --git a/src/test/java/org/rometools/test/AbstractJettyTest.java b/src/test/java/com/rometools/test/AbstractJettyTest.java
similarity index 93%
rename from src/test/java/org/rometools/test/AbstractJettyTest.java
rename to src/test/java/com/rometools/test/AbstractJettyTest.java
index 90e8276..a8d1a1f 100644
--- a/src/test/java/org/rometools/test/AbstractJettyTest.java
+++ b/src/test/java/com/rometools/test/AbstractJettyTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*
*/
-package org.rometools.test;
+package com.rometools.test;
import java.net.URL;
@@ -29,13 +29,15 @@ import org.mortbay.http.SocketListener;
import org.mortbay.http.UserRealm;
import org.mortbay.http.handler.SecurityHandler;
import org.mortbay.jetty.servlet.ServletHandler;
-import org.rometools.fetcher.FeedFetcher;
-import org.rometools.fetcher.FetcherEvent;
-import org.rometools.fetcher.FetcherException;
-import org.rometools.fetcher.FetcherListener;
-import org.rometools.fetcher.impl.FeedFetcherCache;
-import org.rometools.fetcher.impl.HashMapFeedInfoCache;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import com.rometools.fetcher.FeedFetcher;
+import com.rometools.fetcher.FetcherEvent;
+import com.rometools.fetcher.FetcherException;
+import com.rometools.fetcher.FetcherListener;
+import com.rometools.fetcher.impl.FeedFetcherCache;
+import com.rometools.fetcher.impl.HashMapFeedInfoCache;
import com.sun.syndication.feed.atom.Entry;
import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndFeed;
@@ -45,6 +47,8 @@ import com.sun.syndication.feed.synd.SyndFeed;
*/
public abstract class AbstractJettyTest extends TestCase {
+ private static final Logger LOG = LoggerFactory.getLogger(AbstractJettyTest.class);
+
private HttpServer server;
private final int testPort = 8283;
@@ -84,6 +88,7 @@ public abstract class AbstractJettyTest extends TestCase {
* @throws InterruptedException
*/
private void setupServer() throws InterruptedException {
+
// Create the server
if (server != null) {
server.stop();
@@ -102,8 +107,8 @@ public abstract class AbstractJettyTest extends TestCase {
*/
private ServletHandler createServletHandler() {
final ServletHandler servlets = new ServletHandler();
- servlets.addServlet("FetcherTestServlet", FetcherTestServlet.SERVLET_MAPPING, "org.rometools.test.FetcherTestServlet");
- servlets.addServlet("FetcherTestServlet", FetcherTestServlet.SERVLET_MAPPING2, "org.rometools.test.FetcherTestServlet");
+ servlets.addServlet("FetcherTestServlet", FetcherTestServlet.SERVLET_MAPPING, "com.rometools.test.FetcherTestServlet");
+ servlets.addServlet("FetcherTestServlet", FetcherTestServlet.SERVLET_MAPPING2, "com.rometools.test.FetcherTestServlet");
return servlets;
}
@@ -146,13 +151,13 @@ public abstract class AbstractJettyTest extends TestCase {
public void fetcherEvent(final FetcherEvent event) {
final String eventType = event.getEventType();
if (FetcherEvent.EVENT_TYPE_FEED_POLLED.equals(eventType)) {
- System.err.println("\tEVENT: Feed Polled. URL = " + event.getUrlString());
+ LOG.debug("\tEVENT: Feed Polled. URL = " + event.getUrlString());
polled = true;
} else if (FetcherEvent.EVENT_TYPE_FEED_RETRIEVED.equals(eventType)) {
- System.err.println("\tEVENT: Feed Retrieved. URL = " + event.getUrlString());
+ LOG.debug("\tEVENT: Feed Retrieved. URL = " + event.getUrlString());
retrieved = true;
} else if (FetcherEvent.EVENT_TYPE_FEED_UNCHANGED.equals(eventType)) {
- System.err.println("\tEVENT: Feed Unchanged. URL = " + event.getUrlString());
+ LOG.debug("\tEVENT: Feed Unchanged. URL = " + event.getUrlString());
unchanged = true;
}
}
@@ -215,7 +220,7 @@ public abstract class AbstractJettyTest extends TestCase {
/**
* Test getting a feed via a http 301 redirect
- *
+ *
*/
public void testRetrieveRedirectedFeed() {
final FeedFetcher feedFetcher = getFeedFetcher();
@@ -231,7 +236,7 @@ public abstract class AbstractJettyTest extends TestCase {
/**
* Test error handling
- *
+ *
*/
public void testErrorHandling() {
final FeedFetcher feedFetcher = getFeedFetcher();
@@ -260,14 +265,14 @@ public abstract class AbstractJettyTest extends TestCase {
public void testUserAgent() {
final FeedFetcher feedFetcher = getFeedFetcher();
- // System.out.println(feedFetcher.getUserAgent());
- // System.out.println(System.getProperty("rome.fetcher.version", "UNKNOWN"));
+ // LOG.debug(feedFetcher.getUserAgent());
+ // LOG.debug(System.getProperty("rome.fetcher.version", "UNKNOWN"));
assertEquals("Rome Client (http://tinyurl.com/64t5n) Ver: " + System.getProperty("rome.fetcher.version", "UNKNOWN"), feedFetcher.getUserAgent());
}
/**
* Test events fired when there is no cache in use
- *
+ *
*/
public void testFetchEvents() {
final FeedFetcher feedFetcher = getFeedFetcher();
@@ -297,7 +302,7 @@ public abstract class AbstractJettyTest extends TestCase {
/**
* Test events fired when there is a cache in use
- *
+ *
*/
public void testFetchEventsWithCache() {
final FeedFetcherCache feedInfoCache = new HashMapFeedInfoCache();
@@ -336,7 +341,7 @@ public abstract class AbstractJettyTest extends TestCase {
/**
* Test handling of GZipped feed
- *
+ *
*/
public void testGZippedFeed() {
final FeedFetcher feedFetcher = getFeedFetcher();
diff --git a/src/test/java/org/rometools/test/DiskFeedInfoCacheTest.java b/src/test/java/com/rometools/test/DiskFeedInfoCacheTest.java
similarity index 90%
rename from src/test/java/org/rometools/test/DiskFeedInfoCacheTest.java
rename to src/test/java/com/rometools/test/DiskFeedInfoCacheTest.java
index 1952d1e..37a2a43 100644
--- a/src/test/java/org/rometools/test/DiskFeedInfoCacheTest.java
+++ b/src/test/java/com/rometools/test/DiskFeedInfoCacheTest.java
@@ -1,12 +1,12 @@
-package org.rometools.test;
+package com.rometools.test;
import java.io.File;
import java.net.URL;
import junit.framework.TestCase;
-import org.rometools.fetcher.impl.DiskFeedInfoCache;
-import org.rometools.fetcher.impl.SyndFeedInfo;
+import com.rometools.fetcher.impl.DiskFeedInfoCache;
+import com.rometools.fetcher.impl.SyndFeedInfo;
public class DiskFeedInfoCacheTest extends TestCase {
diff --git a/src/test/java/org/rometools/test/FetcherTestServlet.java b/src/test/java/com/rometools/test/FetcherTestServlet.java
similarity index 98%
rename from src/test/java/org/rometools/test/FetcherTestServlet.java
rename to src/test/java/com/rometools/test/FetcherTestServlet.java
index fd9c8e1..cabc476 100644
--- a/src/test/java/org/rometools/test/FetcherTestServlet.java
+++ b/src/test/java/com/rometools/test/FetcherTestServlet.java
@@ -14,7 +14,7 @@
* limitations under the License.
*
*/
-package org.rometools.test;
+package com.rometools.test;
import java.io.BufferedReader;
import java.io.IOException;
@@ -45,6 +45,8 @@ import com.sun.syndication.io.SyndFeedOutput;
public class FetcherTestServlet extends HttpServlet {
+ private static final long serialVersionUID = 1L;
+
public static final String ETAG_1 = "ETAG-1";
public static final String ETAG_2 = "ETAG-2";
@@ -57,7 +59,8 @@ public class FetcherTestServlet extends HttpServlet {
/**
* @throws IOException
* @throws
- * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
+ * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest,
+ * javax.servlet.http.HttpServletResponse)
*/
@Override
protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
diff --git a/src/test/java/org/rometools/test/HashMapFeedInfoCacheTest.java b/src/test/java/com/rometools/test/HashMapFeedInfoCacheTest.java
similarity index 89%
rename from src/test/java/org/rometools/test/HashMapFeedInfoCacheTest.java
rename to src/test/java/com/rometools/test/HashMapFeedInfoCacheTest.java
index 8f3d3a8..5f7caf7 100644
--- a/src/test/java/org/rometools/test/HashMapFeedInfoCacheTest.java
+++ b/src/test/java/com/rometools/test/HashMapFeedInfoCacheTest.java
@@ -1,11 +1,11 @@
-package org.rometools.test;
+package com.rometools.test;
import java.net.URL;
import junit.framework.TestCase;
-import org.rometools.fetcher.impl.HashMapFeedInfoCache;
-import org.rometools.fetcher.impl.SyndFeedInfo;
+import com.rometools.fetcher.impl.HashMapFeedInfoCache;
+import com.rometools.fetcher.impl.SyndFeedInfo;
public class HashMapFeedInfoCacheTest extends TestCase {
diff --git a/src/test/java/org/rometools/test/HttpClientFeedFetcherTest.java b/src/test/java/com/rometools/test/HttpClientFeedFetcherTest.java
similarity index 91%
rename from src/test/java/org/rometools/test/HttpClientFeedFetcherTest.java
rename to src/test/java/com/rometools/test/HttpClientFeedFetcherTest.java
index 13938ab..fbc9f13 100644
--- a/src/test/java/org/rometools/test/HttpClientFeedFetcherTest.java
+++ b/src/test/java/com/rometools/test/HttpClientFeedFetcherTest.java
@@ -14,13 +14,14 @@
* limitations under the License.
*
*/
-package org.rometools.test;
+package com.rometools.test;
import org.apache.commons.httpclient.Credentials;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
-import org.rometools.fetcher.FeedFetcher;
-import org.rometools.fetcher.impl.FeedFetcherCache;
-import org.rometools.fetcher.impl.HttpClientFeedFetcher;
+
+import com.rometools.fetcher.FeedFetcher;
+import com.rometools.fetcher.impl.FeedFetcherCache;
+import com.rometools.fetcher.impl.HttpClientFeedFetcher;
/**
* @author Nick Lothian
diff --git a/src/test/java/org/rometools/test/HttpURLFeedFetcherTest.java b/src/test/java/com/rometools/test/HttpURLFeedFetcherTest.java
similarity index 89%
rename from src/test/java/org/rometools/test/HttpURLFeedFetcherTest.java
rename to src/test/java/com/rometools/test/HttpURLFeedFetcherTest.java
index abc497a..69d5b61 100644
--- a/src/test/java/org/rometools/test/HttpURLFeedFetcherTest.java
+++ b/src/test/java/com/rometools/test/HttpURLFeedFetcherTest.java
@@ -14,11 +14,11 @@
* limitations under the License.
*
*/
-package org.rometools.test;
+package com.rometools.test;
-import org.rometools.fetcher.FeedFetcher;
-import org.rometools.fetcher.impl.FeedFetcherCache;
-import org.rometools.fetcher.impl.HttpURLFeedFetcher;
+import com.rometools.fetcher.FeedFetcher;
+import com.rometools.fetcher.impl.FeedFetcherCache;
+import com.rometools.fetcher.impl.HttpURLFeedFetcher;
public class HttpURLFeedFetcherTest extends AbstractJettyTest {
diff --git a/src/test/java/org/rometools/test/ResponseHandlerTest.java b/src/test/java/com/rometools/test/ResponseHandlerTest.java
similarity index 95%
rename from src/test/java/org/rometools/test/ResponseHandlerTest.java
rename to src/test/java/com/rometools/test/ResponseHandlerTest.java
index d164372..650a6e5 100644
--- a/src/test/java/org/rometools/test/ResponseHandlerTest.java
+++ b/src/test/java/com/rometools/test/ResponseHandlerTest.java
@@ -14,11 +14,11 @@
* limitations under the License.
*
*/
-package org.rometools.test;
+package com.rometools.test;
import junit.framework.TestCase;
-import org.rometools.fetcher.impl.ResponseHandler;
+import com.rometools.fetcher.impl.ResponseHandler;
public class ResponseHandlerTest extends TestCase {
diff --git a/src/test/java/org/rometools/test/TestBasicAuthenticator.java b/src/test/java/com/rometools/test/TestBasicAuthenticator.java
similarity index 97%
rename from src/test/java/org/rometools/test/TestBasicAuthenticator.java
rename to src/test/java/com/rometools/test/TestBasicAuthenticator.java
index 0016bbf..402a865 100644
--- a/src/test/java/org/rometools/test/TestBasicAuthenticator.java
+++ b/src/test/java/com/rometools/test/TestBasicAuthenticator.java
@@ -14,7 +14,7 @@
* limitations under the License.
*
*/
-package org.rometools.test;
+package com.rometools.test;
import java.net.Authenticator;
import java.net.PasswordAuthentication;
diff --git a/src/test/resources/logback-test.xml b/src/test/resources/logback-test.xml
new file mode 100644
index 0000000..44dea42
--- /dev/null
+++ b/src/test/resources/logback-test.xml
@@ -0,0 +1,13 @@
+