core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/editor/SimpleRSSReader.java
author dadubrow
Thu, 16 Sep 2010 17:29:37 -0500
changeset 2035 42a3ddebe583
parent 1824 7e34f628583a
permissions -rw-r--r--
Some portal tweaks
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
     1
/*
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
     3
* All rights reserved.
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
     4
* This component and the accompanying materials are made available
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
     6
* which accompanies this distribution, and is available
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
     8
*
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
     9
* Initial Contributors:
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    11
*
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    12
* Contributors:
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    13
*
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    14
* Description: 
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    15
*
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    16
*/
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    17
package com.nokia.carbide.internal.discovery.ui.editor;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    18
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    19
import java.io.IOException;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    20
import java.io.InputStream;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    21
import java.net.MalformedURLException;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    22
import java.net.URL;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    23
import java.net.URLConnection;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    24
import java.text.ParseException;
1759
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1751
diff changeset
    25
import java.text.SimpleDateFormat;
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    26
import java.util.ArrayList;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    27
import java.util.Date;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    28
import java.util.HashSet;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    29
import java.util.List;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    30
import java.util.Set;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    31
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    32
import javax.xml.parsers.ParserConfigurationException;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    33
import javax.xml.parsers.SAXParser;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    34
import javax.xml.parsers.SAXParserFactory;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    35
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    36
import org.xml.sax.Attributes;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    37
import org.xml.sax.SAXException;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    38
import org.xml.sax.helpers.DefaultHandler;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    39
1751
4a0d736ba6a0 log errors
dadubrow
parents: 1721
diff changeset
    40
import com.nokia.carbide.discovery.ui.Activator;
1824
7e34f628583a update import wizard and operation
dadubrow
parents: 1814
diff changeset
    41
