@Override protected String prefixLink(String linkStr) { final String base = Components.getComponent(ServerConfiguration.class).getDefaultBaseUrl(); if (base.endsWith("/") && linkStr.startsWith("/")) { return base + linkStr.substring(1); } return base + linkStr; } }
data.put("defaultBaseUrl", ServerConfiguration.getInstance().getDefaultBaseUrl());
@Override public void setFeedInfo(SyndFeed feed) { final String startPath = getSiteRoot(); final Node startNode = SessionUtil.getNode(RepositoryConstants.WEBSITE, startPath); feed.setTitle(PropertyUtil.getString(startNode, PROPERTY_NAME_TITLE, "")); feed.setLink(StringUtils.defaultIfEmpty(LinkUtil.createExternalLink(startNode), serverConfiguration.getDefaultBaseUrl())); feed.setDescription(PropertyUtil.getString(startNode, PROPERTY_NAME_DESCRIPTION, "")); }
@Override public void setFeedInfo(SyndFeed feed) { // Ideally retrieve this from the aggregate node definition. However the RSS Aggregate creation dialog does not // provide for this information (yet). String link = Components.getComponent(ServerConfiguration.class).getDefaultBaseUrl(); Node feedDescr = SessionUtil.getNode(RSSAggregatorConstants.WORKSPACE, feedPath); if (feedDescr != null) { feed.setTitle(PropertyUtil.getString(feedDescr, "title", "")); feed.setDescription(PropertyUtil.getString(feedDescr, "description", "")); } else { feed.setTitle(""); feed.setDescription(""); } feed.setLink(link); }
@Override public void setFeedInfo(SyndFeed feed) { // common attributes Node feedDescr = SessionUtil.getNode(RSSAggregatorConstants.WORKSPACE, feedPath); feed.setTitle(StringUtils.defaultIfEmpty(PropertyUtil.getString(feedDescr, "title"), "")); feed.setDescription(StringUtils.defaultIfEmpty(PropertyUtil.getString(feedDescr, "description"), DEFAULT_DESCRIPTION)); String link = Components.getComponent(ServerConfiguration.class).getDefaultBaseUrl(); // ATOM feed if (FEED_TYPE_ATOM.equals(feedType)) { if (!StringUtils.endsWith(link, "/")) { link += "/"; } feed.setUri(link); // generates the ID, should end with an "/" feed.setPublishedDate(new Date()); SyndLink selfLink = new SyndLinkImpl(); selfLink.setRel("self"); selfLink.setHref(link); selfLink.setType("application/atom+xml"); feed.getLinks().add(selfLink); } else { // RSS feed feed.setLink(link); } }
@Override public void setFeedInfo(SyndFeed feed) { String feedPath = getSiteRoot(); Node feedDescr = SessionUtil.getNode(RepositoryConstants.WEBSITE, feedPath); String string = PropertyUtil.getString(feedDescr, "title"); feed.setTitle(StringUtils.defaultIfEmpty(string, "")); feed.setLink(StringUtils.defaultIfEmpty(LinkUtil.createExternalLink(feedDescr), Components.getComponent(ServerConfiguration.class).getDefaultBaseUrl())); String desc = PropertyUtil.getString(feedDescr, "description"); feed.setDescription(StringUtils.defaultIfEmpty(desc, "")); }
@Test public void testMakeCompleteURL() throws Exception { ServerConfiguration serverConfiguration = Components.getComponent(ServerConfiguration.class); String base = serverConfiguration.getDefaultBaseUrl(); serverConfiguration.setDefaultBaseUrl("http://some.site/yay/"); String url = null; try { MockSession session = new MockSession("website"); MockNode c = (MockNode) session.getRootNode(); url = LinkTransformerManager.getInstance().getCompleteUrl().transform(LinkUtil.createLinkInstance(c)); } finally { // restore serverConfiguration.setDefaultBaseUrl(base); } assertNotNull(url); assertEquals(-1, StringUtils.substringAfter(url, "http://").indexOf("//")); }
@Override public void setFeedInfo(SyndFeed feed) { try { Node feedDescr = SessionUtil.getNode(RepositoryConstants.WEBSITE, getSiteRoot()); feed.setTitle(StringUtils.defaultIfEmpty(PropertyUtil.getString(feedDescr, "title"), simpleTranslator.translate("categories.categorySyndicator.feed.defaultTitle"))); feed.setLink(StringUtils.defaultIfEmpty(LinkUtil.createExternalLink(feedDescr), Components.getComponent(ServerConfiguration.class).getDefaultBaseUrl())); feed.setDescription(StringUtils.defaultIfEmpty(PropertyUtil.getString(feedDescr, "description"), "")); } catch (Exception e) { throw new FeedGenerationException("Failed to retrieve feed description from " + getSiteRoot(), e); } }