You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by bu...@apache.org on 2004/06/27 00:42:45 UTC
cvs commit: jakarta-commons-sandbox/feedparser/src/java/org/apache/commons/feedparser/locate ResourceExpander.java
burton 2004/06/26 15:42:45
Modified: feedparser/src/java/org/apache/commons/feedparser
LinkFeedParserListener.java
MetaFeedParserListener.java RSSFeedParser.java
feedparser/src/java/org/apache/commons/feedparser/impl
DebugFeedParserListener.java
feedparser/src/java/org/apache/commons/feedparser/locate
ResourceExpander.java
Log:
RSS parser now supports dates for RSS 1.0 dc feeds
Revision Changes Path
1.4 +11 -2 jakarta-commons-sandbox/feedparser/src/java/org/apache/commons/feedparser/LinkFeedParserListener.java
Index: LinkFeedParserListener.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/feedparser/src/java/org/apache/commons/feedparser/LinkFeedParserListener.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- LinkFeedParserListener.java 15 Apr 2004 00:58:44 -0000 1.3
+++ LinkFeedParserListener.java 26 Jun 2004 22:42:45 -0000 1.4
@@ -19,7 +19,15 @@
import org.jdom.*;
/**
- * Atom link, RSS 2.0 enclosure, and RSS 1.0 mod_link support.
+ * Atom link, RSS 2.0 enclosure, and RSS 1.0 mod_link support.fds
+ *
+ * More info on the link mechanism:
+ *
+ * http://web.resource.org/rss/1.0/modules/link/
+ *
+ * http://xml.com/pub/a/2004/06/16/dive.html
+ *
+ * http://www.peerfear.org/rss/permalink/2004/06/17/AtomLinkModel
*
* @author <a href="mailto:burton@apache.org">Kevin A. Burton (burtonator)</a>
* @version $Id$
@@ -28,6 +36,7 @@
/**
*
+ *
* @param length The length of the content or -1 if not specified.
*/
public void onLink( FeedParserState state,
1.6 +1 -2 jakarta-commons-sandbox/feedparser/src/java/org/apache/commons/feedparser/MetaFeedParserListener.java
Index: MetaFeedParserListener.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/feedparser/src/java/org/apache/commons/feedparser/MetaFeedParserListener.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- MetaFeedParserListener.java 15 Apr 2004 00:58:44 -0000 1.5
+++ MetaFeedParserListener.java 26 Jun 2004 22:42:45 -0000 1.6
@@ -87,7 +87,6 @@
* RSS 2.0 category. Dublin Core.
*/
public void onSubject( FeedParserState state, String content ) throws FeedParserException;
-
public void onSubjectEnd() throws FeedParserException;
}
1.6 +36 -1 jakarta-commons-sandbox/feedparser/src/java/org/apache/commons/feedparser/RSSFeedParser.java
Index: RSSFeedParser.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/feedparser/src/java/org/apache/commons/feedparser/RSSFeedParser.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- RSSFeedParser.java 21 Apr 2004 06:59:52 -0000 1.5
+++ RSSFeedParser.java 26 Jun 2004 22:42:45 -0000 1.6
@@ -16,6 +16,8 @@
package org.apache.commons.feedparser;
+import org.apache.commons.feedparser.tools.*;
+
import java.io.*;
import java.net.*;
import java.util.*;
@@ -224,10 +226,43 @@
}
+ doMetaFeedParserListener( listener, state );
+
listener.onItemEnd();
}
+ /**
+ *
+ */
+ private static void doMetaFeedParserListener( FeedParserListener listener,
+ FeedParserState state ) throws FeedParserException {
+
+ if ( listener instanceof MetaFeedParserListener ) {
+
+ MetaFeedParserListener mfp = (MetaFeedParserListener)listener;
+
+ //ok. Support dc:date
+ String dc_date = state.current.getChildText( "date", NS.DC );
+
+ if ( dc_date != null ) {
+
+ try {
+
+ Date d = ISO8601DateParser.parse( dc_date );
+
+ mfp.onCreated( state, d );
+ mfp.onCreatedEnd();
+
+ //if it fails to parse we can just move on.
+ } catch ( Throwable t ) { }
+
+ }
+
+ }
+
+ }
+
/**
* Regardless of namespace, get the child node text by name or null if it is not found.
*
1.5 +13 -4 jakarta-commons-sandbox/feedparser/src/java/org/apache/commons/feedparser/impl/DebugFeedParserListener.java
Index: DebugFeedParserListener.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/feedparser/src/java/org/apache/commons/feedparser/impl/DebugFeedParserListener.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- DebugFeedParserListener.java 29 Apr 2004 09:36:25 -0000 1.4
+++ DebugFeedParserListener.java 26 Jun 2004 22:42:45 -0000 1.5
@@ -18,14 +18,18 @@
import org.apache.commons.feedparser.*;
import org.jdom.*;
+import java.util.Date;
/**
*
* @author <a href="mailto:burton@apache.org">Kevin A. Burton (burtonator)</a>
* @version $Id$
*/
-public class DebugFeedParserListener extends DefaultFeedParserListener
- implements FeedParserListener, FeedDirectoryParserListener {
+public class DebugFeedParserListener
+ extends DefaultFeedParserListener
+ implements FeedParserListener,
+ FeedDirectoryParserListener,
+ MetaFeedParserListener {
/**
* Called prior to event parsing to signal the parsing of a new feed.
@@ -133,9 +137,14 @@
String value,
boolean isSummary ) throws FeedParserException {
-
System.out.println( "onContent: " );
System.out.println( value );
+
+ }
+
+ public void onCreated( FeedParserState state, Date date ) throws FeedParserException {
+
+ System.out.println( "onCreated: " + date.toString() );
}
1.4 +8 -1 jakarta-commons-sandbox/feedparser/src/java/org/apache/commons/feedparser/locate/ResourceExpander.java
Index: ResourceExpander.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/feedparser/src/java/org/apache/commons/feedparser/locate/ResourceExpander.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ResourceExpander.java 11 May 2004 19:53:18 -0000 1.3
+++ ResourceExpander.java 26 Jun 2004 22:42:45 -0000 1.4
@@ -47,6 +47,13 @@
*/
public static String expand( String resource, String link ) {
+ if ( link == null )
+ return null;
+
+ //obvioysly not
+ if ( link.startsWith( "javascript:" ) )
+ return link;
+
//make sure we can use this.
if ( isInvalidScheme( link ) )
return link;
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org