@Override protected List<Entry> buildFeedEntries(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) { List<Entry> entries = new ArrayList<>(); for (String name : model.keySet()) { Entry entry = new Entry(); entry.setTitle(name); Content content = new Content(); content.setValue((String) model.get(name)); entry.setSummary(content); entries.add(entry); } return entries; } }
@Test public void write() throws IOException, SAXException { Feed feed = new Feed("atom_1.0"); feed.setTitle("title"); Entry entry1 = new Entry(); entry1.setId("id1"); entry1.setTitle("title1"); Entry entry2 = new Entry(); entry2.setId("id2"); entry2.setTitle("title2"); List<Entry> entries = new ArrayList<>(2); entries.add(entry1); entries.add(entry2); feed.setEntries(entries); MockHttpOutputMessage outputMessage = new MockHttpOutputMessage(); converter.write(feed, null, outputMessage); assertEquals("Invalid content-type", new MediaType("application", "atom+xml", StandardCharsets.UTF_8), outputMessage.getHeaders().getContentType()); String expected = "<feed xmlns=\"http://www.w3.org/2005/Atom\">" + "<title>title</title>" + "<entry><id>id1</id><title>title1</title></entry>" + "<entry><id>id2</id><title>title2</title></entry></feed>"; NodeMatcher nm = new DefaultNodeMatcher(ElementSelectors.byName); assertThat(outputMessage.getBodyAsString(StandardCharsets.UTF_8), isSimilarTo(expected).ignoreWhitespace().withNodeMatcher(nm)); }
@Test public void read() throws IOException { InputStream is = getClass().getResourceAsStream("atom.xml"); MockHttpInputMessage inputMessage = new MockHttpInputMessage(is); inputMessage.getHeaders().setContentType(new MediaType("application", "atom+xml", StandardCharsets.UTF_8)); Feed result = converter.read(Feed.class, inputMessage); assertEquals("title", result.getTitle()); assertEquals("subtitle", result.getSubtitle().getValue()); List<?> entries = result.getEntries(); assertEquals(2, entries.size()); Entry entry1 = (Entry) entries.get(0); assertEquals("id1", entry1.getId()); assertEquals("title1", entry1.getTitle()); Entry entry2 = (Entry) entries.get(1); assertEquals("id2", entry2.getId()); assertEquals("title2", entry2.getTitle()); }
final Entry entry = new Entry(); entry.setXmlBase(xmlBase); c.setValue(parseTextConstructToString(title)); c.setType(getAttributeValue(title, "type")); entry.setTitleEx(c); entry.setAlternateLinks(parseAlternateLinks(feed, entry, baseURI, links)); entry.setOtherLinks(parseOtherLinks(feed, entry, baseURI, links)); entry.setAuthors(parsePersons(baseURI, authors, locale)); entry.setContributors(parsePersons(baseURI, contributors, locale)); entry.setId(id.getText()); entry.setUpdated(DateParser.parseDate(updated.getText(), locale)); entry.setPublished(DateParser.parseDate(published.getText(), locale)); entry.setSummary(parseContent(summary)); final List<Content> contents = new ArrayList<Content>(); contents.add(parseContent(content)); entry.setContents(contents); entry.setRights(rights.getText());
@Override protected List<Entry> buildFeedEntries(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { log.info("In buildFeedEntries: " + model); Vets vets = (Vets) model.get("vets"); List<Vet> vetList = vets.getVetList(); List<Entry> entries = new ArrayList<Entry>(vetList.size()); for (Vet vet : vetList) { Entry entry = new Entry(); // see // http://diveintomark.org/archives/2004/05/28/howto-atom-id#other entry.setId(String.format("tag:springsource.org,%s", vet.getId())); entry.setTitle(String.format("Vet: %s %s", vet.getFirstName(), vet.getLastName())); entry.setUpdated(new Date()); Content summary = new Content(); summary.setValue(vet.getSpecialties().toString()); entry.setSummary(summary); entries.add(entry); } response.setContentType("blabla"); return entries; } }
syndEntry.setModules(ModuleUtils.cloneModules(entry.getModules())); final List<Element> foreignMarkup = entry.getForeignMarkup(); if (!foreignMarkup.isEmpty()) { syndEntry.setForeignMarkup(foreignMarkup); final Content eTitle = entry.getTitleEx(); if (eTitle != null) { syndEntry.setTitleEx(createSyndContent(eTitle)); final Content summary = entry.getSummary(); if (summary != null) { syndEntry.setDescription(createSyndContent(summary)); final List<Content> contents = entry.getContents(); if (Lists.isNotEmpty(contents)) { final List<SyndContent> sContents = new ArrayList<SyndContent>(); final List<SyndPerson> authors = entry.getAuthors(); if (Lists.isNotEmpty(authors)) { syndEntry.setAuthors(ConverterForAtom03.createSyndPersons(authors)); final List<SyndPerson> contributors = entry.getContributors(); if (Lists.isNotEmpty(contributors)) { syndEntry.setContributors(ConverterForAtom03.createSyndPersons(contributors)); Date date = entry.getPublished(); if (date != null) { syndEntry.setPublishedDate(date);
final Entry entry = new Entry(); entry.setTitleEx(parseContent(title)); entry.setAlternateLinks(parseAlternateLinks(links)); entry.setOtherLinks(parseOtherLinks(links)); final List<SyndPerson> authors = new ArrayList<SyndPerson>(); authors.add(parsePerson(author)); entry.setAuthors(authors); entry.setContributors(parsePersons(contributors)); entry.setId(id.getText()); entry.setModified(DateParser.parseDate(modified.getText(), locale)); entry.setIssued(DateParser.parseDate(issued.getText(), locale)); entry.setCreated(DateParser.parseDate(created.getText(), locale)); entry.setSummary(parseContent(summary)); entry.setContents(content); entry.setModules(parseItemModules(eEntry, locale)); entry.setForeignMarkup(foreignMarkup);
protected Entry createAtomEntry(final SyndEntry sEntry) { final Entry aEntry = new Entry(); aEntry.setModules(ModuleUtils.cloneModules(sEntry.getModules())); aEntry.setId(sEntry.getUri()); aEntry.setTitleEx(title); aEntry.setAlternateLinks(alternateLinks); aEntry.setOtherLinks(otherLinks); content.setValue(sContent.getValue()); content.setMode(Content.ESCAPED); aEntry.setSummary(content); aEntry.setContents(aContents); final String author = sEntry.getAuthor(); if (Lists.isNotEmpty(sAuthors)) { aEntry.setAuthors(createAtomPersons(sAuthors)); } else if (author != null) { final Person person = new Person(); final List<SyndPerson> authors = new ArrayList<SyndPerson>(); authors.add(person); aEntry.setAuthors(authors); aEntry.setModified(sEntry.getPublishedDate()); aEntry.setIssued(sEntry.getPublishedDate());
Entry atomEntry = new Entry(); atomEntry.setId( entry.getPermalink()); atomEntry.setTitle( entry.getTitle()); atomEntry.setPublished( entry.getPubTime()); atomEntry.setUpdated( entry.getUpdateTime()); atomEntry.setContents(contents); summary.setType(Content.HTML); summary.setValue(entry.getSummary()); atomEntry.setSummary(summary); author.setName( creator.getUserName()); author.setEmail( creator.getEmailAddress()); atomEntry.setAuthors( (List<SyndPerson>)Collections.singletonList(author)); atomEntry.setCategories(categories); List<Link> altlinks = new ArrayList<Link>(); altlinks.add(altlink); atomEntry.setAlternateLinks(altlinks); List<Link> otherlinks = new ArrayList<Link>(); otherlinks.add(editlink); atomEntry.setOtherLinks(otherlinks); app.setEdited(entry.getUpdateTime()); modules.add(app);
String contentType = Utilities.getContentTypeFromFileName(file.getName()); Entry entry = new Entry(); entry.setId(editMediaURI); entry.setTitle(file.getName()); entry.setUpdated(new Date(file.getLastModified())); List altlinks = new ArrayList(); altlinks.add(altlink); entry.setAlternateLinks(altlinks); entry.setOtherLinks(otherlinks); Link editlink = new Link(); editlink.setRel("edit"); List contents = new ArrayList(); contents.add(content); entry.setContents(contents); app.setEdited(entry.getUpdated()); modules.add(app); entry.setModules(modules);
syndEntry.setModules(ModuleUtils.cloneModules(entry.getModules())); final List<Element> foreignMarkup = entry.getForeignMarkup(); if (Lists.isNotEmpty(foreignMarkup)) { syndEntry.setForeignMarkup(foreignMarkup); syndEntry.setTitle(entry.getTitle()); final List<Link> alternateLinks = entry.getAlternateLinks(); if (Lists.sizeIs(alternateLinks, 1)) { final Link theLink = alternateLinks.get(0); final List<Link> otherLinks = entry.getOtherLinks(); if (Lists.isNotEmpty(otherLinks)) { for (final Link otherLink : otherLinks) { final String id = entry.getId(); if (id != null) { syndEntry.setUri(id); Content summary = entry.getSummary(); if (summary == null) { final List<Content> contents = entry.getContents(); if (Lists.isNotEmpty(contents)) { summary = contents.get(0); final List<Content> contents = entry.getContents(); if (Lists.isNotEmpty(contents)) { final List<SyndContent> sContents = new ArrayList<SyndContent>();
final Content titleEx = entry.getTitleEx(); if (titleEx != null) { final Element titleElement = new Element("title", getFeedNamespace()); final List<Link> alternateLinks = entry.getAlternateLinks(); for (final Link link : alternateLinks) { eEntry.addContent(generateLinkElement(link)); final List<Link> otherLinks = entry.getOtherLinks(); for (final Link link : otherLinks) { eEntry.addContent(generateLinkElement(link)); final List<SyndPerson> authors = entry.getAuthors(); if (Lists.isNotEmpty(authors)) { final Element authorElement = new Element("author", getFeedNamespace()); final List<SyndPerson> contributors = entry.getContributors(); for (final SyndPerson contributor : contributors) { final Element contributorElement = new Element("contributor", getFeedNamespace()); final String id = entry.getId(); if (id != null) { eEntry.addContent(generateSimpleElement("id", id)); final Date modified = entry.getModified(); if (modified != null) { final Element modifiedElement = new Element("modified", getFeedNamespace()); final Date issued = entry.getIssued();
private void updateMediaEntryAppLinks(final Entry entry, final String fileName, final boolean singleEntry) { // TODO: figure out why PNG is missing from Java MIME types final FileTypeMap map = FileTypeMap.getDefaultFileTypeMap(); if (map instanceof MimetypesFileTypeMap) { try { ((MimetypesFileTypeMap) map).addMimeTypes("image/png png PNG"); } catch (final Exception ignored) { } } entry.setId(getEntryMediaViewURI(fileName)); entry.setTitle(fileName); entry.setUpdated(new Date()); final List<Link> otherlinks = new ArrayList<Link>(); entry.setOtherLinks(otherlinks); final Link editlink = new Link(); editlink.setRel("edit"); editlink.setHref(getEntryEditURI(fileName, relativeURIs, singleEntry)); otherlinks.add(editlink); final Link editMedialink = new Link(); editMedialink.setRel("edit-media"); editMedialink.setHref(getEntryMediaEditURI(fileName, relativeURIs, singleEntry)); otherlinks.add(editMedialink); final Content content = entry.getContents().get(0); content.setSrc(getEntryMediaViewURI(fileName)); final List<Content> contents = new ArrayList<Content>(); contents.add(content); entry.setContents(contents); }
for (final Object element : newEntry.getOtherLinks()) { final Link link = (Link) element; if ("edit".equals(link.getRel())) { for (final Object element : newEntry.getAlternateLinks()) { final Link link = (Link) element; if ("alternate".equals(link.getRel())) { final Entry resource = new Entry(); resource.setTitle(title); final Content content = new Content(); content.setType(areq.getContentType()); resource.setContents(Collections.singletonList(content)); for (final Object element : newEntry.getOtherLinks()) { final Link link = (Link) element; if ("edit".equals(link.getRel())) { for (final Object element : newEntry.getAlternateLinks()) { final Link link = (Link) element; if ("alternate".equals(link.getRel())) {
Timestamp pubTime = current; Timestamp updateTime = current; if (entry.getPublished() != null) { pubTime = new Timestamp( entry.getPublished().getTime() ); if (entry.getUpdated() != null) { updateTime = new Timestamp( entry.getUpdated().getTime() ); rollerEntry.setTitle(entry.getTitle()); if (entry.getContents() != null && entry.getContents().size() > 0) { Content content = entry.getContents().get(0); rollerEntry.setText(content.getValue()); if (entry.getSummary() != null) { rollerEntry.setSummary(entry.getSummary().getValue()); (AppModule)entry.getModule(AppModule.URI); if (control!=null && control.getDraft()) { rollerEntry.setStatus(PubStatus.DRAFT); List<Category> categories = entry.getCategories(); if (categories != null && categories.size() > 0) { for (Category cat : categories) {
for (Link link : (List<Link>)entry.getAlternateLinks()) { if ("text/html".equals(link.getType())) href = link.getHref(); for (Content content : (List<Content>)entry.getContents()) { if ("html".equals(content.getType())) body = content.getValue(); for (Content content : (List<Content>)entry.getSummary()) { if ("html".equals(content.getType())) body = content.getValue(); String author = entry.getAuthors() != null && entry.getAuthors().size() > 0 ? entry.getAuthors().get(0).toString() : ""; NewsFeedEntry fe = new NewsFeedEntry( href, entry.getTitle(), body, author, entry.getPublished() ); feed.add(fe);
private void updateEntryAppLinks(final Entry entry, final String fsid, final boolean singleEntry) { entry.setId("urn:uuid:" + fsid); List<Link> altLinks = entry.getAlternateLinks(); if (altLinks != null) { for (final Link link : altLinks) { entry.setAlternateLinks(altLinks); List<Link> otherLinks = entry.getOtherLinks(); if (otherLinks != null) { for (final Link link : otherLinks) { entry.setOtherLinks(otherLinks);
/** * Update existing or add new app:edited. */ private void updateTimestamps(final Entry entry) { // We're not differenting between an update and an edit (yet) entry.setUpdated(new Date()); AppModule appModule = (AppModule) entry.getModule(AppModule.URI); if (appModule == null) { appModule = new AppModuleImpl(); final List<Module> modules = entry.getModules() == null ? new ArrayList<Module>() : entry.getModules(); modules.add(appModule); entry.setModules(modules); } appModule.setEdited(entry.getUpdated()); }
final Content content = entry.getContents().get(0); if (entry.getTitle() == null) { entry.setTitle(slug); final String fileName = createFileName(slug != null ? slug : entry.getTitle(), content.getType()); final File tempFile = File.createTempFile(fileName, "tmp"); final FileOutputStream fos = new FileOutputStream(tempFile);
ObjectMapper mapper = new ObjectMapper(); for (Entry entry : feed.getEntries()) { String ratingAsJson = entry.getSummary().getValue(); if ((lastModified == null) || (entry.getUpdated().after(lastModified))) { log.info(entry.getTitle() + " is new, processing"); try { AgencyRating agencyRating = mapper.readValue(ratingAsJson, AgencyRating.class); agencyRating.getCity(), agencyRating.getPoints()); lastUpdateInFeed = entry.getUpdated(); } catch (IOException e) {