warbler 1.4.3 → 1.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/History.txt +11 -0
- data/README.rdoc +1 -1
- data/ext/WarMain.java +11 -8
- data/integration/pom.xml +3 -6
- data/lib/warbler/config.rb +5 -0
- data/lib/warbler/jar.rb +75 -13
- data/lib/warbler/traits.rb +5 -0
- data/lib/warbler/traits/jar.rb +1 -2
- data/lib/warbler/traits/jbundler.rb +4 -5
- data/lib/warbler/traits/war.rb +18 -7
- data/lib/warbler/version.rb +1 -1
- data/lib/warbler_jar.jar +0 -0
- data/pom.xml +1 -1
- data/spec/spec_helper.rb +3 -3
- data/spec/warbler/application_spec.rb +4 -4
- data/spec/warbler/bundler_spec.rb +9 -3
- data/spec/warbler/config_spec.rb +2 -2
- data/spec/warbler/jar_spec.rb +59 -2
- data/spec/warbler/jbundler_spec.rb +1 -1
- data/spec/warbler/task_spec.rb +12 -12
- data/warble.rb +10 -3
- data/warbler.gemspec +4 -6
- data/web.xml.erb +2 -0
- metadata +8 -9
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 98d05a82e2e4f5ccfc47ffc014a1b4baf1872510
         | 
| 4 | 
            +
              data.tar.gz: 27f3d80a4e3231a1120e72a13173ebcd2cc7ce64
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 1b220ad7086cb9ceef5db6e1fc80d863e150bf0e8d6e0a5aa9cfd5b26c225f0e036a73dbb6bee9c6e774535e79c0b9112fc8a1a1e054057b9059d5831f253c67
         | 
| 7 | 
            +
              data.tar.gz: 02e5f1796a08654fe5416e20a95f5e87abef27bf3d77870dbec64233e06864ed96fd9f880d0e0184d399fa962cfa49818691d524e4da0cec2e85f99a56c0408f
         | 
    
        data/History.txt
    CHANGED
    
    | @@ -1,3 +1,14 @@ | |
| 1 | 
            +
            == 1.4.4
         | 
| 2 | 
            +
            - #271: LoadError while excute rake command with runnable .war archive
         | 
| 3 | 
            +
            - #273: filtering support with `config.move_jars_to_webinf_lib`
         | 
| 4 | 
            +
            - #270: don't swallow compiler errors with backticks
         | 
| 5 | 
            +
            - #265: Compile feature only compiles application sources (not gems)
         | 
| 6 | 
            +
            - #264: JBundler with compiled feature crashes with java.lang.ClassNotFoundException: org.jruby.Main
         | 
| 7 | 
            +
            - #269: Argument list too long
         | 
| 8 | 
            +
            - #236: Adds comment hinting at how to put a display name in web.xml.erb file.
         | 
| 9 | 
            +
            - #275: for jruby-1.7.13 we do not want to force load bouncy-castle jars
         | 
| 10 | 
            +
            - #276: unnecessary rubyzip dependency on "< 1.1"
         | 
| 11 | 
            +
             | 
| 1 12 | 
             
            == 1.4.3
         | 
| 2 13 | 
             
            - Fixed a bug w/ symlinks that was introduced around jruby-1.7.10
         | 
| 3 14 | 
             
            - #258: Bytecode version option for compiled class files
         | 
    
        data/README.rdoc
    CHANGED
    
    | @@ -238,7 +238,7 @@ itself continues to support Ruby 1.8. However, many gems are choosing | |
| 238 238 | 
             
            to drop 1.8 support; one of these gems is
         | 
