Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def configure_jdbc
- driver = @config[:driver].to_s
- user = @config[:username].to_s
- pass = @config[:password].to_s
- url = @config[:url].to_s
- unless driver && url
- raise ArgumentError, "jdbc adapter requires driver class and url"
- end
- if driver =~ /mysql/i
- div = url =~ /\?/ ? '&' : '?'
- url = "#{url}#{div}zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false"
- @config[:url] = url
- end
- JdbcDriver.load(driver)
- info = java.util.Properties.new;
- info.put("user", user)
- info.put("password", pass)
- require 'jruby'
- require 'java'
- rubycl = JRuby.runtime.getJRubyClassLoader
- =begin
- params = java.lang.Class[3].new
- params[0] = java.lang.Class.forName('java.lang.String')
- params[1] = java.lang.Class.forName('java.util.Properties')
- params[2] = java.lang.Class.forName('java.lang.ClassLoader')
- method = Jdbc::DriverManager.java_class.declared_method('getConnection', params)
- =end
- methods = Jdbc::DriverManager.java_class.declared_class_methods.find_all { |m| m.name == 'getConnection' }
- # HACK: since we can't get the direct lookup of the method above
- method = methods[3]
- method.accessible = true
- low_level_con = method.invoke_static(java.lang.String.new(url).java_object, info.java_object, rubycl.java_object)
- set_connection ::Java.java_to_ruby(low_level_con)
- #set_connection Jdbc::DriverManager.getConnection(url, user, pass)
- end
Add Comment
Please, Sign In to add comment