Class: Trinidad::Extensions::GenericDbpoolWebAppExtension

Inherits:
DbpoolWebAppExtension
  • Object
show all
Defined in:
lib/trinidad_generic_dbpool_extension/generic_webapp_extension.rb

Constant Summary collapse

PATH_SEPARATOR =
java.io.File::pathSeparator

Instance Method Summary collapse

Instance Method Details

#driver_nameObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/trinidad_generic_dbpool_extension/generic_webapp_extension.rb', line 27

def driver_name
  return @driver_name if defined? @driver_name
  driver_path.find do |path|
    path = java.io.File.new(path).absolute_path
    if File.exist?(path)
      url = java.net.URL.new "jar:file://#{path}!/META-INF/services/java.sql.Driver"
      begin
        reader = java.io.InputStreamReader.new( url.openStream )
        return @driver_name = java.io.BufferedReader.new( reader ).readLine
      rescue java.io.FileNotFoundException
        false
      end
    end
  end
  @driver_name = nil
end

#driver_path(first = nil) ⇒ Object



7
8
9
10
# File 'lib/trinidad_generic_dbpool_extension/generic_webapp_extension.rb', line 7

def driver_path(first = nil)
  path = @driver_path || []
  first ? path.first : path
end

#driver_path=(path) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/trinidad_generic_dbpool_extension/generic_webapp_extension.rb', line 12

def driver_path=(path)
  path = ( path || '' ).split(PATH_SEPARATOR)
  path.map! do |jar|
    jars = Dir.glob(jar)
    if jars.empty? # normalize .jar ext
      jar = "#{jar}.jar" if jar[-4..-1] != '.jar'
      jar
    else
      jars
    end
  end
  path.flatten!
  @driver_path = path
end

#protocolObject



44
45
46
# File 'lib/trinidad_generic_dbpool_extension/generic_webapp_extension.rb', line 44

def protocol
  'jdbc:'
end