Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: fixed issue urls
Table of Contents

Changes made since v1.0

  1. Issue 127: Rome 1.0 not JDK 1.4 compatible

Changes made since v1.0RC2

  1. Issue 121: RSS item category iteration should try to reflect document order See https://rome.dev.java.net/issues/show_bug.cgi?id=121
  2. New property preserveWireFeed available on SyndFeedInput
    WireFeeds will be preserved if the property preserveWireFeed is set on the SyndFeedInput object it is built from. Atom/RSS Entry/Item objects are also available from SyndEntry objects if the WireFeed is preserved using the new getWireEntry() method. See Preserving WireFeeds for details.

...

  1. Fix. Date parsing for Atom10 entry and additional W3C masks
    Item date elements were being parsed with the W3C parser instead the lenient one (RFC822 + W3C + custom masks).
    The following masks were added to W3C masks to handle RFC822 timezone (ie '-800'):
    Code Block
    yyyy-MM-dd'T'HH:mm:ssZ yyyy-MM-dd't'HH:mm:sszZ
    
  2. Fix. Contributors properties in SyndEntry were not implementing the semantics of list properties.
    They were returning NULL instead, now they return an empty list if not values are set.
  3. Fix. Contributors properties in SyndEntry and SyndFeed were not being converted to/from WireFeed
  4. Fix. Syndication Module Generator was failing if some of its values were null.
    Checks for nulll have been added it to the generator to prevent NullPointerExceptions
  5. New. Added new constructor to XmlReader
    Code Block
    public XmlReader(InputStream is, boolean lenient, String defaultEncoding)
    
  6. New. Support atom person construct extensions, using the Extendable interface on SyndPerson:
    Patch from James Roper. See https://rome.dev.java.net/issues/show_bug.cgi?id=110 Issue 1101 for details
  7. New. Maven 2 build for main project
    ROME can now be built with Maven 2
  8. New. OSGi support
    OSGi headers to MANIFEST.MF so that rome.jar can also be used in an OSGi environment. See See https://rome.dev.java.net/issues/show_bug.cgi?id= Issue 117 for details.
  9. New. Allow pretty printing to be turned on and off
    see https://rome.dev.java.net/issues/show_bug.cgi?id= Issue 114 for details. Thanks to Martin Kurz for the patch.
  10. Configurable classloading behavior for OSGi compatibility.
    We have received a report of some issues with plugin loading in an OSGi environment (https://rome.dev.java.net/issues/show_bug.cgi?id=Issue 118). The fix appears to be to change Class.forName to classLoader.loadClass, but the semantics for this are subtly different, so we have made this new behavior user selectable. Set the "rome.pluginmanager.useloadclass" system property to "true" to enable it.
  11. More lenient number parsing
    There were a number of problems with feeds providing blank or invalid values in fields which would be numbers. ROME will now handles these better. See issues 104, 107 and 108 for details.

Changes made from v0.9 to v1.0RC1

  1. New. XmlReader support for default encoding
    The XmlReader can be set with an alternate default encoding in case no encoding has been detected from the transport (HTTP), the stream or the XML prolog. if no value is set the default fallback rules based on the content-type will be used. The alternate default encoding can be set/viewed via a static methods, setDefaultEncoding() and getDefaultEncoding().
  2. Fix. Atom 1.0 links were generated without title and length attributes.
    The Atom 1.0 Generator was not generating title and length attributes when values are present.
  3. Fix. XmlReader, multi-line prolog encoding detection.
    XmlReader handles properly xml-prolog detection when prolog goes over multiple lies (such as G groups feeds).
  4. Fix. Base64 decoding was failing under certain padding conditions.
  5. Fix. XmlReader fixes
    Fixed bug that if BOM is UTF8 was not being set to UTF8. Changed logic to use Buffered stream instead pushback stream for all encoding detection. Changed logic of xml prolog detection to avoid having a buffer with half of a unicode character (instead filling up the buffer looking up to first '>' which means it a valid buffer).
  6. New. XmlReader supports default encoding at instance level.
    Via a new constructor is possible to indicate a default encoding different than the default encoding at class level.
  7. Fix. Making the EqualsBean to follow equals contract.
    For X.equals(null) it was throwing a NullPointerException, now it returns FALSE.
  8. Fix. Render Atom icon and logo attributes.
    AtomGenerator now adds icon and logo elements to xml tree
  9. Fix. Updated AtomPub namespace to its permenent home.
    AtomService namespace updated to http://www.w3.org/2007/app
  10. New. Added support for configuration per classloader level.
    The PluginManager (handles Parsers and Generators) now is singleton at classloader level allowing different configurations in different classloaders.
  11. Atom parser: better relative URI handling
    Instead of simply resolving each relative URI at runtime and saving only the resolved one, we now save both the relative URI and the resolve one. We introduced the following new methods to provide access to the resolved URI.
    • Link.getLinkResolved()
    • Link.setLinkResolved()
    • Category.getSchemeResolved()
    • Category.setSchemeResolved()
    • Person.getUriResolved()
    • Person.setUriResolved()
  12. Utility methods useful in working with Atom protocol feeds
    Added a couple of methods to make it easier to deal with Atompub feeds.
    • Entry.isMediaEntry()
    • Atom10Parser.parseEntry()
    • Atom10Generator.serializeEntry()
  13. Bugs fixed
    Fixed the following bugs:
    • 49 Better content/summary mapping
    • 53 Content.setType not working with subtitles atom 1.0
    • 56 fix of bug #39 leads to invalid atom feeds
    • 63 Missing link attribute when generating Atom 1.0
    • 64 ROME's Atom parser doesn't pick up multiple alt links
    • 65 Atom feeds not including logo image
    • 71 encoding problem in XmlReader.getXmlProlog()
    • 79 Feed.setIcon()/setLogo() ignored by Atom10Generator
    • 81 SyndFeedImpl.equals() does not obey equals contract
  14. Fix. Parsers where ignoring namespaced prefixed Attributes.
    If an XML feed uses a prefix for the Atom elements and the attributes of Atom elements use the prefix the parser was not picking up those attributes.
    The fix makes the parser to look for prefixed and non-prefixed attributes.
  15. Fix. Atom Feed and Entry beans author and category property getters
    They were returning NULL when there were not authors or categories, they must return an empty list.
  16. New. Switch to enable/disable relative URI resolution in Atom 1.0 Parser.
    The Atom10Parser class has a static method, setResolveURIs(boolean) that enables/disables relative URI resolution.
  17. New. XmlReader handling content-type charset values has been relaxed.
    XmlReader handles content-type charset encoding value within single quotes and double quotes.
  18. Fix. Links, authors and contributors properties in SyndFeed were not implementing the semantics of list properties.
    They were returning NULL instead, now they return an empty list if not values are set.
  19. Fix. RSS conversion of a SyndFeed was losing the link of the feed if the links property was used instead the link property.
    Over time the SyndFeed has been modified to support more Atom specific properties and their cardinality, conversion to RSS of these properties was not always taken care.
    The RSS converter has been changed so the link from SyndFeed is taken as channel link and if not set the first value of the links property is taken.
  20. Fix. WireFeedInput throws IllegalArgumentException if the feed type is not recognized.
    Previously the IllegalArgumentException was wrapped by a ParsingFeedException (Reported by Issue #9191).
  21. Fix. SyndFeedImpl.equals(other) checks for instance of other before casting.
    The underlying ObjectBean does this check, but in this method a cast is done before to obtain the foreign markup, no the instance check is peformed before to avoid a class cast exception.
  22. Fix. Atom content based elements related fixes
    • Atom 0.3 Parser/Generator
    • Atom 1.0 Generator:
      • changed feed title/subtitle and entry title to be treated as Content constructs. (Parser had this implemented already.)
      • added title attribute to links. (Parser had this implemented already.)
      • fixed content parsing for some XML content types. e.g. (application/xhtml+xml)
  23. Fix. Atom link and enclosures handling
    • Atom 0.3 Converter
      • fixed link parsing code to parse all links (not just the first alternate link) and added enclosure support via link rel="enclosure".
      • changed title conversion to use Content instead of plain text.
    • Atom 1.0 Converter
      • added SyndEnclosure to atom:link rel=enclosure conversion.
  24. Fix. RSS 1.0 URI generation
  25. Fix. Javadocs corrections.
    • Fixed some javadoc comments for SyndEntry.
  26. Fix. Atom content based elements were not parsed with XML mime types.
    If the mime type was and XML mime type the content value was being lost on parsing.
  27. Fix. duplication of content:encoded elements when reading/writing and RSS feed.
    content:encoded elements are treated special, without a module, they have to be removed from the foreign markup to avoid duplication in case of read/write. Note that this fix will break if a content module is used.
  28. New. XmlFixerReader converts '&' into '&' when there is no matching entity.
    Feeds commonly use '&' instead '&' in their content, this change converts those orphant '&'s into '&'s.
  29. Fix. RSS090Parser does not set the URI property.
    The fix honors the documentation "For RSS 0.91, RSS 0.92, RSS 0.93 & RSS 1.0 ... the SyndEntry uri property will be set with the value of the link element..."
  30. New. Removal of all unused namespaces from generated feeds.
    The generators now remove all unused namespaces from the XML document before generating it.

...

  1. Design changes
    • Support Atom feed.title, feed.subtitle and entry.title https://rome.dev.java.net/issues/show_bug.cgi?id= Issue 48
      #48 fixed via better support for Atom text constructs title and subtitle. Added get/setTitleEx() and get/setSubtitleEx(), which get get SyndContent objects. Title and subtitle still available from old getters/setters.
    • Support for mapping Atom summary/content to RSS description/content https://rome.dev.java.net/servlets/ReadMsg?list=dev&msgNo=1680
    • Fixed by introduced Content object in RSS model. ROME now parses as RSS Content. That makes parsing easier and allows us to support a more logical summary/content mapping:
      • RSS to/from Atom
      • RSS to/from Atom
  2. General parsing fixes
    • XmlReader xml prolog regular expression does not allow for single quotes https://rome.dev.java.net/issues/show_bug.cgi?id= Issue 36
      The XmlReader was only parsing prolog encodings within double quotes, the regular expression to detect the encoding has been change to detect single or double quotes.
    • Fix. XML prolog parsing now support whitespaces around '='
      If the XML prolog contained spaces around the '=' between the encoding attribute name and the encoding attribute value the encoding was not being detected. The fix accepts all valid whitespace characters (as defined in the XML spec).
    • RSS parser does not recognize version="2.00" https://rome.dev.java.net/issues/show_bug.cgi?id= Issue 33
    • Atom 1.0 Text Types Not Set Correctly https://rome.dev.java.net/issues/show_bug.cgi?id=39Security issue https://rome.dev.java.net/issues/show_bug.cgi?id=Issue 39
    • Security issue Issue 46
    • Fix for the potential problem outlined in http://www.securiteam.com/securitynews/6D0100A5PU.html. Thanks to Nelson Minar for bringing this to our attention.
    • Fix. Wrong default description type for RSS 2.0 Fix for https://rome.dev.java.net/issues/show_bug.cgi?id= Issue 26
    • Change default description type for RSS 2.0 from text/plain to text/html as per RSS 2.0 spec
    • Fix to add all HTML4 entities, according to http://www.w3.org/TR/REC-html40/sgml/entities.html specially for the HTMLsymbol set (Mathematical, Greek and Symbolic characters for HTML) and the HTMLspecial set (Special characters for HTML).
  3. Date parsing fixes
    • Additional version and date leniency could extract more information https://rome.dev.java.net/issues/show_bug.cgi?id= Issue 24
    • Non RFC822 Dates not processed in RSS pubDate field https://rome.dev.java.net/issues/show_bug.cgi?id=27 Issue 27
      • RSS feed parsers were were only parsing RFC822 dates because they were not using the proper date-time parsing function for the date-time elements.
      • If a W3C date-time element had no time component it was being parsed as local time instead of GMT, ROME DateParser class has been modified to use GMT in this situation.
      • Current JDKs do not handle 'UT' timezone indicator, ROME DateParser class has been modified to handle it.
      • Use Atom updated instead of published https://rome.dev.java.net/issues/show_bug.cgi?id= Issue 41
      • Atom 1.0 Date (Updated or Published) Not Set https://rome.dev.java.net/issues/show_bug.cgi?id= Issue 42
      • lastBuildDate does not populate publishedDate https://rome.dev.java.net/issues/show_bug.cgi?id= Issue 43 Provides a feed date for RSS 0.91 feeds that specify lastBuildDate but not pubDate.
    • Fix. Parsing some numeric elements was failing due to whitespaces The image.width and image.height of RSS091U, the frequency of SyModule and the cloud.port of RSS092 elements are now being trimmed before doing the integer parsing.
  4. Atom link and URI fixes
    • Improper relative link resolution in Atom10Parser https://rome.dev.java.net/issues/show_bug.cgi?id=37ATOM Issue 37
    • ATOM 1.0 Entry links parsing https://rome.dev.java.net/issues/show_bug.cgi?id= Issue 38
    • ConverterForRSS10.java does not set URI for item https://rome.dev.java.net/issues/show_bug.cgi?id= Issue 25
    • Valid IRI href attributes are stripped for atom:link https://rome.dev.java.net/issues/show_bug.cgi?id= Issue 34
  5. Module fixes
    • iTunes Module has incorrect author and category support https://rome.dev.java.net/issues/show_bug.cgi?id= Issue 35
    • mediarss.io.MediaModuleParser NumberFormatException https://rome.dev.java.net/issues/show_bug.cgi?id= Issue 45
    • Slash module not serializable for FeedFetcher https://rome.dev.java.net/issues/show_bug.cgi?id= Issue 44

Changes made from v0.7 to v0.8

...