Sha256: b6a7b41cb1c6290ba4f3f91054e631ac76be054043097f3c69b26bf94877645f

Contents?: true

Size: 1.23 KB

Versions: 1

Compression:

Stored size: 1.23 KB

Contents

module Trinidad
  module Extensions
    class DbpoolWebAppExtension < WebAppExtension
      def configure(tomcat, app_context)
        case @options
        when Hash
          [create_resource(tomcat, app_context, @options)]
        when Array
          @options.map { |opts| create_resource tomcat, app_context, opts }
        end
      end
      
      private
      def create_resource tomcat, app_context, opts
        jndi, url = opts.delete(:jndi), opts.delete(:url)
        url = protocol + url unless %r{^#{protocol}} =~ url
        opts[:url] = url
                
        driver_name = opts.delete(:driver) || self.driver_name
        
        resource = Trinidad::Tomcat::ContextResource.new
        resource.set_auth(opts.delete(:auth)) if opts.has_key?(:auth)
        resource.set_description(opts.delete(:description)) if opts.has_key?(:description)
        resource.set_name(jndi)
        resource.set_type('javax.sql.DataSource')

        opts.each { |key, value| resource.set_property(key.to_s, value.to_s) }
        resource.set_property('driverClassName', driver_name)

        app_context.naming_resources.add_resource(resource)
        app_context.naming_resources = resource.naming_resources

        resource
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
trinidad_dbpool-0.4.0 lib/trinidad_dbpool/webapp_extension.rb