Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.sql.Connection
- import java.sql.DriverManager
- import java.sql.SQLException
- def loaders = [this.class.classLoader, Thread.currentThread().contextClassLoader]
- def changeClasspath = {cl ->
- if (cl.metaClass.respondsTo(cl, 'addURL', java.net.URL)) {
- cl.addURL(new File('.').toURI().toURL())
- def libDir = new File("libs")
- libDir.eachFile {file->
- cl.addURL(file.toURI().toURL())
- }
- }
- }
- for (cl in loaders) {
- changeClasspath(cl)
- }
- def db = [url:'jdbc:postgresql:testdb', user:'test', password:'test', driver:'org.postgresql.Driver']
- def testCl = {cl->
- def driverClass = cl.loadClass(db.driver)
- println "== cl ${cl} =="
- println "driverClass ${driverClass}"
- println "driverClass.classLoader ${driverClass.classLoader}"
- DriverManager.registerDriver(driverClass.newInstance())
- Connection c = null
- try {
- c = DriverManager.getConnection(db.url, db.user, db.password)
- println 'ok'
- } catch (SQLException e) {
- println "error ${e.getMessage()}"
- } finally {
- if (c) {
- c.close()
- }
- }
- }
- for (cl in loaders) {
- testCl(cl)
- }
- def sysCl = this.class.classLoader.systemClassLoader
- changeClasspath(sysCl)
- testCl(sysCl)
Add Comment
Please, Sign In to add comment