informa-developer Mailing List for News Aggregation Library for Java
Status: Beta
Brought to you by:
niko_schmuck
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
(9) |
Oct
(35) |
Nov
(11) |
Dec
(4) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(1) |
Feb
(2) |
Mar
(3) |
Apr
(5) |
May
(7) |
Jun
(3) |
Jul
(2) |
Aug
|
Sep
(18) |
Oct
(27) |
Nov
(12) |
Dec
(12) |
2004 |
Jan
(15) |
Feb
(2) |
Mar
(12) |
Apr
(7) |
May
(11) |
Jun
(7) |
Jul
(26) |
Aug
(11) |
Sep
(7) |
Oct
(10) |
Nov
(5) |
Dec
(1) |
2005 |
Jan
(21) |
Feb
(37) |
Mar
(2) |
Apr
(1) |
May
(28) |
Jun
(6) |
Jul
(5) |
Aug
(9) |
Sep
(18) |
Oct
(15) |
Nov
(16) |
Dec
(1) |
2006 |
Jan
(23) |
Feb
(7) |
Mar
(5) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
|
Aug
(9) |
Sep
(4) |
Oct
(17) |
Nov
(4) |
Dec
|
2007 |
Jan
(5) |
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
(6) |
Jul
(7) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(2) |
2008 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Niko S. <ni...@na...> - 2015-07-06 08:59:31
|
Hi all. The source code of Informa can be now found over at https://github.com/nikos/informa It is based on rev. 853 of the subversion sourceforge trunk and released under Eclipse Public License (EPL) 1.0. The code base has been cleaned up and modernized a bit (moving from Java 1.5 to 1.8 as base requirement). Also the Hibernate and Lucene dependencies have been removed, to clarify that the scope is really about parsing news feeds of different formats, allowing to build an object model as well as watch and export functionality. I hope to be able to upload an 0.8-SNAPSHOT soon to maven central, so that you can use it in your projects easily in the near future. In addition I would like to ask if you think we should change the open-source license Informa is distributed under from EPL to the Apache License (http://choosealicense.com/licenses/) since it seems to be better known and might make contributions more easy in the future? Please let me know if you have any questions. Cheers, Niko |
From: Carlos O. <or...@gm...> - 2011-05-21 17:05:57
|
I have an observer for itemFound. Is every call to this method thread safe? Or should i take care of concurrency issues. Should i make it synchronized? i created the poller with 10 threads. thanks for any help. -- Carlos Orrego "Salve un bosque. No imprima." "Save a forest. Do not print." |
From: Carlos O. <or...@gm...> - 2010-10-05 13:15:32
|
I was able to get what i wanted like this: item.itemElement.getChildText("location",new Namespace("google", " http://base.google.com/ns/1.0")) itemElemnt has all i needed thanks c On Tue, Oct 5, 2010 at 2:32 AM, Niko Schmuck <ni...@na...> wrote: > Hi Carlos, > > Could you please attach the XML of the original feed you are trying to > parse? > > Thanks, > Niko > > > Am 05.10.2010 um 01:40 schrieb Carlos Orrego: > > > Inside my process method i would like to have access to the original xml > > source code y i can parse tags not standard to rss o atom. Inparticular > geo > > location tags. > > I have tried colling: > > Item.getText() -> empty > > Item.getChileText() > > > > etc with no luck, any ideas? > > > > thanks > > > > -- > > Carlos Orrego > > > > "Salve un bosque. No imprima." > > "Save a forest. Do not print." > > -- Carlos Orrego "Salve un bosque. No imprima." "Save a forest. Do not print." |
From: Niko S. <ni...@na...> - 2010-10-05 06:47:56
|
Hi Carlos, Could you please attach the XML of the original feed you are trying to parse? Thanks, Niko Am 05.10.2010 um 01:40 schrieb Carlos Orrego: > Inside my process method i would like to have access to the original xml > source code y i can parse tags not standard to rss o atom. Inparticular geo > location tags. > I have tried colling: > Item.getText() -> empty > Item.getChileText() > > etc with no luck, any ideas? > > thanks > > -- > Carlos Orrego > > "Salve un bosque. No imprima." > "Save a forest. Do not print." |
From: Carlos O. <or...@gm...> - 2010-10-04 23:40:30
|
Inside my process method i would like to have access to the original xml source code y i can parse tags not standard to rss o atom. Inparticular geo location tags. I have tried colling: Item.getText() -> empty Item.getChileText() etc with no luck, any ideas? thanks -- Carlos Orrego "Salve un bosque. No imprima." "Save a forest. Do not print." |
From: Niko S. <ni...@na...> - 2010-06-20 10:09:13
|
Probably the usage of a CDATA section would suite your needs? Cheers, Niko Am 18.06.2010 um 06:55 schrieb Craig Berry: > Is there any way to suppress &-quoting of < and > inside item > description text? The RSS feed I'm generating needs to have html > (links, mostly) in the published items. > > -- > Craig Berry - http://lapidum.org/home.html > "Magicians lie to the universe, and the > universe believes them." -- Lenore Berry > > ------------------------------------------------------------------------------ > ThinkGeek and WIRED's GeekDad team up for the Ultimate > GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the > lucky parental unit. See the prize list and enter to win: > http://p.sf.net/sfu/thinkgeek-promo > _______________________________________________ > Informa-developer mailing list > Inf...@li... > https://lists.sourceforge.net/lists/listinfo/informa-developer > |
From: Craig B. <cd...@gm...> - 2010-06-18 04:55:14
|
Is there any way to suppress &-quoting of < and > inside item description text? The RSS feed I'm generating needs to have html (links, mostly) in the published items. -- Craig Berry - http://lapidum.org/home.html "Magicians lie to the universe, and the universe believes them." -- Lenore Berry |
From: Niko S. <ni...@na...> - 2010-05-12 21:25:16
|
Hi Carlos, Strange behavior indeed. My suggestion to get a bit more insights would be to add some logging into the two main responsible classes: * de.nava.informa.utils.poller.PollerWorkerThread * de.nava.informa.utils.toolkit.WorkerThread And then observe, under which specific circumstances they stop polling, might be due to some network latency related problems? Cheers, Niko Am 12.05.2010 um 18:53 schrieb Carlos Orrego: > Hi All > > i have a poller that works correctly polling hundreds of rss feed but it > will just stop polling randomly after some hours of use. I try to reset the > poller by setting threads to 0 and and removing the registered channels to > create a new Instance of Poller. this does not work either. > > any ides on how to deal with this? > > thanks > > -- > Carlos Orrego > > "Salve un bosque. No imprima." > "Save a forest. Do not print." > ------------------------------------------------------------------------------ > > _______________________________________________ > Informa-developer mailing list > Inf...@li... > https://lists.sourceforge.net/lists/listinfo/informa-developer > |
From: Carlos O. <or...@gm...> - 2010-05-12 16:53:50
|
Hi All i have a poller that works correctly polling hundreds of rss feed but it will just stop polling randomly after some hours of use. I try to reset the poller by setting threads to 0 and and removing the registered channels to create a new Instance of Poller. this does not work either. any ides on how to deal with this? thanks -- Carlos Orrego "Salve un bosque. No imprima." "Save a forest. Do not print." |
From: Anthony B. <at...@gm...> - 2009-09-18 16:31:41
|
Hi Niko, Thanks for that, that makes sense now. All the Best, Brew Phone: 087 - 9179799 Quidquid latine dictum sit, altum sonatur 2009/9/18 Niko Schmuck <ni...@na...> > Hi Anthony, > > If those special characters would not be transformed, the XML output would > not be well-formed any longer. Please see the chapter 4.6 Predefined > Entities in the XML Specification > (http://www.w3.org/TR/REC-xml/#sec-predefined-ent) for more details. > If you would like to look into the sources, the > de.nava.informa.utils.ParserUtils class is probably interesting to you. > > Hope that helps? > > -- Niko > > On Fri, September 18, 2009 11:04 am, Anthony Brew wrote: > > I am gerenating an aggregate feed where at the end of the feed I embed a > > link in the content. > > > > What I have noticed when I download the feed and look at the text all the > > html items are reformatted to > instead of > etc. Oddly it seems to > > render fine in the readers I am looking at but I am just a tad puzzled. > Is > > there a way to turn this feature off? > > > > Here is some example code that creates that replicates my problem > > > > *public static void main(String ... args) throws IOException { > > String user = "brew"; > > ChannelBuilder builder = new ChannelBuilder(); > > ChannelIF channel = builder.createChannel("Tiny Feed: "); > > channel.setDescription("Aggregated Feeds"); > > > > String content = "Some Body text taken from the feed"; > > //here is the tricky bit all the html tags get mangled > > content += "<br/><a > > href=http://brew.ucd.ie/Comment?&user="+user+"\" > >>Comment</a>"; > > ItemIF item = null; > > try { > > item = builder.createItem(channel, "Title", content, new > > URL("http://brew.com")); > > item.setDate(new Date()); > > } catch (MalformedURLException e) { > > e.printStackTrace(); //To change body of catch statement > > use File | Settings | File Templates. > > } > > > > StringWriter buff = new StringWriter(); > > ChannelExporterIF exporter = new RSS_2_0_Exporter(buff, "UTF8"); > > > > exporter.write(channel); > > System.out.println(buff.getBuffer().toString()); > > }* > > > > the output being, with the bits that annoy me in bold. Am what I am doing > > terribly bad? > > > > *<?xml version="1.0" encoding="UTF8"?> > > <rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy=" > > http://purl.org/rss/1.0/modules/syndication/" xmlns:admin=" > > http://webns.net/mvcb/" version="2.0"> > > <channel> > > <title>Tiny Feed:</title> > > <description>Aggregated Feeds</description> > > <item> > > <title>Title</title> > > <DEFANGED_link>http://brew.com</link> > > <description>Some Body text taken from the feed<br/><a > > href= > > http://brew.ucd.ie/Comment?&user=brew" >Comment</a> > > </description> > > <pubDate>Fri, 18 Sep 2009 11:01:04 CEST</pubDate> > > </item> > > </channel> > > </rss>* > > > > > > All the Best, > > Brew > > > > Phone: 087 - 9179799 > > Quidquid latine dictum sit, altum sonatur > > > ------------------------------------------------------------------------------ > > Come build with us! The BlackBerry® Developer Conference in SF, CA > > is the only developer event you need to attend this year. Jumpstart your > > developing skills, take BlackBerry mobile applications to market and stay > > ahead of the curve. Join us from November 9-12, 2009. Register > > now! > > http://p.sf.net/sfu/devconf > > _______________________________________________ > > Informa-developer mailing list > > Inf...@li... > > https://lists.sourceforge.net/lists/listinfo/informa-developer > > > > > > > |
From: Niko S. <ni...@na...> - 2009-09-18 15:39:15
|
Hi Anthony, If those special characters would not be transformed, the XML output would not be well-formed any longer. Please see the chapter 4.6 Predefined Entities in the XML Specification (http://www.w3.org/TR/REC-xml/#sec-predefined-ent) for more details. If you would like to look into the sources, the de.nava.informa.utils.ParserUtils class is probably interesting to you. Hope that helps? -- Niko On Fri, September 18, 2009 11:04 am, Anthony Brew wrote: > I am gerenating an aggregate feed where at the end of the feed I embed a > link in the content. > > What I have noticed when I download the feed and look at the text all the > html items are reformatted to > instead of > etc. Oddly it seems to > render fine in the readers I am looking at but I am just a tad puzzled. Is > there a way to turn this feature off? > > Here is some example code that creates that replicates my problem > > *public static void main(String ... args) throws IOException { > String user = "brew"; > ChannelBuilder builder = new ChannelBuilder(); > ChannelIF channel = builder.createChannel("Tiny Feed: "); > channel.setDescription("Aggregated Feeds"); > > String content = "Some Body text taken from the feed"; > //here is the tricky bit all the html tags get mangled > content += "<br/><a > href=http://brew.ucd.ie/Comment?&user="+user+"\" >>Comment</a>"; > ItemIF item = null; > try { > item = builder.createItem(channel, "Title", content, new > URL("http://brew.com")); > item.setDate(new Date()); > } catch (MalformedURLException e) { > e.printStackTrace(); //To change body of catch statement > use File | Settings | File Templates. > } > > StringWriter buff = new StringWriter(); > ChannelExporterIF exporter = new RSS_2_0_Exporter(buff, "UTF8"); > > exporter.write(channel); > System.out.println(buff.getBuffer().toString()); > }* > > the output being, with the bits that annoy me in bold. Am what I am doing > terribly bad? > > *<?xml version="1.0" encoding="UTF8"?> > <rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy=" > http://purl.org/rss/1.0/modules/syndication/" xmlns:admin=" > http://webns.net/mvcb/" version="2.0"> > <channel> > <title>Tiny Feed:</title> > <description>Aggregated Feeds</description> > <item> > <title>Title</title> > <DEFANGED_link>http://brew.com</link> > <description>Some Body text taken from the feed<br/><a > href= > http://brew.ucd.ie/Comment?&user=brew" >Comment</a> > </description> > <pubDate>Fri, 18 Sep 2009 11:01:04 CEST</pubDate> > </item> > </channel> > </rss>* > > > All the Best, > Brew > > Phone: 087 - 9179799 > Quidquid latine dictum sit, altum sonatur > ------------------------------------------------------------------------------ > Come build with us! The BlackBerry® Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart your > developing skills, take BlackBerry mobile applications to market and stay > ahead of the curve. Join us from November 9-12, 2009. Register > now! > http://p.sf.net/sfu/devconf > _______________________________________________ > Informa-developer mailing list > Inf...@li... > https://lists.sourceforge.net/lists/listinfo/informa-developer > > |
From: Anthony B. <at...@gm...> - 2009-09-18 09:04:30
|
I am gerenating an aggregate feed where at the end of the feed I embed a link in the content. What I have noticed when I download the feed and look at the text all the html items are reformatted to > instead of > etc. Oddly it seems to render fine in the readers I am looking at but I am just a tad puzzled. Is there a way to turn this feature off? Here is some example code that creates that replicates my problem *public static void main(String ... args) throws IOException { String user = "brew"; ChannelBuilder builder = new ChannelBuilder(); ChannelIF channel = builder.createChannel("Tiny Feed: "); channel.setDescription("Aggregated Feeds"); String content = "Some Body text taken from the feed"; //here is the tricky bit all the html tags get mangled content += "<br/><a href=http://brew.ucd.ie/Comment?&user="+user+"\" >Comment</a>"; ItemIF item = null; try { item = builder.createItem(channel, "Title", content, new URL("http://brew.com")); item.setDate(new Date()); } catch (MalformedURLException e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } StringWriter buff = new StringWriter(); ChannelExporterIF exporter = new RSS_2_0_Exporter(buff, "UTF8"); exporter.write(channel); System.out.println(buff.getBuffer().toString()); }* the output being, with the bits that annoy me in bold. Am what I am doing terribly bad? *<?xml version="1.0" encoding="UTF8"?> <rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy=" http://purl.org/rss/1.0/modules/syndication/" xmlns:admin=" http://webns.net/mvcb/" version="2.0"> <channel> <title>Tiny Feed:</title> <description>Aggregated Feeds</description> <item> <title>Title</title> <link>http://brew.com</link> <description>Some Body text taken from the feed<br/><a href= http://brew.ucd.ie/Comment?&user=brew" >Comment</a> </description> <pubDate>Fri, 18 Sep 2009 11:01:04 CEST</pubDate> </item> </channel> </rss>* All the Best, Brew Phone: 087 - 9179799 Quidquid latine dictum sit, altum sonatur |
From: Niko S. <ni...@na...> - 2008-11-07 09:49:08
|
Hi Miles, This is an execlent idea, and I think provides nice extensibility as you described when it is coming to customize the RSS XML generation. I have now factored out the method protected Element getItemElement(ItemIF item) in RSS_0_91_Exporter, RSS_1_0_Exporter and RSS_2_0_Exporter. I decided to not put this method in the interface (ChannelExporterIF), since I had the same feeling like you, that this would create a dependency to jdom.Element where it is really not necessary, instead your subclass can simply override this new protected method and achieve whatever customization you require. This is commited to SVN HEAD and available with revision 853. Please let me know what you think, and if this fulfils your needs. Thanks for sharing this idea!! Cheers, Niko On Wed, October 29, 2008 9:44 am, Miles Goodhew wrote: > Hi All, > I have a need to parse/rewrite some RSS feeds with enclosures into a > very similar form that requires some "non-standard" tags in the items > (It's an automated processing system I have no chance of modifying > the end-consumer of). > I've been bouncing ideas off Mats Lindh over the past couple of days > and I think I've found an appropriate and workable solution. The good > thing is the change to Informa code is fairly minor (Basically moving > come code out of an iterator-loop into a seperate method call for the > ChannelExporterIF interface and its implementers). The modified code > works identically as-is, but can now be extended through subclassing > to allow using and writing items that contain "special" tags without > having to modify the Informa source code directly. > Here's the relevant bits from Mats' blog (Note - I wasn't sure that > modifying the interface was the right way to go at the time I wrote > this, but I now feel that the benefits outweigh the uglinesses): > > ---8<--- > Each of the existing ChannelExporterIF implementers should call-out > to a "protected" (or at least not "private") method to generate each > "item" JDOM Element. I implemented this for the RSS 2.0 exporter > simply by taking the entire block of code inside the write() method's > item-terator loop and putting it into the new method: > > protected Element getItemElement( ItemIF item ) > > (Plus minor tweaks for instantiation/return of the resultant ItemIF > object). > > Anyway, having made this change, the Informa library behaves > identically to the way it did before. However now, I can subclass the > Item class to allow further parameter parsing. I could already > subclass the ChannelBuilder class to allow reading/recognition of the > relevant JDom tags to produce the new Item sublass instances. The new > functionality is that now I can subclass the RSS 2.0 Exporter to > produce a "customised" JDOM "item" Element from the new Item subclass > instances sent to it. > > It was tempting to put the RSS 2.0 Exporter change into the > ChannelExporterIF interface definition (so all implementers must > implement the new method), but that would mandate the new method be > public, which I'm not sure is sensible: There's no _need_ for an > external entity to be able to render an ItemIF object into a JDom > "item" Element within the context of a particular ChannelExporterIF > instance. Nevertheless the extensibility benefits may outweigh this > slight inelegance (I'll leave it up to "the mailing list" to decide). > --->8--- > > Anyway, as these small changes are essentially moving blocks of code > (Changin indenting), the diffs are still 191 lines long. So I don't > think I'll spam the entire list - I'll just foist them upon Niko. > > Thanks, > M0les. |
From: Miles G. <mgo...@gm...> - 2008-10-29 08:45:05
|
Hi All, I have a need to parse/rewrite some RSS feeds with enclosures into a very similar form that requires some "non-standard" tags in the items (It's an automated processing system I have no chance of modifying the end-consumer of). I've been bouncing ideas off Mats Lindh over the past couple of days and I think I've found an appropriate and workable solution. The good thing is the change to Informa code is fairly minor (Basically moving come code out of an iterator-loop into a seperate method call for the ChannelExporterIF interface and its implementers). The modified code works identically as-is, but can now be extended through subclassing to allow using and writing items that contain "special" tags without having to modify the Informa source code directly. Here's the relevant bits from Mats' blog (Note - I wasn't sure that modifying the interface was the right way to go at the time I wrote this, but I now feel that the benefits outweigh the uglinesses): ---8<--- Each of the existing ChannelExporterIF implementers should call-out to a "protected" (or at least not "private") method to generate each "item" JDOM Element. I implemented this for the RSS 2.0 exporter simply by taking the entire block of code inside the write() method's item-terator loop and putting it into the new method: protected Element getItemElement( ItemIF item ) (Plus minor tweaks for instantiation/return of the resultant ItemIF object). Anyway, having made this change, the Informa library behaves identically to the way it did before. However now, I can subclass the Item class to allow further parameter parsing. I could already subclass the ChannelBuilder class to allow reading/recognition of the relevant JDom tags to produce the new Item sublass instances. The new functionality is that now I can subclass the RSS 2.0 Exporter to produce a "customised" JDOM "item" Element from the new Item subclass instances sent to it. It was tempting to put the RSS 2.0 Exporter change into the ChannelExporterIF interface definition (so all implementers must implement the new method), but that would mandate the new method be public, which I'm not sure is sensible: There's no _need_ for an external entity to be able to render an ItemIF object into a JDom "item" Element within the context of a particular ChannelExporterIF instance. Nevertheless the extensibility benefits may outweigh this slight inelegance (I'll leave it up to "the mailing list" to decide). --->8--- Anyway, as these small changes are essentially moving blocks of code (Changin indenting), the diffs are still 191 lines long. So I don't think I'll spam the entire list - I'll just foist them upon Niko. Thanks, M0les. |
From: Mohd A. <moh...@gm...> - 2008-07-29 10:15:21
|
You have been invited to connect as friends with Mohd Amin <moh...@gm...> Please accept or reject this invitation by clicking below: http://www.bebo.com/in/7553873829a869147515b135 ...................................................................... Please do not reply directly to this email. This email was sent to you at the direct request of Mohd Amin <moh...@gm...>. You have not been added to a mailing list. If you would prefer not to receive invitations from ANY Bebo members please click here - http://www.bebo.com/unsub/7553873829a869147515 Bebo, Inc., 795 Folsom St, 6th Floor, San Francisco, CA 94107, USA. |
From: Niko S. <nik...@na...> - 2008-04-12 11:14:41
|
Hi Pawel, Many Thanks for sending in your patch, I will include it as soon as my spare time allows, and probably make then a new Informa release available. Great stuff, thanks once more, Cheers, Niko Am 10.04.2008 um 13:32 schrieb Pawel Wrzeszcz: > Hello, > > I'm using informa and recently needed atom 1.0 parsing, especially > parsing item enclosures for podcast feeds. > > I've implemented this feature and you can find my patch here: > http://anonsvn.jboss.org/repos/labs/labs/jbosslabs/trunk/other/informaAtomEnclosure.patch > > It's really small patch (cvs diff -u against the current cvs head). > I've added item enclosure handling implementation for atom 1.0 feed > and > extended podcast test to make sure it works properly. > > Hope you'll find it useful. > > Cheers, > > --- > Pawel Wrzeszcz > jboss.org developer |
From: Pawel W. <pwr...@jb...> - 2008-04-10 11:32:05
|
Hello, I'm using informa and recently needed atom 1.0 parsing, especially parsing item enclosures for podcast feeds. I've implemented this feature and you can find my patch here: http://anonsvn.jboss.org/repos/labs/labs/jbosslabs/trunk/other/informaAtomEnclosure.patch It's really small patch (cvs diff -u against the current cvs head). I've added item enclosure handling implementation for atom 1.0 feed and extended podcast test to make sure it works properly. Hope you'll find it useful. Cheers, --- Pawel Wrzeszcz jboss.org developer |
From: Jimena G. <jim...@gl...> - 2007-12-04 18:56:01
|
Here is the code package com.smg.copland.service.util; import java.io.CharArrayReader; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.util.Iterator; import net.sf.hibernate.HibernateException; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpMethod; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.log4j.Logger; import de.nava.informa.core.ChannelGroupIF; import de.nava.informa.core.ChannelIF; import de.nava.informa.core.ItemIF; import de.nava.informa.core.ParseException; import de.nava.informa.impl.hibernate.Channel; import de.nava.informa.impl.hibernate.ChannelBuilder; import de.nava.informa.impl.hibernate.Item; import de.nava.informa.impl.hibernate.SessionHandler; import de.nava.informa.parsers.FeedParser; import de.nava.informa.utils.InformaUtils; import de.nava.informa.utils.manager.PersistenceManagerException; import de.nava.informa.utils.manager.hibernate.PersistenceManager; /** * @author hernan.seoane * @version %I%, %G% * @since 1.0 */ public class RSSReader { private String rssUrl; private boolean proxyEnable; private String proxyHost; private int proxyPort; public String getRssUrl(){ return rssUrl; } public void setRssUrl(String n) { rssUrl = n; } Logger log = Logger.getLogger(RSSReader.class); public ChannelIF read() throws RSSReaderException { try { return FeedParser.parse(new ChannelBuilder(SessionHandler.getInstance().getSession()), new URL(rssUrl)); } catch (MalformedURLException e) { throw new RSSReaderException("Malformed URL.",e); } catch (IOException e) { throw new RSSReaderException("I/O Exception.",e); } catch (ParseException e) { throw new RSSReaderException("Unable to parse RSS feed.",e); } catch (HibernateException e){ throw new RSSReaderException("Unable to persist parsed feeds.",e); } } public ChannelIF readInto(String groupName) throws RSSReaderException { HttpMethod get= null; try { ChannelBuilder channelBuilder = new ChannelBuilder(SessionHandler.getInstance().getSession()); log.debug(rssUrl + " trying to conect"); HttpClient client = new HttpClient(); client.setTimeout(10000); // client.setConnectionTimeout(60000); get = new GetMethod(rssUrl); if (isProxyEnable()){ client.getHostConfiguration().setProxy(getProxyHost(),getProxyPort()); log.debug(rssUrl + " through proxy " + getProxyHost()); } client.executeMethod(get); InputStream inputStream = get.getResponseBodyAsStream(); log.info(rssUrl + " stream has been read"); StringBuffer result = new StringBuffer(); int read; while ((read = inputStream.read()) != -1) { result.append((char)read); } get.releaseConnection(); get = null; log.debug(rssUrl + " connection released"); if(result.indexOf("<?xml")!=-1){ if(result.indexOf("<?xml version=\"1.0\" ?>")!= -1 || result.indexOf("<?xml version=\"1.0\"?>")!= -1){ result = result.insert("<?xml version=\"1.0\"".length()," encoding=\"latin1\" "); } }else{ result = result.insert(0,"<?xml version=\"1.0\" encoding=\"latin1\" ?>"); } char chars[] = new char[result.length()]; result.getChars(0,result.length(),chars,0); ChannelIF tempChannel = FeedParser.parse(channelBuilder, new CharArrayReader(chars)); Channel channel = new Channel(); InformaUtils.copyChannelProperties(tempChannel,channel); channel.setLocation(new URL(rssUrl)); for (Iterator iter = tempChannel.getItems().iterator(); iter.hasNext();) { ItemIF element = (ItemIF) iter.next(); ItemIF newElement = new Item(); InformaUtils.copyItemProperties(element,newElement); newElement.setId(element.getId()); channel.addItem(newElement); } PersistenceManager pm = new PersistenceManager(); ChannelGroupIF[] groups = pm.getGroups(); ChannelGroupIF group = getGroupByName(groups,groupName); if(group==null){ log.debug("create group"); group = pm.createGroup(groupName); }else{ if(!group.getAll().isEmpty()){ //The group has a channel at least. //Note: The channel and group <<updates>> are not working //Solution so far: Delete the channel and save it again Channel channel2 = (Channel) group.getAll().iterator().next(); log.debug("DELETING CHANNEL " + channel2.getTitle()); pm.deleteChannel(channel2); for (Iterator it = channel2.getItems().iterator(); it.hasNext();) { Item item = (Item) it.next(); log.debug("DELETING ITEM " + item.getTitle()); pm.deleteItem(item); } } } channel.setId(tempChannel.getId()); log.debug("update channel"); pm.updateChannel(channel); log.debug("add channel"); pm.addChannelToGroup(channel,group); return channel; } catch (MalformedURLException e) { throw new RSSReaderException("Malformed URL. While reading: "+rssUrl,e); } catch (IOException e) { throw new RSSReaderException("I/O Exception. While reading: "+rssUrl,e); } catch (ParseException e) { throw new RSSReaderException("Unable to parse RSS feed. While reading: "+rssUrl,e); } catch (HibernateException e){ throw new RSSReaderException("Unable to persist parsed feeds. While reading: "+rssUrl,e); } catch (PersistenceManagerException e) { throw new RSSReaderException("Unable to add channel to group. While reading: "+rssUrl,e); }catch (Exception e) { throw new RSSReaderException("Unexpected error while trying to read the rss: "+rssUrl,e); } finally{ try{ if (get != null) { get.releaseConnection(); log.debug(rssUrl + " connection released"); } }catch (Exception e){ log.warn("Error while trying to release de connection, while reading: "+rssUrl,e); } } } private ChannelGroupIF getGroupByName(ChannelGroupIF[] groups, String groupName) { for (int i = 0; i < groups.length; i++) { if(groupName.equals(groups[i].getTitle())){ return groups[i]; } } return null; } public boolean isProxyEnable() { return proxyEnable; } public void setProxyEnable(boolean proxyEnable) { this.proxyEnable = proxyEnable; } public String getProxyHost() { return proxyHost; } public void setProxyHost(String proxyHost) { this.proxyHost = proxyHost; } public int getProxyPort() { return proxyPort; } public void setProxyPort(int proxyPort) { this.proxyPort = proxyPort; } } _____ From: Jimena Garbarino [mailto:jim...@gl...] Sent: Tuesday, December 04, 2007 3:58 PM To: 'inf...@li...' Subject: hibernate2 and informa - unclosed connection I'm executing the readInto method of the attached class and I'm getting the following log lines: 04 Dec 2007 14:33:46,177 WARN [.sf.hibernate.impl.SessionImpl:3444] finalizing unclosed session with closed connection 04 Dec 2007 14:33:46,177 WARN [.sf.hibernate.impl.SessionImpl:3447] unclosed connection, forgot to call close() on your session? Can you tell me if I'm missusing the library or what can be the problem? <http://www.globant.com/> Jimena Garbarino Java SSr. Developer +54 11 4109 1700 INT 8143 <mailto:gas...@gl...> jim...@gl... |
From: Jimena G. <jim...@gl...> - 2007-12-04 18:53:36
|
I'm executing the readInto method of the attached class and I'm getting the following log lines: 04 Dec 2007 14:33:46,177 WARN [.sf.hibernate.impl.SessionImpl:3444] finalizing unclosed session with closed connection 04 Dec 2007 14:33:46,177 WARN [.sf.hibernate.impl.SessionImpl:3447] unclosed connection, forgot to call close() on your session? Can you tell me if I'm missusing the library or what can be the problem? <http://www.globant.com/> Jimena Garbarino Java SSr. Developer +54 11 4109 1700 INT 8143 <mailto:gas...@gl...> jim...@gl... |
From: Qiang Y. <qi...@gm...> - 2007-09-17 22:11:32
|
Hello all, I made the following program to test the poller module in the 0.7.0 and have nothing printed. The program itself is quite straightforward. Did I miss anything? Thanks! ==================================================================== Poller poller = new Poller(); poller.addObserver(new PollerObserverIF(){ public void itemFound(ItemIF item, ChannelIF arg1) { // //For each item found, print its title //but nothing is printed????!!!! // System.out.println( item.getTitle()); } //.....other PollerObserverIF interface functions }); ChannelIF c = FeedParser.parse(new ChannelBuilder(), " http://osnews.com/files/recent.xml"); poller.registerChannel(c); ================================================================== |
From: Niko S. <ni...@na...> - 2007-07-03 06:18:16
|
Hi Nilesh, I agree that it is much more convenient to have the sources included =20 right into the jar package, and welcome your improvements to the ant =20 file a lot. All fine from my side. Thanks again and Greetings, Niko On 02.07.2007, at 15:14, Nilesh Bansal wrote: > Hi Niko, > >> I have seen that they distribute the sources next to the jar >> file, which could mean for example: >> This way it is also quite easy to attach the source files to your =20 >> Eclipse >> IDE, and you have a bit smaller jar for including in your own =20 >> project. >> >> Let me know what you think? > > I think it is better to distribute the src file then not distributing > it at all. But in my opinion, having a single jar containing the > source is most convenient. I don't think 200K in todays world > contributes a lot to download time (unless one is writing a java > applet or web start application). > > Consider a typical project using10-15 libs. A new developer when > setting up the IDE just checks out all the sources from project > repository along with 10-15 associated jar files and adds them to the > Eclipse build path. If the jars contain sources, thats it (no more > work required). Otherwise the developer has to attach manually source > zip file to each of the used libraries. > > So I think what we have now for Informa is best. Let me know what =20 > others think. > > thanks > Nilesh > >> >> On Sun, July 1, 2007 20:52, Nilesh Bansal said: >>> Hi all, >>> >>> I have modified the build file to create two jar files. Also the =20 >>> build >>> system now creates a small manifest file for the jar with version >>> information. Take a look and let me know if there are any >>> errors/problems. >>> >>> thanks >>> Nilesh >>> >>> On 7/1/07, =CDtalo Borssatto <it...@gm...> wrote: >>>> On 7/1/07, Nilesh Bansal <nil...@gm...> wrote: >>>>> I think the increase in size does not affect the >>>>> performance of desktop applications (please correct me if I am =20 >>>>> wrong). >>>> >>>> Yes, the performance is not affected after loading the application. >>>> Download time (applets, webstart, etc) and JVM load time (by =20 >>>> reading a >>>> bigger file) are affected. >>>> >>>>>> solution is to have 2 distributions: with and without code. >>>>> This may be a good option. >>>> >>>> Good! I agree! :-) >> >> >> > > > --=20 > Nilesh Bansal. > http://queens.db.toronto.edu/~nilesh/ > ----------------------------------------------------------------------=20= > --- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Informa-developer mailing list > Inf...@li... > https://lists.sourceforge.net/lists/listinfo/informa-developer Niko Schmuck ni...@na... |
From: Nilesh B. <nil...@gm...> - 2007-07-02 13:14:37
|
SGkgTmlrbywKCj4gSSBoYXZlIHNlZW4gdGhhdCB0aGV5IGRpc3RyaWJ1dGUgdGhlIHNvdXJjZXMg bmV4dCB0byB0aGUgamFyCj4gZmlsZSwgd2hpY2ggY291bGQgbWVhbiBmb3IgZXhhbXBsZToKPiBU aGlzIHdheSBpdCBpcyBhbHNvIHF1aXRlIGVhc3kgdG8gYXR0YWNoIHRoZSBzb3VyY2UgZmlsZXMg dG8geW91ciBFY2xpcHNlCj4gSURFLCBhbmQgeW91IGhhdmUgYSBiaXQgc21hbGxlciBqYXIgZm9y IGluY2x1ZGluZyBpbiB5b3VyIG93biBwcm9qZWN0Lgo+Cj4gTGV0IG1lIGtub3cgd2hhdCB5b3Ug dGhpbms/CgpJIHRoaW5rIGl0IGlzIGJldHRlciB0byBkaXN0cmlidXRlIHRoZSBzcmMgZmlsZSB0 aGVuIG5vdCBkaXN0cmlidXRpbmcKaXQgYXQgYWxsLiBCdXQgaW4gbXkgb3BpbmlvbiwgaGF2aW5n IGEgc2luZ2xlIGphciBjb250YWluaW5nIHRoZQpzb3VyY2UgaXMgbW9zdCBjb252ZW5pZW50LiBJ IGRvbid0IHRoaW5rIDIwMEsgaW4gdG9kYXlzIHdvcmxkCmNvbnRyaWJ1dGVzIGEgbG90IHRvIGRv d25sb2FkIHRpbWUgKHVubGVzcyBvbmUgaXMgd3JpdGluZyBhIGphdmEKYXBwbGV0IG9yIHdlYiBz dGFydCBhcHBsaWNhdGlvbikuCgpDb25zaWRlciBhIHR5cGljYWwgcHJvamVjdCB1c2luZzEwLTE1 IGxpYnMuIEEgbmV3IGRldmVsb3BlciB3aGVuCnNldHRpbmcgdXAgdGhlIElERSBqdXN0IGNoZWNr cyBvdXQgYWxsIHRoZSBzb3VyY2VzIGZyb20gcHJvamVjdApyZXBvc2l0b3J5IGFsb25nIHdpdGgg MTAtMTUgYXNzb2NpYXRlZCBqYXIgZmlsZXMgYW5kIGFkZHMgdGhlbSB0byB0aGUKRWNsaXBzZSBi dWlsZCBwYXRoLiBJZiB0aGUgamFycyBjb250YWluIHNvdXJjZXMsIHRoYXRzIGl0IChubyBtb3Jl CndvcmsgcmVxdWlyZWQpLiBPdGhlcndpc2UgdGhlIGRldmVsb3BlciBoYXMgdG8gYXR0YWNoIG1h bnVhbGx5IHNvdXJjZQp6aXAgZmlsZSB0byBlYWNoIG9mIHRoZSB1c2VkIGxpYnJhcmllcy4KClNv IEkgdGhpbmsgd2hhdCB3ZSBoYXZlIG5vdyBmb3IgSW5mb3JtYSBpcyBiZXN0LiBMZXQgbWUga25v dyB3aGF0IG90aGVycyB0aGluay4KCnRoYW5rcwpOaWxlc2gKCj4KPiBPbiBTdW4sIEp1bHkgMSwg MjAwNyAyMDo1MiwgTmlsZXNoIEJhbnNhbCBzYWlkOgo+ID4gSGkgYWxsLAo+ID4KPiA+IEkgaGF2 ZSBtb2RpZmllZCB0aGUgYnVpbGQgZmlsZSB0byBjcmVhdGUgdHdvIGphciBmaWxlcy4gQWxzbyB0 aGUgYnVpbGQKPiA+IHN5c3RlbSBub3cgY3JlYXRlcyBhIHNtYWxsIG1hbmlmZXN0IGZpbGUgZm9y IHRoZSBqYXIgd2l0aCB2ZXJzaW9uCj4gPiBpbmZvcm1hdGlvbi4gVGFrZSBhIGxvb2sgYW5kIGxl dCBtZSBrbm93IGlmIHRoZXJlIGFyZSBhbnkKPiA+IGVycm9ycy9wcm9ibGVtcy4KPiA+Cj4gPiB0 aGFua3MKPiA+IE5pbGVzaAo+ID4KPiA+IE9uIDcvMS8wNywgw410YWxvIEJvcnNzYXR0byA8aXRh bG9iYkBnbWFpbC5jb20+IHdyb3RlOgo+ID4+IE9uIDcvMS8wNywgTmlsZXNoIEJhbnNhbCA8bmls ZXNoYmFuc2FsQGdtYWlsLmNvbT4gd3JvdGU6Cj4gPj4gPiBJIHRoaW5rIHRoZSBpbmNyZWFzZSBp biBzaXplIGRvZXMgbm90IGFmZmVjdCB0aGUKPiA+PiA+IHBlcmZvcm1hbmNlIG9mIGRlc2t0b3Ag YXBwbGljYXRpb25zIChwbGVhc2UgY29ycmVjdCBtZSBpZiBJIGFtIHdyb25nKS4KPiA+Pgo+ID4+ IFllcywgdGhlIHBlcmZvcm1hbmNlIGlzIG5vdCBhZmZlY3RlZCBhZnRlciBsb2FkaW5nIHRoZSBh cHBsaWNhdGlvbi4KPiA+PiBEb3dubG9hZCB0aW1lIChhcHBsZXRzLCB3ZWJzdGFydCwgZXRjKSBh bmQgSlZNIGxvYWQgdGltZSAoYnkgcmVhZGluZyBhCj4gPj4gYmlnZ2VyIGZpbGUpIGFyZSBhZmZl Y3RlZC4KPiA+Pgo+ID4+ID4gPiBzb2x1dGlvbiBpcyB0byBoYXZlIDIgZGlzdHJpYnV0aW9uczog d2l0aCBhbmQgd2l0aG91dCBjb2RlLgo+ID4+ID4gVGhpcyBtYXkgYmUgYSBnb29kIG9wdGlvbi4K PiA+Pgo+ID4+IEdvb2QhIEkgYWdyZWUhIDotKQo+Cj4KPgoKCi0tIApOaWxlc2ggQmFuc2FsLgpo dHRwOi8vcXVlZW5zLmRiLnRvcm9udG8uZWR1L35uaWxlc2gvCg== |
From: Niko S. <ni...@na...> - 2007-07-02 11:40:58
|
Hi Nilesh, and all, Thanks for extending Informa's build file, great that we have finally a Manifest :-) The notion of distributing a source jar is also nice. In the Jakarta commons world I have seen that they distribute the sources next to the jar file, which could mean for example: * informa-0.7.1.jar * informa-0.7.1-src.zip This way it is also quite easy to attach the source files to your Eclipse IDE, and you have a bit smaller jar for including in your own project. Let me know what you think? Cheers, Niko On Sun, July 1, 2007 20:52, Nilesh Bansal said: > Hi all, > > I have modified the build file to create two jar files. Also the build > system now creates a small manifest file for the jar with version > information. Take a look and let me know if there are any > errors/problems. > > thanks > Nilesh > > On 7/1/07, Ãtalo Borssatto <it...@gm...> wrote: >> On 7/1/07, Nilesh Bansal <nil...@gm...> wrote: >> > I think the increase in size does not affect the >> > performance of desktop applications (please correct me if I am wrong). >> >> Yes, the performance is not affected after loading the application. >> Download time (applets, webstart, etc) and JVM load time (by reading a >> bigger file) are affected. >> >> > > solution is to have 2 distributions: with and without code. >> > This may be a good option. >> >> Good! I agree! :-) |
From: Nilesh B. <nil...@gm...> - 2007-07-01 18:52:42
|
SGkgYWxsLAoKSSBoYXZlIG1vZGlmaWVkIHRoZSBidWlsZCBmaWxlIHRvIGNyZWF0ZSB0d28gamFy IGZpbGVzLiBBbHNvIHRoZSBidWlsZApzeXN0ZW0gbm93IGNyZWF0ZXMgYSBzbWFsbCBtYW5pZmVz dCBmaWxlIGZvciB0aGUgamFyIHdpdGggdmVyc2lvbgppbmZvcm1hdGlvbi4gVGFrZSBhIGxvb2sg YW5kIGxldCBtZSBrbm93IGlmIHRoZXJlIGFyZSBhbnkKZXJyb3JzL3Byb2JsZW1zLgoKdGhhbmtz Ck5pbGVzaAoKT24gNy8xLzA3LCDDjXRhbG8gQm9yc3NhdHRvIDxpdGFsb2JiQGdtYWlsLmNvbT4g d3JvdGU6Cj4gT24gNy8xLzA3LCBOaWxlc2ggQmFuc2FsIDxuaWxlc2hiYW5zYWxAZ21haWwuY29t PiB3cm90ZToKPiA+IEkgdGhpbmsgdGhlIGluY3JlYXNlIGluIHNpemUgZG9lcyBub3QgYWZmZWN0 IHRoZQo+ID4gcGVyZm9ybWFuY2Ugb2YgZGVza3RvcCBhcHBsaWNhdGlvbnMgKHBsZWFzZSBjb3Jy ZWN0IG1lIGlmIEkgYW0gd3JvbmcpLgo+Cj4KPiBZZXMsIHRoZSBwZXJmb3JtYW5jZSBpcyBub3Qg YWZmZWN0ZWQgYWZ0ZXIgbG9hZGluZyB0aGUgYXBwbGljYXRpb24uCj4gRG93bmxvYWQgdGltZSAo YXBwbGV0cywgd2Vic3RhcnQsIGV0YykgYW5kIEpWTSBsb2FkIHRpbWUgKGJ5IHJlYWRpbmcgYQo+ IGJpZ2dlciBmaWxlKSBhcmUgYWZmZWN0ZWQuCj4KPgo+ID4gPiBzb2x1dGlvbiBpcyB0byBoYXZl IDIgZGlzdHJpYnV0aW9uczogd2l0aCBhbmQgd2l0aG91dCBjb2RlLgo+ID4gVGhpcyBtYXkgYmUg YSBnb29kIG9wdGlvbi4KPgo+IEdvb2QhIEkgYWdyZWUhIDotKQo+Cj4KPgo+Cj4KCgotLSAKTmls ZXNoIEJhbnNhbC4KaHR0cDovL3F1ZWVucy5kYi50b3JvbnRvLmVkdS9+bmlsZXNoLwo= |
From: <it...@gm...> - 2007-07-01 14:32:13
|
On 7/1/07, Nilesh Bansal <nil...@gm...> wrote: > > I think the increase in size does not affect the > performance of desktop applications (please correct me if I am wrong). Yes, the performance is not affected after loading the application. Download time (applets, webstart, etc) and JVM load time (by reading a bigger file) are affected. > solution is to have 2 distributions: with and without code. > This may be a good option. Good! I agree! :-) |