Author: burton Date: Fri Jan 28 15:22:26 2005 New Revision: 148950 URL: http://svn.apache.org/viewcvs?view=rev&rev=148950 Log: resync after CVS migration... FeedParserException includes the URL of the feed that fails... Notes about FeedLocator not supporting feed URLs... FeedParser API requires URI to a feed. Modified: jakarta/commons/sandbox/feedparser/trunk/TODO jakarta/commons/sandbox/feedparser/trunk/build.xml jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/AtomFeedParser.java jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/FeedParser.java jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/FeedParserException.java jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/Main.java jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/Test.java jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/example/HelloFeedParser.java jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/locate/FeedLocator.java jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/locate/ProbeLocator.java jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestAtom.java jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestFeedParser.java jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestFeedParserUTF8.java
Modified: jakarta/commons/sandbox/feedparser/trunk/TODO Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/feedparser/trunk/TODO?view=diff&rev=148950&p1=jakarta/commons/sandbox/feedparser/trunk/TODO&r1=148949&p2=jakarta/commons/sandbox/feedparser/trunk/TODO&r2=148950 ============================================================================== --- jakarta/commons/sandbox/feedparser/trunk/TODO (original) +++ jakarta/commons/sandbox/feedparser/trunk/TODO Fri Jan 28 15:22:26 2005 @@ -1,3 +1,26 @@ + +Project Management: + + - Get viewcvs linked to the app + + - Nightly builds + + - 0.5 public release + + http://jakarta.apache.org/commons/releases/index.html + + - maven? + + +- (DONE) All FeedParser exceptions should include the URL of the feed if + possible. This will really help with debugging + +- (DONE) Implementation of RSS/Atom autodiscovery... + +- Remove ALL references to newsmonster IO layer. + + + - http://www.ietf.org/internet-drafts/draft-ietf-atompub-format-02.txt - BUG: @@ -14,38 +37,15 @@ - We do not support multipart/alternative in the feedparser. -- Do we support atom:summary at ALL?! I don't think so... - -- Implement RSS 2.0 enclosure linkage - -- (DONE) Implementation of RSS/Atom autodiscovery... +- Implement RSS 2.0 enclosure linkage ... this should be an onLink handler. - Rework the factory mechanism to support multiple FeedParsers... should be an interface. - -- Documentation: - - - Feed Event Model which is generic across all RSS and Atom feeds. - - - RSS 0.9, 0.91 0.92, 1.0 and 2.0 support - - Atom 0.3 support - - OPML directory support - - RSS directory support (ALA blogrolling.com, etc) - - Dublin core and feed metadata support - - - OCS directory support (pending) - - FOAF support (pending) - Migrate away from JDOM (slower than just using DOM/SAX) -- Don't use libs from the KSA. - - Test cases shouldn't use absolute paths. -- Migrate to Apache 2.0 license? - - http://www.apache.org/dev/apply-license.html - - We need a generic Content interface - onContent @@ -58,13 +58,9 @@ - Support for RSS 1.0 mod_link and Atom links -- What are my options for XPATH libraries... I should benchmark these.. Also - see if using SAX will just be faster. - - Full documentation on how we have to handle dates. -- Support textinput +- Support textinput which we don't support now -- All FeedParser exceptions should include the URL of the feed if possible. - Tests for autodiscovery Modified: jakarta/commons/sandbox/feedparser/trunk/build.xml Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/feedparser/trunk/build.xml?view=diff&rev=148950&p1=jakarta/commons/sandbox/feedparser/trunk/build.xml&r1=148949&p2=jakarta/commons/sandbox/feedparser/trunk/build.xml&r2=148950 ============================================================================== --- jakarta/commons/sandbox/feedparser/trunk/build.xml (original) +++ jakarta/commons/sandbox/feedparser/trunk/build.xml Fri Jan 28 15:22:26 2005 @@ -164,6 +164,9 @@ <mkdir dir="${build.dir}/docs/api"/> + <!-- FIXME: this isn't building subpackages for the feedparser --> + <!-- FIXME: this isn't building subpackages for the feedparser --> + <!-- FIXME: this isn't building subpackages for the feedparser --> <javadoc sourcepath="src/java" packagenames="org.apache.commons.feedparser.*" destdir="docs/api" Modified: jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/AtomFeedParser.java Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/AtomFeedParser.java?view=diff&rev=148950&p1=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/AtomFeedParser.java&r1=148949&p2=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/AtomFeedParser.java&r2=148950 ============================================================================== --- jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/AtomFeedParser.java (original) +++ jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/AtomFeedParser.java Fri Jan 28 15:22:26 2005 @@ -44,7 +44,7 @@ * http://www.ietf.org/internet-drafts/draft-ietf-atompub-format-01.txt * * @author <a href="mailto:[EMAIL PROTECTED]">Kevin A. Burton (burtonator)</a> - * @version $Id: AtomFeedParser.java,v 1.17 2005/01/23 09:49:50 burton Exp $ + * @version $Id$ */ public class AtomFeedParser extends BaseParser { @@ -54,30 +54,26 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Kevin A. Burton</a> */ public static void parse( FeedParserListener listener, - org.jdom.Document doc ) throws FeedParserException { + org.jdom.Document doc ) throws Exception { - try { + FeedParserState state = new FeedParserState( listener ); - FeedParserState state = new FeedParserState( listener ); + FeedVersion v = new FeedVersion(); + v.isAtom = true; + listener.onFeedVersion( v ); - FeedVersion v = new FeedVersion(); - v.isAtom = true; - listener.onFeedVersion( v ); + listener.init(); - listener.init(); - - Element root = doc.getRootElement(); - - doLocale( state, listener, root ); - - doChannel( state, listener, doc ); - doEntry( state, listener, doc ); + Element root = doc.getRootElement(); - doLocaleEnd( state, listener, root ); + doLocale( state, listener, root ); + + doChannel( state, listener, doc ); + doEntry( state, listener, doc ); - listener.finished(); + doLocaleEnd( state, listener, root ); - } catch ( Throwable t ) { throw new FeedParserException( t ); } + listener.finished(); } @@ -286,7 +282,7 @@ String encoding = null; String mode = "xml"; - //FIXME: get xml:base + //FIXME: get xml:base to expand the URIs. String value = getXMLOfContent( e ); boolean isSummary = true; Modified: jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/FeedParser.java Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/FeedParser.java?view=diff&rev=148950&p1=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/FeedParser.java&r1=148949&p2=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/FeedParser.java&r2=148950 ============================================================================== --- jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/FeedParser.java (original) +++ jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/FeedParser.java Fri Jan 28 15:22:26 2005 @@ -41,7 +41,7 @@ * be less memory intensive but with the downside of being harder to develop. * * @author <a href="mailto:[EMAIL PROTECTED]">Kevin A. Burton (burtonator)</a> - * @version $Id: FeedParser.java,v 1.12 2005/01/23 09:49:50 burton Exp $ + * @version $Id$ */ public class FeedParser { @@ -87,7 +87,7 @@ //detect when we're working with an XHTML or HTML file and then //parse it with an XFN/XOXO event listener. - throw new FeedParserException( t ); + throw new FeedParserException( t, resource ); } } @@ -129,16 +129,6 @@ is = new ByteArrayInputStream( bytes ); return is; - - } - - /** - * @deprecated Use #parse( FeedParserException, InputStream, String ) - */ - public static void parse( FeedParserListener listener, - InputStream is ) throws FeedParserException { - - parse( listener, is, null ); } Modified: jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/FeedParserException.java Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/FeedParserException.java?view=diff&rev=148950&p1=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/FeedParserException.java&r1=148949&p2=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/FeedParserException.java&r2=148950 ============================================================================== --- jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/FeedParserException.java (original) +++ jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/FeedParserException.java Fri Jan 28 15:22:26 2005 @@ -37,13 +37,28 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Kevin A. Burton (burtonator)</a> * @author David Megginson, * <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> - * @version $Id: FeedParserException.java,v 1.2 2004/02/28 03:35:22 bayard Exp $ + * @version $Id$ */ public class FeedParserException extends Exception { - public FeedParserException (String message) { super(message); } - public FeedParserException (Throwable e) { super( e ); } - public FeedParserException (String message, Throwable e) { super( message, e ); } + public FeedParserException ( String message ) { + super( message ); + } + + public FeedParserException ( Throwable e ) { + super( e ); + } + + /** + * Create an exception tied to a specific resource or feed. + */ + public FeedParserException ( Throwable e, String resource ) { + super( e.getMessage() + " - From feed URL: " + resource, e ); + } + + public FeedParserException ( String message, Throwable e ) { + super( message, e ); + } } Modified: jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/Main.java Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/Main.java?view=diff&rev=148950&p1=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/Main.java&r1=148949&p2=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/Main.java&r2=148950 ============================================================================== --- jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/Main.java (original) +++ jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/Main.java Fri Jan 28 15:22:26 2005 @@ -26,7 +26,7 @@ * Provides a mechanism to quickly test feed parsing from the command line. * * @author <a href="mailto:[EMAIL PROTECTED]">Kevin A. Burton (burtonator)</a> - * @version $Id: Main.java,v 1.3 2004/09/03 19:46:47 burton Exp $ + * @version $Id$ */ public class Main { @@ -44,19 +44,19 @@ } - String input = args[0]; + String resource = args[0]; InputStream is = null; - if ( input.startsWith( "http://" ) ) { - is = new URL( input ).openStream(); + if ( resource.startsWith( "http://" ) ) { + is = new URL( resource ).openStream(); } else { - System.out.println( "Opening from file: " + input ); - is = new FileInputStream( input ); + System.out.println( "Opening from file: " + resource ); + is = new FileInputStream( resource ); } - parser.parse( listener, is ); + parser.parse( listener, is, resource ); } Modified: jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/Test.java Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/Test.java?view=diff&rev=148950&p1=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/Test.java&r1=148949&p2=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/Test.java&r2=148950 ============================================================================== --- jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/Test.java (original) +++ jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/Test.java Fri Jan 28 15:22:26 2005 @@ -37,7 +37,7 @@ * be less memory intensive but with the downside of being harder to develop. * * @author <a href="mailto:[EMAIL PROTECTED]">Kevin A. Burton (burtonator)</a> - * @version $Id: Test.java,v 1.2 2004/02/28 03:35:22 bayard Exp $ + * @version $Id$ */ public class Test extends DefaultFeedParserListener implements FeedParserListener, @@ -174,7 +174,7 @@ String path = "/projects/newsmonster/xml-tests/feedster.xml"; - parser.parse( new Test(), new FileInputStream( path ) ); + parser.parse( new Test(), new FileInputStream( path ), path ); } catch ( Throwable t ) { Modified: jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/example/HelloFeedParser.java Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/example/HelloFeedParser.java?view=diff&rev=148950&p1=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/example/HelloFeedParser.java&r1=148949&p2=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/example/HelloFeedParser.java&r2=148950 ============================================================================== --- jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/example/HelloFeedParser.java (original) +++ jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/example/HelloFeedParser.java Fri Jan 28 15:22:26 2005 @@ -27,7 +27,7 @@ * Example use of the FeedParser * * @author <a href="mailto:[EMAIL PROTECTED]">Kevin A. Burton (burtonator)</a> - * @version $Id: HelloFeedParser.java,v 1.1 2004/07/04 05:52:35 burton Exp $ + * @version $Id$ */ public class HelloFeedParser { @@ -51,7 +51,11 @@ }; - parser.parse( listener, new URL( "http://peerfear.org/rss/index.rss" ).openStream() ); + String resource = "http://peerfear.org/rss/index.rss"; + + InputStream is = new URL( resource ).openStream(); + + parser.parse( listener, is, resource ); } Modified: jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/locate/FeedLocator.java Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/locate/FeedLocator.java?view=diff&rev=148950&p1=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/locate/FeedLocator.java&r1=148949&p2=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/locate/FeedLocator.java&r2=148950 ============================================================================== --- jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/locate/FeedLocator.java (original) +++ jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/locate/FeedLocator.java Fri Jan 28 15:22:26 2005 @@ -17,8 +17,7 @@ package org.apache.commons.feedparser.locate; import org.apache.commons.feedparser.*; - -import org.peerfear.newsmonster.network.*; +import org.apache.commons.feedparser.network.*; import java.util.*; @@ -78,6 +77,11 @@ log.info( "Locating " + resource + "..." ); FeedList list = new FeedList(); + + //FIXME: if we were GIVEN an RSS/Atom/OPML/etc file then we should just + //attempt to use this and return a FeedList with just one entry. Parse + //it first I think to make sure its valid XML and then move forward. + //The downside here is that it would be wasted CPU if its HTML content. log.info( "Using DiscoveryLocator..." ); DiscoveryLocator.locate( resource, content, list ); Modified: jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/locate/ProbeLocator.java Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/locate/ProbeLocator.java?view=diff&rev=148950&p1=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/locate/ProbeLocator.java&r1=148949&p2=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/locate/ProbeLocator.java&r2=148950 ============================================================================== --- jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/locate/ProbeLocator.java (original) +++ jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/locate/ProbeLocator.java Fri Jan 28 15:22:26 2005 @@ -18,8 +18,7 @@ import org.apache.commons.feedparser.*; import org.apache.commons.feedparser.locate.blogservice.*; - -import org.peerfear.newsmonster.network.*; +import org.apache.commons.feedparser.network.*; import java.util.*; Modified: jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestAtom.java Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestAtom.java?view=diff&rev=148950&p1=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestAtom.java&r1=148949&p2=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestAtom.java&r2=148950 ============================================================================== --- jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestAtom.java (original) +++ jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestAtom.java Fri Jan 28 15:22:26 2005 @@ -33,7 +33,7 @@ /** * * @author <a href="mailto:[EMAIL PROTECTED]">Kevin A. Burton</a> - * @version $Id: TestAtom.java,v 1.6 2005/01/19 06:01:41 burton Exp $ + * @version $Id$ */ public class TestAtom extends TestCase { @@ -91,7 +91,7 @@ ResourceRequest request = ResourceRequestFactory.getResourceRequest( resource ); - parser.parse( listener, request.getInputStream() ); + parser.parse( listener, request.getInputStream(), resource ); } Modified: jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestFeedParser.java Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestFeedParser.java?view=diff&rev=148950&p1=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestFeedParser.java&r1=148949&p2=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestFeedParser.java&r2=148950 ============================================================================== --- jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestFeedParser.java (original) +++ jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestFeedParser.java Fri Jan 28 15:22:26 2005 @@ -23,7 +23,7 @@ import java.security.*; import org.peerfear.newsmonster.tools.*; -import org.peerfear.newsmonster.network.*; +import org.apache.commons.feedparser.network.*; import junit.framework.*; @@ -33,7 +33,7 @@ /** * * @author <a href="mailto:[EMAIL PROTECTED]">Kevin A. Burton</a> - * @version $Id: TestFeedParser.java,v 1.4 2005/01/19 06:01:41 burton Exp $ + * @version $Id$ */ public class TestFeedParser extends TestCase { @@ -70,7 +70,7 @@ ResourceRequest request = ResourceRequestFactory.getResourceRequest( resource ); - parser.parse( listener, request.getInputStream() ); + parser.parse( listener, request.getInputStream(), resource ); } Modified: jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestFeedParserUTF8.java Url: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestFeedParserUTF8.java?view=diff&rev=148950&p1=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestFeedParserUTF8.java&r1=148949&p2=jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestFeedParserUTF8.java&r2=148950 ============================================================================== --- jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestFeedParserUTF8.java (original) +++ jakarta/commons/sandbox/feedparser/trunk/src/java/org/apache/commons/feedparser/test/TestFeedParserUTF8.java Fri Jan 28 15:22:26 2005 @@ -34,7 +34,7 @@ /** * * @author <a href="mailto:[EMAIL PROTECTED]">Kevin A. Burton</a> - * @version $Id: TestFeedParserUTF8.java,v 1.5 2005/01/19 06:01:41 burton Exp $ + * @version $Id$ */ public class TestFeedParserUTF8 extends TestCase { @@ -66,7 +66,9 @@ FeedParserListener listener = new DebugFeedParserListener(); - parser.parse( listener, new FileInputStream( "src/java/org/apache/commons/feedparser/test/" + path) ); + parser.parse( listener, + new FileInputStream( "src/java/org/apache/commons/feedparser/test/" + path), + path ); } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]