added locale to parser to allow locale dependent date parsing (fixes
rometools/rome-modules#22)
This commit is contained in:
parent
ed18ac115b
commit
c3288555ab
33 changed files with 189 additions and 148 deletions
|
@ -16,6 +16,8 @@
|
||||||
*/
|
*/
|
||||||
package com.sun.syndication.io;
|
package com.sun.syndication.io;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Element;
|
import org.jdom2.Element;
|
||||||
|
|
||||||
import com.sun.syndication.feed.module.Module;
|
import com.sun.syndication.feed.module.Module;
|
||||||
|
@ -52,5 +54,5 @@ public interface ModuleParser {
|
||||||
* information.
|
* information.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public Module parse(Element element);
|
public Module parse(Element element, Locale locale);
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Document;
|
import org.jdom2.Document;
|
||||||
import org.xml.sax.InputSource;
|
import org.xml.sax.InputSource;
|
||||||
|
@ -47,7 +48,7 @@ public class SyndFeedInput {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public SyndFeedInput() {
|
public SyndFeedInput() {
|
||||||
this(false);
|
this(false, Locale.US);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -58,8 +59,8 @@ public class SyndFeedInput {
|
||||||
* IMPLEMENTED YET (validation does not happen)
|
* IMPLEMENTED YET (validation does not happen)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public SyndFeedInput(final boolean validate) {
|
public SyndFeedInput(final boolean validate, final Locale locale) {
|
||||||
feedInput = new WireFeedInput(validate);
|
feedInput = new WireFeedInput(validate, locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -23,6 +23,7 @@ import java.io.FileReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.WeakHashMap;
|
import java.util.WeakHashMap;
|
||||||
|
|
||||||
|
@ -86,6 +87,7 @@ public class WireFeedInput {
|
||||||
private final boolean validate;
|
private final boolean validate;
|
||||||
|
|
||||||
private boolean xmlHealerOn;
|
private boolean xmlHealerOn;
|
||||||
|
private final Locale locale;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the list of supported input feed types.
|
* Returns the list of supported input feed types.
|
||||||
|
@ -106,7 +108,7 @@ public class WireFeedInput {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public WireFeedInput() {
|
public WireFeedInput() {
|
||||||
this(false);
|
this(false, Locale.US);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -117,9 +119,10 @@ public class WireFeedInput {
|
||||||
* IMPLEMENTED YET (validation does not happen)
|
* IMPLEMENTED YET (validation does not happen)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public WireFeedInput(final boolean validate) {
|
public WireFeedInput(final boolean validate, final Locale locale) {
|
||||||
this.validate = false; // TODO FIX THIS THINGY
|
this.validate = false; // TODO FIX THIS THINGY
|
||||||
xmlHealerOn = true;
|
xmlHealerOn = true;
|
||||||
|
this.locale = locale;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -297,7 +300,7 @@ public class WireFeedInput {
|
||||||
if (parser == null) {
|
if (parser == null) {
|
||||||
throw new IllegalArgumentException("Invalid document");
|
throw new IllegalArgumentException("Invalid document");
|
||||||
}
|
}
|
||||||
return parser.parse(document, validate);
|
return parser.parse(document, validate, locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
*/
|
*/
|
||||||
package com.sun.syndication.io;
|
package com.sun.syndication.io;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Document;
|
import org.jdom2.Document;
|
||||||
|
|
||||||
import com.sun.syndication.feed.WireFeed;
|
import com.sun.syndication.feed.WireFeed;
|
||||||
|
@ -73,6 +75,6 @@ public interface WireFeedParser {
|
||||||
* XML document (JDOM).
|
* XML document (JDOM).
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public WireFeed parse(Document document, boolean validate) throws IllegalArgumentException, FeedException;
|
public WireFeed parse(Document document, boolean validate, final Locale locale) throws IllegalArgumentException, FeedException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ package com.sun.syndication.io.impl;
|
||||||
|
|
||||||
import java.io.StringReader;
|
import java.io.StringReader;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Attribute;
|
import org.jdom2.Attribute;
|
||||||
import org.jdom2.Document;
|
import org.jdom2.Document;
|
||||||
|
@ -171,7 +172,7 @@ public class Atom03Generator extends BaseWireFeedGenerator {
|
||||||
|
|
||||||
if (feed.getModified() != null) {
|
if (feed.getModified() != null) {
|
||||||
final Element modifiedElement = new Element("modified", getFeedNamespace());
|
final Element modifiedElement = new Element("modified", getFeedNamespace());
|
||||||
modifiedElement.addContent(DateParser.formatW3CDateTime(feed.getModified()));
|
modifiedElement.addContent(DateParser.formatW3CDateTime(feed.getModified(), Locale.US));
|
||||||
eFeed.addContent(modifiedElement);
|
eFeed.addContent(modifiedElement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -210,19 +211,19 @@ public class Atom03Generator extends BaseWireFeedGenerator {
|
||||||
|
|
||||||
if (entry.getModified() != null) {
|
if (entry.getModified() != null) {
|
||||||
final Element modifiedElement = new Element("modified", getFeedNamespace());
|
final Element modifiedElement = new Element("modified", getFeedNamespace());
|
||||||
modifiedElement.addContent(DateParser.formatW3CDateTime(entry.getModified()));
|
modifiedElement.addContent(DateParser.formatW3CDateTime(entry.getModified(), Locale.US));
|
||||||
eEntry.addContent(modifiedElement);
|
eEntry.addContent(modifiedElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entry.getIssued() != null) {
|
if (entry.getIssued() != null) {
|
||||||
final Element issuedElement = new Element("issued", getFeedNamespace());
|
final Element issuedElement = new Element("issued", getFeedNamespace());
|
||||||
issuedElement.addContent(DateParser.formatW3CDateTime(entry.getIssued()));
|
issuedElement.addContent(DateParser.formatW3CDateTime(entry.getIssued(), Locale.US));
|
||||||
eEntry.addContent(issuedElement);
|
eEntry.addContent(issuedElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entry.getCreated() != null) {
|
if (entry.getCreated() != null) {
|
||||||
final Element createdElement = new Element("created", getFeedNamespace());
|
final Element createdElement = new Element("created", getFeedNamespace());
|
||||||
createdElement.addContent(DateParser.formatW3CDateTime(entry.getCreated()));
|
createdElement.addContent(DateParser.formatW3CDateTime(entry.getCreated(), Locale.US));
|
||||||
eEntry.addContent(createdElement);
|
eEntry.addContent(createdElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ package com.sun.syndication.io.impl;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Document;
|
import org.jdom2.Document;
|
||||||
import org.jdom2.Element;
|
import org.jdom2.Element;
|
||||||
|
@ -61,12 +62,12 @@ public class Atom03Parser extends BaseWireFeedParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WireFeed parse(final Document document, final boolean validate) throws IllegalArgumentException, FeedException {
|
public WireFeed parse(final Document document, final boolean validate, final Locale locale) throws IllegalArgumentException, FeedException {
|
||||||
if (validate) {
|
if (validate) {
|
||||||
validateFeed(document);
|
validateFeed(document);
|
||||||
}
|
}
|
||||||
final Element rssRoot = document.getRootElement();
|
final Element rssRoot = document.getRootElement();
|
||||||
return parseFeed(rssRoot);
|
return parseFeed(rssRoot, locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void validateFeed(final Document document) throws FeedException {
|
protected void validateFeed(final Document document) throws FeedException {
|
||||||
|
@ -79,7 +80,7 @@ public class Atom03Parser extends BaseWireFeedParser {
|
||||||
// otherwise will have to check the document elements by hand.
|
// otherwise will have to check the document elements by hand.
|
||||||
}
|
}
|
||||||
|
|
||||||
protected WireFeed parseFeed(final Element eFeed) {
|
protected WireFeed parseFeed(final Element eFeed, final Locale locale) {
|
||||||
|
|
||||||
final Feed feed = new Feed(getType());
|
final Feed feed = new Feed(getType());
|
||||||
feed.setStyleSheet(getStyleSheet(eFeed.getDocument()));
|
feed.setStyleSheet(getStyleSheet(eFeed.getDocument()));
|
||||||
|
@ -142,14 +143,14 @@ public class Atom03Parser extends BaseWireFeedParser {
|
||||||
|
|
||||||
e = eFeed.getChild("modified", getAtomNamespace());
|
e = eFeed.getChild("modified", getAtomNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
feed.setModified(DateParser.parseDate(e.getText()));
|
feed.setModified(DateParser.parseDate(e.getText(), locale));
|
||||||
}
|
}
|
||||||
|
|
||||||
feed.setModules(parseFeedModules(eFeed));
|
feed.setModules(parseFeedModules(eFeed, locale));
|
||||||
|
|
||||||
eList = eFeed.getChildren("entry", getAtomNamespace());
|
eList = eFeed.getChildren("entry", getAtomNamespace());
|
||||||
if (eList.size() > 0) {
|
if (eList.size() > 0) {
|
||||||
feed.setEntries(parseEntries(eList));
|
feed.setEntries(parseEntries(eList, locale));
|
||||||
}
|
}
|
||||||
|
|
||||||
final List<Element> foreignMarkup = extractForeignMarkup(eFeed, feed, getAtomNamespace());
|
final List<Element> foreignMarkup = extractForeignMarkup(eFeed, feed, getAtomNamespace());
|
||||||
|
@ -278,10 +279,10 @@ public class Atom03Parser extends BaseWireFeedParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
// List(Elements) -> List(Entries)
|
// List(Elements) -> List(Entries)
|
||||||
private List<Entry> parseEntries(final List<Element> eEntries) {
|
private List<Entry> parseEntries(final List<Element> eEntries, final Locale locale) {
|
||||||
final List<Entry> entries = new ArrayList<Entry>();
|
final List<Entry> entries = new ArrayList<Entry>();
|
||||||
for (int i = 0; i < eEntries.size(); i++) {
|
for (int i = 0; i < eEntries.size(); i++) {
|
||||||
entries.add(parseEntry(eEntries.get(i)));
|
entries.add(parseEntry(eEntries.get(i), locale));
|
||||||
}
|
}
|
||||||
if (entries.size() > 0) {
|
if (entries.size() > 0) {
|
||||||
return entries;
|
return entries;
|
||||||
|
@ -290,7 +291,7 @@ public class Atom03Parser extends BaseWireFeedParser {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Entry parseEntry(final Element eEntry) {
|
private Entry parseEntry(final Element eEntry, final Locale locale) {
|
||||||
final Entry entry = new Entry();
|
final Entry entry = new Entry();
|
||||||
|
|
||||||
Element e = eEntry.getChild("title", getAtomNamespace());
|
Element e = eEntry.getChild("title", getAtomNamespace());
|
||||||
|
@ -321,17 +322,17 @@ public class Atom03Parser extends BaseWireFeedParser {
|
||||||
|
|
||||||
e = eEntry.getChild("modified", getAtomNamespace());
|
e = eEntry.getChild("modified", getAtomNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
entry.setModified(DateParser.parseDate(e.getText()));
|
entry.setModified(DateParser.parseDate(e.getText(), locale));
|
||||||
}
|
}
|
||||||
|
|
||||||
e = eEntry.getChild("issued", getAtomNamespace());
|
e = eEntry.getChild("issued", getAtomNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
entry.setIssued(DateParser.parseDate(e.getText()));
|
entry.setIssued(DateParser.parseDate(e.getText(), locale));
|
||||||
}
|
}
|
||||||
|
|
||||||
e = eEntry.getChild("created", getAtomNamespace());
|
e = eEntry.getChild("created", getAtomNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
entry.setCreated(DateParser.parseDate(e.getText()));
|
entry.setCreated(DateParser.parseDate(e.getText(), locale));
|
||||||
}
|
}
|
||||||
|
|
||||||
e = eEntry.getChild("summary", getAtomNamespace());
|
e = eEntry.getChild("summary", getAtomNamespace());
|
||||||
|
@ -348,7 +349,7 @@ public class Atom03Parser extends BaseWireFeedParser {
|
||||||
entry.setContents(content);
|
entry.setContents(content);
|
||||||
}
|
}
|
||||||
|
|
||||||
entry.setModules(parseItemModules(eEntry));
|
entry.setModules(parseItemModules(eEntry, locale));
|
||||||
|
|
||||||
final List<Element> foreignMarkup = extractForeignMarkup(eEntry, entry, getAtomNamespace());
|
final List<Element> foreignMarkup = extractForeignMarkup(eEntry, entry, getAtomNamespace());
|
||||||
if (foreignMarkup.size() > 0) {
|
if (foreignMarkup.size() > 0) {
|
||||||
|
|
|
@ -21,6 +21,7 @@ import java.io.StringReader;
|
||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Attribute;
|
import org.jdom2.Attribute;
|
||||||
import org.jdom2.Document;
|
import org.jdom2.Document;
|
||||||
|
@ -203,7 +204,7 @@ public class Atom10Generator extends BaseWireFeedGenerator {
|
||||||
|
|
||||||
if (feed.getUpdated() != null) {
|
if (feed.getUpdated() != null) {
|
||||||
final Element updatedElement = new Element("updated", getFeedNamespace());
|
final Element updatedElement = new Element("updated", getFeedNamespace());
|
||||||
updatedElement.addContent(DateParser.formatW3CDateTime(feed.getUpdated()));
|
updatedElement.addContent(DateParser.formatW3CDateTime(feed.getUpdated(), Locale.US));
|
||||||
eFeed.addContent(updatedElement);
|
eFeed.addContent(updatedElement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -257,13 +258,13 @@ public class Atom10Generator extends BaseWireFeedGenerator {
|
||||||
|
|
||||||
if (entry.getUpdated() != null) {
|
if (entry.getUpdated() != null) {
|
||||||
final Element updatedElement = new Element("updated", getFeedNamespace());
|
final Element updatedElement = new Element("updated", getFeedNamespace());
|
||||||
updatedElement.addContent(DateParser.formatW3CDateTime(entry.getUpdated()));
|
updatedElement.addContent(DateParser.formatW3CDateTime(entry.getUpdated(), Locale.US));
|
||||||
eEntry.addContent(updatedElement);
|
eEntry.addContent(updatedElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entry.getPublished() != null) {
|
if (entry.getPublished() != null) {
|
||||||
final Element publishedElement = new Element("published", getFeedNamespace());
|
final Element publishedElement = new Element("published", getFeedNamespace());
|
||||||
publishedElement.addContent(DateParser.formatW3CDateTime(entry.getPublished()));
|
publishedElement.addContent(DateParser.formatW3CDateTime(entry.getPublished(), Locale.US));
|
||||||
eEntry.addContent(publishedElement);
|
eEntry.addContent(publishedElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@ import java.net.MalformedURLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import org.jdom2.Attribute;
|
import org.jdom2.Attribute;
|
||||||
|
@ -85,12 +86,12 @@ public class Atom10Parser extends BaseWireFeedParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WireFeed parse(final Document document, final boolean validate) throws IllegalArgumentException, FeedException {
|
public WireFeed parse(final Document document, final boolean validate, final Locale locale) throws IllegalArgumentException, FeedException {
|
||||||
if (validate) {
|
if (validate) {
|
||||||
validateFeed(document);
|
validateFeed(document);
|
||||||
}
|
}
|
||||||
final Element rssRoot = document.getRootElement();
|
final Element rssRoot = document.getRootElement();
|
||||||
return parseFeed(rssRoot);
|
return parseFeed(rssRoot, locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void validateFeed(final Document document) throws FeedException {
|
protected void validateFeed(final Document document) throws FeedException {
|
||||||
|
@ -103,7 +104,7 @@ public class Atom10Parser extends BaseWireFeedParser {
|
||||||
// otherwise will have to check the document elements by hand.
|
// otherwise will have to check the document elements by hand.
|
||||||
}
|
}
|
||||||
|
|
||||||
protected WireFeed parseFeed(final Element eFeed) throws FeedException {
|
protected WireFeed parseFeed(final Element eFeed, final Locale locale) throws FeedException {
|
||||||
|
|
||||||
String baseURI = null;
|
String baseURI = null;
|
||||||
try {
|
try {
|
||||||
|
@ -112,7 +113,7 @@ public class Atom10Parser extends BaseWireFeedParser {
|
||||||
throw new FeedException("ERROR while finding base URI of feed", e);
|
throw new FeedException("ERROR while finding base URI of feed", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
final Feed feed = parseFeedMetadata(baseURI, eFeed);
|
final Feed feed = parseFeedMetadata(baseURI, eFeed, locale);
|
||||||
feed.setStyleSheet(getStyleSheet(eFeed.getDocument()));
|
feed.setStyleSheet(getStyleSheet(eFeed.getDocument()));
|
||||||
|
|
||||||
final String xmlBase = eFeed.getAttributeValue("base", Namespace.XML_NAMESPACE);
|
final String xmlBase = eFeed.getAttributeValue("base", Namespace.XML_NAMESPACE);
|
||||||
|
@ -120,11 +121,11 @@ public class Atom10Parser extends BaseWireFeedParser {
|
||||||
feed.setXmlBase(xmlBase);
|
feed.setXmlBase(xmlBase);
|
||||||
}
|
}
|
||||||
|
|
||||||
feed.setModules(parseFeedModules(eFeed));
|
feed.setModules(parseFeedModules(eFeed, locale));
|
||||||
|
|
||||||
final List<Element> eList = eFeed.getChildren("entry", getAtomNamespace());
|
final List<Element> eList = eFeed.getChildren("entry", getAtomNamespace());
|
||||||
if (eList.size() > 0) {
|
if (eList.size() > 0) {
|
||||||
feed.setEntries(parseEntries(feed, baseURI, eList));
|
feed.setEntries(parseEntries(feed, baseURI, eList, locale));
|
||||||
}
|
}
|
||||||
|
|
||||||
final List<Element> foreignMarkup = extractForeignMarkup(eFeed, feed, getAtomNamespace());
|
final List<Element> foreignMarkup = extractForeignMarkup(eFeed, feed, getAtomNamespace());
|
||||||
|
@ -134,7 +135,7 @@ public class Atom10Parser extends BaseWireFeedParser {
|
||||||
return feed;
|
return feed;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Feed parseFeedMetadata(final String baseURI, final Element eFeed) {
|
private Feed parseFeedMetadata(final String baseURI, final Element eFeed, final Locale locale) {
|
||||||
final com.sun.syndication.feed.atom.Feed feed = new com.sun.syndication.feed.atom.Feed(getType());
|
final com.sun.syndication.feed.atom.Feed feed = new com.sun.syndication.feed.atom.Feed(getType());
|
||||||
|
|
||||||
Element e = eFeed.getChild("title", getAtomNamespace());
|
Element e = eFeed.getChild("title", getAtomNamespace());
|
||||||
|
@ -154,12 +155,12 @@ public class Atom10Parser extends BaseWireFeedParser {
|
||||||
|
|
||||||
eList = eFeed.getChildren("author", getAtomNamespace());
|
eList = eFeed.getChildren("author", getAtomNamespace());
|
||||||
if (eList.size() > 0) {
|
if (eList.size() > 0) {
|
||||||
feed.setAuthors(parsePersons(baseURI, eList));
|
feed.setAuthors(parsePersons(baseURI, eList, locale));
|
||||||
}
|
}
|
||||||
|
|
||||||
eList = eFeed.getChildren("contributor", getAtomNamespace());
|
eList = eFeed.getChildren("contributor", getAtomNamespace());
|
||||||
if (eList.size() > 0) {
|
if (eList.size() > 0) {
|
||||||
feed.setContributors(parsePersons(baseURI, eList));
|
feed.setContributors(parsePersons(baseURI, eList, locale));
|
||||||
}
|
}
|
||||||
|
|
||||||
e = eFeed.getChild("subtitle", getAtomNamespace());
|
e = eFeed.getChild("subtitle", getAtomNamespace());
|
||||||
|
@ -207,7 +208,7 @@ public class Atom10Parser extends BaseWireFeedParser {
|
||||||
|
|
||||||
e = eFeed.getChild("updated", getAtomNamespace());
|
e = eFeed.getChild("updated", getAtomNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
feed.setUpdated(DateParser.parseDate(e.getText()));
|
feed.setUpdated(DateParser.parseDate(e.getText(), locale));
|
||||||
}
|
}
|
||||||
|
|
||||||
return feed;
|
return feed;
|
||||||
|
@ -281,7 +282,7 @@ public class Atom10Parser extends BaseWireFeedParser {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Person parsePerson(final String baseURI, final Element ePerson) {
|
private Person parsePerson(final String baseURI, final Element ePerson, final Locale locale) {
|
||||||
final Person person = new Person();
|
final Person person = new Person();
|
||||||
Element e = ePerson.getChild("name", getAtomNamespace());
|
Element e = ePerson.getChild("name", getAtomNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
|
@ -298,15 +299,15 @@ public class Atom10Parser extends BaseWireFeedParser {
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
person.setEmail(e.getText());
|
person.setEmail(e.getText());
|
||||||
}
|
}
|
||||||
person.setModules(parsePersonModules(ePerson));
|
person.setModules(parsePersonModules(ePerson, locale));
|
||||||
return person;
|
return person;
|
||||||
}
|
}
|
||||||
|
|
||||||
// List(Elements) -> List(Persons)
|
// List(Elements) -> List(Persons)
|
||||||
private List<SyndPerson> parsePersons(final String baseURI, final List<Element> ePersons) {
|
private List<SyndPerson> parsePersons(final String baseURI, final List<Element> ePersons, final Locale locale) {
|
||||||
final List<SyndPerson> persons = new ArrayList<SyndPerson>();
|
final List<SyndPerson> persons = new ArrayList<SyndPerson>();
|
||||||
for (int i = 0; i < ePersons.size(); i++) {
|
for (int i = 0; i < ePersons.size(); i++) {
|
||||||
persons.add(parsePerson(baseURI, ePersons.get(i)));
|
persons.add(parsePerson(baseURI, ePersons.get(i), locale));
|
||||||
}
|
}
|
||||||
if (persons.size() > 0) {
|
if (persons.size() > 0) {
|
||||||
return persons;
|
return persons;
|
||||||
|
@ -355,10 +356,10 @@ public class Atom10Parser extends BaseWireFeedParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
// List(Elements) -> List(Entries)
|
// List(Elements) -> List(Entries)
|
||||||
protected List<Entry> parseEntries(final Feed feed, final String baseURI, final List<Element> eEntries) {
|
protected List<Entry> parseEntries(final Feed feed, final String baseURI, final List<Element> eEntries, final Locale locale) {
|
||||||
final List<Entry> entries = new ArrayList<Entry>();
|
final List<Entry> entries = new ArrayList<Entry>();
|
||||||
for (int i = 0; i < eEntries.size(); i++) {
|
for (int i = 0; i < eEntries.size(); i++) {
|
||||||
entries.add(this.parseEntry(feed, eEntries.get(i), baseURI));
|
entries.add(this.parseEntry(feed, eEntries.get(i), baseURI, locale));
|
||||||
}
|
}
|
||||||
if (entries.size() > 0) {
|
if (entries.size() > 0) {
|
||||||
return entries;
|
return entries;
|
||||||
|
@ -367,7 +368,7 @@ public class Atom10Parser extends BaseWireFeedParser {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Entry parseEntry(final Feed feed, final Element eEntry, final String baseURI) {
|
protected Entry parseEntry(final Feed feed, final Element eEntry, final String baseURI, final Locale locale) {
|
||||||
final Entry entry = new Entry();
|
final Entry entry = new Entry();
|
||||||
|
|
||||||
final String xmlBase = eEntry.getAttributeValue("base", Namespace.XML_NAMESPACE);
|
final String xmlBase = eEntry.getAttributeValue("base", Namespace.XML_NAMESPACE);
|
||||||
|
@ -389,12 +390,12 @@ public class Atom10Parser extends BaseWireFeedParser {
|
||||||
|
|
||||||
eList = eEntry.getChildren("author", getAtomNamespace());
|
eList = eEntry.getChildren("author", getAtomNamespace());
|
||||||
if (eList.size() > 0) {
|
if (eList.size() > 0) {
|
||||||
entry.setAuthors(parsePersons(baseURI, eList));
|
entry.setAuthors(parsePersons(baseURI, eList, locale));
|
||||||
}
|
}
|
||||||
|
|
||||||
eList = eEntry.getChildren("contributor", getAtomNamespace());
|
eList = eEntry.getChildren("contributor", getAtomNamespace());
|
||||||
if (eList.size() > 0) {
|
if (eList.size() > 0) {
|
||||||
entry.setContributors(parsePersons(baseURI, eList));
|
entry.setContributors(parsePersons(baseURI, eList, locale));
|
||||||
}
|
}
|
||||||
|
|
||||||
e = eEntry.getChild("id", getAtomNamespace());
|
e = eEntry.getChild("id", getAtomNamespace());
|
||||||
|
@ -404,12 +405,12 @@ public class Atom10Parser extends BaseWireFeedParser {
|
||||||
|
|
||||||
e = eEntry.getChild("updated", getAtomNamespace());
|
e = eEntry.getChild("updated", getAtomNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
entry.setUpdated(DateParser.parseDate(e.getText()));
|
entry.setUpdated(DateParser.parseDate(e.getText(), locale));
|
||||||
}
|
}
|
||||||
|
|
||||||
e = eEntry.getChild("published", getAtomNamespace());
|
e = eEntry.getChild("published", getAtomNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
entry.setPublished(DateParser.parseDate(e.getText()));
|
entry.setPublished(DateParser.parseDate(e.getText(), locale));
|
||||||
}
|
}
|
||||||
|
|
||||||
e = eEntry.getChild("summary", getAtomNamespace());
|
e = eEntry.getChild("summary", getAtomNamespace());
|
||||||
|
@ -435,10 +436,10 @@ public class Atom10Parser extends BaseWireFeedParser {
|
||||||
// TODO: SHOULD handle Atom entry source element
|
// TODO: SHOULD handle Atom entry source element
|
||||||
e = eEntry.getChild("source", getAtomNamespace());
|
e = eEntry.getChild("source", getAtomNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
entry.setSource(parseFeedMetadata(baseURI, e));
|
entry.setSource(parseFeedMetadata(baseURI, e, locale));
|
||||||
}
|
}
|
||||||
|
|
||||||
entry.setModules(parseItemModules(eEntry));
|
entry.setModules(parseItemModules(eEntry, locale));
|
||||||
|
|
||||||
final List<Element> foreignMarkup = extractForeignMarkup(eEntry, entry, getAtomNamespace());
|
final List<Element> foreignMarkup = extractForeignMarkup(eEntry, entry, getAtomNamespace());
|
||||||
if (foreignMarkup.size() > 0) {
|
if (foreignMarkup.size() > 0) {
|
||||||
|
@ -659,7 +660,7 @@ public class Atom10Parser extends BaseWireFeedParser {
|
||||||
/**
|
/**
|
||||||
* Parse entry from reader.
|
* Parse entry from reader.
|
||||||
*/
|
*/
|
||||||
public static Entry parseEntry(final Reader rd, final String baseURI) throws JDOMException, IOException, IllegalArgumentException, FeedException {
|
public static Entry parseEntry(final Reader rd, final String baseURI, final Locale locale) throws JDOMException, IOException, IllegalArgumentException, FeedException {
|
||||||
// Parse entry into JDOM tree
|
// Parse entry into JDOM tree
|
||||||
final SAXBuilder builder = new SAXBuilder();
|
final SAXBuilder builder = new SAXBuilder();
|
||||||
final Document entryDoc = builder.build(rd);
|
final Document entryDoc = builder.build(rd);
|
||||||
|
@ -678,7 +679,7 @@ public class Atom10Parser extends BaseWireFeedParser {
|
||||||
feedDoc.getRootElement().setAttribute("base", baseURI, Namespace.XML_NAMESPACE);
|
feedDoc.getRootElement().setAttribute("base", baseURI, Namespace.XML_NAMESPACE);
|
||||||
}
|
}
|
||||||
|
|
||||||
final WireFeedInput input = new WireFeedInput();
|
final WireFeedInput input = new WireFeedInput(false, locale);
|
||||||
final Feed parsedFeed = (Feed) input.build(feedDoc);
|
final Feed parsedFeed = (Feed) input.build(feedDoc);
|
||||||
return parsedFeed.getEntries().get(0);
|
return parsedFeed.getEntries().get(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.sun.syndication.io.impl;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Attribute;
|
import org.jdom2.Attribute;
|
||||||
import org.jdom2.Content;
|
import org.jdom2.Content;
|
||||||
|
@ -67,16 +68,16 @@ public abstract class BaseWireFeedParser implements WireFeedParser {
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected List<Module> parseFeedModules(final Element feedElement) {
|
protected List<Module> parseFeedModules(final Element feedElement, final Locale locale) {
|
||||||
return feedModuleParsers.parseModules(feedElement);
|
return feedModuleParsers.parseModules(feedElement, locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected List<Module> parseItemModules(final Element itemElement) {
|
protected List<Module> parseItemModules(final Element itemElement, final Locale locale) {
|
||||||
return itemModuleParsers.parseModules(itemElement);
|
return itemModuleParsers.parseModules(itemElement, locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected List<Module> parsePersonModules(final Element itemElement) {
|
protected List<Module> parsePersonModules(final Element itemElement, final Locale locale) {
|
||||||
return personModuleParsers.parseModules(itemElement);
|
return personModuleParsers.parseModules(itemElement, locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected List<Element> extractForeignMarkup(final Element e, final Extendable ext, final Namespace basens) {
|
protected List<Element> extractForeignMarkup(final Element e, final Extendable ext, final Namespace basens) {
|
||||||
|
|
|
@ -21,6 +21,7 @@ import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.jdom2.Attribute;
|
import org.jdom2.Attribute;
|
||||||
|
@ -124,7 +125,7 @@ public class DCModuleGenerator implements ModuleGenerator {
|
||||||
}
|
}
|
||||||
if (dcModule.getDate() != null) {
|
if (dcModule.getDate() != null) {
|
||||||
for (final Date date : dcModule.getDates()) {
|
for (final Date date : dcModule.getDates()) {
|
||||||
element.addContent(generateSimpleElement("date", DateParser.formatW3CDateTime(date)));
|
element.addContent(generateSimpleElement("date", DateParser.formatW3CDateTime(date, Locale.US)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (dcModule.getType() != null) {
|
if (dcModule.getType() != null) {
|
||||||
|
|
|
@ -19,6 +19,7 @@ package com.sun.syndication.io.impl;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Attribute;
|
import org.jdom2.Attribute;
|
||||||
import org.jdom2.Element;
|
import org.jdom2.Element;
|
||||||
|
@ -65,10 +66,11 @@ public class DCModuleParser implements ModuleParser {
|
||||||
* <p>
|
* <p>
|
||||||
*
|
*
|
||||||
* @param dcRoot the root element containing the module elements.
|
* @param dcRoot the root element containing the module elements.
|
||||||
|
* @param locale for date/time parsing
|
||||||
* @return the module parsed from the element tree, <i>null</i> if none.
|
* @return the module parsed from the element tree, <i>null</i> if none.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Module parse(final Element dcRoot) {
|
public Module parse(final Element dcRoot, final Locale locale) {
|
||||||
boolean foundSomething = false;
|
boolean foundSomething = false;
|
||||||
final DCModule dcm = new DCModuleImpl();
|
final DCModule dcm = new DCModuleImpl();
|
||||||
|
|
||||||
|
@ -105,7 +107,7 @@ public class DCModuleParser implements ModuleParser {
|
||||||
eList = dcRoot.getChildren("date", getDCNamespace());
|
eList = dcRoot.getChildren("date", getDCNamespace());
|
||||||
if (eList.size() > 0) {
|
if (eList.size() > 0) {
|
||||||
foundSomething = true;
|
foundSomething = true;
|
||||||
dcm.setDates(parseElementListDate(eList));
|
dcm.setDates(parseElementListDate(eList, locale));
|
||||||
}
|
}
|
||||||
eList = dcRoot.getChildren("type", getDCNamespace());
|
eList = dcRoot.getChildren("type", getDCNamespace());
|
||||||
if (eList.size() > 0) {
|
if (eList.size() > 0) {
|
||||||
|
@ -229,11 +231,11 @@ public class DCModuleParser implements ModuleParser {
|
||||||
* @param eList the list of elements to parse.
|
* @param eList the list of elements to parse.
|
||||||
* @return the list of dates.
|
* @return the list of dates.
|
||||||
*/
|
*/
|
||||||
protected final List<Date> parseElementListDate(final List<Element> eList) {
|
protected final List<Date> parseElementListDate(final List<Element> eList, final Locale locale) {
|
||||||
final List<Date> values = new ArrayList<Date>();
|
final List<Date> values = new ArrayList<Date>();
|
||||||
for (final Element element : eList) {
|
for (final Element element : eList) {
|
||||||
final Element e = element;
|
final Element e = element;
|
||||||
values.add(DateParser.parseDate(e.getText()));
|
values.add(DateParser.parseDate(e.getText(), locale));
|
||||||
}
|
}
|
||||||
|
|
||||||
return values;
|
return values;
|
||||||
|
|
|
@ -105,14 +105,14 @@ public class DateParser {
|
||||||
* the string with any of the masks.
|
* the string with any of the masks.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static Date parseUsingMask(final String[] masks, String sDate) {
|
private static Date parseUsingMask(final String[] masks, String sDate, final Locale locale) {
|
||||||
if (sDate != null) {
|
if (sDate != null) {
|
||||||
sDate = sDate.trim();
|
sDate = sDate.trim();
|
||||||
}
|
}
|
||||||
ParsePosition pp = null;
|
ParsePosition pp = null;
|
||||||
Date d = null;
|
Date d = null;
|
||||||
for (int i = 0; d == null && i < masks.length; i++) {
|
for (int i = 0; d == null && i < masks.length; i++) {
|
||||||
final DateFormat df = new SimpleDateFormat(masks[i], Locale.US);
|
final DateFormat df = new SimpleDateFormat(masks[i], locale);
|
||||||
// df.setLenient(false);
|
// df.setLenient(false);
|
||||||
df.setLenient(true);
|
df.setLenient(true);
|
||||||
try {
|
try {
|
||||||
|
@ -154,14 +154,14 @@ public class DateParser {
|
||||||
* a Date.
|
* a Date.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static Date parseRFC822(String sDate) {
|
public static Date parseRFC822(String sDate, final Locale locale) {
|
||||||
final int utIndex = sDate.indexOf(" UT");
|
final int utIndex = sDate.indexOf(" UT");
|
||||||
if (utIndex > -1) {
|
if (utIndex > -1) {
|
||||||
final String pre = sDate.substring(0, utIndex);
|
final String pre = sDate.substring(0, utIndex);
|
||||||
final String post = sDate.substring(utIndex + 3);
|
final String post = sDate.substring(utIndex + 3);
|
||||||
sDate = pre + " GMT" + post;
|
sDate = pre + " GMT" + post;
|
||||||
}
|
}
|
||||||
return parseUsingMask(RFC822_MASKS, sDate);
|
return parseUsingMask(RFC822_MASKS, sDate, locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -186,7 +186,7 @@ public class DateParser {
|
||||||
* string into a Date.
|
* string into a Date.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static Date parseW3CDateTime(String sDate) {
|
public static Date parseW3CDateTime(String sDate, final Locale locale) {
|
||||||
// if sDate has time on it, it injects 'GTM' before de TZ displacement
|
// if sDate has time on it, it injects 'GTM' before de TZ displacement
|
||||||
// to
|
// to
|
||||||
// allow the SimpleDateFormat parser to parse it properly
|
// allow the SimpleDateFormat parser to parse it properly
|
||||||
|
@ -211,7 +211,7 @@ public class DateParser {
|
||||||
} else {
|
} else {
|
||||||
sDate += "T00:00GMT";
|
sDate += "T00:00GMT";
|
||||||
}
|
}
|
||||||
return parseUsingMask(W3CDATETIME_MASKS, sDate);
|
return parseUsingMask(W3CDATETIME_MASKS, sDate, locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -225,12 +225,12 @@ public class DateParser {
|
||||||
* string into a Date.
|
* string into a Date.
|
||||||
*
|
*
|
||||||
* */
|
* */
|
||||||
public static Date parseDate(final String sDate) {
|
public static Date parseDate(final String sDate, final Locale locale) {
|
||||||
Date d = parseW3CDateTime(sDate);
|
Date d = parseW3CDateTime(sDate, locale);
|
||||||
if (d == null) {
|
if (d == null) {
|
||||||
d = parseRFC822(sDate);
|
d = parseRFC822(sDate, locale);
|
||||||
if (d == null && ADDITIONAL_MASKS.length > 0) {
|
if (d == null && ADDITIONAL_MASKS.length > 0) {
|
||||||
d = parseUsingMask(ADDITIONAL_MASKS, sDate);
|
d = parseUsingMask(ADDITIONAL_MASKS, sDate, locale);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return d;
|
return d;
|
||||||
|
@ -248,8 +248,8 @@ public class DateParser {
|
||||||
* if it was not possible to parse the date.
|
* if it was not possible to parse the date.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static String formatRFC822(final Date date) {
|
public static String formatRFC822(final Date date, final Locale locale) {
|
||||||
final SimpleDateFormat dateFormater = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss 'GMT'", Locale.US);
|
final SimpleDateFormat dateFormater = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss 'GMT'", locale);
|
||||||
dateFormater.setTimeZone(TimeZone.getTimeZone("GMT"));
|
dateFormater.setTimeZone(TimeZone.getTimeZone("GMT"));
|
||||||
return dateFormater.format(date);
|
return dateFormater.format(date);
|
||||||
}
|
}
|
||||||
|
@ -266,8 +266,8 @@ public class DateParser {
|
||||||
* <b>null</b> if it was not possible to parse the date.
|
* <b>null</b> if it was not possible to parse the date.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static String formatW3CDateTime(final Date date) {
|
public static String formatW3CDateTime(final Date date, final Locale locale) {
|
||||||
final SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US);
|
final SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", locale);
|
||||||
dateFormater.setTimeZone(TimeZone.getTimeZone("GMT"));
|
dateFormater.setTimeZone(TimeZone.getTimeZone("GMT"));
|
||||||
return dateFormater.format(date);
|
return dateFormater.format(date);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ package com.sun.syndication.io.impl;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Element;
|
import org.jdom2.Element;
|
||||||
import org.jdom2.Namespace;
|
import org.jdom2.Namespace;
|
||||||
|
@ -42,7 +43,7 @@ public class ModuleParsers extends PluginManager<ModuleParser> {
|
||||||
return getKeys();
|
return getKeys();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Module> parseModules(final Element root) {
|
public List<Module> parseModules(final Element root, final Locale locale) {
|
||||||
final List<ModuleParser> parsers = getPlugins();
|
final List<ModuleParser> parsers = getPlugins();
|
||||||
List<Module> modules = null;
|
List<Module> modules = null;
|
||||||
for (int i = 0; i < parsers.size(); i++) {
|
for (int i = 0; i < parsers.size(); i++) {
|
||||||
|
@ -50,7 +51,7 @@ public class ModuleParsers extends PluginManager<ModuleParser> {
|
||||||
final String namespaceUri = parser.getNamespaceUri();
|
final String namespaceUri = parser.getNamespaceUri();
|
||||||
final Namespace namespace = Namespace.getNamespace(namespaceUri);
|
final Namespace namespace = Namespace.getNamespace(namespaceUri);
|
||||||
if (hasElementsFrom(root, namespace)) {
|
if (hasElementsFrom(root, namespace)) {
|
||||||
final Module module = parser.parse(root);
|
final Module module = parser.parse(root, locale);
|
||||||
if (module != null) {
|
if (module != null) {
|
||||||
if (modules == null) {
|
if (modules == null) {
|
||||||
modules = new ArrayList<Module>();
|
modules = new ArrayList<Module>();
|
||||||
|
|
|
@ -20,6 +20,7 @@ import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Document;
|
import org.jdom2.Document;
|
||||||
import org.jdom2.Element;
|
import org.jdom2.Element;
|
||||||
|
@ -76,12 +77,12 @@ public class RSS090Parser extends BaseWireFeedParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WireFeed parse(final Document document, final boolean validate) throws IllegalArgumentException, FeedException {
|
public WireFeed parse(final Document document, final boolean validate, final Locale locale) throws IllegalArgumentException, FeedException {
|
||||||
if (validate) {
|
if (validate) {
|
||||||
validateFeed(document);
|
validateFeed(document);
|
||||||
}
|
}
|
||||||
final Element rssRoot = document.getRootElement();
|
final Element rssRoot = document.getRootElement();
|
||||||
return parseChannel(rssRoot);
|
return parseChannel(rssRoot, locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void validateFeed(final Document document) throws FeedException {
|
protected void validateFeed(final Document document) throws FeedException {
|
||||||
|
@ -146,7 +147,7 @@ public class RSS090Parser extends BaseWireFeedParser {
|
||||||
* @param rssRoot the root element of the RSS document to parse.
|
* @param rssRoot the root element of the RSS document to parse.
|
||||||
* @return the parsed Channel bean.
|
* @return the parsed Channel bean.
|
||||||
*/
|
*/
|
||||||
protected WireFeed parseChannel(final Element rssRoot) {
|
protected WireFeed parseChannel(final Element rssRoot, final Locale locale) {
|
||||||
final Element eChannel = rssRoot.getChild("channel", getRSSNamespace());
|
final Element eChannel = rssRoot.getChild("channel", getRSSNamespace());
|
||||||
|
|
||||||
final Channel channel = new Channel(getType());
|
final Channel channel = new Channel(getType());
|
||||||
|
@ -174,8 +175,8 @@ public class RSS090Parser extends BaseWireFeedParser {
|
||||||
// and not inside the channel itself. So we also need to look for
|
// and not inside the channel itself. So we also need to look for
|
||||||
// channel modules from the root RSS element.
|
// channel modules from the root RSS element.
|
||||||
final List<Module> allFeedModules = new ArrayList<Module>();
|
final List<Module> allFeedModules = new ArrayList<Module>();
|
||||||
final List<Module> rootModules = parseFeedModules(rssRoot);
|
final List<Module> rootModules = parseFeedModules(rssRoot, locale);
|
||||||
final List<Module> channelModules = parseFeedModules(eChannel);
|
final List<Module> channelModules = parseFeedModules(eChannel, locale);
|
||||||
if (rootModules != null) {
|
if (rootModules != null) {
|
||||||
allFeedModules.addAll(rootModules);
|
allFeedModules.addAll(rootModules);
|
||||||
}
|
}
|
||||||
|
@ -183,7 +184,7 @@ public class RSS090Parser extends BaseWireFeedParser {
|
||||||
allFeedModules.addAll(channelModules);
|
allFeedModules.addAll(channelModules);
|
||||||
}
|
}
|
||||||
channel.setModules(allFeedModules);
|
channel.setModules(allFeedModules);
|
||||||
channel.setItems(parseItems(rssRoot));
|
channel.setItems(parseItems(rssRoot, locale));
|
||||||
|
|
||||||
final List<Element> foreignMarkup = extractForeignMarkup(eChannel, channel, getRSSNamespace());
|
final List<Element> foreignMarkup = extractForeignMarkup(eChannel, channel, getRSSNamespace());
|
||||||
if (foreignMarkup.size() > 0) {
|
if (foreignMarkup.size() > 0) {
|
||||||
|
@ -267,13 +268,13 @@ public class RSS090Parser extends BaseWireFeedParser {
|
||||||
* items information.
|
* items information.
|
||||||
* @return a list with all the parsed RSSItem beans.
|
* @return a list with all the parsed RSSItem beans.
|
||||||
*/
|
*/
|
||||||
protected List<Item> parseItems(final Element rssRoot) {
|
protected List<Item> parseItems(final Element rssRoot, final Locale locale) {
|
||||||
final Collection<Element> eItems = getItems(rssRoot);
|
final Collection<Element> eItems = getItems(rssRoot);
|
||||||
|
|
||||||
final List<Item> items = new ArrayList<Item>();
|
final List<Item> items = new ArrayList<Item>();
|
||||||
for (final Element element : eItems) {
|
for (final Element element : eItems) {
|
||||||
final Element eItem = element;
|
final Element eItem = element;
|
||||||
items.add(parseItem(rssRoot, eItem));
|
items.add(parseItem(rssRoot, eItem, locale));
|
||||||
}
|
}
|
||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
|
@ -289,7 +290,7 @@ public class RSS090Parser extends BaseWireFeedParser {
|
||||||
* @param eItem the item element to parse.
|
* @param eItem the item element to parse.
|
||||||
* @return the parsed RSSItem bean.
|
* @return the parsed RSSItem bean.
|
||||||
*/
|
*/
|
||||||
protected Item parseItem(final Element rssRoot, final Element eItem) {
|
protected Item parseItem(final Element rssRoot, final Element eItem, final Locale locale) {
|
||||||
final Item item = new Item();
|
final Item item = new Item();
|
||||||
Element e = eItem.getChild("title", getRSSNamespace());
|
Element e = eItem.getChild("title", getRSSNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
|
@ -301,7 +302,7 @@ public class RSS090Parser extends BaseWireFeedParser {
|
||||||
item.setUri(e.getText());
|
item.setUri(e.getText());
|
||||||
}
|
}
|
||||||
|
|
||||||
item.setModules(parseItemModules(eItem));
|
item.setModules(parseItemModules(eItem, locale));
|
||||||
|
|
||||||
final List<Element> foreignMarkup = extractForeignMarkup(eItem, item, getRSSNamespace());
|
final List<Element> foreignMarkup = extractForeignMarkup(eItem, item, getRSSNamespace());
|
||||||
// content:encoded elements are treated special, without a module, they
|
// content:encoded elements are treated special, without a module, they
|
||||||
|
|
|
@ -18,6 +18,7 @@ package com.sun.syndication.io.impl;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Attribute;
|
import org.jdom2.Attribute;
|
||||||
import org.jdom2.Document;
|
import org.jdom2.Document;
|
||||||
|
@ -201,13 +202,13 @@ public class RSS091UserlandGenerator extends RSS090Generator {
|
||||||
final Date pubDate = channel.getPubDate();
|
final Date pubDate = channel.getPubDate();
|
||||||
|
|
||||||
if (pubDate != null) {
|
if (pubDate != null) {
|
||||||
eChannel.addContent(generateSimpleElement("pubDate", DateParser.formatRFC822(pubDate)));
|
eChannel.addContent(generateSimpleElement("pubDate", DateParser.formatRFC822(pubDate, Locale.US)));
|
||||||
}
|
}
|
||||||
|
|
||||||
final Date lastBuildDate = channel.getLastBuildDate();
|
final Date lastBuildDate = channel.getLastBuildDate();
|
||||||
|
|
||||||
if (lastBuildDate != null) {
|
if (lastBuildDate != null) {
|
||||||
eChannel.addContent(generateSimpleElement("lastBuildDate", DateParser.formatRFC822(lastBuildDate)));
|
eChannel.addContent(generateSimpleElement("lastBuildDate", DateParser.formatRFC822(lastBuildDate, Locale.US)));
|
||||||
}
|
}
|
||||||
|
|
||||||
final String docs = channel.getDocs();
|
final String docs = channel.getDocs();
|
||||||
|
|
|
@ -19,6 +19,7 @@ package com.sun.syndication.io.impl;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Attribute;
|
import org.jdom2.Attribute;
|
||||||
import org.jdom2.Document;
|
import org.jdom2.Document;
|
||||||
|
@ -86,8 +87,8 @@ public class RSS091UserlandParser extends RSS090Parser {
|
||||||
* @return the parsed Channel bean.
|
* @return the parsed Channel bean.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected WireFeed parseChannel(final Element rssRoot) {
|
protected WireFeed parseChannel(final Element rssRoot, final Locale locale) {
|
||||||
final Channel channel = (Channel) super.parseChannel(rssRoot);
|
final Channel channel = (Channel) super.parseChannel(rssRoot, locale);
|
||||||
|
|
||||||
final Element eChannel = rssRoot.getChild("channel", getRSSNamespace());
|
final Element eChannel = rssRoot.getChild("channel", getRSSNamespace());
|
||||||
|
|
||||||
|
@ -105,11 +106,11 @@ public class RSS091UserlandParser extends RSS090Parser {
|
||||||
}
|
}
|
||||||
e = eChannel.getChild("pubDate", getRSSNamespace());
|
e = eChannel.getChild("pubDate", getRSSNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
channel.setPubDate(DateParser.parseDate(e.getText()));
|
channel.setPubDate(DateParser.parseDate(e.getText(), locale));
|
||||||
}
|
}
|
||||||
e = eChannel.getChild("lastBuildDate", getRSSNamespace());
|
e = eChannel.getChild("lastBuildDate", getRSSNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
channel.setLastBuildDate(DateParser.parseDate(e.getText()));
|
channel.setLastBuildDate(DateParser.parseDate(e.getText(), locale));
|
||||||
}
|
}
|
||||||
e = eChannel.getChild("docs", getRSSNamespace());
|
e = eChannel.getChild("docs", getRSSNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
|
@ -251,8 +252,8 @@ public class RSS091UserlandParser extends RSS090Parser {
|
||||||
* @return the parsed RSSItem bean.
|
* @return the parsed RSSItem bean.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected Item parseItem(final Element rssRoot, final Element eItem) {
|
protected Item parseItem(final Element rssRoot, final Element eItem, final Locale locale) {
|
||||||
final Item item = super.parseItem(rssRoot, eItem);
|
final Item item = super.parseItem(rssRoot, eItem, locale);
|
||||||
final Element e = eItem.getChild("description", getRSSNamespace());
|
final Element e = eItem.getChild("description", getRSSNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
item.setDescription(parseItemDescription(rssRoot, e));
|
item.setDescription(parseItemDescription(rssRoot, e));
|
||||||
|
|
|
@ -18,6 +18,7 @@ package com.sun.syndication.io.impl;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Content;
|
import org.jdom2.Content;
|
||||||
import org.jdom2.Element;
|
import org.jdom2.Element;
|
||||||
|
@ -50,8 +51,8 @@ public class RSS092Parser extends RSS091UserlandParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected WireFeed parseChannel(final Element rssRoot) {
|
protected WireFeed parseChannel(final Element rssRoot, final Locale locale) {
|
||||||
final Channel channel = (Channel) super.parseChannel(rssRoot);
|
final Channel channel = (Channel) super.parseChannel(rssRoot, locale);
|
||||||
|
|
||||||
final Element eChannel = rssRoot.getChild("channel", getRSSNamespace());
|
final Element eChannel = rssRoot.getChild("channel", getRSSNamespace());
|
||||||
final Element eCloud = eChannel.getChild("cloud", getRSSNamespace());
|
final Element eCloud = eChannel.getChild("cloud", getRSSNamespace());
|
||||||
|
@ -91,8 +92,8 @@ public class RSS092Parser extends RSS091UserlandParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Item parseItem(final Element rssRoot, final Element eItem) {
|
protected Item parseItem(final Element rssRoot, final Element eItem, final Locale locale) {
|
||||||
final Item item = super.parseItem(rssRoot, eItem);
|
final Item item = super.parseItem(rssRoot, eItem, locale);
|
||||||
|
|
||||||
Element e = eItem.getChild("source", getRSSNamespace());
|
Element e = eItem.getChild("source", getRSSNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
|
|
|
@ -18,6 +18,7 @@ package com.sun.syndication.io.impl;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Element;
|
import org.jdom2.Element;
|
||||||
|
|
||||||
|
@ -47,12 +48,12 @@ public class RSS093Generator extends RSS092Generator {
|
||||||
|
|
||||||
final Date pubDate = item.getPubDate();
|
final Date pubDate = item.getPubDate();
|
||||||
if (pubDate != null) {
|
if (pubDate != null) {
|
||||||
eItem.addContent(generateSimpleElement("pubDate", DateParser.formatRFC822(pubDate)));
|
eItem.addContent(generateSimpleElement("pubDate", DateParser.formatRFC822(pubDate, Locale.US)));
|
||||||
}
|
}
|
||||||
|
|
||||||
final Date expirationDate = item.getExpirationDate();
|
final Date expirationDate = item.getExpirationDate();
|
||||||
if (expirationDate != null) {
|
if (expirationDate != null) {
|
||||||
eItem.addContent(generateSimpleElement("expirationDate", DateParser.formatRFC822(expirationDate)));
|
eItem.addContent(generateSimpleElement("expirationDate", DateParser.formatRFC822(expirationDate, Locale.US)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
*/
|
*/
|
||||||
package com.sun.syndication.io.impl;
|
package com.sun.syndication.io.impl;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Element;
|
import org.jdom2.Element;
|
||||||
|
|
||||||
import com.sun.syndication.feed.rss.Item;
|
import com.sun.syndication.feed.rss.Item;
|
||||||
|
@ -38,15 +40,15 @@ public class RSS093Parser extends RSS092Parser {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Item parseItem(final Element rssRoot, final Element eItem) {
|
protected Item parseItem(final Element rssRoot, final Element eItem, final Locale locale) {
|
||||||
final Item item = super.parseItem(rssRoot, eItem);
|
final Item item = super.parseItem(rssRoot, eItem, locale);
|
||||||
Element e = eItem.getChild("pubDate", getRSSNamespace());
|
Element e = eItem.getChild("pubDate", getRSSNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
item.setPubDate(DateParser.parseDate(e.getText()));
|
item.setPubDate(DateParser.parseDate(e.getText(), locale));
|
||||||
}
|
}
|
||||||
e = eItem.getChild("expirationDate", getRSSNamespace());
|
e = eItem.getChild("expirationDate", getRSSNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
item.setExpirationDate(DateParser.parseDate(e.getText()));
|
item.setExpirationDate(DateParser.parseDate(e.getText(), locale));
|
||||||
}
|
}
|
||||||
e = eItem.getChild("description", getRSSNamespace());
|
e = eItem.getChild("description", getRSSNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
package com.sun.syndication.io.impl;
|
package com.sun.syndication.io.impl;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Element;
|
import org.jdom2.Element;
|
||||||
|
|
||||||
|
@ -43,8 +44,8 @@ public class RSS094Parser extends RSS093Parser {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected WireFeed parseChannel(final Element rssRoot) {
|
protected WireFeed parseChannel(final Element rssRoot, final Locale locale) {
|
||||||
final Channel channel = (Channel) super.parseChannel(rssRoot);
|
final Channel channel = (Channel) super.parseChannel(rssRoot, locale);
|
||||||
final Element eChannel = rssRoot.getChild("channel", getRSSNamespace());
|
final Element eChannel = rssRoot.getChild("channel", getRSSNamespace());
|
||||||
|
|
||||||
final List<Element> eCats = eChannel.getChildren("category", getRSSNamespace());
|
final List<Element> eCats = eChannel.getChildren("category", getRSSNamespace());
|
||||||
|
@ -67,8 +68,8 @@ public class RSS094Parser extends RSS093Parser {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Item parseItem(final Element rssRoot, final Element eItem) {
|
public Item parseItem(final Element rssRoot, final Element eItem, final Locale locale) {
|
||||||
final Item item = super.parseItem(rssRoot, eItem);
|
final Item item = super.parseItem(rssRoot, eItem, locale);
|
||||||
item.setExpirationDate(null);
|
item.setExpirationDate(null);
|
||||||
|
|
||||||
Element e = eItem.getChild("author", getRSSNamespace());
|
Element e = eItem.getChild("author", getRSSNamespace());
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
*/
|
*/
|
||||||
package com.sun.syndication.io.impl;
|
package com.sun.syndication.io.impl;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Document;
|
import org.jdom2.Document;
|
||||||
import org.jdom2.Element;
|
import org.jdom2.Element;
|
||||||
import org.jdom2.Namespace;
|
import org.jdom2.Namespace;
|
||||||
|
@ -96,8 +98,8 @@ public class RSS10Parser extends RSS090Parser {
|
||||||
* @return the parsed RSSItem bean.
|
* @return the parsed RSSItem bean.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected Item parseItem(final Element rssRoot, final Element eItem) {
|
protected Item parseItem(final Element rssRoot, final Element eItem, final Locale locale) {
|
||||||
final Item item = super.parseItem(rssRoot, eItem);
|
final Item item = super.parseItem(rssRoot, eItem, locale);
|
||||||
final Element e = eItem.getChild("description", getRSSNamespace());
|
final Element e = eItem.getChild("description", getRSSNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
item.setDescription(parseItemDescription(rssRoot, e));
|
item.setDescription(parseItemDescription(rssRoot, e));
|
||||||
|
@ -119,8 +121,8 @@ public class RSS10Parser extends RSS090Parser {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected WireFeed parseChannel(final Element rssRoot) {
|
protected WireFeed parseChannel(final Element rssRoot, final Locale locale) {
|
||||||
final Channel channel = (Channel) super.parseChannel(rssRoot);
|
final Channel channel = (Channel) super.parseChannel(rssRoot, locale);
|
||||||
|
|
||||||
final Element eChannel = rssRoot.getChild("channel", getRSSNamespace());
|
final Element eChannel = rssRoot.getChild("channel", getRSSNamespace());
|
||||||
final String uri = eChannel.getAttributeValue("about", getRDFNamespace());
|
final String uri = eChannel.getAttributeValue("about", getRDFNamespace());
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
*/
|
*/
|
||||||
package com.sun.syndication.io.impl;
|
package com.sun.syndication.io.impl;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Document;
|
import org.jdom2.Document;
|
||||||
import org.jdom2.Element;
|
import org.jdom2.Element;
|
||||||
import org.jdom2.Namespace;
|
import org.jdom2.Namespace;
|
||||||
|
@ -68,8 +70,8 @@ public class RSS20wNSParser extends RSS20Parser {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected WireFeed parseChannel(final Element rssRoot) {
|
protected WireFeed parseChannel(final Element rssRoot, final Locale locale) {
|
||||||
final WireFeed wFeed = super.parseChannel(rssRoot);
|
final WireFeed wFeed = super.parseChannel(rssRoot, locale);
|
||||||
wFeed.setFeedType("rss_2.0");
|
wFeed.setFeedType("rss_2.0");
|
||||||
return wFeed;
|
return wFeed;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ package com.sun.syndication.io.impl;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.jdom2.Element;
|
import org.jdom2.Element;
|
||||||
|
@ -87,7 +88,7 @@ public class SyModuleGenerator implements ModuleGenerator {
|
||||||
|
|
||||||
if (syModule.getUpdateBase() != null) {
|
if (syModule.getUpdateBase() != null) {
|
||||||
final Element updateBaseElement = new Element("updateBase", SY_NS);
|
final Element updateBaseElement = new Element("updateBase", SY_NS);
|
||||||
updateBaseElement.addContent(DateParser.formatW3CDateTime(syModule.getUpdateBase()));
|
updateBaseElement.addContent(DateParser.formatW3CDateTime(syModule.getUpdateBase(), Locale.US));
|
||||||
element.addContent(updateBaseElement);
|
element.addContent(updateBaseElement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
*/
|
*/
|
||||||
package com.sun.syndication.io.impl;
|
package com.sun.syndication.io.impl;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.jdom2.Element;
|
import org.jdom2.Element;
|
||||||
import org.jdom2.Namespace;
|
import org.jdom2.Namespace;
|
||||||
|
|
||||||
|
@ -37,7 +39,7 @@ public class SyModuleParser implements ModuleParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Module parse(final Element syndRoot) {
|
public Module parse(final Element syndRoot, final Locale locale) {
|
||||||
boolean foundSomething = false;
|
boolean foundSomething = false;
|
||||||
final SyModule sm = new SyModuleImpl();
|
final SyModule sm = new SyModuleImpl();
|
||||||
|
|
||||||
|
@ -54,7 +56,7 @@ public class SyModuleParser implements ModuleParser {
|
||||||
e = syndRoot.getChild("updateBase", getDCNamespace());
|
e = syndRoot.getChild("updateBase", getDCNamespace());
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
foundSomething = true;
|
foundSomething = true;
|
||||||
sm.setUpdateBase(DateParser.parseDate(e.getText()));
|
sm.setUpdateBase(DateParser.parseDate(e.getText(), locale));
|
||||||
}
|
}
|
||||||
if (foundSomething) {
|
if (foundSomething) {
|
||||||
return sm;
|
return sm;
|
||||||
|
|
|
@ -8,6 +8,7 @@ package com.sun.syndication.unittest;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import com.sun.syndication.feed.synd.SyndEntry;
|
import com.sun.syndication.feed.synd.SyndEntry;
|
||||||
import com.sun.syndication.feed.synd.SyndImage;
|
import com.sun.syndication.feed.synd.SyndImage;
|
||||||
|
@ -77,7 +78,7 @@ public abstract class SyndFeedTest extends FeedTest {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public void testPublishedDate() throws Exception {
|
public void testPublishedDate() throws Exception {
|
||||||
assertEquals(DateParser.parseRFC822("Mon, 01 Jan 2001 00:00:00 GMT"), this.getCachedSyndFeed().getPublishedDate());
|
assertEquals(DateParser.parseRFC822("Mon, 01 Jan 2001 00:00:00 GMT", Locale.US), this.getCachedSyndFeed().getPublishedDate());
|
||||||
}
|
}
|
||||||
|
|
||||||
// how do i get height and width?
|
// how do i get height and width?
|
||||||
|
|
|
@ -19,6 +19,7 @@ package com.sun.syndication.unittest;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.GregorianCalendar;
|
import java.util.GregorianCalendar;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
@ -39,7 +40,7 @@ public class TestDateParser extends TestCase {
|
||||||
|
|
||||||
// four-digit year
|
// four-digit year
|
||||||
String sDate = "Tue, 19 Jul 2005 23:00:51 GMT";
|
String sDate = "Tue, 19 Jul 2005 23:00:51 GMT";
|
||||||
cal.setTime(DateParser.parseRFC822(sDate));
|
cal.setTime(DateParser.parseRFC822(sDate, Locale.US));
|
||||||
|
|
||||||
assertEquals(2005, cal.get(Calendar.YEAR));
|
assertEquals(2005, cal.get(Calendar.YEAR));
|
||||||
assertEquals(6, cal.get(Calendar.MONTH)); // month is zero-indexed
|
assertEquals(6, cal.get(Calendar.MONTH)); // month is zero-indexed
|
||||||
|
@ -51,7 +52,7 @@ public class TestDateParser extends TestCase {
|
||||||
|
|
||||||
// two-digit year
|
// two-digit year
|
||||||
sDate = "Tue, 19 Jul 05 23:00:51 GMT";
|
sDate = "Tue, 19 Jul 05 23:00:51 GMT";
|
||||||
cal.setTime(DateParser.parseRFC822(sDate));
|
cal.setTime(DateParser.parseRFC822(sDate, Locale.US));
|
||||||
|
|
||||||
assertEquals(2005, cal.get(Calendar.YEAR));
|
assertEquals(2005, cal.get(Calendar.YEAR));
|
||||||
assertEquals(6, cal.get(Calendar.MONTH)); // month is zero-indexed
|
assertEquals(6, cal.get(Calendar.MONTH)); // month is zero-indexed
|
||||||
|
@ -63,7 +64,7 @@ public class TestDateParser extends TestCase {
|
||||||
|
|
||||||
// four-digit year
|
// four-digit year
|
||||||
sDate = "Tue, 19 Jul 2005 23:00:51 UT";
|
sDate = "Tue, 19 Jul 2005 23:00:51 UT";
|
||||||
cal.setTime(DateParser.parseRFC822(sDate));
|
cal.setTime(DateParser.parseRFC822(sDate, Locale.US));
|
||||||
|
|
||||||
assertEquals(2005, cal.get(Calendar.YEAR));
|
assertEquals(2005, cal.get(Calendar.YEAR));
|
||||||
assertEquals(6, cal.get(Calendar.MONTH)); // month is zero-indexed
|
assertEquals(6, cal.get(Calendar.MONTH)); // month is zero-indexed
|
||||||
|
@ -75,7 +76,7 @@ public class TestDateParser extends TestCase {
|
||||||
|
|
||||||
// two-digit year
|
// two-digit year
|
||||||
sDate = "Tue, 19 Jul 05 23:00:51 UT";
|
sDate = "Tue, 19 Jul 05 23:00:51 UT";
|
||||||
cal.setTime(DateParser.parseRFC822(sDate));
|
cal.setTime(DateParser.parseRFC822(sDate, Locale.US));
|
||||||
|
|
||||||
assertEquals(2005, cal.get(Calendar.YEAR));
|
assertEquals(2005, cal.get(Calendar.YEAR));
|
||||||
assertEquals(6, cal.get(Calendar.MONTH)); // month is zero-indexed
|
assertEquals(6, cal.get(Calendar.MONTH)); // month is zero-indexed
|
||||||
|
@ -87,11 +88,11 @@ public class TestDateParser extends TestCase {
|
||||||
|
|
||||||
// RFC822
|
// RFC822
|
||||||
sDate = "Tue, 19 Jul 2005 23:00:51 GMT";
|
sDate = "Tue, 19 Jul 2005 23:00:51 GMT";
|
||||||
assertNotNull(DateParser.parseDate(sDate));
|
assertNotNull(DateParser.parseDate(sDate, Locale.US));
|
||||||
|
|
||||||
// RFC822
|
// RFC822
|
||||||
sDate = "Tue, 19 Jul 05 23:00:51 GMT";
|
sDate = "Tue, 19 Jul 05 23:00:51 GMT";
|
||||||
assertNotNull(DateParser.parseDate(sDate));
|
assertNotNull(DateParser.parseDate(sDate, Locale.US));
|
||||||
|
|
||||||
final Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
|
final Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
|
||||||
c.set(2000, Calendar.JANUARY, 01, 0, 0, 0);
|
c.set(2000, Calendar.JANUARY, 01, 0, 0, 0);
|
||||||
|
@ -99,31 +100,31 @@ public class TestDateParser extends TestCase {
|
||||||
|
|
||||||
// W3C
|
// W3C
|
||||||
sDate = "2000-01-01T00:00:00Z";
|
sDate = "2000-01-01T00:00:00Z";
|
||||||
assertEquals(expectedDate.getTime() / 1000, DateParser.parseDate(sDate).getTime() / 1000);
|
assertEquals(expectedDate.getTime() / 1000, DateParser.parseDate(sDate, Locale.US).getTime() / 1000);
|
||||||
|
|
||||||
// W3C
|
// W3C
|
||||||
sDate = "2000-01-01T00:00Z";
|
sDate = "2000-01-01T00:00Z";
|
||||||
assertEquals(expectedDate.getTime() / 1000, DateParser.parseDate(sDate).getTime() / 1000);
|
assertEquals(expectedDate.getTime() / 1000, DateParser.parseDate(sDate, Locale.US).getTime() / 1000);
|
||||||
|
|
||||||
// W3C
|
// W3C
|
||||||
sDate = "2000-01-01";
|
sDate = "2000-01-01";
|
||||||
assertEquals(expectedDate.getTime() / 1000, DateParser.parseDate(sDate).getTime() / 1000);
|
assertEquals(expectedDate.getTime() / 1000, DateParser.parseDate(sDate, Locale.US).getTime() / 1000);
|
||||||
|
|
||||||
// W3C
|
// W3C
|
||||||
sDate = "2000-01";
|
sDate = "2000-01";
|
||||||
assertEquals(expectedDate.getTime() / 1000, DateParser.parseDate(sDate).getTime() / 1000);
|
assertEquals(expectedDate.getTime() / 1000, DateParser.parseDate(sDate, Locale.US).getTime() / 1000);
|
||||||
|
|
||||||
// W3C
|
// W3C
|
||||||
sDate = "2000";
|
sDate = "2000";
|
||||||
assertEquals(expectedDate.getTime() / 1000, DateParser.parseDate(sDate).getTime() / 1000);
|
assertEquals(expectedDate.getTime() / 1000, DateParser.parseDate(sDate, Locale.US).getTime() / 1000);
|
||||||
|
|
||||||
// EXTRA
|
// EXTRA
|
||||||
sDate = "18:10 2000/10/10";
|
sDate = "18:10 2000/10/10";
|
||||||
assertNotNull(DateParser.parseDate(sDate));
|
assertNotNull(DateParser.parseDate(sDate, Locale.US));
|
||||||
|
|
||||||
// INVALID
|
// INVALID
|
||||||
sDate = "X20:10 2000-10-10";
|
sDate = "X20:10 2000-10-10";
|
||||||
assertNull(DateParser.parseDate(sDate));
|
assertNull(DateParser.parseDate(sDate, Locale.US));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ package com.sun.syndication.unittest;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import com.sun.syndication.feed.synd.SyndEntry;
|
import com.sun.syndication.feed.synd.SyndEntry;
|
||||||
import com.sun.syndication.io.impl.DateParser;
|
import com.sun.syndication.io.impl.DateParser;
|
||||||
|
@ -48,7 +49,7 @@ public class TestSyndFeedAtom03 extends SyndFeedTest {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void testPublishedDate() throws Exception {
|
public void testPublishedDate() throws Exception {
|
||||||
final Date d = DateParser.parseW3CDateTime("2000-01-01T00:00:00Z");
|
final Date d = DateParser.parseW3CDateTime("2000-01-01T00:00:00Z", Locale.US);
|
||||||
assertEquals(this.getCachedSyndFeed().getPublishedDate(), d);
|
assertEquals(this.getCachedSyndFeed().getPublishedDate(), d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +59,7 @@ public class TestSyndFeedAtom03 extends SyndFeedTest {
|
||||||
assertProperty(entry.getTitle(), "feed.entry[" + i + "].title");
|
assertProperty(entry.getTitle(), "feed.entry[" + i + "].title");
|
||||||
assertProperty(entry.getLink(), "feed.entry[" + i + "].link^href");
|
assertProperty(entry.getLink(), "feed.entry[" + i + "].link^href");
|
||||||
assertProperty(entry.getAuthor(), "feed.entry[" + i + "].author.name");
|
assertProperty(entry.getAuthor(), "feed.entry[" + i + "].author.name");
|
||||||
final Date d = DateParser.parseW3CDateTime("2000-0" + (i + 1) + "-01T00:00:00Z");
|
final Date d = DateParser.parseW3CDateTime("2000-0" + (i + 1) + "-01T00:00:00Z", Locale.US);
|
||||||
assertEquals(entry.getPublishedDate(), d);
|
assertEquals(entry.getPublishedDate(), d);
|
||||||
assertProperty(entry.getDescription().getValue(), "feed.entry[" + i + "].summary");
|
assertProperty(entry.getDescription().getValue(), "feed.entry[" + i + "].summary");
|
||||||
assertProperty(entry.getContents().get(0).getValue(), "feed.entry[" + i + "].content[0]");
|
assertProperty(entry.getContents().get(0).getValue(), "feed.entry[" + i + "].content[0]");
|
||||||
|
|
|
@ -8,6 +8,7 @@ package com.sun.syndication.unittest;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import com.sun.syndication.feed.module.DCModule;
|
import com.sun.syndication.feed.module.DCModule;
|
||||||
import com.sun.syndication.feed.module.SyModule;
|
import com.sun.syndication.feed.module.SyModule;
|
||||||
|
@ -67,7 +68,7 @@ public class TestSyndFeedAtom03DCSyModules extends TestSyndFeedAtom03 {
|
||||||
assertProperty(dc.getPublisher(), prefix + "dc:publisher");
|
assertProperty(dc.getPublisher(), prefix + "dc:publisher");
|
||||||
assertProperty(dc.getContributors().get(0), prefix + "dc:contributor[0]");
|
assertProperty(dc.getContributors().get(0), prefix + "dc:contributor[0]");
|
||||||
assertProperty(dc.getContributors().get(1), prefix + "dc:contributor[1]");
|
assertProperty(dc.getContributors().get(1), prefix + "dc:contributor[1]");
|
||||||
final Date date = DateParser.parseW3CDateTime("2000-0" + (index + 1) + "-01T00:00:00Z");
|
final Date date = DateParser.parseW3CDateTime("2000-0" + (index + 1) + "-01T00:00:00Z", Locale.US);
|
||||||
assertEquals(dc.getDate(), date);
|
assertEquals(dc.getDate(), date);
|
||||||
assertProperty(dc.getType(), prefix + "dc:type");
|
assertProperty(dc.getType(), prefix + "dc:type");
|
||||||
assertProperty(dc.getFormat(), prefix + "dc:format");
|
assertProperty(dc.getFormat(), prefix + "dc:format");
|
||||||
|
@ -93,7 +94,7 @@ public class TestSyndFeedAtom03DCSyModules extends TestSyndFeedAtom03 {
|
||||||
assertNotNull(sy);
|
assertNotNull(sy);
|
||||||
assertEquals(sy.getUpdatePeriod(), SyModule.HOURLY);
|
assertEquals(sy.getUpdatePeriod(), SyModule.HOURLY);
|
||||||
assertEquals(sy.getUpdateFrequency(), 100);
|
assertEquals(sy.getUpdateFrequency(), 100);
|
||||||
final Date date = DateParser.parseW3CDateTime("2001-01-01T01:00+00:00");
|
final Date date = DateParser.parseW3CDateTime("2001-01-01T01:00+00:00", Locale.US);
|
||||||
assertEquals(sy.getUpdateBase(), date);
|
assertEquals(sy.getUpdateBase(), date);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ package com.sun.syndication.unittest;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import com.sun.syndication.feed.atom.Entry;
|
import com.sun.syndication.feed.atom.Entry;
|
||||||
import com.sun.syndication.feed.synd.SyndEntry;
|
import com.sun.syndication.feed.synd.SyndEntry;
|
||||||
|
@ -68,7 +69,7 @@ public class TestSyndFeedAtom10 extends TestSyndFeedAtom03 {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void testPublishedDate() throws Exception {
|
public void testPublishedDate() throws Exception {
|
||||||
final Date d = DateParser.parseW3CDateTime("2000-01-01T00:00:00Z");
|
final Date d = DateParser.parseW3CDateTime("2000-01-01T00:00:00Z", Locale.US);
|
||||||
assertEquals(this.getCachedSyndFeed().getPublishedDate(), d);
|
assertEquals(this.getCachedSyndFeed().getPublishedDate(), d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,7 +85,7 @@ public class TestSyndFeedAtom10 extends TestSyndFeedAtom03 {
|
||||||
assertEquals("http://example.com/blog/entry" + (i + 1), entry.getLink());
|
assertEquals("http://example.com/blog/entry" + (i + 1), entry.getLink());
|
||||||
assertEquals(entry.getEnclosures().get(0).getUrl(), "http://example.com/blog/enclosure" + (i + 1) + ".gif");
|
assertEquals(entry.getEnclosures().get(0).getUrl(), "http://example.com/blog/enclosure" + (i + 1) + ".gif");
|
||||||
assertProperty(entry.getAuthor(), "feed.entry[" + i + "].author.name");
|
assertProperty(entry.getAuthor(), "feed.entry[" + i + "].author.name");
|
||||||
final Date d = DateParser.parseW3CDateTime("2000-0" + (i + 1) + "-01T01:00:00Z");
|
final Date d = DateParser.parseW3CDateTime("2000-0" + (i + 1) + "-01T01:00:00Z", Locale.US);
|
||||||
assertEquals(entry.getPublishedDate(), d);
|
assertEquals(entry.getPublishedDate(), d);
|
||||||
assertProperty(entry.getDescription().getValue(), "feed.entry[" + i + "].summary");
|
assertProperty(entry.getDescription().getValue(), "feed.entry[" + i + "].summary");
|
||||||
assertProperty(entry.getContents().get(0).getValue(), "feed.entry[" + i + "].content[0]");
|
assertProperty(entry.getContents().get(0).getValue(), "feed.entry[" + i + "].content[0]");
|
||||||
|
|
|
@ -6,6 +6,7 @@ package com.sun.syndication.unittest;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import com.sun.syndication.feed.synd.SyndEntry;
|
import com.sun.syndication.feed.synd.SyndEntry;
|
||||||
import com.sun.syndication.io.impl.DateParser;
|
import com.sun.syndication.io.impl.DateParser;
|
||||||
|
@ -39,7 +40,7 @@ public class TestSyndFeedRSS091N extends SyndFeedTest {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void testPublishedDate() throws Exception {
|
public void testPublishedDate() throws Exception {
|
||||||
final Date d = DateParser.parseRFC822("Mon, 01 Jan 2001 00:00:00 GMT");
|
final Date d = DateParser.parseRFC822("Mon, 01 Jan 2001 00:00:00 GMT", Locale.US);
|
||||||
assertEquals(this.getCachedSyndFeed().getPublishedDate(), d);
|
assertEquals(this.getCachedSyndFeed().getPublishedDate(), d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ package com.sun.syndication.unittest;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import com.sun.syndication.feed.synd.SyndEntry;
|
import com.sun.syndication.feed.synd.SyndEntry;
|
||||||
import com.sun.syndication.io.impl.DateParser;
|
import com.sun.syndication.io.impl.DateParser;
|
||||||
|
@ -33,7 +34,7 @@ public class TestSyndFeedRSS093 extends TestSyndFeedRSS092 {
|
||||||
super.testItem(i);
|
super.testItem(i);
|
||||||
final List<SyndEntry> items = this.getCachedSyndFeed().getEntries();
|
final List<SyndEntry> items = this.getCachedSyndFeed().getEntries();
|
||||||
final SyndEntry entry = items.get(i);
|
final SyndEntry entry = items.get(i);
|
||||||
final Date d = DateParser.parseRFC822("Mon, 0" + (i + 1) + " Jan 2001 00:00:00 GMT");
|
final Date d = DateParser.parseRFC822("Mon, 0" + (i + 1) + " Jan 2001 00:00:00 GMT", Locale.US);
|
||||||
assertEquals(entry.getPublishedDate(), d);
|
assertEquals(entry.getPublishedDate(), d);
|
||||||
testDescriptionType(entry, i);
|
testDescriptionType(entry, i);
|
||||||
}
|
}
|
||||||
|
@ -44,8 +45,8 @@ public class TestSyndFeedRSS093 extends TestSyndFeedRSS092 {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void testEntryPublishedDate() throws Exception {
|
public void testEntryPublishedDate() throws Exception {
|
||||||
assertEquals(DateParser.parseRFC822("Mon, 01 Jan 2001 00:00:00 GMT"), getEntryPublishedDate(this.getCachedSyndFeed().getEntries().get(0)));
|
assertEquals(DateParser.parseRFC822("Mon, 01 Jan 2001 00:00:00 GMT", Locale.US), getEntryPublishedDate(this.getCachedSyndFeed().getEntries().get(0)));
|
||||||
assertEquals(DateParser.parseRFC822("Tue, 02 Jan 2001 00:00:00 GMT"), getEntryPublishedDate(this.getCachedSyndFeed().getEntries().get(1)));
|
assertEquals(DateParser.parseRFC822("Tue, 02 Jan 2001 00:00:00 GMT", Locale.US), getEntryPublishedDate(this.getCachedSyndFeed().getEntries().get(1)));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.sun.syndication.unittest;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import com.sun.syndication.feed.module.DCModule;
|
import com.sun.syndication.feed.module.DCModule;
|
||||||
import com.sun.syndication.feed.synd.SyndEntry;
|
import com.sun.syndication.feed.synd.SyndEntry;
|
||||||
|
@ -60,7 +61,7 @@ public class TestSyndFeedRSS10DCMulti extends TestSyndFeedRSS10 {
|
||||||
|
|
||||||
assertProperty(dc.getContributors().get(0), prefix + "dc:contributor[0]");
|
assertProperty(dc.getContributors().get(0), prefix + "dc:contributor[0]");
|
||||||
assertProperty(dc.getContributors().get(1), prefix + "dc:contributor[1]");
|
assertProperty(dc.getContributors().get(1), prefix + "dc:contributor[1]");
|
||||||
final Date date = DateParser.parseW3CDateTime("2001-01-01T00:00+00:00");
|
final Date date = DateParser.parseW3CDateTime("2001-01-01T00:00+00:00", Locale.US);
|
||||||
assertEquals(dc.getDates().get(0), date);
|
assertEquals(dc.getDates().get(0), date);
|
||||||
assertEquals(dc.getDates().get(1), date);
|
assertEquals(dc.getDates().get(1), date);
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ package com.sun.syndication.unittest;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import com.sun.syndication.feed.module.DCModule;
|
import com.sun.syndication.feed.module.DCModule;
|
||||||
import com.sun.syndication.feed.module.SyModule;
|
import com.sun.syndication.feed.module.SyModule;
|
||||||
|
@ -57,7 +58,7 @@ public class TestSyndFeedRSS10DCSyModules extends TestSyndFeedRSS10 {
|
||||||
assertProperty(dc.getPublisher(), prefix + "dc:publisher");
|
assertProperty(dc.getPublisher(), prefix + "dc:publisher");
|
||||||
assertProperty(dc.getContributors().get(0), prefix + "dc:contributor[0]");
|
assertProperty(dc.getContributors().get(0), prefix + "dc:contributor[0]");
|
||||||
assertProperty(dc.getContributors().get(1), prefix + "dc:contributor[1]");
|
assertProperty(dc.getContributors().get(1), prefix + "dc:contributor[1]");
|
||||||
final Date date = DateParser.parseW3CDateTime("2001-01-01T00:00+00:00");
|
final Date date = DateParser.parseW3CDateTime("2001-01-01T00:00+00:00", Locale.US);
|
||||||
assertEquals(dc.getDate(), date);
|
assertEquals(dc.getDate(), date);
|
||||||
assertProperty(dc.getType(), prefix + "dc:type");
|
assertProperty(dc.getType(), prefix + "dc:type");
|
||||||
assertProperty(dc.getFormat(), prefix + "dc:format");
|
assertProperty(dc.getFormat(), prefix + "dc:format");
|
||||||
|
@ -74,7 +75,7 @@ public class TestSyndFeedRSS10DCSyModules extends TestSyndFeedRSS10 {
|
||||||
assertNotNull(sy);
|
assertNotNull(sy);
|
||||||
assertEquals(sy.getUpdatePeriod(), SyModule.HOURLY);
|
assertEquals(sy.getUpdatePeriod(), SyModule.HOURLY);
|
||||||
assertEquals(sy.getUpdateFrequency(), 100);
|
assertEquals(sy.getUpdateFrequency(), 100);
|
||||||
final Date date = DateParser.parseW3CDateTime("2001-01-01T01:00+00:00");
|
final Date date = DateParser.parseW3CDateTime("2001-01-01T01:00+00:00", Locale.US);
|
||||||
assertEquals(sy.getUpdateBase(), date);
|
assertEquals(sy.getUpdateBase(), date);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue