Sha256: 90617a1a606cc40311909129721f3f112a57ef7279780dcd9399a81bbb517010

Contents?: true

Size: 1.03 KB

Versions: 1

Compression:

Stored size: 1.03 KB

Contents

module ActiveRecord
  module ConnectionAdapters
    
    module JdbcConnectionPoolCallbacks
      
      def self.included(base)
        if base.respond_to?(:set_callback) # Rails 3 callbacks
          base.set_callback :checkin, :after, :on_checkin
          base.set_callback :checkout, :before, :on_checkout
        else
          base.checkin :on_checkin
          base.checkout :on_checkout
        end
      end

      def on_checkin
        # default implementation does nothing
      end

      def on_checkout
        # default implementation does nothing
      end
      
    end

    module JndiConnectionPoolCallbacks
      
      def self.prepare(adapter, connection)
        if adapter.is_a?(JdbcConnectionPoolCallbacks) && connection.jndi?
          adapter.extend self # extend JndiConnectionPoolCallbacks
          connection.disconnect! # disconnect initial (JNDI) connection if any
        end
      end

      def on_checkin
        disconnect!
      end

      def on_checkout
        reconnect!
      end
    end
    
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
activerecord-jdbc-adapter-1.3.0.beta2 lib/arjdbc/jdbc/callbacks.rb