[jboss-svn-commits] JBL Code SVN: r13368 - labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/podcast.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jul 11 13:13:58 EDT 2007


Author: adamw
Date: 2007-07-11 13:13:57 -0400 (Wed, 11 Jul 2007)
New Revision: 13368

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/PodcastConfWatcher.java
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/podcast/PodcastDescriptor.java
Log:
Non-blocking podcast feed getting

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	2007-07-11 17:13:19 UTC (rev 13367)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/podcast/Podcast.java	2007-07-11 17:13:57 UTC (rev 13368)
@@ -35,10 +35,13 @@
 import java.util.SimpleTimeZone;
 
 import java.net.URL;
+import java.net.URLConnection;
 import java.io.IOException;
+import java.io.InputStream;
 
 import org.jboss.forge.common.XmlTools;
 import org.jboss.portal.core.servlet.jsp.taglib.context.DelegateContext;
+import org.jboss.shotoku.ContentManager;
 import org.jboss.logging.Logger;
 
 import org.w3c.dom.Node;
@@ -432,12 +435,16 @@
 		HashSet<ItemIF> ret = new HashSet<ItemIF>();
 		
 		for (String urlString : URLs.values()) {
-			
-			try {
+			InputStream is = null;
+			try {				
+				URL url = new URL(urlString);				
+				URLConnection conn = url.openConnection();
+	            conn.setReadTimeout(ContentManager.getProperty("shotoku.internal.feeds.service.read_timeout", 3000));
+	            conn.setConnectTimeout(ContentManager.getProperty("shotoku.internal.feeds.service.conn_timeout", 5000));
+	            conn.connect();
+	            is = conn.getInputStream();
 				
-				URL url = new URL(urlString);
-							
-				ChannelIF channel = FeedParser.parse(new ChannelBuilder(), url.openStream());
+				ChannelIF channel = FeedParser.parse(new ChannelBuilder(), is);
 				if (channel != null) {
 					Collection items = channel.getItems();
 					if ((items != null) && (!items.isEmpty())) {
@@ -450,6 +457,14 @@
 				//e.printStackTrace();
 			} catch (ParseException e) {
 				log.warn("Parse error: " + urlString);
+			} finally {
+				try {
+					if (is != null) {
+						is.close();
+					}
+				} catch (IOException e) {
+					log.warn("Exception closing podcast input stream.", e);
+				}
 			}
 		}
 		return ret;

Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/podcast/PodcastConfWatcher.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/podcast/PodcastConfWatcher.java	2007-07-11 17:13:19 UTC (rev 13367)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/podcast/PodcastConfWatcher.java	2007-07-11 17:13:57 UTC (rev 13368)
@@ -46,21 +46,20 @@
 		
 		addWatchedPath(key, PodcastLocations.getXmlCmPath(portalName));
 		
-		return getDesc(key);
+		return new DummyPodcastDescriptor();
+		//return getDesc(key);
 	}
 	
 	@Override
 	/* Called only when some of the watched resources changes. */
 	protected void update(Pair<String, String> key,
 			PodcastDescriptor currentObject, Map<String, ChangeType> changes) {
-		
 		put(key, getDesc(key));
 	}
 	
 	@Override
 	/* Called to check whether observed feeds changed. */
 	public void update(Pair<String, String> key, PodcastDescriptor desc) {
-		
 		put(key, getDesc(key));
 	}
 

Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/podcast/PodcastDescriptor.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/podcast/PodcastDescriptor.java	2007-07-11 17:13:19 UTC (rev 13367)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/podcast/PodcastDescriptor.java	2007-07-11 17:13:57 UTC (rev 13368)
@@ -45,6 +45,10 @@
 	@Inject
 	private ContentManager cm;
 	
+	protected PodcastDescriptor() {
+		
+	}
+	
 	public PodcastDescriptor(String portalName, String serverAdress) {	
 		try {			
 			DOMParser parser = new DOMParser();




More information about the jboss-svn-commits mailing list