From: <jbo...@li...> - 2005-11-18 20:37:10
|
Author: wrzep Date: 2005-11-18 15:37:00 -0500 (Fri, 18 Nov 2005) New Revision: 1595 Modified: trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/Podcast.java trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/PodcastDescriptor.java trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/PodcastNodeWatcher.java trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/PodcastPortlet.java trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/PodcastTools.java Log: Provided support for local podcasts adresses (/feeds/project/... paths in podcast.xml) Pawel Modified: trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/Podcast.java =================================================================== --- trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/Podcast.java 2005-11-18 19:13:47 UTC (rev 1594) +++ trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/Podcast.java 2005-11-18 20:37:00 UTC (rev 1595) @@ -87,14 +87,16 @@ private static final int BYTES_IN_MB = (1024*1024); private String portalName; + private String serverAdress; /** * <code>allItemsArr</code> - Array if ItemIF objects, containing items from all feeds. */ private Object[] allItemsArr; - Podcast(String portalName, Node root) { + Podcast(String portalName, String serverAdress, Node root) { this.portalName = portalName; + this.serverAdress = serverAdress; podcastsNumber = getPodcastsNumber(root); @@ -247,8 +249,13 @@ Map nodeProperties = (Map<String,Node>) iter.next(); Node urlNode = (Node) nodeProperties.get(URL_ELEMENT); - URL url = new URL(XmlTools.unmarshallText(urlNode)); + String urlString = XmlTools.unmarshallText(urlNode); + if (urlString.charAt(0) == '/') { // local link + urlString = serverAdress + urlString; + } + URL url = new URL(urlString); + ChannelIF channel = FeedParser.parse(new ChannelBuilder(), url); ret.addAll(channel.getItems()); Modified: trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/PodcastDescriptor.java =================================================================== --- trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/PodcastDescriptor.java 2005-11-18 19:13:47 UTC (rev 1594) +++ trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/PodcastDescriptor.java 2005-11-18 20:37:00 UTC (rev 1595) @@ -55,7 +55,7 @@ private HashSet<String> feeds; - public PodcastDescriptor(String portalName, ContentManager cm) { + public PodcastDescriptor(String portalName, String serverAdress, ContentManager cm) { try { feeds = new HashSet<String>(); @@ -68,7 +68,7 @@ if ((root.getNodeType() == Node.ELEMENT_NODE) && (root.getNodeName().equals(Podcast.PODCAST_ELEMENT))) { - podcast = new Podcast(portalName, root); + podcast = new Podcast(portalName, serverAdress, root); } fillContext(); Modified: trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/PodcastNodeWatcher.java =================================================================== --- trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/PodcastNodeWatcher.java 2005-11-18 19:13:47 UTC (rev 1594) +++ trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/PodcastNodeWatcher.java 2005-11-18 20:37:00 UTC (rev 1595) @@ -34,13 +34,15 @@ public class PodcastNodeWatcher implements NodeWatcher { private ResourceWatcher rw; private ContentManager cm; + private String serverAdress; - public PodcastNodeWatcher(ContentManager cm) { + public PodcastNodeWatcher(ContentManager cm, String serverAdress) { this.cm = cm; + this.serverAdress = serverAdress; } private PodcastDescriptor getDesc(String portalName) { - PodcastDescriptor desc = new PodcastDescriptor(portalName, cm); + PodcastDescriptor desc = new PodcastDescriptor(portalName, serverAdress, cm); rw = new ResourceWatcher(cm); rw.watchResource(PodcastTools.getXmlCmPath(portalName)); Modified: trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/PodcastPortlet.java =================================================================== --- trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/PodcastPortlet.java 2005-11-18 19:13:47 UTC (rev 1594) +++ trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/PodcastPortlet.java 2005-11-18 20:37:00 UTC (rev 1595) @@ -51,9 +51,10 @@ response.setContentType("text/html"); String portalName = ForgeHelper.getPortalName(request); + String serverAdress = ForgeHelper.getBaseServerAddress(request); // Getting the podcast context - DelegateContext context = PodcastTools.getDesc(portalName).getContext(request); + DelegateContext context = PodcastTools.getDesc(portalName, serverAdress).getContext(request); // Displaying the JSP request.setAttribute(PortalJsp.CTX_REQUEST, context); Modified: trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/PodcastTools.java =================================================================== --- trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/PodcastTools.java 2005-11-18 19:13:47 UTC (rev 1594) +++ trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/PodcastTools.java 2005-11-18 20:37:00 UTC (rev 1595) @@ -41,7 +41,8 @@ return PODCAST_JSP_DIR + "/" + PODCAST_JSP; } - public static synchronized PodcastDescriptor getDesc(final String portalName) { + public static synchronized PodcastDescriptor getDesc(final String portalName, + final String serverAdress) { String cacheKey = PodcastDescriptor.class.getName(); PodcastDescriptor desc = (PodcastDescriptor) ForgeHelper @@ -51,7 +52,7 @@ desc = (PodcastDescriptor) ForgeHelper.getForgeManagement() .addNodeWatcher(portalName, cacheKey, - new PodcastNodeWatcher(cm)); + new PodcastNodeWatcher(cm, serverAdress)); return desc; } |