in modules/core/src/main/java/org/apache/savan/atom/AtomDataSource.java [140:180]
public OMElement getFeedAsXml(String feedId) throws SavanException {
try {
Connection connection = getConnection();
try {
PreparedStatement statement = connection.prepareStatement(SQL_GET_FEED_DATA);
statement.setString(1, feedId);
ResultSet results = statement.executeQuery();
if (results.next()) {
String title = results.getString("title");
Timestamp updatedTime = results.getTimestamp("updated");
String author = results.getString("author");
Feed feed = new Feed(title, feedId, author, updatedTime);
statement.close();
statement = connection.prepareStatement(SQL_GET_ENTRIES_4_FEED);
statement.setString(1, feedId);
results = statement.executeQuery();
while (results.next()) {
String entryAsStr = results.getString("content");
InputStream atomIn = new ByteArrayInputStream(entryAsStr.getBytes());
XMLStreamReader xmlreader = StAXUtils.createXMLStreamReader(atomIn,
MessageContext.DEFAULT_CHAR_SET_ENCODING);
StAXBuilder builder = new StAXOMBuilder(feed.getFactory(), xmlreader);
feed.addEntry(builder.getDocumentElement());
}
return feed.getFeedAsXml();
} else {
throw new SavanException("No such feed " + feedId);
}
} finally {
connection.close();
}
} catch (SQLException e) {
throw new SavanException(e);
} catch (XMLStreamException e) {
throw new SavanException(e);
}
}