Skip to content
Heroku-style buildpack to provide Eclipse Virgo as a runtime container in CloudFoundry
Ruby Groovy
Latest commit 6f36e91 Jan 15, 2014 @glyn Mutate the droplet's java_opts

README.md

Eclipse Virgo buildpack

This is a Cloud Foundry buildpack for running Eclipse Virgo applications. It is a fork of the Cloud Foundry Java Buildpack. The buildpack knows how to detect and launch certain types of applications (described below) in Virgo.

Build Status

Usage

To use this buildpack specify the URI of the repository when pushing an application to Cloud Foundry:

 cf push --buildpack https://github.com/glyn/virgo-buildpack

or if using the gcf tool:

gcf push -b https://github.com/glyn/virgo-buildpack

Application Types

Currently only one type of application is supported.

Virgo Overlay

The application consists of one or more Virgo artefacts in a directory named pickup. Virgo artefacts include WAR files, OSGi Web Application Bundles, plans, and PAR files. See the Virgo Programmer Guide for more information about these artefact types.

If the artefacts have any dependencies not met by Virgo, the dependency bundles should be stored in a directory named repository/usr.

Issue cf push from a directory containing a pickup directory and, optionally, a repository/usr directory.

This type of application causes Virgo Server for Apache Tomcat to be launched as the runtime container.

See the overlay-sample directory for a trivial example application. You can push this as follows:

cd overlay-sample
cf push

The push uses the settings in manifest.yml. The servlet appears at <application URL>/nospring. Note that the "Admin Console" link will be broken since the admin console is deleted by the buildpack for security reasons.

API

A buildpack supports three operations (via corresponding scripts in the bin directory):

  • detect <app directory>: prints the application type to standard output and exits with status code 0 if and only if the buildpack can handle the application in the specified directory. Does not modify the specified directory.
  • compile <app directory> <cache directory>: prepares a droplet for launching the application.
  • release <app directory>: prints launch information and configuration to standard output in YAML format.

Acknowledgements

The Virgo buildpack was forked from the CloudFoundry Java buildpack from which the remaining sections of this documentation derive.

CloudFoundry buildpacks were modelled on Heroku buildpacks.

Configuration and Extension

The buildpack supports configuration and extension through the use of Git repository forking. The easiest way to accomplish this is to use GitHub's forking functionality to create a copy of this repository. Make the required configuration and extension changes in the copy of the repository. Then specify the URL of the new repository when pushing Cloud Foundry applications. If the modifications are generally applicable to the Cloud Foundry community, please submit a pull request with the changes.

To learn how to configure various properties of the buildpack, follow the "Configuration" links below. More information on extending the buildpack is available here.

Additional Documentation

Running Tests

To run the tests, do the following:

bundle install
bundle exec rake

Installing Cloud Foundry on Vagrant is useful for privately testing new features.

Contributing

Pull requests are welcome; see the contributor guidelines for details.

License

This buildpack is released under version 2.0 of the Apache License.

Something went wrong with that request. Please try again.