private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services from 1 day to full product delivery
CloudFoundry is an open platform intended as a place to deploy end user applications in a manner which is both simple and emminently scalable to fit the needs of the application. With the release of their V2 framework the Jetty project has created a buildpack which allows you to deploy your java based web application onto Jetty and still make use of the remainder of the CloudFoundry platform.
This buildpack itself is quite simple to use. A collection of ruby scripting and the buildpack conventions will allow Jetty to be downloaded, configured and customized to your needs and then have your web application deployed onto it. While the default buildpack we have created is useful to deploy a stock configuration of jetty, it is quite likely that you will want to fork the buildpack and tweak it to fit your immediate needs. This process is made trivial since buildpacks install from a github repository. For example, to change the jetty version simply fork it in GitHub and tweak the
JETTY_VERSION string in the
If you have additional modifications to make to the Jetty server, like perhaps configuring additional static contexts, setting up a proxy servlet, adding jar files to the jetty.home/lib/ext directory, etc you can either adapt the ruby scripting directly or place them under the appropriate location in the
/resources directory of this buildpack and they will be copied into the correct location.
For the time being I'll leave this buildpack under my personal github account and should there be interest expressed I am more then happy to push it over to https://github.com/jetty-project down the road for proper contributions, etc.
To show how incredibly easy it is to use the Jetty buildpack with cloudfoundry, this is all the more you need to do to deploy your application. Refer to the CloudFoundry documentation to get started, get the
cf utilities installed and an environment configured.
$ cf push snifftest --buildpack=git://github.com/jmcc0nn3ll/jetty-buildpack.git
In this example the web application is uploaded from the current directory so make sure you have changed directory into the root of your web application. The
snifftest on the commandline referrs to what you are calling the application, not the directory to deploy. Also note that the webapplication is installed into the
ROOT context of Jetty as is available at the root context of the server. Any additional web applications will have to be configured within the buildpack as mentioned above.
You will be prompted to answer a series of questions describing the execution environment and any additional services you need enabled (databases, etc).
Once answered you will see the installation process of your application.
The application is now available at the configured location! Under the url
http://snifftest.a1-app.cf-app.com/ in this particular example.
The Jetty buildpack was forked from the CloudFoundry Java buildpack. The Virgo Buildpack that Glyn worked on was used as a sanity check.
CloudFoundry buildpacks were modelled on Heroku buildpacks.