Skip to main content

Assembles WAR files from Python (Jython) WSGI applications

Project description

snakefight

snakefight generates WAR files from Python (Jython) WSGI applications, suitable for deployment to Java Servlet containers.

Installation

snakefight requires at least Jython 2.5b2. To install:

$ easy_install snakefight

Creating WAR files

snakefight provides a new distutils command: bdist_war.

To create a WAR file, create a web.xml deployment descriptor (which would typically utilize the modjy library for the actual Servlet) and run:

$ jython setup.py bdist_war --web_xml web.xml

snakefight can automatically generate a web.xml (utilizing modjy) for Paste style projects (those that support the paste.app_factory entry point), by specifying the --paste-config option. To specify a named app in the config file, use the --paste-app-name option (which defaults to main):

$ jython setup.py bdist_war --paste-config production.ini --paste-app-name cascade

snakefight can also be ran from CPython (at least version 2.5) as long as a JYTHON_HOME is specified:

$ jython setup.py bdist_war --web_xml web.xml --jython-home=~/jython2.5b2

Other options:

  • --war-prefix Prefix of the war file to build

  • --no-jython Don’t include the Jython distribution

TODO

Add options for:

  • exclude-requires: exclude certain eggs from inclusion

  • static_files: list of directories to serve public files (through the faster org.jruby.webapp.FileServlet)

  • specifying modjy options

  • include-java-libs: list of jars to also include in WEB-INF/lib

Support:

  • non setuptools apps? (like Django apps) django-jython already handles Django but ideally we’d share code

Changelog

0.2

  • easy_install’ing the app is now the first step

0.1

  • Initial release

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page