warbler icon indicating copy to clipboard operation
warbler copied to clipboard

Consider moving jar to Maven or eliminating entirely

Open headius opened this issue 2 months ago • 1 comments

We currently build lib/warbler_jar.jar as part of this gem, even though most of it is not necessary for the execution of the gem.

Two classes in this jar are used by warbler as a JRuby extension to build the resulting archive: WarblerJar and WarblerJarService. None of this code really needs to be written in Java (it's largely just zip file manipulation and creation).

The remaining two sources built and installed in this jar are provided to bootstrap applications built by warbler (not to run warbler itself):

  • JarMain: provides a "main" entry point for standalone executable jars.
  • WarMain: supports the embedded web application server used for executable war files`.

These two classes could be moved to Maven modules and versioned from there. They could also be eliminated altogether:

  • The JarMain class could be re-integrated back into JRuby, since it provides functionality the existing JRuby JarBootstrapMain does not. Building an executable jar would then just involve repackaging JRuby with appropriate layout and configuration to run the user's app.
  • The WarMain class could be generated, or written in Ruby with a JarMain bootstrap to run the ruby and then re-dispatch to the web server's main.

Eliminating the extension would get the gem back to a pure-Ruby construct and allow it to be run from any compatible Ruby implementation.

Transplanting or eliminating the "mains" would make it possible to build the warbler gem with any compatible Ruby implementation.

headius avatar Oct 15 '25 17:10 headius

See #579 for work done to remove the jar from the repository.

headius avatar Oct 15 '25 17:10 headius