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