[georss] java Rome georss plugin failing to consume georss simple

Nathan Heminger nathan.heminger at gmail.com
Fri Dec 8 17:47:08 EST 2006


Hello,

Does anyone know of any problems consuming georss simple feeds? I am having
issues with georss simple feeds. Interestingly, I do not have any problems
with the the other types.

I do the following to get the feed:

feed = input.build(
*new* XmlReader(*new* URL(url)));

and then I try to retrieve the GeoRSSModule on each entry:

GeoRSSModule geoRSSModule = GeoRSSUtils.*getGeoRSS*(entry);
However, the module is returning null. I have tried tracing the problem, and
it appears that input.build is not returning the entries with a geomodule
for each. It appears only the dcmodule is in the module list for each entry.



parseModules() in com.sun.syndication.io.imp.ModuleParsers however seems to
find the geomodule fine. Right before a module is added, I output the
module:

System.
*out*.println("adding module: " + module);

modules.add(module);
and this prints:


adding module: SimpleModuleImpl.longitude=-0.331478

SimpleModuleImpl.uri=http://www.georss.org/georss/

SimpleModuleImpl.interface=interface
com.sun.syndication.feed.module.georss.GeoRSSModule

SimpleModuleImpl.latitude=51.425972
which leads me to believe the module parser is working fine.

I have tracked the problem even further, and found that in
com.sun.syndication.feed.module.Module.ModuleUtils.getModule(List
modules,String uri) I am getting a conflict. This is what the code looks
like (debugging system.out.println statement added):

*public* *static* Module getModule(List modules,String uri) {

Module module = *null*;

*for* (*int* i=0;module==*null* && modules!=*null* && i<modules.size();i++)
{

module = (Module) modules.get(i);

System.*out*.println("doing comparison: module.getUri().equals(uri)) " +
module.getUri().equals(uri) + " with uris: " + module.getUri() + " and " +
uri);

*if* (!module.getUri().equalsIgnoreCase(uri)) {

module = *null*;

}

}

*return* module;

}
This prints out the following:

doing comparison: module.getUri().equals(uri)) true with uris:
http://purl.org/dc/elements/1.1/ and http://purl.org/dc/elements/1.1/

doing comparison: module.getUri().equals(uri)) false with uris:
http://purl.org/dc/elements/1.1/ and http://www.georss.org/georss

doing comparison: module.getUri().equals(uri)) false with uris:
http://www.georss.org/georss/ and http://www.georss.org/georss

As you can see, one of the urls has an extra "/" at the end.

In com.sun.syndication.feed.module.georss.GeoRSSModule,  I see the field is:

public static final String GEORSS_GEORSS_URI = "http://www.georss.org/georss
";

 and in the actual feed I find the uri is:

xmlns:georss="*http://www.georss.org/georss*" xmlns:gml="*
http://www.opengis.net/gml*">
Where is this extra "/" coming from? Which is correct,
http://www.georss.org/georss or http://www.georss.org/georss?

The specific feed I am currently testing is:
http://www.edparsons.com/?feed=rss2

and it validates (albiet with warnings) using the W3C Validator:
http://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fwww.edparsons.com%2F%3Ffeed%3Drss2

Is there anything I am missing has anyone else had this problem?

Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.eogeo.org/pipermail/georss/attachments/20061208/31f86be1/attachment.html 


More information about the georss mailing list