The Maya (3.0) release of Virgo introduces a new Jetty-based web server download as well as improving the integration with other EclipseRT technologies, delivers the snaps framework for modular web applications, and provides a new shell with telnet and ssh access.
The release also upgrades Gemini Web to pick up Tomcat 7 and Servlet 3.0 support, tightens up conformance with OSGi standards, upgrades Spring framework, provides an updated GreenPages sample application, improves resource lookup performance, and delivers several smaller enhancements and bug fixes.
But before exploring the details, some thanks are due.
Several new committers joined during this release, got up to speed quickly, and made a major contribution to the release content:
The Virgo committers would like to thank the following people.
Tom Watson led the work to move the region digraph bundle from Virgo to Equinox and subsequently extended and enhanced the function.
Lazar Kirchev led the work on the Gogo shell.
Code and documentation contributions were received from:
Contributions in the form of bug reports, forum posts, and blogs were provided by individuals too numerous to mention.
In addition to the familiar Tomcat-based web server download known as "Virgo Tomcat Server" (formerly "Virgo Web Server"), Virgo now provides a web server download known as "Virgo Jetty Server" based on Jetty 7.4.2 and Servlet 2.5.
Equinox implementations of the OSGi Configuration Admin and Event Admin services are used instead of their Felix counterparts (which were used in earlier releases).
Integration with p2 is deferred to a future release.
The snaps framework for modular web applications, previously known as "slices", is now available for general use.
Snaps is provided as a separate download complete with a new "Virgo Snaps User Guide" (also available online), and a comprehensive sample application. The Guide describes how to install snaps on top of Virgo Tomcat Server and then uses the sample application to verify the installation and demonstrate all the major features of snaps.
A new shell, based on Apache Felix Gogo, is provided for both kernel and user region. Access is via ssh or telnet, although both are disabled by default.
The User Guide explains how to enable, re-configure, and log in to the shell.
Virgo Tomcat Server is upgraded to Gemini Web to 2.0.0.RELEASE and thence to Tomcat 7, Servlet 3.0, JSP 2.2, and EL 2.2.
The kernel is upgraded to the stable Indigo release (3.7.0.v20110613) of Equinox and thence to OSGi R4.3. This upgrade also tightens up the processing of Require-Bundle as described in bug 343050.
Declarative Services and the OSGi Log Service are supported out of the box.
Virgo's regions are re-implemented in terms of OSGi framework hooks, which were standardised in OSGi R4.3, instead of the deprecated Equinox support for composite bundles. The web admin console and the shell are upgraded to reflect the new region support.
Virgo Tomcat Server's Web Application Manifest Processing conforms to the OSGi specification. This is a backward incompatible change compared to Virgo Web Server 2.1.x. As a migration aid, which may be removed in future releases, the previous behaviour may be re-instated by configuring the Web Integration Layer. Please note there is a known issue with certain WAR files which may be worked around using this migration aid.
Spring Framework is upgraded to 3.0.5.RELEASE.
Since Spring 2.5 is incompatible with Servlet 3.0, users of Virgo Tomcat Server are no longer able to downgrade the Spring framework in the user region to a version lower than 3.0.
The GreenPages sample has been updated to work with Virgo Tomcat Server 3.0.
The document "Creating an Application with Virgo" has being replaced with a "Guide to the GreenPages Sample" which is provided with the sample and is also available online.
Users of earlier releases should refer to the migration notes for help in moving to this release.
Note that two bundles included from the Equinox project are in incubation status.
The Region Digraph bundle was moved from Virgo to Equinox and is in a stable, well-tested state.
The Console Supportability bundle, which integrates the Apache Felix Gogo shell, is in incubation status mainly because it depends on interfaces that were being worked on in the OSGi Alliance. However, the Alliance has decided not to continue that particular piece of specification work since Gogo is already proving to be a popular, reusable console.
A full list of bugs included in this release is available here.