Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package services;
- import com.sun.syndication.feed.synd.SyndEntry;
- import com.sun.syndication.feed.synd.SyndFeed;
- import com.sun.syndication.io.FeedException;
- import com.sun.syndication.io.SyndFeedInput;
- import com.sun.syndication.io.XmlReader;
- import java.io.IOException;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.log4j.Logger;
- /**
- *
- * @author outcastgeek
- */
- public class FeedsServiceImpl implements FeedsService {
- private static final Logger LOGGER = Logger.getLogger(FeedsServiceImpl.class);
- public List<Feed> getFeedsFromSource(String source) {
- LOGGER.info("Fetching feed from source: " + source);
- List<Feed> feeds = new ArrayList<Feed>();
- try {
- final URL url = new URL(source);
- final SyndFeedInput syndFeedInput = new SyndFeedInput();
- final SyndFeed downloadedFeed = syndFeedInput.build(new XmlReader(url));
- for (SyndEntry syndEntry : (List<SyndEntry>) downloadedFeed.getEntries()) {
- Feed feed = new Feed();
- feed.setAuthor(syndEntry.getAuthor());
- feed.setTitle(syndEntry.getTitle());
- feed.setDescription(syndEntry.getDescription().getValue());
- feed.setLink(syndEntry.getLink());
- feed.setPubDate(syndEntry.getPublishedDate());
- LOGGER.info("Author: " + feed.getAuthor());
- LOGGER.info("Title: " + feed.getTitle());
- LOGGER.info("Description: " + feed.getDescription());
- LOGGER.info("Link: " + feed.getLink());
- LOGGER.info("Date: " + feed.getPubDate());
- feeds.add(feed);
- }
- } catch (MalformedURLException e) {
- LOGGER.error("Failed to retrieve feeds from this source: " + source + "\nwith error: " + e);
- } catch (IOException e) {
- LOGGER.error("Failed to retrieve feeds from this source: " + source + "\nwith error: " + e);
- } catch (FeedException e) {
- LOGGER.error("Failed to retrieve feeds from this source: " + source + "\nwith error: " + e);
- }
- LOGGER.info("Successfully retrieved feeds: " + feeds);
- return feeds;
- }
- public List<Feed> getAllFeedsFromSources(List<String> sources) {
- LOGGER.info("Fetching all feeds from sources: " + sources);
- List feeds = new ArrayList<Feed>();
- for (String source : sources) {
- feeds.addAll(getFeedsFromSource(source));
- }
- LOGGER.info("Done fetching all feeds");
- return feeds;
- }
- }
Add Comment
Please, Sign In to add comment