import com.nokia.carbide.discovery.ui.Messages;
1751
4a0d736ba6a0 log errors
dadubrow
parents: 1721
diff changeset
    42
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    43
/**
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    44
 * A simple RSS reader
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    45
 * @see http://www.rssboard.org/rss-specification
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    46
 */
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    47
public class SimpleRSSReader {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    48
	
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    49
	public static class Rss {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    50
		private List<Channel> channels = new ArrayList<Channel>();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    51
		
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    52
		public List<Channel> getChannels() {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    53
			return channels;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    54
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    55
		
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    56
		protected void addChannel(Channel channel) {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    57
			channels.add(channel);
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    58
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    59
	}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    60
	
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    61
	public static class Container {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    62
		private String title;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    63
		private URL link;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    64
		private String description;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    65
		private Date pubDate;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    66
		private List<String> categories = new ArrayList<String>();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    67
		
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    68
		public String getTitle() {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    69
			return title;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    70
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    71
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    72
		public URL getLink() {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    73
			return link;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    74
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    75
		
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    76
		public String getDescription() {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    77
			return description;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    78
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    79
		
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    80
		public Date getPubDate() {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    81
			return pubDate;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    82
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    83
		
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    84
		public String[] getCategories() {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    85
			return (String[]) categories.toArray(new String[categories.size()]);
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    86
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    87
		
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    88
		public boolean isValid() {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    89
			return title != null && link != null && description != null;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    90
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    91
		
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    92
		protected void setField(String element, String value) {
1814
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
    93
			if (RSSHandler.TITLE.equalsIgnoreCase(element))
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    94
				title = value;
1814
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
    95
			else if (RSSHandler.LINK.equalsIgnoreCase(element)) {
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    96
				try {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    97
					link = new URL(value);
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    98
				} catch (MalformedURLException e) {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
    99
					// don't store malformed URLs
1824
7e34f628583a update import wizard and operation
dadubrow
parents: 1814
diff changeset
   100
					Activator.logError(Messages.SimpleRSSReader_BadURLError, e);
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   101
				}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   102
			}
1814
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   103
			else if (RSSHandler.DESCRIPTION.equalsIgnoreCase(element) || RSSHandler.SUMMARY.equalsIgnoreCase(element))
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   104
				description = value;
1814
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   105
			else if (RSSHandler.PUBDATE.equalsIgnoreCase(element)) {
1759
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1751
diff changeset
   106
				pubDate = parseRFC822Date(value);
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   107
			}
1814
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   108
			else if (RSSHandler.CATEGORY.equalsIgnoreCase(element))
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   109
				categories.add(value);
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   110
		}
1759
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1751
diff changeset
   111
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1751
diff changeset
   112
		private Date parseRFC822Date(String value) {
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1751
diff changeset
   113
	        SimpleDateFormat format = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z"); //$NON-NLS-1$
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1751
diff changeset
   114
	        try {
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1751
diff changeset
   115
				return format.parse(value);
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1751
diff changeset
   116
			} catch (ParseException e) {
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1751
diff changeset
   117
			}
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1751
diff changeset
   118
			return null;
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1751
diff changeset
   119
		}
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   120
	}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   121
	
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   122
	public static class Channel extends Container {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   123
		List<Item> items = new ArrayList<Item>();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   124
		
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   125
		public List<Item> getItems() {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   126
			return items;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   127
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   128
		
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   129
		protected void addItem(Item item) {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   130
			items.add(item);
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   131
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   132
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   133
		public boolean hasItems() {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   134
			return !items.isEmpty();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   135
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   136
	}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   137
	
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   138
	public static class Item extends Container {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   139
		private Channel channel;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   140
		
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   141
		public Item(Channel channel) {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   142
			this.channel = channel;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   143
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   144
		
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   145
		public Channel getChannel() {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   146
			return channel;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   147
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   148
	}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   149
	
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   150
	private static class RSSHandler extends DefaultHandler {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   151
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   152
		private static final String CHANNEL = "channel"; //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   153
		private static final String TITLE = "title"; //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   154
		private static final String LINK = "link"; //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   155
		private static final String DESCRIPTION = "description"; //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   156
		private static final String SUMMARY = "atom:summary"; //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   157
		private static final String ITEM = "item"; //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   158
		private static final String PUBDATE = "pubDate"; //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   159
		private static final String CATEGORY = "category"; //$NON-NLS-1$
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   160
		private static final Set<String> charsElements = new HashSet<String>();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   161
		static {
1814
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   162
			charsElements.add(TITLE.toLowerCase());
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   163
			charsElements.add(LINK.toLowerCase());
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   164
			charsElements.add(DESCRIPTION.toLowerCase());
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   165
			charsElements.add(SUMMARY.toLowerCase());
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   166
			charsElements.add(PUBDATE.toLowerCase());
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   167
			charsElements.add(CATEGORY.toLowerCase());
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   168
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   169
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   170
		private Channel curChannel;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   171
		private Item curItem;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   172
		private StringBuffer charsBuf;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   173
		private Rss rss;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   174
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   175
		public RSSHandler(Rss rss) {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   176
			this.rss = rss;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   177
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   178
		
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   179
		@Override
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   180
		public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
1814
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   181
			if (charsElements.contains(qName.toLowerCase())) {
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   182
				charsBuf = new StringBuffer();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   183
			}
1814
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   184
			if (CHANNEL.equalsIgnoreCase(qName)) {
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   185
				curChannel = new Channel();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   186
			}
1814
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   187
			else if (ITEM.equalsIgnoreCase(qName) && curChannel != null) {
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   188
				curItem = new Item(curChannel);
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   189
			}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   190
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   191
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   192
		@Override
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   193
		public void endElement(String uri, String localName, String qName) throws SAXException {
1814
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   194
			if (CHANNEL.equalsIgnoreCase(qName)) {
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   195
				if (curChannel != null && curChannel.isValid() && curChannel.hasItems())
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   196
					rss.addChannel(curChannel);
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   197
				curChannel = null;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   198
				curItem = null;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   199
			}
1814
837f2f0d0b21 fix some potential issues with rss layer
dadubrow
parents: 1759
diff changeset
   200
			else if (ITEM.equalsIgnoreCase(qName)) {
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   201
				if (curChannel != null && curItem != null && curItem.isValid())
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   202
					curChannel.addItem(curItem);
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   203
				curItem = null;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   204
			}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   205
			else if (charsBuf != null && curChannel != null) {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   206
				if (curItem != null)
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   207
					curItem.setField(qName, charsBuf.toString().trim());
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   208
				else
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   209
					curChannel.setField(qName, charsBuf.toString().trim());
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   210
				charsBuf = null;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   211
			} 
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   212
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   213
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   214
		@Override
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   215
		public void characters(char[] ch, int start, int length) throws SAXException {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   216
			if (charsBuf != null) {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   217
				charsBuf.append(new String(ch, start, length));
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   218
			}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   219
		}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   220
		
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   221
	}
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   222
	
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   223
	public static Rss readRSS(URL url) throws SAXException, IOException, ParserConfigurationException {
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   224
		Rss rss = new Rss();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   225
		URLConnection connection = url.openConnection();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   226
		connection.connect();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   227
		InputStream inputStream = url.openStream();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   228
		SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   229
		parser.parse(inputStream, new RSSHandler(rss));
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   230
		return rss;
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   231
	}
1759
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1751
diff changeset
   232
abac0db1cb52 parse dates and better rss handling
dadubrow
parents: 1751
diff changeset
   233
1721
18638adda547 more portal changes:
dadubrow
parents:
diff changeset
   234
}