Diff
Added: trunk/rails-integration/plugins/spring/README (0 => 679)
--- trunk/rails-integration/plugins/spring/README (rev 0)
+++ trunk/rails-integration/plugins/spring/README 2007-07-30 22:43:15 UTC (rev 679)
@@ -0,0 +1,5 @@
+Spring
+======
+
+This plugin allows you to access Spring beans easily from within your JRuby on Rails application.
+See http://mysterycoder.blogspot.com/
\ No newline at end of file
Added: trunk/rails-integration/plugins/spring/Rakefile (0 => 679)
--- trunk/rails-integration/plugins/spring/Rakefile (rev 0)
+++ trunk/rails-integration/plugins/spring/Rakefile 2007-07-30 22:43:15 UTC (rev 679)
@@ -0,0 +1,22 @@
+require 'rake'
+require 'rake/testtask'
+require 'rake/rdoctask'
+
+desc 'Default: run unit tests.'
+task :default => :test
+
+desc 'Test the spring plugin.'
+Rake::TestTask.new(:test) do |t|
+ t.libs << 'lib'
+ t.pattern = 'test/**/*_test.rb'
+ t.verbose = true
+end
+
+desc 'Generate documentation for the spring plugin.'
+Rake::RDocTask.new(:rdoc) do |rdoc|
+ rdoc.rdoc_dir = 'rdoc'
+ rdoc.title = 'Spring'
+ rdoc.options << '--line-numbers' << '--inline-source'
+ rdoc.rdoc_files.include('README')
+ rdoc.rdoc_files.include('lib/**/*.rb')
+end
Added: trunk/rails-integration/plugins/spring/init.rb (0 => 679)
--- trunk/rails-integration/plugins/spring/init.rb (rev 0)
+++ trunk/rails-integration/plugins/spring/init.rb 2007-07-30 22:43:15 UTC (rev 679)
@@ -0,0 +1 @@
+#require 'spring'
Added: trunk/rails-integration/plugins/spring/install.rb (0 => 679)
--- trunk/rails-integration/plugins/spring/install.rb (rev 0)
+++ trunk/rails-integration/plugins/spring/install.rb 2007-07-30 22:43:15 UTC (rev 679)
@@ -0,0 +1 @@
+# Install hook code here
Added: trunk/rails-integration/plugins/spring/lib/spring.rb (0 => 679)
--- trunk/rails-integration/plugins/spring/lib/spring.rb (rev 0)
+++ trunk/rails-integration/plugins/spring/lib/spring.rb 2007-07-30 22:43:15 UTC (rev 679)
@@ -0,0 +1,28 @@
+# spring.rb
+# June 20, 2007
+#
+
+
+module Spring
+ include Java
+ import javax.servlet.ServletContext
+ import org.springframework.web.context.WebApplicationContext
+ import org.springframework.web.context.support.WebApplicationContextUtils
+
+ def spring_bean (bean)
+ class_eval "def #{bean.to_s}; application_context.get_bean(\"#{bean.to_s}\"); end;"
+ end
+
+ # dunno if there is a better way to do this. I need the spring_bean method
+ # to become a class method on the includee, but application_context needs to be
+ # a normal instance method
+ def self.included(includee)
+ includee.extend(Spring)
+ includee.class_eval do
+ def application_context
+ WebApplicationContextUtils.getWebApplicationContext($servlet_context)
+ end
+ end
+ end
+end
+
Added: trunk/rails-integration/plugins/spring/tasks/spring_tasks.rake (0 => 679)
--- trunk/rails-integration/plugins/spring/tasks/spring_tasks.rake (rev 0)
+++ trunk/rails-integration/plugins/spring/tasks/spring_tasks.rake 2007-07-30 22:43:15 UTC (rev 679)
@@ -0,0 +1,4 @@
+# desc "Explaining what the task does"
+# task :spring do
+# # Task goes here
+# end
\ No newline at end of file
Added: trunk/rails-integration/plugins/spring/test/servlet-api.jar
(Binary files differ)
Property changes on: trunk/rails-integration/plugins/spring/test/servlet-api.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/rails-integration/plugins/spring/test/spring-1.2.7.jar
(Binary files differ)
Property changes on: trunk/rails-integration/plugins/spring/test/spring-1.2.7.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/rails-integration/plugins/spring/test/spring_test.rb (0 => 679)
--- trunk/rails-integration/plugins/spring/test/spring_test.rb (rev 0)
+++ trunk/rails-integration/plugins/spring/test/spring_test.rb 2007-07-30 22:43:15 UTC (rev 679)
@@ -0,0 +1,37 @@
+require 'test/unit'
+
+require File.dirname(__FILE__ ) + '/spring-1.2.7.jar'
+require File.dirname(__FILE__ ) + '/servlet-api.jar'
+require 'spring'
+
+
+class MockContext
+ attr_accessor :app_context
+ include javax.servlet.ServletContext
+ def getAttribute(attribute)
+ @app_context
+ end
+end
+
+class MockWebContext
+ include org.springframework.web.context.WebApplicationContext
+ def getBean(bean)
+ "bar" if bean == "foo"
+ end
+end
+
+class SpringTest < Test::Unit::TestCase
+ include Spring
+
+ spring_bean :foo
+
+ def test_spring_bean
+
+ app_context = MockWebContext.new
+ mock_context = MockContext.new
+ mock_context.app_context= app_context
+ $servlet_context = mock_context
+ assert_equal "bar", foo
+ end
+
+end
Added: trunk/rails-integration/plugins/spring/uninstall.rb (0 => 679)
--- trunk/rails-integration/plugins/spring/uninstall.rb (rev 0)
+++ trunk/rails-integration/plugins/spring/uninstall.rb 2007-07-30 22:43:15 UTC (rev 679)
@@ -0,0 +1 @@
+# Uninstall hook code here