3.5.0.RELEASE - Release Notes
The Bondi (3.5.0) release of Virgo introduces two new fast-booting, low-footprint, single-region Nano and Nano Web distributions useful for embedding and other use cases where resource consumption is critical.
The release also upgrades Gemini Web support, provides a Virgo p2 repository and overall better integration with p2, tightens up conformance with OSGi standards, upgrades the Logback framework, includes Gemini Management, improves the deployer behaviour with respect to the new Subsystems standard, and delivers several smaller enhancements and bug fixes.
But before exploring the details, some thanks are due.
Three new committers joined during this release and have made great contributions so far:
- Florian Waibel (Innoopract GmbH) - Subsystems function
- Lazar Kirchev (SAP AG) - admin shell
- Miles Parker (Tasktop) - tooling overhaul (not yet released)
The Virgo committers would also like to thank the following people for their contributions:
- Daniël van 't Ooster
- Frieder Heugel
- Matthew T. Adams
- Radoslav Ivanov
- Rick Herrick
- Scott Brand
- C. Tran-Xuan
We are also grateful for contributions in the form of bug reports, forum posts, and blogs which were provided by individuals too numerous to mention.
OSGi Standards Conformance
By including the Gemini Blueprint bundles, Virgo now supports the OSGi Blueprint specification out of the box.
Virgo Server for Apache Tomcat
Virgo Tomcat Server is renamed to Virgo Server for Apache Tomcat to comply with Tomcat legal requirements.
Virgo Nano and Nano Web
This release introduces two new Virgo flavours - Virgo Nano and Virgo Nano Web. They have low resource consumption, fast startup and a single region.
Virgo Nano is good for embedding use cases as it is really the starting point from which the other Virgo distributions are built. Essentially it is an Equinox framework with hot-deployment capability and supportability features on top to aid developers.
Virgo Nano Web in addition to Virgo Nano provides a web layer via integration with Gemini Web. This server supports hot-deploying both WARs and Web Bundles. It is ideal for cloud and other use cases with stringent resource consumption and footprint requirements.
Virgo now supports initial provisioning via p2 director for all Virgo flavours. How to initial provision a Virgo instance is described well in Virgo's User Guide (5.3 Installing from an update site), available here. This also means Virgo now also has a common p2 repository for all Virgo distributions that can be found on our download page.
Using the p2 director users can also install and remove p2 features and normal bundles from Virgo Nano(Web) and from the kernel region of Virgo Kernel, Virgo Server for Apache Tomcat and Virgo Jetty Server.
The kernel implementation of plans and PARs is substantially changed. Plan and PARs are represented as subgraphs of the graph of artefacts. Major changes are the ability to share artifacts between subgraphs, garbage collection of left-over artifacts, and lifecycle management of shared subgraphs. The underlying semantics are based on those of the OSGi Subsystems specification.
Plan artefacts may be specified by absolute "file:" URI instead of type, name, and version range (satisfied from the repository).
Plans now support an optional "provisioning" attribute. Setting this to "disabled" prevents Virgo from installing bundles from the repository to attempt to satisfy any missing dependencies in the plan. This value can make the plan deploy faster, although if there are missing dependencies, deployment will fail.
Migration to 3.5.x
There are many infrastructural changes in this Virgo release. They are thoroughly described in our migration notes. The changes include a slightly modified directory layout, symbolic name changes, new default launcher, impact on Logback's custom appenders and others.
The familiar Virgo Jetty Server is now upgraded to Jetty 8.1.1.
Equinox and other Eclipse bundles are upgraded to their Eclipse Juno bits.
Logback is now updated to version 1.0.0.
SLF4J is updated to version 1.6.4
Enhancements and Fixes
A full list of bugs and enhancements included in this release is available here.