Reading CruiseControl Information

/**
 *
 */
package dev.util.cruise.rss;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Iterator;

import javax.mail.MessagingException;

// ROME
import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.io.FeedException;
import com.sun.syndication.io.SyndFeedInput;
import com.sun.syndication.io.XmlReader;

/**
 * @author spannt
 *
 *         RSS FEED of Build
 *
 *         http://localhost:8080/dashboard/rss.xml
 *
 */
public class CruiseControlStatus {

    /**
     *
     * @param url
     * @return
     */
    public static String getPage(String url) {

        StringBuilder out = new StringBuilder();

        URL myUrl = null;
        try {
            myUrl = new URL(url);
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        BufferedReader in = null;
        try {
            in = new BufferedReader(new InputStreamReader(myUrl.openStream()));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        String line;

        try {
            while ((line = in.readLine()) != null)
                out.append(line).append(“n”);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        try {
            in.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return out.toString();
    }

    /**
     * @param args
     */
    @SuppressWarnings(“unchecked”)
    public static void main(String[] args) {

        boolean sendEmail = false;

        URL url = null;
        try {
            url = new URL(“http://localhost:8080/dashboard/rss.xml”);
        } catch (MalformedURLException e) {
            e.printStackTrace();

            System.exit(-1);
        }
        XmlReader reader = null;

        StringBuilder out = new StringBuilder();

        try {

            try {
                reader = new XmlReader(url);
            } catch (IOException e) {
                e.printStackTrace();
                System.exit(-1);
            }
            SyndFeed feed = new SyndFeedInput().build(reader);
            out.append(“nCruise Controlnn ” + feed.getLink()).append(“nn”);

            for (Iterator<SyndEntry> i = feed.getEntries().iterator(); i.hasNext();) {
                SyndEntry entry = (SyndEntry) i.next();

                /**
                 * <title>release passed Thu, 01 Nov 2012 15:34:37 -0400</title>
                 * <description>Build passed</description> <pubDate>Thu, 01 Nov
                 * 2012 15:34:37 -0400</pubDate>
                 * <link>http://localhost:8080/dashboard
                 * /tab/build/detail/release</link>
                 */
                if (entry.getTitle() != null
                        && entry.getTitle().contains(“CASS FAILED”)) {
                    sendEmail = true;
                    out.append(entry.getTitle() + “<br>n”
                            + entry.getDescription().getValue() + “<br>n”
                            + entry.getPublishedDate() + “<br>n”
                            + entry.getLink() + “<br><br>nn”);
                }
            }

            if (sendEmail) {
                // get page
                out.append(“nn”).append(
                        getPage(“http://localhost:8080/dashboard/tab/builds”));

                GoogleMail mail = new GoogleMail();
                String[] recipients = { “tim.spann@devland.dev” };
                try {
                    mail.sendSSLMessage(recipients, “Build Notification”,
                            out.toString(), “tim.spann@devland.dev”);
                } catch (MessagingException e) {
                    e.printStackTrace();
                }
            }

        } catch (IllegalArgumentException | FeedException e) {
            e.printStackTrace();
        } finally {
            if (reader != null)
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
        }
    }
}

 

Written By bunkertor

Leave a Reply

Your email address will not be published. Required fields are marked *