diff --git a/maven/jruby/src/it/j2ee_jetty_rack/.gitignore b/maven/jruby/src/it/j2ee_jetty_rack/.gitignore
new file mode 100644
index 00000000000..5fff1d9c188
--- /dev/null
+++ b/maven/jruby/src/it/j2ee_jetty_rack/.gitignore
@@ -0,0 +1 @@
+pkg
diff --git a/maven/jruby/src/it/j2ee_jetty_rack/.jrubydir b/maven/jruby/src/it/j2ee_jetty_rack/.jrubydir
new file mode 100644
index 00000000000..b02dae4d683
--- /dev/null
+++ b/maven/jruby/src/it/j2ee_jetty_rack/.jrubydir
@@ -0,0 +1,4 @@
+.
+config.ru
+gems
+specifications
\ No newline at end of file
diff --git a/maven/jruby/src/it/j2ee_jetty_rack/Mavenfile b/maven/jruby/src/it/j2ee_jetty_rack/Mavenfile
new file mode 100644
index 00000000000..f4d6832ccf1
--- /dev/null
+++ b/maven/jruby/src/it/j2ee_jetty_rack/Mavenfile
@@ -0,0 +1,80 @@
+#-*- mode: ruby -*-
+
+# it is war-file
+packaging 'war'
+
+# get jruby dependencies
+properties( 'jruby.version' => '@project.version@',
+ 'jruby.plugins.version' => '1.0.7',
+ 'project.build.sourceEncoding' => 'utf-8',
+ 'public.dir' => '${basedir}/public' )
+
+pom( 'org.jruby:jruby', '${jruby.version}' )
+
+jar( 'org.jruby.rack:jruby-rack', '1.1.18',
+ :exclusions => [ 'org.jruby:jruby-complete' ] )
+
+
+# ruby-maven will dump an equivalent pom.xml
+properties[ 'tesla.dump.pom' ] = 'pom.xml'
+
+# a gem to be used
+gem 'flickraw', '0.9.7'
+
+repository( :url => 'http://rubygems-proxy.torquebox.org/releases',
+ :id => 'rubygems-releases' )
+
+jruby_plugin :gem, :includeRubygemsInResources => true, :includeLibDirectoryInResources => true do
+ execute_goal :initialize
+end
+
+# not really needed but for completeness:
+# pack the war with that ruby-like directory layout
+plugin( :war, '2.2',
+ :warSourceDirectory => '${public.dir}' )
+
+resource :directory => '${basedir}', :includes => [ 'config.ru', '.jrubydir' ]
+
+# start jetty for the tests
+plugin( 'org.eclipse.jetty:jetty-maven-plugin', '9.1.3.v20140225',
+ :path => '/',
+ :webAppSourceDirectory => '${public.dir}',
+ :stopPort => 9999,
+ :stopKey => 'foo' ) do
+ execute_goal( 'start', :id => 'start jetty', :phase => 'pre-integration-test', :daemon => true )
+ execute_goal( 'stop', :id => 'stop jetty', :phase => 'post-integration-test' )
+end
+
+# download files during the tests
+result = nil
+execute 'download', :phase => 'integration-test' do
+ require 'open-uri'
+ result = open( 'http://localhost:8080' ).string
+ puts result
+end
+
+# verify the downloads
+execute 'check download', :phase => :verify do
+ expected = 'hello world:'
+ unless result.match( /^#{expected}/ )
+ raise "missed expected string in download: #{expected}"
+ end
+ expected = 'self: uri:classloader://config.ru'
+ unless result.match( /#{expected}/ )
+ raise "missed expected string in download: #{expected}"
+ end
+ expected = 'PWD: uri:classloader://'
+ unless result.match( /#{expected}/ )
+ raise "missed expected string in download: #{expected}"
+ end
+ expected = 'Gem.path: ."uri:classloader://",'
+ unless result.match( /#{expected}/ )
+ raise "missed expected string in download: #{expected}"
+ end
+ # TODO get rid off this over normalization
+ expected = 'uri:classloader:/gems/flickraw-0.9.7'
+ unless result.match( /#{expected}/ )
+ raise "missed expected string in download: #{expected}"
+ end
+end
+# vim: syntax=Ruby
diff --git a/maven/jruby/src/it/j2ee_jetty_rack/config.ru b/maven/jruby/src/it/j2ee_jetty_rack/config.ru
new file mode 100644
index 00000000000..f1732a912f7
--- /dev/null
+++ b/maven/jruby/src/it/j2ee_jetty_rack/config.ru
@@ -0,0 +1,19 @@
+#-*- mode: ruby -*-
+
+use Rack::ShowExceptions
+
+require 'hello_world'
+
+run lambda { |env|
+ require 'flickraw'
+ [
+ 200,
+ {
+ 'Content-Type' => 'text/html',
+ 'Cache-Control' => 'public, max-age=86400'
+ },
+ [ "self: #{__FILE__}\n", "PWD: #{Dir.pwd}\n", "Gem.path: #{Gem.path.inspect}\n", Gem.loaded_specs['flickraw'].gem_dir + "\n", HelloWorld.new + "\n" ]
+ ]
+}
+
+# vim: syntax=Ruby
diff --git a/maven/jruby/src/it/j2ee_jetty_rack/lib/hello_world.rb b/maven/jruby/src/it/j2ee_jetty_rack/lib/hello_world.rb
new file mode 100644
index 00000000000..f2c430ad256
--- /dev/null
+++ b/maven/jruby/src/it/j2ee_jetty_rack/lib/hello_world.rb
@@ -0,0 +1,7 @@
+require 'openssl'
+
+class HelloWorld < String
+ def initialize
+ super "hello world: #{OpenSSL::Random.random_bytes( 16 ).inspect}"
+ end
+end
diff --git a/maven/jruby/src/it/j2ee_jetty_rack/pom.xml b/maven/jruby/src/it/j2ee_jetty_rack/pom.xml
new file mode 100644
index 00000000000..0dcfb9eeac8
--- /dev/null
+++ b/maven/jruby/src/it/j2ee_jetty_rack/pom.xml
@@ -0,0 +1,151 @@
+
+
+ 4.0.0
+ no_group_id_given
+ j2ee_jetty_rack
+ 0.0.0
+ war
+ j2ee_jetty_rack
+
+ @project.version@
+ 1.0.7
+ pom.xml
+ ${basedir}/public
+ utf-8
+ 0.1.1
+
+
+
+ org.jruby
+ jruby
+ ${jruby.version}
+ pom
+
+
+ org.jruby.rack
+ jruby-rack
+ 1.1.18
+
+
+ jruby-complete
+ org.jruby
+
+
+
+
+ rubygems
+ flickraw
+ 0.9.7
+ gem
+
+
+
+
+ rubygems-releases
+ http://rubygems-proxy.torquebox.org/releases
+
+
+
+
+
+ ${basedir}
+
+ config.ru
+ .jrubydir
+
+
+
+
+
+ de.saumya.mojo
+ gem-maven-plugin
+ ${jruby.plugins.version}
+
+
+
+ initialize
+
+
+
+
+ true
+ true
+
+
+
+ maven-war-plugin
+ 2.2
+
+ ${public.dir}
+
+
+
+ org.eclipse.jetty
+ jetty-maven-plugin
+ 9.1.3.v20140225
+
+
+ start jetty
+ pre-integration-test
+
+ start
+
+
+ true
+
+
+
+ stop jetty
+ post-integration-test
+
+ stop
+
+
+
+
+ /
+ ${public.dir}
+ 9999
+ foo
+
+
+
+ io.tesla.polyglot
+ tesla-polyglot-maven-plugin
+ ${tesla.version}
+
+
+ download
+ integration-test
+
+ execute
+
+
+ download
+ Mavenfile
+
+
+
+ check download
+ verify
+
+ execute
+
+
+ check download
+ Mavenfile
+
+
+
+
+
+ io.tesla.polyglot
+ tesla-polyglot-ruby
+ ${tesla.version}
+
+
+
+
+
+
diff --git a/maven/jruby/src/it/j2ee_jetty_rack/public/WEB-INF/.gitignore b/maven/jruby/src/it/j2ee_jetty_rack/public/WEB-INF/.gitignore
new file mode 100644
index 00000000000..16d264c7acb
--- /dev/null
+++ b/maven/jruby/src/it/j2ee_jetty_rack/public/WEB-INF/.gitignore
@@ -0,0 +1,2 @@
+classes
+config.ru
\ No newline at end of file
diff --git a/maven/jruby/src/it/j2ee_jetty_rack/public/WEB-INF/web.xml b/maven/jruby/src/it/j2ee_jetty_rack/public/WEB-INF/web.xml
new file mode 100644
index 00000000000..b944d4b3eee
--- /dev/null
+++ b/maven/jruby/src/it/j2ee_jetty_rack/public/WEB-INF/web.xml
@@ -0,0 +1,22 @@
+
+
+
+ jruby.rack.layout_class
+ JRuby::Rack::ClassPathLayout
+
+
+
+ RackFilter
+ org.jruby.rack.RackFilter
+
+
+ RackFilter
+ /*
+
+
+
+ org.jruby.rack.RackServletContextListener
+
+