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