1 20 package org.openi.xml; 21 22 import java.io.IOException ; 23 import java.io.Writer ; 24 import java.net.MalformedURLException ; 25 import java.net.URL ; 26 27 import org.apache.log4j.Logger; 28 import org.openi.menu.Menu; 29 30 import de.nava.informa.core.ChannelBuilderIF; 31 import de.nava.informa.core.ChannelExporterIF; 32 import de.nava.informa.core.ChannelIF; 33 import de.nava.informa.core.ParseException; 34 import de.nava.informa.exporters.RSS_2_0_Exporter; 35 import de.nava.informa.impl.basic.ChannelBuilder; 36 import de.nava.informa.parsers.FeedParser; 37 38 39 44 public class RssFeedGenerator { 45 private static Logger logger = Logger.getLogger(RssFeedGenerator.class); 46 47 54 public static ChannelIF createStaticChannel() { 55 ChannelBuilderIF builder = new ChannelBuilder(); 57 ChannelIF channel = builder.createChannel("OpenI"); 58 channel.setDescription("OpenI News"); 59 channel.setLanguage("en-us"); 60 61 try { 62 channel.setSite(new URL ("http://openi.org")); 63 } catch (MalformedURLException e) { 64 logger.error(e); 65 } 66 67 try { 69 builder.createItem(channel, "Subscriber base reaches 1M", 70 "Subscriber base reaches 1M", 71 new URL ("http://demo.openi.org/openi")); 72 builder.createItem(channel, "Fresh data loaded as of Monday", 73 "Fresh data loaded as of Monday", 74 new URL ("http://demo.openi.org/openi")); 75 builder.createItem(channel, "New OpenI Features", 76 "New OpenI Features", new URL ("http://demo.openi.org/openi")); 77 } catch (MalformedURLException e) { 78 logger.error(e); 79 } 80 81 return channel; 82 } 83 84 89 public static ChannelIF createChannel(String feedUrl) { 90 ChannelIF channel = null; 91 92 try { 93 channel = FeedParser.parse(new ChannelBuilder(), feedUrl); 94 } catch (IOException e) { 95 logger.info("trouble parsing rss feed", e); 96 } catch (ParseException e) { 97 logger.info("trouble parsing rss feed", e); 98 } 99 100 return channel; 101 } 102 103 108 public static ChannelIF createChannel(Menu menu){ 109 ChannelIF channel = null; 110 111 return channel; 112 } 113 114 115 116 122 public static void exportFeed(Writer writer, ChannelIF channel) { 123 exportFeed(writer, channel, "UTF-8"); 124 } 125 126 public static void exportFeed(Writer writer, ChannelIF channel, 127 String encoding) { 128 ChannelExporterIF exp = new RSS_2_0_Exporter(writer, encoding); 130 131 try { 132 exp.write(channel); 133 } catch (IOException e) { 134 logger.error(e); 135 } 136 } 137 } 138 | Popular Tags |