use of com.sun.syndication.feed.synd.SyndFeedImpl in project camel by apache.
the class UpdatedDateFilterTest method testFilter.
@Test
public void testFilter() {
SyndEntry entry = new SyndEntryImpl();
entry.setPublishedDate(now);
entry.setAuthor("ANDY");
assertTrue(fixture.isValidEntry(new RssEndpoint(), new SyndFeedImpl(), entry));
entry = new SyndEntryImpl();
entry.setPublishedDate(now);
entry.setAuthor("ANDY");
assertFalse(fixture.isValidEntry(new RssEndpoint(), new SyndFeedImpl(), entry));
entry = new SyndEntryImpl();
entry.setPublishedDate(now);
entry.setAuthor("FRED");
assertTrue(fixture.isValidEntry(new RssEndpoint(), new SyndFeedImpl(), entry));
}
use of com.sun.syndication.feed.synd.SyndFeedImpl in project gitblit by gitblit.
the class SyndicationUtils method toRSS.
/**
* Outputs an RSS feed of the list of entries to the outputstream.
*
* @param hostUrl
* @param feedLink
* @param title
* @param description
* @param entryModels
* @param os
* @throws IOException
* @throws FeedException
*/
public static void toRSS(String hostUrl, String feedLink, String title, String description, List<FeedEntryModel> entryModels, OutputStream os) throws IOException, FeedException {
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType("rss_2.0");
feed.setEncoding("UTF-8");
feed.setTitle(title);
feed.setLink(feedLink);
if (StringUtils.isEmpty(description)) {
feed.setDescription(title);
} else {
feed.setDescription(description);
}
SyndImageImpl image = new SyndImageImpl();
image.setTitle(Constants.NAME);
image.setUrl(hostUrl + "/gitblt_25.png");
image.setLink(hostUrl);
feed.setImage(image);
List<SyndEntry> entries = new ArrayList<SyndEntry>();
for (FeedEntryModel entryModel : entryModels) {
SyndEntry entry = new SyndEntryImpl();
entry.setTitle(entryModel.title);
entry.setAuthor(entryModel.author);
entry.setLink(entryModel.link);
entry.setPublishedDate(entryModel.published);
if (entryModel.tags != null && entryModel.tags.size() > 0) {
List<SyndCategory> tags = new ArrayList<SyndCategory>();
for (String tag : entryModel.tags) {
SyndCategoryImpl cat = new SyndCategoryImpl();
cat.setName(tag);
tags.add(cat);
}
entry.setCategories(tags);
}
SyndContent content = new SyndContentImpl();
if (StringUtils.isEmpty(entryModel.contentType) || entryModel.contentType.equalsIgnoreCase("text/plain")) {
content.setType("text/html");
content.setValue(StringUtils.breakLinesForHtml(entryModel.content));
} else {
content.setType(entryModel.contentType);
content.setValue(entryModel.content);
}
entry.setDescription(content);
entries.add(entry);
}
feed.setEntries(entries);
OutputStreamWriter writer = new OutputStreamWriter(os, "UTF-8");
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed, writer);
writer.close();
}
use of com.sun.syndication.feed.synd.SyndFeedImpl in project scoold by Erudika.
the class SearchController method getFeed.
private SyndFeed getFeed() throws IOException, FeedException {
List<Post> questions = pc.findQuery(Utils.type(Question.class), "*");
List<SyndEntry> entries = new ArrayList<SyndEntry>();
String baseurl = Config.getConfigParam("base_url", "https://scoold.com");
baseurl = baseurl.endsWith("/") ? baseurl : baseurl + "/";
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType("atom_1.0");
feed.setTitle("Scoold - Recent questions");
feed.setLink(baseurl);
feed.setDescription("A summary of the most recent questions asked on Scoold.");
for (Post post : questions) {
SyndEntry entry;
SyndContent description;
String baselink = baseurl.concat("question/").concat(post.getId());
entry = new SyndEntryImpl();
entry.setTitle(post.getTitle());
entry.setLink(baselink);
entry.setPublishedDate(new Date(post.getTimestamp()));
entry.setAuthor(baseurl.concat("profile/").concat(post.getCreatorid()));
entry.setUri(baselink.concat("/").concat(Utils.stripAndTrim(post.getTitle()).replaceAll("\\p{Z}+", "-").toLowerCase()));
description = new SyndContentImpl();
description.setType("text/html");
description.setValue(Utils.markdownToHtml(post.getBody()));
entry.setDescription(description);
entries.add(entry);
}
feed.setEntries(entries);
return feed;
}
use of com.sun.syndication.feed.synd.SyndFeedImpl in project opennms by OpenNMS.
the class OutageFeed method getFeed.
/**
* <p>getFeed</p>
*
* @return a {@link com.sun.syndication.feed.synd.SyndFeed} object.
*/
@Override
public SyndFeed getFeed() {
SyndFeed feed = new SyndFeedImpl();
feed.setTitle("Nodes with Outages");
feed.setDescription("OpenNMS Nodes with Outages");
feed.setLink(getUrlBase() + "outage/list.htm");
List<SyndEntry> entries = new ArrayList<SyndEntry>();
try {
Date date = new Date();
date.setTime(date.getTime() - (1000 * 60 * 60 * 24));
OutageSummary[] summaries = OutageModel.getAllOutageSummaries(date);
SyndEntry entry;
int count = 0;
for (OutageSummary summary : summaries) {
if (count++ == this.getMaxEntries()) {
break;
}
String link = getUrlBase() + "element/node.jsp?node=" + summary.getNodeId();
entry = new SyndEntryImpl();
entry.setPublishedDate(summary.getTimeDown());
if (summary.getTimeUp() == null) {
entry.setTitle(sanitizeTitle(summary.getNodeLabel()));
entry.setUpdatedDate(summary.getTimeDown());
} else {
entry.setTitle(sanitizeTitle(summary.getNodeLabel()) + " (Resolved)");
entry.setUpdatedDate(summary.getTimeUp());
}
entry.setLink(link);
entry.setAuthor("OpenNMS");
entries.add(entry);
}
} catch (SQLException e) {
LOG.warn("unable to get current outages", e);
}
feed.setEntries(entries);
return feed;
}
use of com.sun.syndication.feed.synd.SyndFeedImpl in project jersey by jersey.
the class FeedEntriesAtomBodyWriter method writeTo.
@Override
public void writeTo(List<FeedEntry> entries, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) throws IOException, WebApplicationException {
List<SyndEntry> syndEntries = entries.parallelStream().map(entry -> {
SyndContent description = new SyndContentImpl();
description.setType(MediaType.TEXT_PLAIN);
description.setValue(entry.getDescription());
SyndEntry syndEntry = new SyndEntryImpl();
syndEntry.setTitle(entry.getTitle());
syndEntry.setLink(entry.getLink());
syndEntry.setPublishedDate(entry.getPublishDate());
syndEntry.setDescription(description);
return syndEntry;
}).collect(Collectors.toList());
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType("atom_1.0");
feed.setTitle("Combined Feed");
feed.setDescription("Combined Feed created by a feed-combiner application");
feed.setPublishedDate(new Date());
feed.setEntries(syndEntries);
writeSyndFeed(entityStream, feed);
}
Aggregations