Subversion Repositories DevTools

Rev

Blame | Last modification | View Log | RSS feed

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.List;

import releaseManager.TeamCity;
import releaseManager.ReleaseManager;
import releaseManager.VixPackage;

public class Aggregator
{
        private static final String DB_HOST     = "auperaprm01";
        private static final String DB_PORT     = "1521";
        private static final String DB_USER     = "RM_READONLY";
        private static final String DB_PASSWORD = "RM_READONLY";                        
        private static final String DB_SERVICE  = "RELEASEM";

        /**
         * @param args - the first and only arguments should be the rtag_id as
         *               found in the Release Manager URL.
         *               E.g. java Aggregator 30083
         */
        public static void main(String[] args)
        {       
                TeamCity teamCity = new TeamCity(System.out);
                
                if (args.length < 1) {
                        teamCity.error("Please supply an rtag_id.", "No argument supplied");
                        System.exit(-1);
                }               

                String releaseVersion = args[0];
                
                try
                {
                        int rtagId = Integer.parseInt(releaseVersion);
                        
                        // Load ORACLE DB driver class
                        // Available at: http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html
                        // Filename: ojdbc6.jar
                        // See https://sites.google.com/a/vixtechnology.com/vixwiki/home/staff-wiki-s/richard-puchmayer/passwords-to-update
                        //     for username and password to use.
                        Class.forName("oracle.jdbc.driver.OracleDriver");
                        
                        Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@"+DB_HOST+":"+DB_PORT+":"+DB_SERVICE, DB_USER, DB_PASSWORD);
                        ReleaseManager releaseManager = new ReleaseManager(connection);
                        
                        List<VixPackage> packages = releaseManager.getTestedPackages(rtagId);
                        
                        if (packages.size() == 0)       // Cannot be null
                        {
                                teamCity.error("This project/release does not have any tests", "Release = " + releaseVersion);
                                System.exit(-1);
                        }
                        
                        teamCity.startSuite(releaseVersion);
                        for (VixPackage pkg : packages)
                        {
                                teamCity.startSuite(pkg.packageName);
                                teamCity.startSuite(pkg.packageVersion);
                                teamCity.startTest("<none>");
                                teamCity.finishTest("<none>");
                                teamCity.finishSuite(pkg.packageVersion);
                                teamCity.finishSuite(pkg.packageName);
                        }
                        teamCity.finishSuite(releaseVersion);
                }
                catch (SQLException e)
                {
                        ByteArrayOutputStream buffer = new ByteArrayOutputStream();
                        PrintStream output = new PrintStream(buffer);
                        e.printStackTrace(output);
                        teamCity.error("Could not retrieve any packages for this release: " + releaseVersion, buffer.toString());
                        System.exit(-1);
                }
                catch (ClassNotFoundException e)
                {
                        ByteArrayOutputStream buffer = new ByteArrayOutputStream();
                        PrintStream output = new PrintStream(buffer);
                        e.printStackTrace(output);
                        teamCity.error("Could not load the Oracle jdbc jar", buffer.toString());
                        System.exit(-1);
                }
                catch (NumberFormatException e)
                {
                        teamCity.error("Please supply a valid rtag_id.", "Argument: " + releaseVersion);
                        System.exit(-1);
                }
        }
}