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 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(""); teamCity.finishTest(""); 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); } } }