Guys,
I have a patch to expose the ServletContext as $servlet_context in
RailsFactory. The reason this is important (to me anyways) is it is the
first step to easily enable Spring integration. Exposing the ServletContext
allows you to get to the Spring WebApplicationContext to get to Spring beans
from a Rails controller. Is it ok to check in this change? I am a
committer already but haven't checked in much so I thought I would run it by
you guys first. Also added a test case for this and updated pom to JRuby
1.0.
Thanks,
Chris Nelson
Index: /home/ccnelson/workspace/rails-integration/pom.xml
===================================================================
--- /home/ccnelson/workspace/rails-integration/pom.xml (revision 631)
+++ /home/ccnelson/workspace/rails-integration/pom.xml (working copy)
@@ -45,7 +45,7 @@
<dependency>
<groupId>org.jruby</groupId>
<artifactId>jruby-complete</artifactId>
- <version>0.9.9</version>
+ <version>1.0</version>
</dependency>
<dependency>
<groupId>bouncycastle</groupId>
Index:
/home/ccnelson/workspace/rails-integration/samples/helloworld-1.2.3/app/controllers/show_context_controller.rb
===================================================================
---
/home/ccnelson/workspace/rails-integration/samples/helloworld-1.2.3/app/controllers/show_context_controller.rb
(revision 0)
+++
/home/ccnelson/workspace/rails-integration/samples/helloworld-1.2.3/app/controllers/show_context_controller.rb
(revision 0)
@@ -0,0 +1,7 @@
+class ShowContextController < ApplicationController
+ include Java
+ import javax.servlet.ServletContext
+ def index
+ render_text $servlet_context.server_info
+ end
+end
Index:
/home/ccnelson/workspace/rails-integration/src/main/java/org/jruby/webapp/RailsFactory.java
===================================================================
---
/home/ccnelson/workspace/rails-integration/src/main/java/org/jruby/webapp/RailsFactory.java
(revision 631)
+++
/home/ccnelson/workspace/rails-integration/src/main/java/org/jruby/webapp/RailsFactory.java
(working copy)
@@ -109,6 +109,9 @@
// 9419 - ensure that ARGV is set
runtime.evalScript("ARGV ||= []");
+ // make servlet context accessible
+ runtime.defineReadonlyVariable("$servlet_context",
JavaEmbedUtils.javaToRuby(runtime, context));
+
// test Gems
try {
runtime.getLoadService().require("rubygems");
Index:
/home/ccnelson/workspace/rails-integration/src/test/java/org/jruby/webapp/RailsServletTest.java
===================================================================
---
/home/ccnelson/workspace/rails-integration/src/test/java/org/jruby/webapp/RailsServletTest.java
(revision 631)
+++
/home/ccnelson/workspace/rails-integration/src/test/java/org/jruby/webapp/RailsServletTest.java
(working copy)
@@ -47,6 +47,14 @@
WebResponse response =
client.getResponse(getContextUrl("helloworld") + "/session/list");
assertEquals("response code", 200, response.getResponseCode());
}
+
+ public void testServletContext() throws Exception
+ {
+ WebClient client = createHelloWorld();
+ WebResponse response =
client.getResponse(getContextUrl("helloworld") + "/show_context/");
+ assertEquals("response code", 200, response.getResponseCode());
+ assertTrue(response.getText().indexOf("Tomcat") != -1);
+ }
public void testSessionPost() throws Exception {
WebClient client = createHelloWorld();
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel