#!/usr/bin/env groovy /** * Read resources' data from Apache Tomcat's XML configuration and provide * a simple SQL shell prompt via STDIN/STDOUT. * * Copyright (c) 2009 Jochen Kupperschmidt <http://homework.nwsnet.de/> * Version: 15-Aug-2009 * Released under the terms of the MIT License. */ import groovy.sql.Sql /** * Get resource attributes by resource name from the named file. */ Map readResource(String filename, String name) { def map = [:] new XmlSlurper().parse(new File(filename)).GlobalNamingResources.Resource.find { it.@name.text().equals(name) }.each { map.name = it.@name.text() map.driverClassName = it.@driverClassName.text() map.username = it.@username.text() map.password = it.@password.text() map.url = it.@url.text() } return map } // Load named resource from file. def rsrc = readResource('/path/to/tomcat/conf/server.xml', 'jdbc/someName') // Load the required database adapter JAR explicitly. this.class.classLoader.rootLoader.addURL(new URL( 'file:///path/to/tomcat/common/lib/mysql-connector-java-5.0.x-bin.jar')) // Instanciate database connection. def sql = Sql.newInstance(rsrc.url, rsrc.username, rsrc.password, rsrc.driverClassName) // Provide a basic shell. Exit on an empty input line. System.in.eachLine { if (it.equals('')) { System.exit(0) } sql.eachRow(it) { println it } println() }