Title: [450] trunk/rails-integration/plugins/war-snapshot/lib: 9999 - Configuration required for getting JNDI datasources
Revision
450
Author
tantalon
Date
2007-04-11 02:56:22 -0400 (Wed, 11 Apr 2007)

Log Message

9999 - Configuration required for getting JNDI datasources

Modified Paths


Diff

Modified: trunk/rails-integration/plugins/war-snapshot/lib/create_war.rb (449 => 450)


--- trunk/rails-integration/plugins/war-snapshot/lib/create_war.rb	2007-04-10 08:15:30 UTC (rev 449)
+++ trunk/rails-integration/plugins/war-snapshot/lib/create_war.rb	2007-04-11 06:56:22 UTC (rev 450)
@@ -125,6 +125,14 @@
   <url-pattern>/</url-pattern>
 </servlet-mapping>
 
+<% if config.datasource_jndi %>
+<resource-ref>
+  <res-ref-name><%= config.datasource_jndi_name %></res-ref-name>
+  <res-type>javax.sql.DataSource</res-type>
+  <res-auth>Container</res-auth>
+</resource-ref>
+<% end %>
+
 </web-app>
 END_OF_WEB_INF
 

Modified: trunk/rails-integration/plugins/war-snapshot/lib/run.rb (449 => 450)


--- trunk/rails-integration/plugins/war-snapshot/lib/run.rb	2007-04-10 08:15:30 UTC (rev 449)
+++ trunk/rails-integration/plugins/war-snapshot/lib/run.rb	2007-04-11 06:56:22 UTC (rev 450)
@@ -80,20 +80,29 @@
     </Call>
     
     <Set name="handlers">
-         <Array type="org.mortbay.jetty.Handler">
-           <Item>
-             <New class="org.mortbay.jetty.webapp.WebAppContext">
-               <Arg><%= config.staging %></Arg>
-               <Arg>/<%= config.name %></Arg>
-             </New>
-           </Item>
-           <Item>
-             <New id="DefaultHandler" class="org.mortbay.jetty.handler.DefaultHandler"/>
-           </Item>
-           <Item>
-             <New id="RequestLog" class="org.mortbay.jetty.handler.RequestLogHandler"/>
-           </Item>
-         </Array>
+      <Array type="org.mortbay.jetty.Handler">
+        <Item>
+          <New class="org.mortbay.jetty.webapp.WebAppContext">
+            <Arg><%= config.staging %></Arg>
+            <Arg>/<%= config.name %></Arg>
+            <Set name="ConfigurationClasses">
+              <Array id="plusConfig" type="java.lang.String">
+                <Item>org.mortbay.jetty.webapp.WebInfConfiguration</Item>
+                <Item>org.mortbay.jetty.plus.webapp.EnvConfiguration</Item>
+                <Item>org.mortbay.jetty.plus.webapp.Configuration</Item>
+                <Item>org.mortbay.jetty.webapp.JettyWebXmlConfiguration</Item>
+                <Item>org.mortbay.jetty.webapp.TagLibConfiguration</Item>
+              </Array>
+            </Set>
+          </New>
+        </Item>
+        <Item>
+          <New id="DefaultHandler" class="org.mortbay.jetty.handler.DefaultHandler"/>
+        </Item>
+        <Item>
+          <New id="RequestLog" class="org.mortbay.jetty.handler.RequestLogHandler"/>
+        </Item>
+      </Array>
     </Set>
 
     <Ref id="RequestLog">

Modified: trunk/rails-integration/plugins/war-snapshot/lib/war_config.rb (449 => 450)


--- trunk/rails-integration/plugins/war-snapshot/lib/war_config.rb	2007-04-10 08:15:30 UTC (rev 449)
+++ trunk/rails-integration/plugins/war-snapshot/lib/war_config.rb	2007-04-11 06:56:22 UTC (rev 450)
@@ -16,6 +16,9 @@
     attr_accessor :local_java_lib
     # servlet to use for running Rails
     attr_accessor :servlet
+    # enable jndi support?
+    attr_accessor :datasource_jndi
+    attr_accessor :datasource_jndi_name
 
     # external locations
     attr_accessor :jruby_home
@@ -57,6 +60,7 @@
       @add_gem_dependencies = true
       @servlet = 'org.jruby.webapp.RailsServlet'
       @rails_env = 'production'
+      @datasource_jndi = false
 
       home = ENV['HOME'] || ENV['USERPROFILE']
       @jruby_home = ENV['JRUBY_HOME']
@@ -87,7 +91,9 @@
       add_jetty_library(maven_library('org.mortbay.jetty', 'jetty', '6.1.1'))
       add_jetty_library(maven_library('org.mortbay.jetty', 'jetty-util', '6.1.1'))
       add_jetty_library(maven_library('org.mortbay.jetty', 'servlet-api-2.5', '6.1.1'))
-
+      add_jetty_library(maven_library('org.mortbay.jetty', 'jetty-plus', '6.1.1'))
+      add_jetty_library(maven_library('org.mortbay.jetty', 'jetty-naming', '6.1.1'))
+      
       # separators
       if RUBY_PLATFORM =~ /(mswin)|(cygwin)/i # watch out for darwin
         @os_separator = '\\'
@@ -105,6 +111,10 @@
 
     end # initialize
 
+    def datasource_jndi_name
+      @datasource_jndi_name || "jdbc/#{name}"
+    end
+
     # Get the rails version from environment.rb, or default to the latest version
     # This can be overriden by using add_gem 'rails', ...
     def rails_version
@@ -235,6 +245,20 @@
           @result.add_gem(val[0], val[1])
       end
 
+      def datasource_jndi(*val)
+        puts "Warning: property 'datasource_jndi' takes only one argument" if val.size > 1
+        unless is_either_true_or_false?(val[0])
+          puts "Warning: property 'datasource_jndi' must be either true or false"
+          return
+        end
+        @result.datasource_jndi = val[0]
+      end
+
+      def datasource_jndi_name(*val)
+          puts "Warning: datasource_jndi_name takes at most one argument" if val.size > 1
+          @result.datasource_jndi_name = val[0]
+      end
+
       # method hook for library property
       def include_library(name, properties)
         if properties == nil or properties[:version] == nil or properties[:locations] == nil
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel

Reply via email to