Sha256: 61b6b6830da4e278dc0aacd60037c9c017723475b55df7a5e302a1556be279ac

Contents?: true

Size: 1.17 KB

Versions: 1

Compression:

Stored size: 1.17 KB

Contents

module Trinidad
  module Extensions
    class DbpoolWebAppExtension < WebAppExtension
      def configure(tomcat, app_context)
        jndi = @options.delete(:jndi)
        extension_name = jndi.gsub(/\//, '_')
        url = @options.delete(:url)
        url = protocol + url unless %r{^#{protocol}} =~ url
        @options[:url] = url

        resource = Trinidad::Tomcat::ContextResource.new
        resource.setAuth(@options.delete(:auth)) if @options.has_key?(:auth) 
        resource.setName(jndi)
        resource.setType("javax.sql.DataSource")
        resource.setDescription(@options.delete(:description)) if @options.has_key?(:description)

        @options.each do |key, value|
          resource.setProperty(key.to_s, value.to_s)
        end

        resource.setProperty("driverClassName", driver_name)

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

        resource_context = tomcat.addContext("/#{extension_name}", '.')
        resource_context.naming_resources.addResource(resource)
        resource_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.1.0 lib/trinidad_dbpool/webapp_extension.rb