[jboss-svn-commits] JBL Code SVN: r19489 - in labs/jbosslabs/trunk/portal-extensions: forge-portlets and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Apr 8 17:23:34 EDT 2008


Author: wrzep
Date: 2008-04-08 17:23:34 -0400 (Tue, 08 Apr 2008)
New Revision: 19489

Modified:
   labs/jbosslabs/trunk/portal-extensions/binaries/maven-repo-addons/informa/jars/informa.jar
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/project.xml
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/podcast/Podcast.java
Log:
podcast (or rather informa lib) switched to atom


Modified: labs/jbosslabs/trunk/portal-extensions/binaries/maven-repo-addons/informa/jars/informa.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/project.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/project.xml	2008-04-08 21:22:57 UTC (rev 19488)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/project.xml	2008-04-08 21:23:34 UTC (rev 19489)
@@ -159,7 +159,6 @@
         <dependency>
             <groupId>informa</groupId>
             <artifactId>informa</artifactId>
-            <version>0.6.5</version>
             <jar>informa.jar</jar>
         </dependency>
 		<dependency>

Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/podcast/Podcast.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/podcast/Podcast.java	2008-04-08 21:22:57 UTC (rev 19488)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/podcast/Podcast.java	2008-04-08 21:23:34 UTC (rev 19489)
@@ -23,6 +23,7 @@
 package org.jboss.forge.podcast;
 
 import java.util.Collection;
+import java.util.Comparator;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.HashMap;
@@ -43,6 +44,8 @@
 import org.jboss.portal.core.servlet.jsp.taglib.context.DelegateContext;
 import org.jboss.shotoku.ContentManager;
 import org.jboss.logging.Logger;
+import org.jdom.JDOMException;
+import org.jdom.input.SAXBuilder;
 
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -50,7 +53,7 @@
 
 import de.nava.informa.core.ChannelIF;
 import de.nava.informa.impl.basic.ChannelBuilder;
-import de.nava.informa.parsers.FeedParser;
+import de.nava.informa.parsers.Atom_1_0_Parser;
 import de.nava.informa.utils.ItemComparator;
 import de.nava.informa.core.ItemIF;
 import de.nava.informa.core.ItemEnclosureIF;
@@ -91,9 +94,12 @@
 	/**
 	 * <code>allItemsArr</code> - Array if ItemIF objects, containing items from all feeds.
 	 */	
-	private Object[] allItemsArr;
+	private ItemIF[] allItemsArr;
 	
 	@SuppressWarnings("unchecked") Podcast(String serverAdress, Node root) {
+		
+		log.debug("Updating podcast");
+		
 		this.serverAdress = serverAdress;
 		
 		log = Logger.getLogger(this.getClass());
@@ -125,9 +131,15 @@
 		
 		// Parse and sort the items
 		Map<String,String> urls = getURLs(nodes);
+	
+		Set<ItemIF> itemsSet = getAllItems(urls);
+
+		allItemsArr = new ItemIF[itemsSet.size()];
+		allItemsArr = (ItemIF[]) itemsSet.toArray(allItemsArr);
 		
-		allItemsArr = getAllItems(urls).toArray();
-		java.util.Arrays.sort((Object[]) allItemsArr, new ItemComparator(true));	
+		Comparator<ItemIF> ic = new ItemComparator(true);
+		
+		java.util.Arrays.sort(allItemsArr, ic);	
 	}
 	
 	/**
@@ -166,9 +178,6 @@
 		}
 		nodeContext.put("description", description);
 		
-		//System.out.println("getDescription " + description);
-		//System.out.println("get('description') " + item.getElementValue("description"));
-		
 		// item date
 		Date date = item.getDate();
 		if (date != null) {
@@ -444,7 +453,15 @@
 	            conn.connect();
 	            is = conn.getInputStream();
 				
-				ChannelIF channel = FeedParser.parse(new ChannelBuilder(), is);
+	            SAXBuilder saxBuilder = new SAXBuilder(false);
+	            
+	            org.jdom.Document doc = saxBuilder.build(is);
+	            org.jdom.Element root = doc.getRootElement();
+	            
+	            Atom_1_0_Parser a = Atom_1_0_Parser.getInstance();
+	            
+	            ChannelIF channel = a.parse(new ChannelBuilder(), root);
+				
 				if (channel != null) {
 					Collection items = channel.getItems();
 					if ((items != null) && (!items.isEmpty())) {
@@ -454,9 +471,10 @@
 								
 			} catch (IOException e) {
 				log.warn(urlString + " could not be found.");
-				//e.printStackTrace();
+			} catch (JDOMException e) {
+				log.warn("DOM error: " + urlString, e);
 			} catch (ParseException e) {
-				log.warn("Parse error: " + urlString);
+				log.warn("Parse error: " + urlString, e);
 			} finally {
 				try {
 					if (is != null) {




More information about the jboss-svn-commits mailing list