lib/warbler/traits/war.rb in warbler-1.3.6 vs lib/warbler/traits/war.rb in warbler-1.3.7

- old
+ new

@@ -75,10 +75,11 @@ def update_archive(jar) add_public_files(jar) add_webxml(jar) move_jars_to_webinf_lib(jar) + add_runnables(jar) if config.features.include?("runnable") add_executables(jar) if config.features.include?("executable") add_gemjar(jar) if config.features.include?("gemjar") end # Add public/static assets to the root of the war file. @@ -97,14 +98,24 @@ jar.files[apply_pathmaps(config, wf, :webinf)] = wf end end end + def add_runnables(jar, main_class = 'WarMain') + main_class = main_class.sub('.class', '') # handles WarMain.class + unless config.manifest_file + manifest = Warbler::Jar::DEFAULT_MANIFEST.chomp + "Main-Class: #{main_class}\n" + jar.files['META-INF/MANIFEST.MF'] = StringIO.new(manifest) + end + [ 'JarMain', 'WarMain', main_class ].uniq.each do |klass| + jar.files["#{klass}.class"] = jar.entry_in_jar(WARBLER_JAR, "#{klass}.class") + end + end + def add_executables(jar) webserver = WEB_SERVERS[config.webserver.to_s] webserver.add(jar) - jar.files['META-INF/MANIFEST.MF'] = StringIO.new(Warbler::Jar::DEFAULT_MANIFEST.chomp + "Main-Class: WarMain\n") - jar.files['WarMain.class'] = jar.entry_in_jar("#{WARBLER_HOME}/lib/warbler_jar.jar", webserver.main_class) + add_runnables jar, webserver.main_class || 'WarMain' end def add_gemjar(jar) gem_jar = Warbler::Jar.new gem_path = Regexp::quote(config.relative_gem_path)