| 239 239 | 
             
            {rubyzip}(https://github.com/rubyzip/rubyzip), which Warbler relies
         | 
| 240 240 | 
             
            on. If you need to use Warbler in a 1.8 environment, you will need to
         | 
| 241 | 
            -
            lock the  | 
| 241 | 
            +
            lock the <tt>rubyzip</tt> gem to a version before 1.0.0.
         | 
| 242 242 |  | 
| 243 243 | 
             
            == Troubleshooting
         | 
| 244 244 |  | 
    
        data/ext/WarMain.java
    CHANGED
    
    | @@ -308,10 +308,18 @@ public class WarMain extends JarMain { | |
| 308 308 |  | 
| 309 309 | 
             
                protected void initJRubyScriptingEnv(Object scriptingContainer, final URL[] jars) throws Exception {
         | 
| 310 310 | 
             
                    String jrubyStdlibJar = "";
         | 
| 311 | 
            +
                    String bcpkixJar = "";
         | 
| 312 | 
            +
                    String bcprovJar = "";
         | 
| 311 313 | 
             
                    for (URL url : jars) {
         | 
| 312 314 | 
             
                        if (url.toString().matches("file:/.*jruby-stdlib-.*jar")) {
         | 
| 313 315 | 
             
                            jrubyStdlibJar = url.toString();
         | 
| 314 316 | 
             
                            debug("using jruby-stdlib: " + jrubyStdlibJar);
         | 
| 317 | 
            +
                        } else if (url.toString().matches("file:/.*bcpkix-jdk15on-.*jar")) {
         | 
| 318 | 
            +
                            bcpkixJar = url.toString();
         | 
| 319 | 
            +
                            debug("using bcpkix: " + bcpkixJar);
         | 
| 320 | 
            +
                        } else if (url.toString().matches("file:/.*bcprov-jdk15on-.*jar")) {
         | 
| 321 | 
            +
                            bcprovJar = url.toString();
         | 
| 322 | 
            +
                            debug("using bcprov: " + bcprovJar);
         | 
| 315 323 | 
             
                        }
         | 
| 316 324 | 
             
                    }
         | 
| 317 325 |  | 
| @@ -322,14 +330,9 @@ public class WarMain extends JarMain { | |
| 322 330 | 
             
                        "$: << \"" + jrubyStdlibJar + "!/META-INF/jruby.home/lib/ruby/#{ruby}/site_ruby\"\n" +
         | 
| 323 331 | 
             
                        "$: << \"" + jrubyStdlibJar + "!/META-INF/jruby.home/lib/ruby/shared\"\n" +
         | 
| 324 332 | 
             
                        "$: << \"" + jrubyStdlibJar + "!/META-INF/jruby.home/lib/ruby/#{ruby}\"\n" +
         | 
| 325 | 
            -
                        "if jruby_major_version >= 1.7\n" +
         | 
| 326 | 
            -
                        "   | 
| 327 | 
            -
                        " | 
| 328 | 
            -
                        "    require 'bcprov-jdk15on-1.47.jar'\n" +
         | 
| 329 | 
            -
                        "  else\n" +
         | 
| 330 | 
            -
                        "    require 'bcpkix-jdk15on-147.jar'\n" +
         | 
| 331 | 
            -
                        "    require 'bcprov-jdk15on-147.jar'\n" +
         | 
| 332 | 
            -
                        "  end\n" +
         | 
| 333 | 
            +
                        "if jruby_major_version >= 1.7 and jruby_minor_version < 13\n" +
         | 
| 334 | 
            +
                        "  require \"" + bcpkixJar + "\".gsub('file:', '') unless \"" + bcpkixJar + "\".empty?\n" +
         | 
| 335 | 
            +
                        "  require \"" + bcprovJar + "\".gsub('file:', '') unless \"" + bcprovJar + "\".empty?\n" +
         | 
| 333 336 | 
             
                        "end");
         | 
| 334 337 |  | 
| 335 338 | 
             
                    invokeMethod(scriptingContainer, "setHomeDirectory", "classpath:/META-INF/jruby.home");
         | 
    
        data/integration/pom.xml
    CHANGED
    
    | @@ -18,9 +18,9 @@ | |
| 18 18 | 
             
              <properties>
         | 
| 19 19 | 
             
                <version.jruby-maven-plugins>1.0.0-rc</version.jruby-maven-plugins>
         | 
| 20 20 | 
             
                <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         | 
| 21 | 
            -
                <jruby.version>1.7. | 
| 21 | 
            +
                <jruby.version>1.7.13</jruby.version>
         | 
| 22 22 | 
             
                <!-- prereleased gems ARE snapshots -->
         | 
| 23 | 
            -
                <warbler.version>1.4. | 
| 23 | 
            +
                <warbler.version>1.4.4-SNAPSHOT</warbler.version>
         | 
| 24 24 | 
             
                <gem.home>${session.executionRootDirectory}/target/rubygems</gem.home>
         | 
| 25 25 | 
             
                <gem.path>${session.executionRootDirectory}/target/rubygems</gem.path>
         | 
| 26 26 | 
             
              </properties>
         | 
| @@ -146,16 +146,13 @@ | |
| 146 146 | 
             
                        <jrubyVersion>${jruby.version}</jrubyVersion>
         | 
| 147 147 | 
             
                      </configuration>
         | 
| 148 148 | 
             
                      <executions>
         | 
| 149 | 
            -
             | 
| 150 149 | 
             
                        <execution>
         | 
| 151 150 | 
             
                          <id>bundle-install</id>
         | 
| 152 | 
            -
             | 
| 153 | 
            -
            	      <goals><goal>jruby</goal></goals>
         | 
| 151 | 
            +
            	            <goals><goal>jruby</goal></goals>
         | 
| 154 152 | 
             
                          <configuration>
         | 
| 155 153 | 
             
                            <args>-C ${basedir}/src/main/ruby -S ${gem.home}/bin/bundle install</args>
         | 
| 156 154 | 
             
                          </configuration>
         | 
| 157 155 | 
             
                        </execution>
         | 
| 158 | 
            -
            	     
         | 
| 159 156 | 
             
                        <execution>
         | 
| 160 157 | 
             
                          <id>create-war</id>
         | 
| 161 158 | 
             
                          <goals><goal>jruby</goal></goals>
         | 
    
        data/lib/warbler/config.rb
    CHANGED
    
    | @@ -116,6 +116,10 @@ module Warbler | |
| 116 116 | 
             
                # compile all .rb files in the application.
         | 
| 117 117 | 
             
                attr_accessor :compiled_ruby_files
         | 
| 118 118 |  | 
| 119 | 
            +
                # Determines if ruby files in supporting gems will be compiled.
         | 
| 120 | 
            +
                # Ignored unless compile feature is used.
         | 
| 121 | 
            +
                attr_accessor :compile_gems
         | 
| 122 | 
            +
             | 
| 119 123 | 
             
                # Warbler writes an "init" file into the war at this location. JRuby-Rack and possibly other
         | 
| 120 124 | 
             
                # launchers may use this to initialize the Ruby environment.
         | 
| 121 125 | 
             
                attr_accessor :init_filename
         | 
| @@ -204,6 +208,7 @@ module Warbler | |
| 204 208 | 
             
                  @script_files      = []
         | 
| 205 209 | 
             
                  @warbler_scripts = "#{WARBLER_HOME}/lib/warbler/scripts"
         | 
| 206 210 | 
             
                  @move_jars_to_webinf_lib = false
         | 
| 211 | 
            +
                  @compile_gems      = false
         | 
| 207 212 |  | 
| 208 213 | 
             
                  before_configure
         | 
| 209 214 | 
             
                  yield self if block_given?
         | 
    
        data/lib/warbler/jar.rb
    CHANGED
    
    | @@ -36,13 +36,20 @@ module Warbler | |
| 36 36 | 
             
                end
         | 
| 37 37 |  | 
| 38 38 | 
             
                def compile(config)
         | 
| 39 | 
            +
                  find_gems_files(config)
         | 
| 39 40 | 
             
                  # Compiling all Ruby files we can find -- do we need to allow an
         | 
| 40 41 | 
             
                  # option to configure what gets compiled?
         | 
| 41 | 
            -
                  return if config.compiled_ruby_files.nil? || config.compiled_ruby_files.empty?
         | 
| 42 | 
            +
                  return if (config.compiled_ruby_files.nil? || config.compiled_ruby_files.empty?) && files.empty?
         | 
| 42 43 |  | 
| 43 | 
            -
                   | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 44 | 
            +
                  if config.compile_gems
         | 
| 45 | 
            +
                    ruby_files = gather_all_rb_files(config)
         | 
| 46 | 
            +
                    run_javac(config, ruby_files.values)
         | 
| 47 | 
            +
                    replace_compiled_ruby_files_and_gems(config, ruby_files)
         | 
| 48 | 
            +
                  else
         | 
| 49 | 
            +
                    compiled_ruby_files = config.compiled_ruby_files - config.excludes.to_a
         | 
| 50 | 
            +
                    run_javac(config, compiled_ruby_files)
         | 
| 51 | 
            +
                    replace_compiled_ruby_files(config, compiled_ruby_files)
         | 
| 52 | 
            +
                  end
         | 
| 46 53 | 
             
                end
         | 
| 47 54 |  | 
| 48 55 | 
             
                def run_javac(config, compiled_ruby_files)
         | 
| @@ -51,16 +58,20 @@ module Warbler | |
| 51 58 | 
             
                  else
         | 
| 52 59 | 
             
                    compat_version = ''
         | 
| 53 60 | 
             
                  end
         | 
| 54 | 
            -
             | 
| 55 | 
            -
                   | 
| 56 | 
            -
             | 
| 57 | 
            -
                     | 
| 58 | 
            -
             | 
| 59 | 
            -
             | 
| 61 | 
            +
             | 
| 62 | 
            +
                  compiled_ruby_files.each_slice(2500) do |slice|
         | 
| 63 | 
            +
                    # Need to use the version of JRuby in the application to compile it
         | 
| 64 | 
            +
                    javac_cmd = %Q{java -classpath #{config.java_libs.join(File::PATH_SEPARATOR)} #{java_version(config)} org.jruby.Main #{compat_version} -S jrubyc \"#{slice.join('" "')}\"}
         | 
| 65 | 
            +
                    if which('env')
         | 
| 66 | 
            +
                      system %Q{env -i #{javac_cmd}}
         | 
| 67 | 
            +
                    else
         | 
| 68 | 
            +
                      system javac_cmd
         | 
| 69 | 
            +
                    end
         | 
| 70 | 
            +
                    raise "Compile failed" if $?.exitstatus > 0
         | 
| 60 71 | 
             
                  end
         | 
| 61 | 
            -
                   | 
| 72 | 
            +
                  @compiled = true
         | 
| 62 73 | 
             
                end
         | 
| 63 | 
            -
             | 
| 74 | 
            +
             | 
| 64 75 | 
             
                def java_version(config)
         | 
| 65 76 | 
             
                  config.bytecode_version ? "-Djava.specification.version=#{config.bytecode_version}" : ''
         | 
| 66 77 | 
             
                end
         | 
| @@ -75,6 +86,55 @@ module Warbler | |
| 75 86 | 
             
                  end
         | 
| 76 87 | 
             
                end
         | 
| 77 88 |  | 
| 89 | 
            +
                def replace_compiled_ruby_files_and_gems(config, compiled_ruby_files)
         | 
| 90 | 
            +
                  # Exclude the rb files and recreate them. This
         | 
| 91 | 
            +
                  # prevents the original contents being used.
         | 
| 92 | 
            +
                  config.excludes += compiled_ruby_files.keys
         | 
| 93 | 
            +
             | 
| 94 | 
            +
                  compiled_ruby_files.each do |inside_jar, file_system_location|
         | 
| 95 | 
            +
                    # The gems are already inside the gems folder inside the jar, however when using the :gems pathmap, they will
         | 
| 96 | 
            +
                    # get put into the gems/gems folder, to prevent this we chop off the first gems folder directory
         | 
| 97 | 
            +
                    inside_jar = inside_jar.dup
         | 
| 98 | 
            +
                    if inside_jar.split(File::SEPARATOR).first == 'gems'
         | 
| 99 | 
            +
                      inside_jar = inside_jar.split(File::SEPARATOR)[1..-1].join(File::SEPARATOR)
         | 
| 100 | 
            +
                      pathmap = :gems
         | 
| 101 | 
            +
                    else
         | 
| 102 | 
            +
                      pathmap = :application
         | 
| 103 | 
            +
                    end
         | 
| 104 | 
            +
                    files[apply_pathmaps(config, inside_jar, pathmap)] = StringIO.new("load __FILE__.sub(/\.rb$/, '.class')")
         | 
| 105 | 
            +
                    files[apply_pathmaps(config, inside_jar.sub(/\.rb$/, '.class'), pathmap)] = file_system_location.sub(/\.rb$/, '.class')
         | 
| 106 | 
            +
                  end
         | 
| 107 | 
            +
                end
         | 
| 108 | 
            +
             | 
| 109 | 
            +
                #
         | 
| 110 | 
            +
                def gather_all_rb_files(config)
         | 
| 111 | 
            +
                  FileUtils.mkdir_p('tmp')
         | 
| 112 | 
            +
                  # Gather all the files in the files list and copy them to the tmp directory
         | 
| 113 | 
            +
                  gems_to_compile = files.select {|k, f| !f.is_a?(StringIO) && f =~ /\.rb$/ }
         | 
| 114 | 
            +
                  # 1.8.7 Support, convert back to hash
         | 
| 115 | 
            +
                  if gems_to_compile.is_a?(Array)
         | 
| 116 | 
            +
                    gems_to_compile = gems_to_compile.inject({}) {|h,z| h.merge!(z[0] => z[1]) }
         | 
| 117 | 
            +
                  end
         | 
| 118 | 
            +
                  gems_to_compile.each do |jar_file, rb|
         | 
| 119 | 
            +
                    FileUtils.mkdir_p(File.dirname(File.join('tmp', jar_file)))
         | 
| 120 | 
            +
                    new_rb = File.join('tmp', jar_file)
         | 
| 121 | 
            +
                    FileUtils.copy(rb, new_rb)
         | 
| 122 | 
            +
                    gems_to_compile[jar_file] = new_rb
         | 
| 123 | 
            +
                  end
         | 
| 124 | 
            +
                  # Gather all the application files which the user wrote (not dependencies)
         | 
| 125 | 
            +
                  main_files_to_compile = config.compiled_ruby_files - config.excludes.to_a
         | 
| 126 | 
            +
                  main_files_to_compile.each do |f|
         | 
| 127 | 
            +
                    FileUtils.mkdir_p(File.dirname(File.join('tmp', f)))
         | 
| 128 | 
            +
                    FileUtils.copy(f, File.join('tmp', f))
         | 
| 129 | 
            +
                  end
         | 
| 130 | 
            +
                  main_files_to_compile = main_files_to_compile.inject({}) {|h,f| h.merge!(f => f) }
         | 
| 131 | 
            +
                  files.keys.each do |k|
         | 
| 132 | 
            +
                    # Update files list to point to the temporary file
         | 
| 133 | 
            +
                    files[k] = gems_to_compile[k] || main_files_to_compile[k] || files[k]
         | 
| 134 | 
            +
                  end
         | 
| 135 | 
            +
                  main_files_to_compile.merge(gems_to_compile)
         | 
| 136 | 
            +
                end
         | 
| 137 | 
            +
             | 
| 78 138 | 
             
                # Apply the information in a Warbler::Config object in order to
         | 
| 79 139 | 
             
                # look for files to put into this war file.
         | 
| 80 140 | 
             
                def apply(config)
         | 
| @@ -133,7 +193,9 @@ module Warbler | |
| 133 193 |  | 
| 134 194 | 
             
                # Add gems to WEB-INF/gems
         | 
| 135 195 | 
             
                def find_gems_files(config)
         | 
| 136 | 
            -
                   | 
| 196 | 
            +
                  unless @compiled and config.compile_gems
         | 
| 197 | 
            +
                    config.gems.specs(config.gem_dependencies).each {|spec| find_single_gem_files(config, spec) }
         | 
| 198 | 
            +
                  end
         | 
| 137 199 | 
             
                end
         | 
| 138 200 |  | 
| 139 201 | 
             
                # Add a single gem to WEB-INF/gems
         | 
    
        data/lib/warbler/traits.rb
    CHANGED
    
    
    
        data/lib/warbler/traits/jar.rb
    CHANGED
    
    
| @@ -37,11 +37,10 @@ module Warbler | |
| 37 37 | 
             
                    else
         | 
| 38 38 | 
             
                      raise 'jbundler support needs jruby to create a local config: jruby -S jbundle install'
         | 
| 39 39 | 
             
                    end
         | 
| 40 | 
            -
                    # use only the jars from jbundler
         | 
| 41 | 
            -
                    config.java_libs | 
| 42 | 
            -
                     | 
| 43 | 
            -
             | 
| 44 | 
            -
                    end
         | 
| 40 | 
            +
                    # use only the jars from jbundler and jruby
         | 
| 41 | 
            +
                    config.java_libs += jruby_jars
         | 
| 42 | 
            +
                    config.java_libs += JBUNDLER_CLASSPATH
         | 
| 43 | 
            +
                    config.java_libs.uniq! {|lib| lib.split(File::SEPARATOR).last }
         | 
| 45 44 | 
             
                    config.init_contents << "#{config.warbler_templates}/jbundler.erb"
         | 
| 46 45 | 
             
                  end
         | 
| 47 46 | 
             
                end
         | 
    
        data/lib/warbler/traits/war.rb
    CHANGED
    
    | @@ -76,7 +76,7 @@ module Warbler | |
| 76 76 | 
             
                  def update_archive(jar)
         | 
| 77 77 | 
             
                    add_public_files(jar)
         | 
| 78 78 | 
             
                    add_webxml(jar)
         | 
| 79 | 
            -
                    move_jars_to_webinf_lib(jar | 
| 79 | 
            +
                    move_jars_to_webinf_lib(jar, config.move_jars_to_webinf_lib)
         | 
| 80 80 | 
             
                    add_runnables(jar) if config.features.include?("runnable")
         | 
| 81 81 | 
             
                    add_executables(jar) if config.features.include?("executable")
         | 
| 82 82 | 
             
                    add_gemjar(jar) if config.features.include?("gemjar")
         | 
| @@ -110,7 +110,7 @@ module Warbler | |
| 110 110 | 
             
                      jar.files["#{klass}.class"] = jar.entry_in_jar(WARBLER_JAR, "#{klass}.class")
         | 
| 111 111 | 
             
                    end
         | 
| 112 112 | 
             
                  end
         | 
| 113 | 
            -
             | 
| 113 | 
            +
             | 
| 114 114 | 
             
                  def add_executables(jar)
         | 
| 115 115 | 
             
                    webserver = WEB_SERVERS[config.webserver.to_s]
         | 
| 116 116 | 
             
                    webserver.add(jar)
         | 
| @@ -131,10 +131,21 @@ module Warbler | |
| 131 131 | 
             
                    gem_jar.create("tmp/gems.jar")
         | 
| 132 132 | 
             
                  end
         | 
| 133 133 |  | 
| 134 | 
            -
                  def move_jars_to_webinf_lib(jar)
         | 
| 135 | 
            -
                     | 
| 136 | 
            -
             | 
| 137 | 
            -
             | 
| 134 | 
            +
                  def move_jars_to_webinf_lib(jar, selector = nil)
         | 
| 135 | 
            +
                    return unless selector # default is false
         | 
| 136 | 
            +
                    selector = /.*/ if selector == true # move all if not a RegExp given
         | 
| 137 | 
            +
                    default_jars = default_jar_files.map { |file| File.basename(file) }
         | 
| 138 | 
            +
                    jar.files.keys.select { |k| k =~ /^WEB-INF\/.*\.jar$/ }.each do |k|
         | 
| 139 | 
            +
                      if k.start_with?('WEB-INF/lib/') # .jar already in WEB-INF/lib
         | 
| 140 | 
            +
                        if default_jars.include? k.sub('WEB-INF/lib/', '')
         | 
| 141 | 
            +
                          # exclude default jar (if it's not matched by selector) :
         | 
| 142 | 
            +
                          jar.files.delete(k) unless selector =~ File.basename(k)
         | 
| 143 | 
            +
                        end
         | 
| 144 | 
            +
                        next
         | 
| 145 | 
            +
                      end
         | 
| 146 | 
            +
                      next unless selector =~ File.basename(k)
         | 
| 147 | 
            +
                      name = k.sub('WEB-INF', '')[1..-1].gsub(/[\/\\]/, '-')
         | 
| 148 | 
            +
                      jar.files["WEB-INF/lib/#{name}"] = jar.files[k]
         | 
| 138 149 | 
             
                      jar.files[k] = empty_jar
         | 
| 139 150 | 
             
                    end
         | 
| 140 151 | 
             
                  end
         | 
| @@ -155,7 +166,7 @@ module Warbler | |
| 155 166 |  | 
| 156 167 | 
             
                  # Helper class for holding arbitrary config.webxml values for injecting into +web.xml+.
         | 
| 157 168 | 
             
                  class WebxmlOpenStruct < OpenStruct
         | 
| 158 | 
            -
             | 
| 169 | 
            +
             | 
| 159 170 | 
             
                    %w(java com org javax gem).each do |name|
         | 
| 160 171 | 
             
                      class_eval "def #{name}; method_missing(:#{name}); end"
         | 
| 161 172 | 
             
                    end
         | 
    
        data/lib/warbler/version.rb
    CHANGED
    
    
    
        data/lib/warbler_jar.jar
    CHANGED
    
    | Binary file | 
    
        data/pom.xml
    CHANGED
    
    | @@ -4,7 +4,7 @@ | |
| 4 4 | 
             
              <modelVersion>4.0.0</modelVersion>
         | 
| 5 5 | 
             
              <groupId>rubygems</groupId>
         | 
| 6 6 | 
             
              <artifactId>warbler</artifactId>
         | 
| 7 | 
            -
              <version>1.4. | 
| 7 | 
            +
              <version>1.4.4-SNAPSHOT</version>
         | 
| 8 8 | 
             
              <packaging>gem</packaging>
         | 
| 9 9 | 
             
              <name>Warbler chirpily constructs .war files of your Rails applications.</name>
         | 
| 10 10 | 
             
              <description>Warbler is a gem to make a Java jar or war file out of any Ruby,
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -75,7 +75,7 @@ module ExampleGroupHelpers | |
| 75 75 |  | 
| 76 76 | 
             
              def cleanup_temp_files(*except_files)
         | 
| 77 77 | 
             
                after(:each) do
         | 
| 78 | 
            -
                  FileUtils.rm_rf FileList[*(["log", ".bundle", "tmp | 
| 78 | 
            +
                  FileUtils.rm_rf FileList[*(["log", ".bundle", "tmp"] - except_files)]
         | 
| 79 79 | 
             
                  FileUtils.rm_f  FileList[*(["*.war", "*.foobar", "**/config.ru", "*web.xml*", "config/web.xml*",
         | 
| 80 80 | 
             
                                             "config/warble.rb", "file.txt", 'manifest', '*Gemfile*', 'MANIFEST.MF*', 'init.rb*',
         | 
| 81 81 | 
             
                                             '**/*.class'] - except_files)]
         | 
| @@ -94,7 +94,7 @@ module ExampleGroupHelpers | |
| 94 94 | 
             
                    ready, error = nil, nil
         | 
| 95 95 | 
             
                    300.times do # timeout 30 secs (300 * 0.1)
         | 
| 96 96 | 
             
                      begin
         | 
| 97 | 
            -
                        break if ready = drbclient.ready? | 
| 97 | 
            +
                        break if ready = drbclient.ready?
         | 
| 98 98 | 
             
                      rescue DRb::DRbConnError => e
         | 
| 99 99 | 
             
                        error = e; sleep 0.1
         | 
| 100 100 | 
             
                      end
         | 
| @@ -134,7 +134,7 @@ module ExampleGroupHelpers | |
| 134 134 | 
             
                before :each do
         | 
| 135 135 | 
             
                  webserver = double('server').as_null_object
         | 
| 136 136 | 
             
                  webserver.stub(:main_class).and_return 'WarMain.class'
         | 
| 137 | 
            -
                  webserver.stub(:add) | 
| 137 | 
            +
                  webserver.stub(:add) do |jar|
         | 
| 138 138 | 
             
                    jar.files['WEB-INF/webserver.jar'] = StringIO.new
         | 
| 139 139 | 
             
                  end
         | 
| 140 140 | 
             
                  Warbler::WEB_SERVERS['test'] = webserver
         | 
| @@ -45,10 +45,10 @@ describe Warbler::Application do | |
| 45 45 | 
             
              end
         | 
| 46 46 |  | 
| 47 47 | 
             
              it "should copy a fresh config file into place" do
         | 
| 48 | 
            -
                File.exists?("config/warble.rb").should_not  | 
| 48 | 
            +
                File.exists?("config/warble.rb").should_not be true
         | 
| 49 49 | 
             
                ARGV.unshift "config"
         | 
| 50 50 | 
             
                silence { Warbler::Application.new.run }
         | 
| 51 | 
            -
                File.exists?("config/warble.rb").should  | 
| 51 | 
            +
                File.exists?("config/warble.rb").should be true
         | 
| 52 52 | 
             
              end
         | 
| 53 53 |  | 
| 54 54 | 
             
              it "should refuse to copy over an existing config file" do
         | 
| @@ -71,13 +71,13 @@ describe Warbler::Application do | |
| 71 71 | 
             
                mkdir_p "lib/tasks/warbler"
         | 
| 72 72 | 
             
                ARGV.unshift "pluginize"
         | 
| 73 73 | 
             
                silence { Warbler::Application.new.run }
         | 
| 74 | 
            -
                File.exist?("lib/tasks/warbler/warbler.rake").should_not  | 
| 74 | 
            +
                File.exist?("lib/tasks/warbler/warbler.rake").should_not be true
         | 
| 75 75 | 
             
              end
         | 
| 76 76 |  | 
| 77 77 | 
             
              it "should define a pluginize task for adding the tasks to a Rails application" do
         | 
| 78 78 | 
             
                ARGV.unshift "pluginize"
         | 
| 79 79 | 
             
                silence { Warbler::Application.new.run }
         | 
| 80 | 
            -
                File.exist?("lib/tasks/warbler/warbler.rake").should  | 
| 80 | 
            +
                File.exist?("lib/tasks/warbler/warbler.rake").should be true
         | 
| 81 81 | 
             
              end
         | 
| 82 82 |  | 
| 83 83 | 
             
              it "should provide a means to load the project Rakefile" do
         | 
| @@ -6,6 +6,7 @@ | |
| 6 6 | 
             
            #++
         | 
| 7 7 |  | 
| 8 8 | 
             
            require File.expand_path('../../spec_helper', __FILE__)
         | 
| 9 | 
            +
            require 'open3'
         | 
| 9 10 |  | 
| 10 11 | 
             
            describe Warbler::Jar, "with Bundler" do
         | 
| 11 12 | 
             
              use_fresh_rake_application
         | 
| @@ -79,8 +80,13 @@ describe Warbler::Jar, "with Bundler" do | |
| 79 80 | 
             
                    end
         | 
| 80 81 | 
             
                    jar.apply(config)
         | 
| 81 82 | 
             
                    jar.create('foo.war')
         | 
| 82 | 
            -
                     | 
| 83 | 
            -
             | 
| 83 | 
            +
                    if RUBY_VERSION >= '1.9'
         | 
| 84 | 
            +
                      stdin, stdout, stderr, wait_thr = Open3.popen3('java -jar foo.war -S rake -T')
         | 
| 85 | 
            +
                      wait_thr.value.success?.should be(true), stderr.readlines.join
         | 
| 86 | 
            +
                    else
         | 
| 87 | 
            +
                      `java -jar foo.war -S rake -T`
         | 
| 88 | 
            +
                      $?.exitstatus.should == 0
         | 
| 89 | 
            +
                    end
         | 
| 84 90 | 
             
                  end
         | 
| 85 91 | 
             
                end
         | 
| 86 92 |  | 
| @@ -156,7 +162,7 @@ describe Warbler::Jar, "with Bundler" do | |
| 156 162 |  | 
| 157 163 | 
             
                it "includes the bundler gem" do
         | 
| 158 164 | 
             
                  jar.apply(config)
         | 
| 159 | 
            -
                  config.gems.detect{|k,v| k.name == 'bundler'}.should_not  | 
| 165 | 
            +
                  config.gems.detect{|k,v| k.name == 'bundler'}.should_not be nil
         | 
| 160 166 | 
             
                  file_list(/bundler-/).should_not be_empty
         | 
| 161 167 | 
             
                end
         | 
| 162 168 |  | 
    
        data/spec/warbler/config_spec.rb
    CHANGED
    
    | @@ -23,7 +23,7 @@ describe Warbler::Config do | |
| 23 23 | 
             
                  config = Warbler::Config.new
         | 
| 24 24 | 
             
                  config.includes.should be_empty
         | 
| 25 25 | 
             
                  config.jar_name.size.should > 0
         | 
| 26 | 
            -
                  config.override_gem_home.should  | 
| 26 | 
            +
                  config.override_gem_home.should be true
         | 
| 27 27 | 
             
                end
         | 
| 28 28 | 
             
              end
         | 
| 29 29 |  | 
| @@ -43,7 +43,7 @@ describe Warbler::Config do | |
| 43 43 | 
             
                  config.webxml.should be_kind_of(OpenStruct)
         | 
| 44 44 | 
             
                  config.pathmaps.should be_kind_of(OpenStruct)
         | 
| 45 45 | 
             
                  config.pathmaps.public_html.should == ["%{public/,}p"]
         | 
| 46 | 
            -
                  config.override_gem_home.should  | 
| 46 | 
            +
                  config.override_gem_home.should be true
         | 
| 47 47 | 
             
                end
         | 
| 48 48 |  | 
| 49 49 | 
             
                it "should allow configuration through an initializer block" do
         | 
    
        data/spec/warbler/jar_spec.rb
    CHANGED
    
    | @@ -176,6 +176,34 @@ describe Warbler::Jar do | |
| 176 176 | 
             
                    file_list(%r{^sample_jar/lib/sample_jar\.class$}).should be_empty
         | 
| 177 177 | 
             
                    jar.contents('sample_jar/lib/sample_jar.rb').should_not =~ /load __FILE__\.sub/
         | 
| 178 178 | 
             
                  end
         | 
| 179 | 
            +
             | 
| 180 | 
            +
                  it "compiles included gems when compile_gems is true" do
         | 
| 181 | 
            +
                    config.compile_gems = true
         | 
| 182 | 
            +
                    config.compiled_ruby_files = %w(lib/sample_jar.rb)
         | 
| 183 | 
            +
                    jar.compile(config)
         | 
| 184 | 
            +
                    jar.apply(config)
         | 
| 185 | 
            +
                    file_list(%r{sample_jar.*\.rb$}).size.should == 2
         | 
| 186 | 
            +
                    if RUBY_VERSION >= '1.9'
         | 
| 187 | 
            +
                      file_list(%r{gems.*\.class$}).size.should == 73
         | 
| 188 | 
            +
                    else
         | 
| 189 | 
            +
                      # 1.8.7 uses an older version of rubyzip and so the number of files compiled changes
         | 
| 190 | 
            +
                      file_list(%r{gems.*\.class$}).size.should == 32
         | 
| 191 | 
            +
                    end
         | 
| 192 | 
            +
                  end
         | 
| 193 | 
            +
             | 
| 194 | 
            +
                  it "does not compile included gems by default" do
         | 
| 195 | 
            +
                    config.compiled_ruby_files = %w(lib/sample_jar.rb)
         | 
| 196 | 
            +
                    jar.compile(config)
         | 
| 197 | 
            +
                    jar.apply(config)
         | 
| 198 | 
            +
                    file_list(%r{sample_jar.*\.rb$}).size.should == 2
         | 
| 199 | 
            +
                    if RUBY_VERSION >= '1.9'
         | 
| 200 | 
            +
                      file_list(%r{gems.*\.class$}).size.should == 0
         | 
| 201 | 
            +
                    else
         | 
| 202 | 
            +
                      # 1.8.7 uses an older version of rubyzip and so the number of files compiled changes
         | 
| 203 | 
            +
                      file_list(%r{gems.*\.class$}).size.should == 0
         | 
| 204 | 
            +
                    end
         | 
| 205 | 
            +
                  end
         | 
| 206 | 
            +
             | 
| 179 207 | 
             
                end
         | 
| 180 208 |  | 
| 181 209 | 
             
                context "with a gemspec without a default executable" do
         | 
| @@ -443,7 +471,7 @@ describe Warbler::Jar do | |
| 443 471 | 
             
                  mkdir_p "config"
         | 
| 444 472 | 
             
                  File.open("config/web.xml.erb", "w") {|f| f << "Hi <%= webxml.public.root %>" }
         | 
| 445 473 | 
             
                  jar.apply(config)
         | 
| 446 | 
            -
                  jar.files["WEB-INF/web.xml"].should_not  | 
| 474 | 
            +
                  jar.files["WEB-INF/web.xml"].should_not be nil
         | 
| 447 475 | 
             
                  jar.files["WEB-INF/web.xml"].read.should == "Hi /"
         | 
| 448 476 | 
             
                end
         | 
| 449 477 |  | 
| @@ -594,6 +622,36 @@ describe Warbler::Jar do | |
| 594 622 | 
             
                      file_list(%r{WEB-INF/app/sample.jar}).should_not be_empty
         | 
| 595 623 | 
             
                    end
         | 
| 596 624 | 
             
                  end
         | 
| 625 | 
            +
             | 
| 626 | 
            +
                  context "with move_jars_to_webinf_lib set to regexp" do
         | 
| 627 | 
            +
                    before :each do
         | 
| 628 | 
            +
                      use_config do |config|
         | 
| 629 | 
            +
                        config.move_jars_to_webinf_lib = /sample/
         | 
| 630 | 
            +
                      end
         | 
| 631 | 
            +
                    end
         | 
| 632 | 
            +
             | 
| 633 | 
            +
                    before :each do
         | 
| 634 | 
            +
                      touch FileList["app/another.jar", "app/sample2.jar"]
         | 
| 635 | 
            +
                    end
         | 
| 636 | 
            +
                    after :each do
         | 
| 637 | 
            +
                      rm_f FileList["app/another.jar", "app/sample2.jar"]
         | 
| 638 | 
            +
                    end
         | 
| 639 | 
            +
             | 
| 640 | 
            +
                    it "moves jar files that match to WEB-INF/lib" do
         | 
| 641 | 
            +
                      jar.apply(config)
         | 
| 642 | 
            +
                      file_list(%r{WEB-INF/lib/app-sample.jar}).should_not be_empty
         | 
| 643 | 
            +
                      file_list(%r{WEB-INF/lib/app-sample2.jar}).should_not be_empty
         | 
| 644 | 
            +
                      file_list(%r{WEB-INF/lib/.*?another.jar}).should be_empty
         | 
| 645 | 
            +
                    end
         | 
| 646 | 
            +
             | 
| 647 | 
            +
                    it "removes default jars not matched by filter from WEB-INF/lib" do
         | 
| 648 | 
            +
                      jar.apply(config)
         | 
| 649 | 
            +
                      file_list(%r{WEB-INF/lib/jruby-rack.*\.jar}).should be_empty
         | 
| 650 | 
            +
                      file_list(%r{WEB-INF/lib/jruby-core.*\.jar}).should be_empty
         | 
| 651 | 
            +
                    end
         | 
| 652 | 
            +
             | 
| 653 | 
            +
                  end
         | 
| 654 | 
            +
             | 
| 597 655 | 
             
                end
         | 
| 598 656 |  | 
| 599 657 | 
             
                context "with the executable feature" do
         | 
| @@ -995,4 +1053,3 @@ describe Warbler::Jar do | |
| 995 1053 | 
             
                end
         | 
| 996 1054 | 
             
              end
         | 
| 997 1055 | 
             
            end
         | 
| 998 | 
            -
             | 
| @@ -70,7 +70,7 @@ describe Warbler::Jar, "with JBundler" do | |
| 70 70 | 
             
                it "does not include the jbundler gem (as it is in the development group)" do
         | 
| 71 71 | 
             
                  pending( "needs JRuby to work" ) unless defined? JRUBY_VERSION
         | 
| 72 72 | 
             
                  jar.apply(config)
         | 
| 73 | 
            -
                  config.gems.detect{|k,v| k.name == 'jbundler'}.should  | 
| 73 | 
            +
                  config.gems.detect{|k,v| k.name == 'jbundler'}.should be nil
         | 
| 74 74 | 
             
                  file_list(/jbundler-/).should be_empty
         | 
| 75 75 | 
             
                end
         | 
| 76 76 |  | 
    
        data/spec/warbler/task_spec.rb
    CHANGED
    
    | @@ -138,7 +138,7 @@ describe Warbler::Task do | |
| 138 138 | 
             
                  class_file_bytes = zf.get_input_stream('WEB-INF/lib/ruby_one_nine.class') {|io| io.read }
         | 
| 139 139 | 
             
                  java_class_header     = class_file_bytes[0..3]
         | 
| 140 140 | 
             
                  bytecode_version      = class_file_bytes[6..7]
         | 
| 141 | 
            -
             | 
| 141 | 
            +
             | 
| 142 142 | 
             
                  java_class_header.should == java_class_magic_number
         | 
| 143 143 | 
             
                  bytecode_version.should == java6_version_bytes
         | 
| 144 144 | 
             
                end
         | 
| @@ -147,13 +147,13 @@ describe Warbler::Task do | |
| 147 147 | 
             
              it "should delete .class files after finishing the jar" do
         | 
| 148 148 | 
             
                config.features << "compiled"
         | 
| 149 149 | 
             
                silence { run_task "warble" }
         | 
| 150 | 
            -
                File.exist?('app/helpers/application_helper.class').should  | 
| 150 | 
            +
                File.exist?('app/helpers/application_helper.class').should be false
         | 
| 151 151 | 
             
              end
         | 
| 152 152 |  | 
| 153 153 | 
             
              context "where symlinks are available" do
         | 
| 154 154 | 
             
                begin
         | 
| 155 155 | 
             
                  FileUtils.ln_s "README.txt", "r.txt.symlink", :verbose => false
         | 
| 156 | 
            -
             | 
| 156 | 
            +
             | 
| 157 157 | 
             
                  it "should process symlinks by storing a file in the archive that has the same contents as the source" do
         | 
| 158 158 | 
             
                    File.open("config/special.txt", "wb") {|f| f << "special"}
         | 
| 159 159 | 
             
                    Dir.chdir("config") { FileUtils.ln_s "special.txt", "link.txt" }
         | 
| @@ -169,9 +169,9 @@ describe Warbler::Task do | |
| 169 169 | 
             
                    Dir.chdir("lib") { FileUtils.ln_s "tasks", "rakelib" }
         | 
| 170 170 | 
             
                    silence { run_task "warble" }
         | 
| 171 171 | 
             
                    Warbler::ZipSupport.open("#{config.jar_name}.war") do |zf|
         | 
| 172 | 
            -
                      zf.find_entry("WEB-INF/lib/tasks/utils.rake").should_not  | 
| 173 | 
            -
                      zf.find_entry("WEB-INF/lib/rakelib/").should_not  | 
| 174 | 
            -
                      zf.find_entry("WEB-INF/lib/rakelib/utils.rake").should_not  | 
| 172 | 
            +
                      zf.find_entry("WEB-INF/lib/tasks/utils.rake").should_not be nil
         | 
| 173 | 
            +
                      zf.find_entry("WEB-INF/lib/rakelib/").should_not be nil
         | 
| 174 | 
            +
                      zf.find_entry("WEB-INF/lib/rakelib/utils.rake").should_not be nil if defined?(JRUBY_VERSION)
         | 
| 175 175 | 
             
                    end
         | 
| 176 176 | 
             
                  end
         | 
| 177 177 |  | 
| @@ -181,7 +181,7 @@ describe Warbler::Task do | |
| 181 181 | 
             
              end
         | 
| 182 182 |  | 
| 183 183 | 
             
              context "with a Bundler Gemfile" do
         | 
| 184 | 
            -
             | 
| 184 | 
            +
             | 
| 185 185 | 
             
                run_out_of_process_with_drb if DRB = true
         | 
| 186 186 |  | 
| 187 187 | 
             
                after do
         | 
| @@ -194,18 +194,18 @@ describe Warbler::Task do | |
| 194 194 |  | 
| 195 195 | 
             
                it "includes gems from the Gemfile" do
         | 
| 196 196 | 
             
                  File.open("Gemfile", "w") {|f| f << "gem 'rspec'"}
         | 
| 197 | 
            -
             | 
| 197 | 
            +
             | 
| 198 198 | 
             
                  if DRB
         | 
| 199 199 | 
             
                    drbclient.run_task "warble"
         | 
| 200 200 | 
             
                    config = drbclient.config
         | 
| 201 201 | 
             
                  else
         | 
| 202 | 
            -
                   silence { run_task "warble" } | 
| 202 | 
            +
                   silence { run_task "warble" }
         | 
| 203 203 | 
             
                  end
         | 
| 204 | 
            -
             | 
| 204 | 
            +
             | 
| 205 205 | 
             
                  Warbler::ZipSupport.open("#{config.jar_name}.war") do |zf|
         | 
| 206 206 | 
             
                    rspec = config.gems.keys.detect { |spec| spec.name == 'rspec' }
         | 
| 207 | 
            -
                    rspec.should_not  | 
| 208 | 
            -
                    zf.find_entry("WEB-INF/gems/specifications/rspec-#{rspec.version}.gemspec").should_not  | 
| 207 | 
            +
                    rspec.should_not be(nil), "expected rspec gem among: #{config.gems.keys.join(' ')}"
         | 
| 208 | 
            +
                    zf.find_entry("WEB-INF/gems/specifications/rspec-#{rspec.version}.gemspec").should_not be nil
         | 
| 209 209 | 
             
                  end
         | 
| 210 210 | 
             
                end
         | 
| 211 211 | 
             
              end
         | 
    
        data/warble.rb
    CHANGED
    
    | @@ -88,7 +88,11 @@ Warbler::Config.new do |config| | |
| 88 88 | 
             
              # files will be compiled. Default is to compile all \.rb files in
         | 
| 89 89 | 
             
              # the application.
         | 
| 90 90 | 
             
              # config.compiled_ruby_files = FileList['app/**/*.rb']
         | 
| 91 | 
            -
             | 
| 91 | 
            +
             | 
| 92 | 
            +
              # Determines if ruby files in supporting gems will be compiled.
         | 
| 93 | 
            +
              # Ignored unless compile feature is used.
         | 
| 94 | 
            +
              # config.compile_gems = false
         | 
| 95 | 
            +
             | 
| 92 96 | 
             
              # When set it specify the bytecode version for compiled class files
         | 
| 93 97 | 
             
              # config.bytecode_version = "1.6"
         | 
| 94 98 |  | 
| @@ -97,15 +101,18 @@ Warbler::Config.new do |config| | |
| 97 101 | 
             
              # GEM_HOME if it is set.
         | 
| 98 102 | 
             
              # config.override_gem_home = true
         | 
| 99 103 |  | 
| 100 | 
            -
              # Allows for specifing custom executables | 
| 104 | 
            +
              # Allows for specifing custom executables
         | 
| 101 105 | 
             
              # config.executable = ["rake", "bin/rake"]
         | 
| 102 | 
            -
             | 
| 106 | 
            +
             | 
| 103 107 | 
             
              # Sets default (prefixed) parameters for the executables
         | 
| 104 108 | 
             
              # config.executable_params = "do:something"
         | 
| 105 109 |  | 
| 106 110 | 
             
              # If set to true, moves jar files into WEB-INF/lib. Prior to version 1.4.2 of Warbler this was done
         | 
| 107 111 | 
             
              # by default. But since 1.4.2 this config defaults to false. It may need to be set to true for
         | 
| 108 112 | 
             
              # web servers that do not explode the WAR file.
         | 
| 113 | 
            +
              # Alternatively, this option can be set to a regular expression, which will
         | 
| 114 | 
            +
              # act as a jar selector -- only jar files that match the pattern will be 
         | 
| 115 | 
            +
              # included in the archive.
         | 
| 109 116 | 
             
              # config.move_jars_to_webinf_lib = false
         | 
| 110 117 |  | 
| 111 118 | 
             
              # === War files only below here ===
         | 
    
        data/warbler.gemspec
    CHANGED
    
    | @@ -6,15 +6,14 @@ Gem::Specification.new do |gem| | |
| 6 6 | 
             
              gem.name = "warbler"
         | 
| 7 7 | 
             
              gem.version = Warbler::VERSION
         | 
| 8 8 | 
             
              gem.platform = Gem::Platform::RUBY
         | 
| 9 | 
            -
              gem.homepage = " | 
| 9 | 
            +
              gem.homepage = "https://github.com/jruby/warbler"
         | 
| 10 10 | 
             
              gem.license = 'MIT'
         | 
| 11 11 | 
             
              gem.authors = ["Nick Sieger"]
         | 
| 12 12 | 
             
              gem.email = "nick@nicksieger.com"
         | 
| 13 13 | 
             
              gem.summary = "Warbler chirpily constructs .war files of your Rails applications."
         | 
| 14 14 | 
             
              gem.description = %q{Warbler is a gem to make a Java jar or war file out of any Ruby,
         | 
| 15 | 
            -
            Rails,  | 
| 16 | 
            -
             | 
| 17 | 
            -
            deployment to a Java environment.}
         | 
| 15 | 
            +
            Rails, or Rack application. Warbler provides a minimal, flexible, Ruby-like way to
         | 
| 16 | 
            +
            bundle up all of your application files for deployment to a Java environment.}
         | 
| 18 17 |  | 
| 19 18 | 
             
              gem.files         = `git ls-files`.split("\n")
         | 
| 20 19 | 
             
              gem.test_files    = `git ls-files -- {test,spec,features,integration}/*`.split("\n")
         | 
| @@ -22,13 +21,12 @@ deployment to a Java environment.} | |
| 22 21 | 
             
              gem.require_paths = ["lib"]
         | 
| 23 22 |  | 
| 24 23 | 
             
              gem.rdoc_options = ["--main", "README.rdoc", "-H", "-f", "darkfish"]
         | 
| 25 | 
            -
              gem.rubyforge_project = "caldersphere"
         | 
| 26 24 |  | 
| 27 25 | 
             
              gem.add_runtime_dependency 'rake', [">= 0.9.6"]
         | 
| 28 26 | 
             
              # restrict it for maven not to find jruby-9000.dev
         | 
| 29 27 | 
             
              gem.add_runtime_dependency 'jruby-jars', [">= 1.5.6", '< 2.0']
         | 
| 30 28 | 
             
              gem.add_runtime_dependency 'jruby-rack', [">= 1.0.0"]
         | 
| 31 | 
            -
              gem.add_runtime_dependency 'rubyzip', [">= 0.9", "< 1. | 
| 29 | 
            +
              gem.add_runtime_dependency 'rubyzip', [">= 0.9", "< 1.2"]
         | 
| 32 30 | 
             
              gem.add_development_dependency 'jbundler', "~> 0.5.5"
         | 
| 33 31 | 
             
              gem.add_development_dependency 'ruby-maven', '~> 3.1.1.0'
         | 
| 34 32 | 
             
              gem.add_development_dependency 'rspec', "~> 2.10"
         | 
    
        data/web.xml.erb
    CHANGED
    
    | @@ -2,6 +2,8 @@ | |
| 2 2 | 
             
              "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
         | 
| 3 3 | 
             
              "http://java.sun.com/dtd/web-app_2_3.dtd">
         | 
| 4 4 | 
             
            <web-app>
         | 
| 5 | 
            +
            <!-- <display-name>Uncomment and put name :here: for Tomcat Dashboard</display-name> -->
         | 
| 6 | 
            +
             | 
| 5 7 | 
             
            <% webxml.context_params.each do |k,v| %>
         | 
| 6 8 | 
             
              <context-param>
         | 
| 7 9 | 
             
                <param-name><%= k %></param-name>
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: warbler
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.4. | 
| 4 | 
            +
              version: 1.4.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Nick Sieger
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014- | 
| 11 | 
            +
            date: 2014-07-22 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rake
         | 
| @@ -67,7 +67,7 @@ dependencies: | |
| 67 67 | 
             
                    version: '0.9'
         | 
| 68 68 | 
             
                - - <
         | 
| 69 69 | 
             
                  - !ruby/object:Gem::Version
         | 
| 70 | 
            -
                    version: '1. | 
| 70 | 
            +
                    version: '1.2'
         | 
| 71 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 72 | 
             
                requirements:
         | 
| 73 73 | 
             
                - - '>='
         | 
| @@ -75,7 +75,7 @@ dependencies: | |
| 75 75 | 
             
                    version: '0.9'
         | 
| 76 76 | 
             
                - - <
         | 
| 77 77 | 
             
                  - !ruby/object:Gem::Version
         | 
| 78 | 
            -
                    version: '1. | 
| 78 | 
            +
                    version: '1.2'
         | 
| 79 79 | 
             
              prerelease: false
         | 
| 80 80 | 
             
              type: :runtime
         | 
| 81 81 | 
             
            - !ruby/object:Gem::Dependency
         | 
| @@ -136,9 +136,8 @@ dependencies: | |
| 136 136 | 
             
              type: :development
         | 
| 137 137 | 
             
            description: |-
         | 
| 138 138 | 
             
              Warbler is a gem to make a Java jar or war file out of any Ruby,
         | 
| 139 | 
            -
              Rails,  | 
| 140 | 
            -
               | 
| 141 | 
            -
              deployment to a Java environment.
         | 
| 139 | 
            +
              Rails, or Rack application. Warbler provides a minimal, flexible, Ruby-like way to
         | 
| 140 | 
            +
              bundle up all of your application files for deployment to a Java environment.
         | 
| 142 141 | 
             
            email: nick@nicksieger.com
         | 
| 143 142 | 
             
            executables:
         | 
| 144 143 | 
             
            - warble
         | 
| @@ -362,7 +361,7 @@ files: | |
| 362 361 | 
             
            - warble.rb
         | 
| 363 362 | 
             
            - warbler.gemspec
         | 
| 364 363 | 
             
            - web.xml.erb
         | 
| 365 | 
            -
            homepage:  | 
| 364 | 
            +
            homepage: https://github.com/jruby/warbler
         | 
| 366 365 | 
             
            licenses:
         | 
| 367 366 | 
             
            - MIT
         | 
| 368 367 | 
             
            metadata: {}
         | 
| @@ -386,7 +385,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 386 385 | 
             
                - !ruby/object:Gem::Version
         | 
| 387 386 | 
             
                  version: '0'
         | 
| 388 387 | 
             
            requirements: []
         | 
| 389 | 
            -
            rubyforge_project: | 
| 388 | 
            +
            rubyforge_project:
         | 
| 390 389 | 
             
            rubygems_version: 2.2.2
         | 
| 391 390 | 
             
            signing_key:
         | 
| 392 391 | 
             
            specification_version: 4
         |