Search in sources :

Example 11 with SyndFeedOutput

use of com.sun.syndication.io.SyndFeedOutput in project pentaho-kettle by pentaho.

the class RssOutput method WriteToFile.

private boolean WriteToFile(String title, String link, String description, Date Pubdate, String copyright, String imageTitle, String imageDescription, String imageLink, String imageUrl, String language, String author) {
    boolean retval = false;
    try {
        // Specify Filename
        String fileName = data.filename;
        // Set channel ...
        data.feed = new SyndFeedImpl();
        if (Utils.isEmpty(meta.getVersion())) {
            data.feed.setFeedType("rss_2.0");
        } else {
            data.feed.setFeedType(meta.getVersion());
        }
        // Set encoding ...
        if (Utils.isEmpty(meta.getEncoding())) {
            data.feed.setEncoding("iso-8859-1");
        } else {
            data.feed.setEncoding(meta.getEncoding());
        }
        if (title != null) {
            data.feed.setTitle(title);
        }
        if (link != null) {
            data.feed.setLink(link);
        }
        if (description != null) {
            data.feed.setDescription(description);
        }
        if (Pubdate != null) {
            // data.dateParser.parse(Pubdate.toString()));
            data.feed.setPublishedDate(Pubdate);
        }
        // Set image ..
        if (meta.AddImage()) {
            SyndImage image = new SyndImageImpl();
            if (imageTitle != null) {
                image.setTitle(title);
            }
            if (imageLink != null) {
                image.setLink(link);
            }
            if (imageUrl != null) {
                image.setUrl(imageUrl);
            }
            if (imageDescription != null) {
                image.setDescription(imageDescription);
            }
            data.feed.setImage(image);
        }
        if (language != null) {
            data.feed.setLanguage(language);
        }
        if (copyright != null) {
            data.feed.setCopyright(copyright);
        }
        if (author != null) {
            data.feed.setAuthor(author);
        }
        // Add entries
        data.feed.setEntries(data.entries);
        Writer writer = new FileWriter(fileName);
        SyndFeedOutput output = new SyndFeedOutput();
        output.output(data.feed, writer);
        writer.close();
        if (meta.AddToResult()) {
            // Add this to the result file names...
            ResultFile resultFile = new ResultFile(ResultFile.FILE_TYPE_GENERAL, KettleVFS.getFileObject(fileName, getTransMeta()), getTransMeta().getName(), getStepname());
            resultFile.setComment("This file was created with a RSS Output step");
            addResultFile(resultFile);
        }
        if (log.isDetailed()) {
            logDetailed(BaseMessages.getString(PKG, "RssOutput.Log.CreatingFileOK", fileName));
        }
        retval = true;
    } catch (Exception e) {
        logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorCreatingFile", e.toString()));
        setErrors(1);
        retval = false;
    }
    return retval;
}
Also used : SyndImageImpl(com.sun.syndication.feed.synd.SyndImageImpl) FileWriter(java.io.FileWriter) SyndImage(com.sun.syndication.feed.synd.SyndImage) SyndFeedImpl(com.sun.syndication.feed.synd.SyndFeedImpl) SyndFeedOutput(com.sun.syndication.io.SyndFeedOutput) ResultFile(org.pentaho.di.core.ResultFile) XMLWriter(org.dom4j.io.XMLWriter) FileWriter(java.io.FileWriter) Writer(java.io.Writer) KettleException(org.pentaho.di.core.exception.KettleException) KettleStepException(org.pentaho.di.core.exception.KettleStepException)

Aggregations

SyndFeedOutput (com.sun.syndication.io.SyndFeedOutput)11 SyndFeed (com.sun.syndication.feed.synd.SyndFeed)5 SyndFeedImpl (com.sun.syndication.feed.synd.SyndFeedImpl)5 FeedException (com.sun.syndication.io.FeedException)5 SyndEntry (com.sun.syndication.feed.synd.SyndEntry)4 IOException (java.io.IOException)4 ArrayList (java.util.ArrayList)4 FileWriter (java.io.FileWriter)3 Writer (java.io.Writer)3 SyndContent (com.sun.syndication.feed.synd.SyndContent)2 SyndContentImpl (com.sun.syndication.feed.synd.SyndContentImpl)2 SyndEntryImpl (com.sun.syndication.feed.synd.SyndEntryImpl)2 SyndImageImpl (com.sun.syndication.feed.synd.SyndImageImpl)2 XWikiException (com.xpn.xwiki.XWikiException)2 OutputStreamWriter (java.io.OutputStreamWriter)2 StringWriter (java.io.StringWriter)2 Date (java.util.Date)2 FeedEntryModel (com.gitblit.models.FeedEntryModel)1 SyndCategory (com.sun.syndication.feed.synd.SyndCategory)1 SyndCategoryImpl (com.sun.syndication.feed.synd.SyndCategoryImpl)1