[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